delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2015/08/09/14:09:19

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-Id: <201508091808.t79I8lsi026465@delorie.com>
Date: Sun, 09 Aug 2015 17:53:49 +0200
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: Release 2 of the DJGPP port of GNU dbm 1.11 uploaded (DJGPP
2.05 only).
Reply-To: djgpp AT delorie DOT com

This is a port of GNU dbm 1.11 to MSDOS/DJGPP.


   GNU dbm (gdbm) is a set of database routines that use extendible hashing
   and works similar to the standard UNIX dbm routines.  The library provides
   also an optional compatibility layer for UNIX-like dbm and ndbm calls.
   These routines are provided to a programmer needing to create and manipulate
   a hashed database.  gdbm is NOT a complete database package for an end user.


   DJGPP specific changes.
   =======================

   The port version compiled with DJGPP 2.05 will offer file locking support
   if the used OS provides the locking capability.  All other changes concern
   DOS specific issues like the reading and writing in binary mode, the handling
   of mixed slashes and backslashes in paths, the closing of destination and
   source files before renaming them and the correct initialization of the hash
   table directory for a new data base files.  This initialization is very
   dependent on the st_blksize value returned by fstat().  This value must
   always be an integral multiple of 512 or the initialization will fail and
   no new data base file will be created.

   The dbm and ndbm specific functions have been moved into a separate library.
   This means that there are two libraries:
     - libgdbm.a containing all gdbm specific functions and
     - libgdbm_compat.a containing all dbm specific functions

   If you need to compile an application using the old unix dbm functions you
   will have to put the compat lib before the gdbm lib like this:
     gcc application.c -lgdbm_compat -lgdbm

   Now you will have access to the dbm compatibility functions.  Please note,
   that these compatibility functions are mapped to the equivalent gdbm functions
   so you must link both libraries in the order shown in the example above.

   The port does neither support mmap() for I/O operations nor the close-on-exec
   flag in gdbm_open (GDBM_CLOEXEC).

   Apart from the standard config.bat options like nls, cache and no-dep, the
   following option flags can be selected to configure and build the sources:

     compat or no-compat, if not specified, "compat" is the default.
       Build and install libgdbm_compat, a compatibility layer which provides
       UNIX-like dbm and ndbm interfaces.

     export or no-export, if not specified, "export" is the default.
       Build and install gdbmexport with the specified gdbm 1.8 library.
       If this option is specified, the configure script will get
         --with-gdbm183-library=-lgdbm
       passed as option and GDBM183_LIBDIR and GDBM183_INCLUDEDIR will be
       set to /dev/env/DJDIR/lib and /dev/env/DJDIR/include repectively.
       This means that you must have gdbm183b installed before you can
       build gdbmexport.exe.  gdbmexport.exe will be linked with the
       library of gdbm183b.


   The port does not offer NLS support because the required libraries have
   not been ported to DJGPP 2.05.

   This is the first port that has been compiled using djdev205.  Starting with
   this port version I will no longer support neither djdev204 nor djdev203.

   The port has been tested by using it.  I have used them only on WinXP.
   It has worked flawlessly.  I do not konw if this will ever be the case on
   FreeDOS.  I have never used/tested them in that environment.

   The port has been configured and compiled on WinXP SP3.  There is no
   guarantee that this may be possible with any other DOS-like OS.  Due
   to the use of long file names it will not be possible to configure and
   compile without LFN support.  The port has been compiled using gcc510
   and bnu2251br.

   As usual, all djgpp specific files (diffs, README files, etc.) are stored in
   the /djgpp directory.  The sources have been configured to be build in the
   /_build.205 directory.  If for some reason it does not work for you, delete
   it contents and configure from scratch again.

   For further information about GNU dbm please read the info docs and NEWS file.



   This is an verbatim extract of the NEWS file:

-------------------------------------------------------------------------------
Version 1.11, 2013-12-25

* Improved dump format.

A new dump format is implemented, which encodes all data in base64 and
stores not only key/data pairs, but also the original database file
metadata, such as file name, mode and ownership.  Files in this format
can be sent without additional encapsulation over transmission
channels that normally allow only ASCII data.  Dumps in this format
allow for restoring an exact copy of the database, including file
ownership and privileges.

* New function: gdbm_count

     int gdbm_count (GDBM_FILE *file, gdbm_count *count);

Counts records in `file' and stores the result in the memory location
pointed to by `count'.

* New utilities: gdbm_dump and gdbm_load.

Gdbm_dump creates a plain-text dump of the GDBM database.  This dump
can be used to create an exact copy of the database afterward.

The gdbm_load performs the reverse: given the dump file, it creates a
GDBM database.  Apart from native GDBM dump formats, it also understands
the format generated by Berkeley DB db_dump utility.  Thus, an easy
way to convert a Berkeley DB database to GDBM is:

    db_dump input.db | gdbm_load output.db

* gdbmtool

The gdbmtool utility allows you to examine, modify or create GDBM
databases.  It provides an easy-to-use interactive shell and can
be used for scripting.  One of the unique features of gdbmtool is that
it allows to define datum structures for key and content parts, similarly
to the C "struct" declarations, and to input and display such
structured data.


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




   The port consists of the usual three packages produced using djdev205
   that can be downloaded from ftp.delorie.com and mirrors as (time stamp 2015-08-09):

     GNU dbm 1.11 binaries, headers, libraries, info and man
     format documentation:
     ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gdbm111b.zip

     GNU dbm 1.11 dvi, html, pdf and ps format documentation:
     ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gdbm111d.zip

     GNU dbm 1.11 source:
     ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gdbm111s.zip


   Send GNU dbm specific bug reports to <bug-gdbm AT gnu DOT org>.
   Send suggestions and bug reports concerning the DJGPP port to
   comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.


Enjoy.

         Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019