This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ready for test/1.5.0] gdbm-1.8.3-4, libgdbm4


Okay, thanks to Pierre's contributions, we may have a solution for
gdbm...

I've just posted an *official* new release of gdbm to the main list.  I
reverted my entire system to 1.3.22 status (no test packages at all), and
rebuilt gdbm with Pierre's programs.  That's the new, curr: release
(1.8.3-3)

Then, I moved forward again to all-testing-1.5.0, and put this package
together (1.8.3-4).

I bumped the DLL version number, so the two DLLs (cyggdbm-3.dll and
cyggdbm-4.dll) can both coexist.  So un-recompiled programs that rely on
gdbm (like cvs!) will continue to work with the -3 dll and all will be
well.

I also included copies, precompiled, of Pierre's programs.  So,
gdbm-1.8.3-4 contains:

  dumpgdbm-1.3.22.exe
  loadgdbm-1.3.22.exe
    statically linked against gdbm (-3 version) on a 1.3.22 system

  loadgdbm-1.5.0.exe
  dumpgdbm-1.5.0.exe
    statically linked agaisnt gdbm (-4 version) on a 1.5.0 system

  loadgdbm.exe
  dumpgdbm.exe
    same as the -1.5.0 versions.

There's also a script, as suggested by Pierre, convert-gdbm:

#!/bin/sh
dumpgdbm-1.3.22 $1 | loadgdbm-1.5.0 $1.cygnew && \
  mv $1 $1.bak && mv $1.cygnew $1

It seems to work fine, and converts the databases so that the new gdbm
can read them.  However, the conversion tools are not idempotent.  Take a
database generated on a cygwin-1.5.0/gdbm-1.8.3-4 system (use testgdbm or
something).

then,
  dumpgdbm-1.5.0 my.db | loadgdbm-1.5.0 new.db
  diff my.db new.db
They will be different, because the ORDER in which the records are
written is not necessarily the same.  But all of the records are there,
so...

BTW, assuming this works, this little gotcha needs to be in the
cygwin-1.5.0 mega-announcement, when we throw the switch and make all of
this "current".

---------------------
Note that database files generated by gdbm under cygwin-1.3.22 are NOT
compatible with gdbm on cygwin-1.5.0 (nor vice versa).  To convert, you
should use the 'convert-gdbm' script on the appropriate database files
(after backing them up, of course).  Now, you may not be aware of any
gdbm databases on your system.  At present, the known users of gdbm are

    cvs : convert  ${CVSROOT}/CVSROOT/modules.db and val-tags.db
    exim
    some perl applications
---------------------

Anyway, please test, and give feedback.

Thanks.
--
  Charles Wilson
  cygwin at removespam cwilson dot fastmail dot fm


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]