It never fails (bsddb retirement in 2.3)

Nick Vargish nav at adams.patriot.net
Fri May 2 09:14:36 EDT 2003


"Martin v. Löwis" <martin at v.loewis.de> writes:

Paul Rubin wrote:

> > What the heck is going on with this?  Please stop breaking things.

And Martin v. Lowis (umlaut over the o) replies:
 
> Nothing breaks. Don't spread FUD.

It _does_ break. Paul is not spreading FUD at all.

With 2.2 I can build Python out of the box without messing with
Modules/Setup. My code can "import bsddb" and it will use the system's
bsddb library, which came with the system as shipped by
DEC/Compaq/HP/whoever's-selling-the-damn-things this week. The bsd db
library is a staple of Unix distributions. People who use it are aware
of its limitations, but know that it is available across many
implementations of Unix.

With 2.3 out of the box, my programs break.

Paul says:

> > So, please don't drop support for deprecated versions of bsddb, AND
> > don't require anyone to "tickle appropriate lines in Modules/Setup" to
> > make all the versions useable (at least by changing an import
> > statement in a script).

Thank you Paul. After sleeping on this, I think this is the only
really helpful solution.

Otherwise, I get to do this:

Globals.usebsddb = True
try:
    import bsddb
except:
    try:
        import bsddb185 as bsddb
    except:
        try:
            import bsddb3 as bsddb
        except:
            Globals.usebsddb = False

I don't even know if that would work, and it hurts my eyes and offends
my sensibilities.

Martin replies to Paul:

> That wouldn't help at all. Most likely, building bsddb185
> will pick up some Sleepycat installation, giving you just the same
> binary database format that you get when building PyBSDDB.

What Sleepycat installation? OSF1/Dec Unix does not come with some
Sleepycat installation. I can't rely on the systems people here to
install it consistently on the four or five (or more) systems that
would need it.

So please, whoever is responsible for this, consider reinstating
proper support for the "legacy bsddb" module.

Those who want to use non-standard bsddb implementations can tweak
Modules/Setup or use bsddb3 for their import statement.

Nick

-- 
#include<stdio.h> /* SigMask 0.3 (sig.c) 19990429 PUBLIC DOMAIN "Compile Me" */
int main(c,v)char *v;{return !c?putchar(*v-1)&&main(0,v+ /* Tweaks welcomed. */
1):main(0,"Ojdl!Wbshjti!=obwAqbusjpu/ofu?\v\1");}  /* build: cc -o sig sig.c */




More information about the Python-list mailing list