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]

[ITP]: Berkley DB v2


Greetings,

Gerrit Haase and I will be submitting various versions of the Berkeley DB for inclusion into the cygwin distribution. We begin with the Berkley DB2, which is the first major revision of the original Berkeley DB. The version of db-2 is 2.7.7, which is the last stable version released for the db-2 line. There are many projects which can use the db-2, one such project being xemacs. Our intent is to provide the standard database api's in the same manner as redhat does, by partitioning the libraries in their own directory based on revision number. Post-install will then create symbolic links to the most current version. Previous versions can be specified by explicitly declaring the path to the particular version's directory or explicitly linking to that version. For example "-L/usr/lib/db2 -ldb" or "-ldb2". The packages for db-2 are based on packaging method #2 and were done originally by Charles Wilson and Harold Hunt. We have volunteered to maintain them for them, as they have other projects to work on. The packages have been split up into the following:

db2 - core db2
libdb2 - db2 runtime
libdb2-devel - db2 development libraries and utilities

Why this was done is best explained by Chuck, who explained it to me as:

"It's a bit confusing, true -- but it came about in an evolutionary process while Harold and I were refining the db2 and db3.3 packages. Perhaps they are the tonsils or appendices of the evolutionary progression; it isn't clear yet.

The idea was this: db2-devel MUST contain docu on the utilities it provides. Also, since the database manipulation programs are version specific (that is, if you have a db2 database, you MUST use db2_checkpoint and db2_archive on it; if all you have is db3.3_checkpoint, then you're up a creek). So, these utility programs must be able to coexist with newer versions -- hence, they are named "db2_foo" (with symlinks db_foo pointing to them) and they are part of the db2-devel package NOT the db package. [otherwise, they'd get replaced when you update 'db']. This way, the unversioned symlinks point to the most-recently-installed utilities, but the versioned utilities are there "forever" -- along with their documentation.

It's just bad luck that once you pull out the runtime libs and put them into fooVER, pull out the utility programs, link libs, and headers and put them into fooVER-devel, all that's left behind in foo is documentation.

If there were, for instance, example programs (NOT versioned utilities) and sample databases, then those would probably go into foo. (because "examples" are really only meaningful for the "current" version. Who
cares about sample databases for the 3-year-old db2 format?)"

Which makes perfect sense. In any event, the packages are now available at:
http://today.clemson.edu/cygwin/release/db/db2/setup.hint
http://today.clemson.edu/cygwin/release/db/db2/db-2.7.7-3.tar.bz2
http://today.clemson.edu/cygwin/release/db/db2/db-2.7.7-3-src.tar.bz2
http://today.clemson.edu/cygwin/release/db/db2/libdb2/setup.hint
http://today.clemson.edu/cygwin/release/db/db2/libdb2/libdb2-2.7.7-3.tar.bz2
http://today.clemson.edu/cygwin/release/db/db2/libdb2-devel/setup.hint
http://today.clemson.edu/cygwin/release/db/db2/libdb2-devel/libdb2-devel-2.7.7-3.tar.bz2

The setup.hints for the packages:

<db2>
category: Database
requires: cygwin libdb2
sdesc: "The Sleepycat Berkeley DB Library v2"
ldesc: "High performance database library supporting B+trees, Hash
trees, transactional capabilities and more. More details are available
at sleepycat.com"

<libdb2>
category: Database
requires: cygwin sdesc: "The Sleepycat Berkeley DB Library v2 - runtime"
ldesc: "High performance database library supporting B+trees, Hash
trees, transactional capabilities and more. More details are available
at sleepycat.com"

<libdb2-devel>
category: Database
requires: cygwin libdb2
sdesc: "The Sleepycat Berkeley DB Library v2 - devel"
ldesc: "High performance database library supporting B+trees, Hash
trees, transactional capabilities and more. More details are available
at sleepycat.com"

I have attached db2.README for your reference.

Cheers,
Nichols


Runtime requirements:
  cygwin-1.3.10 or newer

Build requirements:
  cygwin-1.3.10 or newer

Canonical homepage:
  http://www.sleepycat.com/

Canonical download:
  http://www.sleepycat.com/update/snapshot/db-2.7.7.tar.gz
  
------------------------------------

Build instructions:
  unpack db-2.7.7-X-src.tar.bz2
    if you use setup to install this src package, it will be
     unpacked under /usr/src automatically
  cd /usr/src
  ./db-2.7.7-X.sh all

This will create:
  /usr/src/db-2.7.7-X.tar.bz2
  /usr/src/libdb2-2.7.7-X.tar.bz2
  /usr/src/libdb2-devel-2.7.7-X.tar.bz2
  /usr/src/db-2.7.7-1-src.tar.bz2

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

Files included in libdb2-2.7.7-X.tar.bz2

  /usr/bin/cygdb2.dll

Files included in libdb2-devel-2.7.7-X.tar.bz2
(symlinks are created by the postinstall script)

  /etc/postinstall/libdb2-devel.sh
  /usr/doc/Cygwin/db2-devel-2.7.7.README
  /usr/doc/db2-devel-2.7.7/utility/*
  /usr/bin/db_archive.exe     ---> db2_archive.exe
  /usr/bin/db_checkpoint.exe  ---> db2_checkpoint.exe
  /usr/bin/db_deadlock.exe    ---> db2_deadlock.exe
  /usr/bin/db_dump.exe        ---> db2_dump.exe
  /usr/bin/db_load.exe        ---> db2_load.exe
  /usr/bin/db_printlog.exe    ---> db2_printlog.exe
  /usr/bin/db_recover.exe     ---> db2_recover.exe
  /usr/bin/db_stat.exe        ---> db2_stat.exe
  /usr/bin/db2_archive.exe
  /usr/bin/db2_checkpoint.exe
  /usr/bin/db2_deadlock.exe
  /usr/bin/db2_dump.exe
  /usr/bin/db2_load.exe
  /usr/bin/db2_printlog.exe
  /usr/bin/db2_recover.exe
  /usr/bin/db2_stat.exe
  /usr/include/db.h      ---> db2/db.h
  /usr/include/db2/db.h
  /usr/include/db2/db_185.h
  /usr/include/db2/db_cxx.h
  /usr/lib/libdb.a       ---> libdb2.a
  /usr/lib/libdb2.dll.a  ---> libdb2.dll.a
  /usr/lib/libdb2.a
  /usr/lib/libdb2.dll.a

Files included in db-2.7.7-X.tar.bz2

  /usr/doc/Cygwin/db-2.7.7.README
  /usr/doc/db-2.7.7/LICENSE
  /usr/doc/db-2.7.7/README
  /usr/doc/db-2.7.7/api_c/*
  /usr/doc/db-2.7.7/api_cxx/*
  /usr/doc/db-2.7.7/api_java/*
  /usr/doc/db-2.7.7/build/*
  /usr/doc/db-2.7.7/distrib/*
  /usr/doc/db-2.7.7/images/*
  /usr/doc/db-2.7.7/index.html
  /usr/doc/db-2.7.7/packages/*
  /usr/doc/db-2.7.7/ref/*
  /usr/doc/db-2.7.7/sleepycat/*
  /usr/doc/db-2.7.7/test/*

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

Port Notes:

----- version 2.7.7-3 -----
= Port officially released, now maintained by Nicholas Wourms and
  Gerrit P. Haase.

----- version 2.7.7-2 -----
= Static and import libraries renamed to "libdb2*" so that they
  can coexist with the libraries from db-3.x.
= include files installed into /usr/include/db2/ for the same reason.
= Headers and static/import libraries now have their own package:
  libdb2-devel.
= Utility programs were renamed from "db_*.exe" to "db2_*.exe"
  so they can coexist with the ones from version 3.
= A postinstall script creates symlinks for the "original" 
  names/locations, so that "-ldb" and "#include <db.h>"
  still work.

These changes were based on the packaging structure of the
Mandrake and Red Hat RPMS for these packages.  (They've figured
out the problems and found a solution; let's copy theirs...)

----- version 2.7.7-1 -----
Initial release.


Cygwin port maintained by: Nicholas Wourms <nwourms@netscape.net> &
               Gerrit P. Haase <gp@familiehaase.de>

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