Where is Berkeley DB on your system? Can you live without DB 1.85?

Kragen Sitaker kragen at pobox.com
Mon Jun 10 03:38:10 EDT 2002


"David LeBlanc" <whisper at oz.net> writes:
> AFAIK, this is true for any version of Sleepycat > 1.85, and has been true
> for years. Including a later version of Sleepycat BSDDB imposes a
> constraint, not on Python itself, which is free, but on someone who would
> like to distribute Python along with their _commercial_for_sale_ app (think
> Py2Exe for example).

I don't think anybody has proposed including a modern version of BSD
DB in Python, only dropping support for an old version, which is also
not included in Python.

"commercial for-sale" is misleading.  The current license of BSD DB
allows distribution in commercial for-sale apps with no further hassle
unless said commercial for-sale apps are, approximately, free
software, and it forbids inclusion in noncommercial not-for-sale apps
unless said not-for-sale apps are, approximately, free software.

> If you want to change Python's market dynamics and require _all_ Python apps
> to be free and open source, then you can include any version of Sleepycat
> BSDDB you like. I doubt it will have a positive impact on Python's future
> prospects. It didn't work for Perl in it's early years and that's why the
> Artistic License was change to allow "for fee" distributions that included
> Perl.

I thought the AL allowed this from the beginning.  Certainly
Sleepycat's license doesn't forbid it.

In any case, your irresponsible, alarmist accusation is a red herring,
as you will no doubt agree once you understand the situation properly.
Dropping support for db 1.85 will not require all Python apps to be
free software or open source; it won't even require all distributions
of Python to be free software or open source.  It will only require
distributions of Python with bsddb support to either link to an
external BSD DB library (like the one included with glibc) or be free
software.

If your application doesn't use BSD DB, it won't be affected by this,
even if you ship binary distributions of it, made with e.g. McMillan
Installer.  If your application uses BSD DB and you are shipping db
1.85, you are screwing your users, probably without knowing it (unless
you know enough about db 1.85's bugs to work around them.).  This
change will allow you to continue to screw your users in the same way,
but you will be required to know that was what you were doing.

At present, there are irresponsible vendors shipping proprietary
distributions of Python including BSD DB 1.85.  This course of action
subjects the entire Python community to pressure to drop or deprecate
support for BSD DB, because BSD DB 1.85 is badly broken.  Those of us
who use sane versions of BSD DB are hurt by this, because BSD DB is by
far the most featureful, performant, and reliable of the other
dbm-style databases Python supports.

I assume these vendors are being irresponsible because they don't know
they are imperiling their users' data by using this buggy old
software.  This change will let them know that the problem exists, and
they can either stop shipping proprietary distributions, stop
supporting BSD DB, or start maintaining BSD DB 1.x.

If it's not clear, I'm in favor of this change.  It helps everyone
everywhere.




More information about the Python-list mailing list