Hello, We are pleased to announce the release of GNU dbm 1.21. This new release introduces crash tolerance to gdbm databases.
I would like to express my gratitude to Terence Kelly, without whom this release would not be possible. GNU dbm is a library of database functions that use extensible hashing and work similar to the standard UNIX dbm. These routines are provided to a programmer needing to create and manipulate a hashed database. Here are the compressed sources and a GPG detached signature[*]: https://ftp.gnu.org/gnu/gdbm/gdbm-1.21.tar.gz https://ftp.gnu.org/gnu/gdbm/gdbm-1.21.tar.gz.sig Use a mirror for higher download bandwidth: https://ftpmirror.gnu.org/gdbm/gdbm-1.21.tar.gz https://ftpmirror.gnu.org/gdbm/gdbm-1.21.tar.gz.sig Here are the MD5 and SHA1 checksums: a285c6e2dfed78668664c0555a7d202b gdbm-1.21.tar.gz f6eec6113f04a4b5fd2c1cfead10e7d65c8f3d89 gdbm-1.21.tar.gz New in this release: * Crash tolerance By default it is possible for an abrupt crash (e.g., power failure, OS kernel panic, or application process crash) to corrupt the gdbm database file. A new mechanism, currently available on GNU/Linux systems only, enables applications to recover the database state corresponding to the most recent successful gdbm_sync() call before the crash. See the chapter 17 "Crash Tolerance" in the GDBM manual. * New database file format: numsync The new "numsync" database format is designed to better support crash tolerance. To create a database in numsync format, the gdbm_open (or gdbm_fd_open) function must be given the GDBM_NEWDB|GDBM_NUMSYNC flags. The GDBM_NUMSYNC flag also takes effect when used together with GDBM_WRCREAT, provided that the new file is created. New function gdbm_convert() is provided for converting the databases from standard GDBM format to numsync and vice versa. The gdbmtool tool can also be used for converting databases between these two formats. * Changes in gdbmtool ** Fix string output in non-ASCII encodings Printable multi-byte sequences are correctly represented on output. This also fixes octal representation of unprintable characters. ** The filename variable This variable supplies the name of database file for use in "open" command, if the latter is called without arguments. If "open" is called with the file name argument, the "filename" variable is initialized to this value. ** The fd variable If set, its value must be an open file descriptor referring to a GDBM database file. The "open" command will use gdbm_fd_open function to use this file. Upon closing the database, this descriptor will be closed and the variable will be unset. The file descriptor to use can also be supplied using the -d (--db-descriptor) command line option. ** The format variable Defines the format in which new databases will be created. Allowed values are: "standard" (default) and "numsync". ** New commands: upgrade and downgrade The "upgrade" command converts current database to the numsync (extended) format. The "downgrade" command converts current database to the standard format. ** New command: snapshot The "snapshot" command is part of the new crash tolerance support. Given the names of two snapshot files, it analyzes them and selects the one to be used for database recovery. See the GDBM manual, section 17.5 "Manual crash recovery" for a detailed discussion of its use. Best regards, Sergey -- If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.