0.5.9
  - mkchroot fix for clamav directory in /var/clamav
  - fixed problem to communicate with nod32 command line
  - forking core support to bind to an socket
  - stat dependency for deb packages added
  - documentation fixes
  - boolean operators: <, >, <=, >=, ==, !=
  - rename scanner to rename virus/spam name
  - documentation moved into doc directory
  - manual pages for sagator, sgscan and sqback
  - libclamav() scanner fix if sagator-libclamav is not installed
  - dspam() scanner
  - init script moved to priority 82 (after sql and spamassassin startup)
  - clean/infected separation in sgscan (--separe option)
  - progress indicator for sgscan (--progress option)
  - quiet output for sgscan (viruses/spams are not displayed)
  - scanner parameters
  - added /lib/ld-linux.so.2 to chroot (required for Fedora Core 3)
  - error message when loading stats ignored
  - mail class reorganization (email header is not stored separatelly)
  - new variables ($SENTBY_IP, ...) for log and report scanners
  - remove_headers() scanner added
  - filter option for spamassassind() scanner
  - $SENDER is parsed by rfc822.parseaddr
  - log_syslog() scanner
  - filter() scanner to use with antispam filters (like Anomy Sanitizer)
  - attach_name() scanner - a replacement for mime_ext()
  - milter() service rewrite
  - add /etc/localtime into chroot
  - clean instalation of deb package, when no postfix is installed
  - regexp_scan() now use multiline regular expressions, precompiled patterns
    and regular expression flags can be used
  - smtp_comm() now uses precompiled patterns and RE flags can be defined
  - & operator returns nicer virus name if one vname is empty
  - file_magic() scanner to scan over libmagic's functions
  - avfilter() uses only LF (not CRLF) as newline characters
  - initial rrdtool support
  - ability to change resource limits (like ulimit) from config
  - http proxy service (you can use it to scan HTTP connections)
     (This service is in beta stage now)

0.5.4
  - new scanners: log_mysql(), log_pgsql(), log_sqlite()
  - MRTG script fix
  - nod2d() renamed to nod2dazuko()
  - better string replacement for logger and reporter scanners
  - log sender for sgscan
  - documentation update
  - mkchroot now check for device existence
  - debian init script patch to remove pidfile after stop
  - logwatch writes only one day's errors/warnings
  - .cpl files recognized as executables
  - avgd() default options changed
  - avg chroot updated for latest AVG beta
  - libclamav constant updates for clamav 0.80
  - legends for MRTG graphs updated
  - added tmpreaper example into cron script template
  - rpm/deb checksum for precompiled python fixed
  - automatic restart for RPM is done only when RESTART=auto is present
      in /etc/sysconfig/sagator file
  - yum.repos.d autodetection and new .repo scripts
  - parsemail fixes for uuencoded emails
  - message handling of empty body emails
  - a special combination of multiple scanners fixed
  - mkchroot fix for CHROOT set to /

0.5.3
  - stability improvments
  - services (smtpd,collector and milter)
  - avfilter service (you can use sagator as procmail filter)
  - preforking processes for smtpd() - high speed improvments
  - sanitize() scanner - rename some filname extension to safe version
  - automatic configuration updater
  - config option to load alternate config file
  - regexp_scan() and string_scan() works again
  - report().ifscan() added to use report only for some emails
  - ICAP update for latest SAVSE and some ICAP fixes
  - log() scanner updated to show message size
  - SIGHUP signal handler removed, reloading is not possible now
  - SIGUSR1 signal changed to SIGHUP (reopen log)
  - added SIGUSR2 for debuging (show stack trace)
  - better error reporting in sgscan
  - new kavclient() scanner to scan using Kaspersky aveclient
  - kav() scanner optimalizations
  - all service PID's are in sagator.pid file
  - logwatch scripts
  - qurantine() can make dated subdirectories
  - timedel removed, use tmpwatch instead
  - const() scanner can be used to raise an error
  - option --daemon is now default, use --nodaemon if you don't need it
  - collector() fixes
  - automatic restart after upgrade for rpm package
  - spamassassind adds more headers into email
  - spamassassind returns only SPAM as virname
  - avgd() fixes (too many open files bug fixed)
  - mkchroot patches for latest clamav release
  - mkchroot speedup
  - tracebacks are written fewer

0.5.2
  - support for new syntax for new nod2lfs
  - mrtg script automatic creation for RPM (thanks to Doncho N. Gunchev)
  - parsemail StringIO fix and fix for badly formed base64
  - debug class unicode fix
  - handling of unknown error
  - added # of childrens into stats
  - stats.py requires only 3 parameters for mrtg
  - warnings in libclamav solved
  - new log() scanner for advanced logging
  - new add_header() scanner
  - milter fix

0.5.0
  - nod32 ver.2 implementation (only as command line scanner)
  - dazuko support (nod32lfs imlementation)
  - aglib mass rewrite
  - smtptest fixes
  - milter support
  - libclamavmodule rewrite (generated by pyrex! now)
  - directory reorganization
  - added version to sagators logfile and scanned files
  - mkchroot cosmetic fixes
  - new parsemail() scanner - very good MIME parser by Arpi
  - new report_recipients() scanner
  - new nothing() scanner
  - scanner force_send() renamed to deliver()
  - new deliver_to() scanners
  - simple configuration is now available too
  - quarantine() and deliver_to() leaves message in queue on fail
  - initial debian support (deb package)
  - postfix 2.1 before_filter support
  - added triggers to update sagator's chroot when used package is upgraded
  - modify_header and modify_subject interscanners
  - you don't need CHROOT parameters in sysconfig and mkchroot script
  - proper exit, waiting for childrens before exit
  - operators over scanners
  - added ID to an passed email
  - BSD and Solaris fixes
  - mailtest is now RFC compatible
  - python2.3 compatibility (please upgrade immediatly for python>=2.3)
  - sagator is more RFC compatible
  - better restarting (collector properly killed)
  - collector is now a single process without forking
  - websagator - web scanner
  - MAX_PROCS to limit maximum number of sagator processes
  - quarantine file autodetection for sgscan

0.4.3
  - bug when more than one DATA part is present in communication
  - better performance - compiled regular expressions
  - kaspersky scanner added - thanks to Laci Balint
  - bitdefender and kaspersky support in mkchroot

0.4.2
  - sgscan - added --av-only parameter to help
  - error replaced by warning when can't reload config.py

Thu Mar 11 20:37:46 CET 2004
  - decompressor add files to scan when error occured
  - quick restarting of nod32d
  - grp clamav has read-write access to chrooted tmp
  - sgscan now works fine over samba
  - compatibility with python < 2.2.2

Tue Feb 24 09:11:07 CET 2004
  - decompressor fixes
  - filetype pattern fixes
  - mimeparse now has alternate method to decode emails
  - crontab file change if clamav is not installed
  - --to recipient parameter for sqback (can send message to any user)
  - init script now restarts only sagator
  - !!! WARNING !!! - big changes again, config file rewrite
    - report() module
    - quarantine() module
    - drop() and always_send() modules
    - all QUARANTINE,REPORT,DROP,ALWAYS_SEND parameters from
      config are now ignored
    - report TEMPLATE change (%s strings are replaced by $XXX vars)
    - logfile moved into chroot (change your config.py)
  - cleaned logs
  - sagator-master.pid renamed to sagator.pid
  - CONF[] array removed from config.py
  - added logrotation
  - proper restarting (killing of stats collector)
  - sgscan documentation
  - sgscan now can scan with --av-only
  - sgscan fix for some scanners
  - sgscan now removes .clean files, if no virus was found
  - sgscan set permissions and owners on .clean files
  - sgscan filelocking - now you can run it on running system
  - added smtp_comm() scanner to scan SMTP communication
      It also can be used to attach some scanners to defined users/domains.
  - scanners.py - all scanners included here
  - fixed scriptlet fail, when postfix is not running
  - mkchroot support for AVG and NOD
  - smtptest2 and smtptest are now in one file
  - smtptest now ignores mailbox headers
  - libclam - database autloreloading
  - bdc - Bitdefender scanner

Tue Dec 30 11:25:26 CET 2003
  - debug function changes
  - more fixes found by pychecher - very good tool
  - avlib programmers documentation updated
  - sgscan error message when file can't be opened
  - libclamav loads db from chroot always
  - makechroot: clamav.conf is not replaced, if exist
  - makechroot: permission for /dev/* files set
  - smtptest2 change (find real hostname for email)
  - security: if internal decompressor fails, external is used
  - Makefile: netbsd fixes
  - makechroot.sh patch for ldd on kernel 2.6
  - fixed a bug with libclamav() which sometimes puts wrong line into mail
      (stdin/stderr file descriptors are now pointed to logfile)

Tue Nov 25 11:47:18 CET 2003
  - freshclam libs update in /var/lib/clamav (changed in clamav 0.65)
  - decompress now unpacking rar files properly (451 returned previously)
  - some major fixes, please upgrade
  - libclamavmodule - added error message, if module is not loaded
  - added -lbz2 into Makefile for clamav 0.65
  - Makefile cleanup

Mon Nov 10 09:14:48 CET 2003
  - spamassassin (no daemon) typo fix
  - added 2 new antispam systems (qsf and bogofilter)
  - stats.py - more fixes (zombie fix, atexit fix, save, ...)
  - mrtg.cfg and bigtest updates
  - aglib - proper closing of connections
  - added --config parameter for sgscan and sagator
  - some updates for clamav 0.65 (added -lz -lgmp to Makefile)

Fri Oct 31 09:01:46 CET 2003
  - !!! WARNING !!!
    Config file parameters changed. Please update your config.
    - Removed: TEMPFAIL_ON_SCANNER_FAIL=1
        Use recover() interscanner, if you want to set this to 0.
    - SMTP_HOST, SMTP_PORT now in one variable SMTP_SERVER
    - BIND_HOST, BIND_PORT now in one variable BIND_ADDR
    - default bind port changed to 27
    !!! WARNING !!!
  - mimeparse now can skip unknown encodings
  - spamassassind now haldles error messages from spamd
  - sleep 30s for nod32d in init script
  - workaround for 8bit spams, spamd fails with error 76 on it
  - savscan added
  - scket timeout implemented
  - you can collect some statistics and use it in MRTG
     start statistics server and look at its port in www browser
  - python 1.5 compatibility removed
  - SMTP client comunication moved to debug level 5
  - updated makefile to recognize python version correctly
      - Devil linux don't need patches anymore. :-)
  - sagator.config renamed to sagator.conf

Tue Oct 21 12:24:09 CEST 2003
  - added timedel.py script to delete old quarantine files
  - added sgscan.py script to scan files, removed fmag.py
  - antispam messages are now attached in mail headers
  - AVGlinux scanner is now working fine with latest beta
  - added clamd chroot starting
  - added stream2mbox() interscanner (Required for clamscan().)
  - major changes in avlib (better popen function)
  - all scanners now adds X-Sagator- lines (you can use any scanner
      to only mark viruses/spams without deleting)
  - removed real viruses from test directory
  - beeter spam sample with higher spamlevel

Mon Sep 22 07:45:53 CEST 2003
  - added Swen and Gibe to emails which need discard (delete)
  - replaced my email with root@localhost in default config

Thu Sep 18 07:56:00 CEST 2003
  - mimeparse: added some other test for bad emails
  - spamassassin: updated some emails, which fails
  - Makefile: backup for config.py (if already exist)
  - Makefile: new option make CLAMAV=no (without libclamav module)
  - really closing stdin/out/err
  - decompressor patch for unknown file type

Wed Aug 20 09:44:51 CEST 2003
  - added AVGlinux support
  - init script changed, now can start AVGd and NOD32d in chrooted environment
  - added init script installation into README

Wed Aug  6 14:11:22 CEST 2003
  - REPORT_MSG renamed to ADMIN_REPORT_MSG
  - USER_REPORT_MSG added to inform users
  - repaired Makefile for /etc/cron.daily/sagator to kill proper process
  - proper error message, if nod32d is not working
  - readme changes

Mon Jul  7 09:31:00 CEST 2003
  - added simple scanners: file_type and max_file_size
  - size is added for stream_scan and regexp_scan
  - python2 is required now (if you want to use sagator with python 1.5.2
      or 1.6.X, replace #!/usr/bin/python2 with #!/usr/bin/python
  - you can now define max_recursion, max_file_size, max_file_count
      and max_address_space for decompressor

Fri Jul  4 13:47:29 CEST 2003
  - added setrlimit to set maximum size of extracted file
      and ram usage
  - added filetype.py to recongnize file types by content (not extension)
  - internal unzip and ungzip
  - max_recursion and max_file_size check added
  - rdel repaired,moved,renamed
  - zipdir safed
  - ulimit settings added
  - pycompat module added for compatibility with python <2.2
  - scanner name is included in report
  - tempfile include removed from clamav module
  - sophie support added
  - added --debug option
  - files are now passed as full path
  - chroot emulation removed

Wed Jun 25 08:18:54 CEST 2003
  - spamassassind bug - negative spam hit allowed

Thu Jun 19 09:31:21 CEST 2003
  - README changes, added any smtpd support
  - spamassassin module is rewritten, it is more powerfull now

Fri Jun 13 14:10:27 CEST 2003
  - startup logging
  - libclam scanner supports to load libclamav and run its scanner
      (do not run other binaries and don not connect to clamd)
  - spec file updates (automaticaly reconfigures postfix)
  - sagator cron script automaticaly updates clamav database in chroot
  - match_first renamed to alternatives
  - HUP and TERM signal implemented,
     HUP signal forces database reload for libclam()
  - documentation changes
  - some other small changes

Thu Jun 12 14:52:15 CEST 2003
  - time is logged on connect
  - DONT_QUARANTINE and ALWAYS_SENT parameters added
