bogofilter-0.94.3 - new current release

David Relson relson at osagesoftware.com
Wed Mar 30 14:15:42 CEST 2005


Greetings,

Bogofilter-0.94.3 fixes pathing problems with bogoutil's --db-*
database checking/recover functions and adds mutt and sylpheed claws
usage info to the FAQ.

########################################################################

Files are available at http://sourceforge.net/projects/bogofilter for
download.

Here are the md5sums for the release:

2b679fc4ea48139c005d84cdff9a20f9  bogofilter-0.94.3-1.i586.rpm
0754bc99d954ce6d0ce88ba3614c7b2e  bogofilter-0.94.3-1.src.rpm
8bb8ece9a1e1faa608774b16fbd2ab60  bogofilter-0.94.3.tar.bz2
559506a1fc0719ddcac2e82428bf6820  bogofilter-0.94.3.tar.gz
f413d36df7835ab67ba7e09ab2a1e844  bogofilter-static-0.94.3-1.i586.rpm

################################################################

			       =================
				BOGOFILTER NEWS
			       =================

	!!!!!!!! READ THE RELEASE.NOTES !!!!!!!!

	The sections

        INCOMPATIBLE CHANGES IN BOGOFILTER (version)
and     MAJOR CHANGES IN BOGOFILTER (version)

	are particularly important.

	!!!!!!!! READ THE RELEASE.NOTES !!!!!!!!

-------------------------------------------------------------------------------

0.94.3	2005-03-29

	2005-03-27

	* Added FAQ info on using bogofilter with mutt and sylpheed claws.

	* Fixed --db-print-pagesize so that the proper directory is
	  used for database environment.

	2005-03-25

	* Add error checking to bogoutil's ROBX calculation.

	* Allow --db-verify to work for non-transactional databases.

	* Repair several minor defects around --db-print-pagesize.  Support
	  page size detection with Berkeley DB 3.1 and 3.2 (it was already
	  supported for 3.3 - 4.3). Offer --db-print-pagesize function in
	  bogoutil --help when compiled against SQLite3.

	* Fix incomplete cleanups that broke several bogoutil functions again,
	  among them --db-recover[-harder], --db-remove-environment,
	  --db-verify and --db-print-pagesize.

	* Let SQLite3 retry when the database is busy (rather than locked).

0.94.2	2005-03-24

	* Fix SQLite3 open problem, trying again when the table it is
          locked.

	2005-03-23

	* Fix --enable-iconv breaking with non-ASCII default charset.

	* bogolexer now understands the --charset-default options.

	2005-03-22

	* Fix SQLite3 regression in 0.94.0 that broke consistency guarantees
	  and caused a _massive_ slowdown.

	* Add 'bogoutil --db-print-pagesize', to query the database size,
	  useful to replace running awk on 'db_stat -d database.db' output.

	2005-03-20

	* Fixed dirname/filename problem in bogotune.

0.94.1	2005-03-16

	* Long options cleanup: options that have no meaning for a particular
	  program are now rejected, to meet common expectations. The option
	  parsing code was cleaned up and is easier to maintain now.

	2005-03-14

	* Add 'bogoutil --db-checkpoint', to replace db_checkpoint -1h.

	2005-03-13

	* Modified get_token() to use static storage in order to
          lessen malloc/free overhead.

	2005-03-09

	* Fix segfault in 'bogoutil --db-verify'.

	2005-03-08

	* Support for Berkeley DB 3.1 is back.
	* Terminate 'bogoutil -d' when SIGINT or SIGTERM is received.

	2005-03-07

	* Fixed query_config ('-Q') option.

0.94.0	2005-03-05

	Default mode is transactions disabled for Berkeley DB.

	2005-02-26

	* Remove bogus signal handler, remove SIGKILL handling; ignore SIGINT,
	  SIGTERM and SIGPIPE.

	* Fix non-transactional mode for Berkeley DB 4.0 and older.

	2005-02-25

	* Implement --db-log-autoremove=BOOL option, defaults to on.
	  This option removes outdated log files automatically before closing
	  the environment, to conserve disk space.

	* Added signal handler to catch SIGINT, SIGKILL, and SIGTERM
          and exit cleanly.

	* Support for Berkeley DB 3.1 has been removed as a side
	  effect of automatically detecting transactional mode at
	  run-time, since 3.1 lacks DB_JOINENV.

	2005-02-24

	* Transactional datastore autoprobing was completed, it assumes
	  transactional mode if log.NNNNNNNNNN files (where N in {0, 1, ... 9})
	  are found.

	* Add swapped endian support for SQlite3 database, to support reading
	  big endian (SPARC) generated databases on little endian machines
	  (x86) and vice versa. To enable reading databases on machines with
	  differing endian, dump and re-load the databases on a machine with
	  same endian as the machine that created them.

	2005-02-18

	* Added code to auto-detect when a transaction environment
          exists and act accordingly (if none of the enable/disable
          options are specified in the config file or on the command
          line).

	2005-02-10

	* Fixed problem causing SIGSEGV when using options "-p" and
          "-s" with multiple wordlists.

	2005-02-06

	* Code to enable/disable Berkeley DB transactions now uses an
	  OO paradigm (implemented via struct of method addresses).
	* Enabling/disabling transactions is now run-time selectable
          using "--enable-transactions=yes/no" on the command line and
          "enable_transactions=yes/no" in the config file.
	* Use "./configure --enable/disable-transactions" for build
          time specification.

	2005-01-28

	* Add option "--db-transaction=yes/no" for run-time
          enabling/disabling of transactions.

	2005-01-25

	* Removed unused program bogowordfreq.

	2005-01-23

	* Included charset_iconv.c in the build.

0.93.5	2005-01-22

	2005-01-21

	* Revised t.systest to remove vestiges of different scoring
          algorithms. 

	2005-01-17

	* bogotune's '-M' option for converting a message to msg-count
          format now requires a filename option.

	2005-01-15

	* Fixed segfault caused by using non-existant option 'F'
	* Fixed size/count errors in wordhash code used by bogotune.

	2005-01-12
	
	* Fixed an array overrun in bogotune that caused problems when
          using msg-count files.

	* Include saving of Unsures in procmail example in man page.

	* Change Yes/No/Unsure to Spam/Ham/Unsure in FAQ.

	2005-01-09
	
	* bf_util scripts now use name 'BOGOHOME' for their directory
          parameter and check that it really is a directory.

0.93.4	2005-01-09

	2005-01-08

	* Misc fixing of compiler warning messages.
	* Minor refactoring of charset code.

	2005-01-05

	* Fix --enable-transactions logic, was inverted since 2004-12-26
	  (affected release: 0.93.3.1 only, 0.93.3 was fine). Note that
	  giving neither --enable-transactions nor --disable-transactions would
	  still enable transactions.

	2005-01-04

	* bogoutil now reads the configuration files to know the user's
	  db_lk_max_* values.  Reported by Karl O. Pinc.

	* Added '--config-file=name' to bogoutil to name a config file and
	  '-C' option to suppress reading a config file.

	* Berkeley DB Transactional recovery now uses the actual db_lk_max_*
	  values rather than hardcoded 1024.  Reported by Karl O. Pinc.

	2005-01-03

	* Added '--default-charset=name' option to configure script.

	2005-01-02

	* Initial support for Russian character sets (thanks to Evgeny
          Kotsuba).

	2004-12-30

	* Bogolexer man page:  replaced incorrect references to
          'bogofilter' with 'bogolexer'.

	* Added '-O file' to specify bogolexer output file.

	2004-12-28

	* Fixed bogoutil --db-remove-environment DIR, which would just abort.

	* Fixed several memory leaks.

	* Refactored long option code.  All definitions are now in one
	  file (longoptions.c).  Programs bogolexer and bogoutil
	  ignore options that don't apply to them, rather than abort.

	* Long options used in the config file use underscores in
	  their names.  Used on the command line, they have hyphens.
	  This fixes a problem where some options had hyphens and some
	  had underscores.

0.93.3.1 2004-12-26

	* Fixed errors in bogoutil's usage and help messages.

0.93.3	2004-12-24

	* Bogoutil's options for maintaining the database environment
          are all long options with a "db-" prefix.
	* Bogoutil's help message and man page include the new long
          options.

	2004-12-21

	* Early Christmas Gift: Bogofilter now supports SQLite v3.
	  Requires SQLite v3.0.8. See the RELEASE.NOTES.

	2004-12-20

	* Internal cleanup: Move transaction handling back into database space,
	  and let the database backend driver map this into the environment if
	  necessary.

	* Portability fix for BerkeleyDB versions 3.1 and 3.2:
	  log_archive expects a fourth argument.

	2004-12-17

	* lexer_v3 HTML parser fix for urlencoded characters, by Krzysztof
	  Foltman. Speeds up a particular case of malformatted mail.

	2004-12-14

	* bogoutil -C file  now checks if the database file file is intact.
	  (Only implemented for Berkeley DB stores with and without
	  transactions.)

	2004-12-13

	* bf_compact now uses db_archive without -d option and loops on the
	  results instead, calling rm in turn for each file. -d is not
	  supported by older Berkeley DB versions such as 4.0.

	* bogoutil -P directory  now checkpoints the database and removes
	  inactive log files. Note you must save the database and remaining log
	  files, in that order, if you want to be able to recover from
	  corrupted files.

	2004-12-10

	* Limit mime overflow error messages to 1 per email.

	2004-12-09

	* configure now checks if Berkeley DB supports shared environments and
	  suggests workarounds if it doesn't, to aid Fedora Core users.

	2004-12-05

	* New directory doc/programmer/OS2 contains configure.os2
          script contributed by Yuri Dario

0.93.2	2004-12-03

	* New script bf_resize DIR that checks the sizes of all databases in an
	  environment and writes a lock size to DB_CONFIG.

	2004-12-02

	* Accuracy fix: message counts of ignore lists (that can be present)
	  will be ignored and no longer skew the spamicity.

	2004-12-01

	* Allow environment to be group writable, reported by Fletcher Mattox.

	* Accuracy fix: no longer pretend that we had seen an empty message
	  registered when there was no registration. Use ROBX for spamicity.
	  This changes the output format of bogofilter -vvv mode when no spam
	  or no ham messages have been registered previously.

	2004-11-29

	* Support for Berkeley DB 3.0 was explicitly removed again, so that no
	  stable bogofilter version since 0.17.5 will have had support for this
	  version. This eliminates the need for on-disk database format
	  upgrades and keeps things simple.
	  As the unadvertised breaking of BDB 3.0 didn't raise a single
	  complaint and 3.1 has been around since July 2000, this should be
	  safe.

	* Support long options in bogoutil.

	* Add --remove-environment DIR long option to bogoutil, to remove the
	  environment. Only one such option can be used and there is no
	  corresponding short option.

	* Remove useless numeric Berkeley DB error codes from error messages.

	2004-11-26

	* bogofilter processes will refuse to open multiple wordlists in
	  different database environments (directories) when the transactional
	  Berkeley DB datastore is compiled (default). The non-transactional
	  (--disable-transactions), QDBM and TDB datastores are unaffected.

	2004-11-21

	* bogotune now uses getopt() to process the argument list,
	  hence requires a '-n' flag before each non-spam file and a
	  '-s' flag before each spam file.
	* bogotune now accepts '-x flags' to set debug flags.

	2004-11-20

	* Make scoring one huge transaction, rather than one individual
	  transaction per token. This fixes consistency and should improve
	  score speed.

	  WARNING: this seems to have broken bogotune, which, BTW, doesn't
	  return errors to the test suite (t.bulkmode, with message-count
	  files), it reports a bogus "PASS" in spite of database PANICs.

	2004-11-19

	* Restored the old traditional Berkeley DB datastore that cannot be
	  recovered. Its use is discouraged, to use this, type
	  ./configure --disable-transactions

	* Restored the error message when recovery is attempted on QDBM
	  databases, was lost in the DEPOT (hash) ->VILLA (B+tree) switch.

	2004-11-15

	* Added utility script bf_tar.

	2004-11-14

	* Added utility scripts bf_copy and bf_compact.
	* Added BerkeleyDB warning for binary rpm users.

	2004-11-12

	* New entries in bogofilter-faq.html on error messages
	      "Lock table is out of available locks" and
	      "Lock table is out of available object entries"

	* Add %u formatting option to print login or user ID information,
	  SourceForge Feature Request #1056729.

0.93.1	2004-11-11

	* The README.db file now has information on the DB_CONFIG file that
	  can be created and used to configure the Berkeley DB module.

	* Bogofilter's config file now supports setting max lock and
	  object counts for Berkeley DB using options
	      db_lk_max_locks=N
	      db_lk_max_objects=N

	* Bogofilter and bogoutil now allow these options on the
          command line, as:
	      --db_lk_max_locks=N
	      --db_lk_max_objects=N

	* When running database recovery automatically, don't let go of the
	  lockfile, so we can do our actual work subsequently.

	2004-11-10

	* Support for BerkeleyDB 4.3 was added. We'll avoid DB_NOSYNC on
	  DB->close() when DB_LOG_INMEMORY is configured for now.

	* Update manual pages/example outputs and filter recipe examples from
	  "X-Bogosity: yes" to "X-Bogosity: Spam". Fixes Debian bug #280557.
	
	* Bugfix for BerkeleyDB 4.2 support: check the data base flags, not the
	  environment flags, for DB_TXN_NOT_DURABLE, when determining whether
	  DB_NOSYNC is safe on DB->close(). May fix some kinds of database
	  corruption encountered with DB_TXN_NOT_DURABLE.

	* Return DB_VERSION_STRING contents in -V (version) output when
	  compiled against Berkeley DB. Minor change to the output format.

	2004-11-09

	* Unify and clean up the horrible RELEASE.NOTES-*, CHANGES* and NEWS-*
	  mess with lots of duplicated info.
	  There shall only be one RELEASE.NOTES file and one NEWS file.
	  RELEASE.NOTES shall contain important information for updates.
	  NEWS shall contain noteworthy code changes in technical detail.

	  This also removes the confusion that RELEASE.NOTES didn't contain
	  information relevant for 0.93.X.

	2004-11-08

	* Berkeley DB mode: do not create data base in read mode (properly map
	  open_mode to DB_RDONLY flag, store open_mode).

	* Berkeley DB mode: exit with error code if lock file cannot be
	  created. Attempt recovery even if creation of lock file succeeded.

	2004-11-07

	* Fixed negative buffer index in mime.c

0.93.0	2004-11-06 "Broken compatibility" release

	* Fix bogotune's '-D' option.

	2004-11-02

	* Use only reentrant functions in the signal handler that runs
	  periodically to check for crashed processes.
	  Reported by Pavel Kankovsky.

	2004-11-01

	* Add a debugged and enhanced version of Stefan Bellon's QDBM
	  Hash->B+tree converter.

	* Broke QDBM compatibility with 2004-10-30 change, check unsigned
	  characters to match Berkeley DB behavior of bogoutil -d.

	2004-10-31

	* Rearranged flag setting for Berkeley DB data store, so as only to set
	  DB_CHKSUM[_SHA1] when creating the data base.
	  Fixes "checksum error: catastrophic recovery required" and
	  consequential "wordlist.db: page 1: reference count overflow" errors
	  Reported by Torsten Veller.

	* Revised RELEASE.NOTES-0.93 to move QDBM change into "Incompatible
	  Changes" section and to mention BerkeleyDB dump/load for 4.1 and 4.2
	  to add checksums.

	* Inserted new section 2.2 into doc/README.db to mention that it is
	  recommended to dump/load the data base when using BerkeleyDB 4.1 and
	  4.2.

	2004-10-30

	* Converted QDBM from hash files (DEPOT API) to B+ trees
          (Villa API) for better speed (Stefan Bellon).

	2004-10-29

	* Attempting recovery with TDB or QDBM data bases results in an error,
	  so the user does not think it succeeded.

	* Document that recovery only works for Berkeley DB, but not TDB or
	  QDBM.

	2004-10-28

	* Merged Transactional branch (for BerkeleyDB) back into the trunk.
	  Further changes below.

	2004-10-25

	* Added GETTING.STARTED document.

	* Changed default mode from two-state to three-state
	  - with ham_cutoff=0.45 and spam_cutoff=0.99
            The ham_cutoff value is new and spam_cutoff is unchanged.
	  - changed the "Yes/No" tags used in the "X-Bogosity:" line
	    to "Spam/Ham/Unsure"

	NOTE: the next entries appear to be out of order, the pertinent changes
	have been developed on a side branch of bogofilter and have been merged
	for bogofilter 0.93.0.

	2004-09-21

	* bogofilter can now be used with Berkeley DB 3.0 or 3.1 although this
	  is not recommended. You should prefer 4.2 or 4.1 instead.
	  UPDATE: support for 3.0 was later removed on 2004-11-29

	* Documentation on the write cache issue (recoverability of data bases)
	  has been revised.

	2004-09-13

	* Updates doc/README.db with a section on the log file size and
	  pointers to db_checkpoint and db_archive.

	2004-09-03 (txn 2.1)

	* The on-line crash detector would consider its own process a zombie,
	  so all processes that lasted 30 s or longer would abort themselves
	  after that period.

	  This was particularly prominent with BerkeleyDB 4.1 with
	  x86/gcc-assembly mutexes as this combination appears rather slow when
	  facing lock contention, causing t.lock3 failure. BDB 4.1 compiled to
	  use POSIX mutexes (where working) appears to be a lot faster in this
	  situation.

	2004-09-01 (txn 2.0)

	* Hook up crash detection code. Bogofilter is now able to detect
	  when recovery is necessary and should detect stalled data bases
	  within 30 seconds.
	  NOTE: this means if one process crashes all other processes
	  accessing the same data base will abort with an error code.

	  Stalled data bases happen when one process or the system crashes and
	  doesn't have a chance to clear its locks.

	  This code uses ideas from Matthias Andree and Pavel Kankovsky.

	2004-08-23 (txn 1.1)

	* Add -f and -F options to bogoutil (mnemonic: fix) to run data base
	  recovery.

	* Reimplement our own locking so that recovery and data base access
	  don't collide and no two processes try running recovery at the same
	  time.

0.92.8	2004-10-19
	2004-10-25 - Promoted to Stable Release
_______________________________________________
Bogofilter mailing list
Bogofilter at bogofilter.org
http://www.bogofilter.org/mailman/listinfo/bogofilter



More information about the Bogofilter mailing list