4.7.3: (Python 2.6 release. First release with Python 3.0 support)
* "private" is a keyword in C++. (Duncan Grisby)
* setup.py should install "bsddb.h". (Duncan Grisby)
* "DB_remove" memory corruption & crash. (Duncan Grisby)
* Under Python 3.0, you can't use string keys/values, but
bytes ones. Print the right error message.
* "DB.has_key()" allowed transactions as a positional parameter.
We allow, now, transactions as a keyword parameter also, as
documented.
* Correct "DB.associate()" parameter order in the documentation.
* "DB.append()" recognizes "txn" both as a positional and a
keyword parameter.
* Small fix in "dbshelve" for compatibility with Python 3.0.
* A lot of changes in "dbtables" for compatibility with Python 3.0.
* Huge work making the testsuite compatible with Python 3.0.
* In some cases the C module returned Unicode strings under
Python 3.0. It should return "bytes", ALWAYS. Solved.
* Remove a dict.has_key() use to silence a warning raised under
Python2.6 -3 parameter. Python SVN r65391, Brett Cannon.
* Solve some memory leaks - Neal Norwitz
* If DBEnv creation fails, library can crash. (Victor Stinner)
* Raising exceptions while doing a garbage collection
will kill the interpreter. (Victor Stinner)
* Crash in "DB.verify()". Noted by solsTiCe d'Hiver.
Changes:
(from http://www.jcea.es/programacion/pybsddb.htm, some things are
hyperlinks)
bsddb3-4.7.2: RELEASED. (20080807). Testsuite verified in Unix 32 bit
Python 2.3-2.6b2 and Berkeley DB 4.0-4.7.
If you are going to use replication (Replication Manager or Base
Replication), you should use Berkeley DB 4.6 or up. Previous Berkeley
DB versions are unsupported, when using these functionalities.
Available in PYPI. Changes:
* Solved a race condition in Replication Manager testcode.
* Changing any python code, automatically regenerates the Python3
version. The master version is Python2.
* Compatibility with Python 3.0.
* Solved a crash when DB handle creation fails. STINNER Victor -
http://bugs.python.org/issue3307
* Improve internal error checking, as suggested by Neal Norwitz
when reviewing commit 63207 in Python SVN.
* Routines without parameters should be defined so, as suggested
by Neal Norwitz when reviewing commit 63207 in Python SVN. The
resulting code is (marginally) faster, smaller and clearer.
* Routines with a simple object parameter are defines so, as
suggested by Neal Norwitz when reviewing commit 63207 in Python
SVN. The resulting code is (marginally) faster, smaller and clearer.
* Routines taking objects as arguments can parse them better, as
suggested by Neal Norwitz when reviewing commit 63207 in Python
SVN. The resulting code is (marginally) faster, smaller and clearer.
* Improve testsuite behaviour under MS Windows.
* Use ABC (Abstract Base Classes) under Python 2.6 and 3.0.
* Support for "relative imports".
* Replication testcode behaves better in heavily loaded machines.
bsddb3-4.7.1: RELEASED. (20080702). Testsuite verified in Unix 32 bit
Python 2.3-2.6b1 and Berkeley DB 4.0-4.7.
If you are going to use replication (Replication Manager or Base
Replication), you should use Berkeley DB 4.6 or up. Previous Berkeley
DB versions are unsupported, when using these functionalities.
Available in PYPI. Changes:
* Workaround a problem with un-initialized threads with the
replication callback.
* Export "DBRepUnavailError" exception.
* Get rid of Berkeley DB 3.3 support. Rationale:
http://mailman.argo.es/pipermail/pybsddb/2008-March/000019.html
* Better integration between Python test framework and bsddb3.
* Improved Python 3.0 support in the C code.
* Iteration over the database, using the legacy interface, now
raises a RuntimeError if the database changes while iterating.
http://bugs.python.org/issue2669 - gregory.p.smith
* Create "set_private()" and "get_private()" methods for DB and
DBEnv objects, to allow applications to link an arbitrary object to a
DB/DBEnv. Useful for callbacks.
* Support some more base replication calls: "DB_ENV->rep_start",
"DB_ENV->rep_sync", "DB_ENV->rep_set_config",
"DB_ENV->rep_get_config", "DB_ENV->rep_set_limit",
"DB_ENV->rep_get_limit", "DB_ENV->rep_set_request",
"DB_ENV->rep_get_request".
* Support more base replication calls: "DB_ENV->rep_elect",
"DB_ENV->rep_set_transport" and "DB_ENV->rep_process_message". Support
also related flags.
bsddb3-4.7.0: RELEASED. (20080522). Testsuite verified in Unix 32 bit
Python 2.3-2.6a3 and Berkeley DB 4.0-4.7.
bsddb3 4.7.0 compiles against Berkeley DB 4.0-4.7. If you are
upgrading your Berkeley DB environment at the same time, be sure to
read the BDB upgrade notes carefully.
From this release, the only supported Berkeley DB versions are 4.x.
Support for Berkeley DB 3.3 is deprecated and will be deleted. Mailing
list thread discussing this.
Available in PYPI. Changes:
* Support for Berkeley DB 4.7.
* Support "DB_ENV->log_set_config", and related flags.
* Complete the Berkeley DB Replication Manager support:
"DB_ENV->repmgr_site_list" and related flags. "DB_ENV->repmgr_stat",
"DB_ENV->repmgr_stat_print" and related flags.
* Solved an old crash when building with debug python. (Neal Norwitz)
* Extend the testsuite driver to check also against Python 2.6 (a3).
* Support for RPC client service.
bsddb3-4.6.5: The work on this release is transfered to 4.7.0, since
Oracle just published Berkeley DB 4.7.25. (20080521)
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
changes: many fixes, improvements and API extensions, see
http://www.jcea.es/programacion/pybsddb.htm
pkgsrc note: 'egg' (setuptools) support was added upstream, but
disabled in pkgsrc because it leads to nondeterministic results
depending on OS version and installed pkgs
4.5.0:
* Adds supports for compiling and linking with BerkeleyDB 4.5
* Python Bug #1599782: Fix segfault on bsddb.db.DB().type() due to
releasing the GIL when it shouldn't. (nnorowitz)
* Fixes a bug with bsddb.DB.stat where the flags and txn keyword
arguments are transposed.
* change test cases to use tempfile.gettempdir()
4.4.5:
* pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
methods now allow their database parameter to be None as the
sleepycat API allows.
4.4.4:
* fix DBCursor.pget() bug with keyword argument names when no data= is
supplied [SF pybsddb bug #1477863]
* add support for DBSequence objects [patch #1466734]
* support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
* support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
* add DB_ARCH_REMOVE flag and fix DBEnv.log_archive() to accept it without
potentially following an uninitialized pointer.
4.4.3:
* fix DBEnv.set_tx_timestamp to not crash on Win64 platforms (thomas.wouters)
* tons of memory leak fixes all over the code (thomas.wouters)
* fixes ability to unpickle DBError (and children) exceptions
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
changes:
-Changes the interface to the recently added set_bt_compare callback to
only take two arguments like a normal comparison function.
-Fixes a crash in DB.associate when it wanted to raise an exception.
cvs: ----------------------------------------------------------------------
python*-pth packages into meta-packages which will install the non-pth
packages. Bump PKGREVISIONs on the non-pth versions to propagate the
thread change, but leave the *-pth versions untouched to not affect
existing installations.
Sync all PYTHON_VERSIONS_AFFECTED lines in package Makefiles.
Note: This fix the build with latest db4 package.
Package changes:
Remove references to LOCALBASE.
Add test target support.
Changes since last packaged version (4.2.4):
4.3.0:
* Added support for building properly against BerkeleyDB 4.3.21.
* fixed bug introduced in 4.2.8 that prevent the module from
compiling against BerkeleyDB 3.2 (which doesn't support pget).
* setup.py was cleaned up a bit to search for and find the latest
version of the correct combo of db.h and libdb.
4.2.9:
* DB keys() values() and items() methods were ignoring their optional
txn parameter. This would lead to deadlocks in applications
needing those to be transaction protected.
4.2.8:
* Adds support for DB and DBCursor pget methods. Based on a patch
submitted to the mailing list by Ian Ward <ian@arevco.ca>
* Added weakref support to all bsddb.db objects.
* Make DBTxn objects automatically call abort() in their destructor if
not yet finalized and raise a RuntimeWarning to that effect.
4.2.7:
* fix an error with the legacy interface relying on the DB_TRUNCATE
flag that changed behaviour to not work in a locking environment
with BerkeleyDB 4.2.52. [SF bug id 897820]
* fixed memory leaks in DB.get, DBC.set_range and potentially several
other methods that would occur primarily when using queue | recno
format databases with integer keys. [SF patch id 967763]
4.2.6:
* the DB.has_key method was not honoring its txn parameter to perform
its lookup within the specified (optional) transaction. fixed.
[SF bug id 914019]
4.2.5:
* Fixed a bug in the compatibility interface set_location() method
where it would not properly search to the next nearest key when
used on BTree databases. [SF bug id 788421]
* Fixed a bug in the compatibility interface set_location() method
where it could crash when looking up keys in a hash or recno
format database due to an incorrect free().
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
be imported by a non-thread aware python without it core dumping.
Hence restrict accepted python packages to threaded ones if native
threads are supported by the platform.
Bump PKGREVISION for that.
Provide a buildlink3.mk file mostly to help bl3ified packages to pick up
the right python packages with respect to this threading issue.
Changes:
* changed DB and DBEnv set_get_returns_none() default from 1 to 2.
* cleaned up compatibility iterator interface.
* the legacy compatibility dict-like interface now support iterators
and generators and allows multithreaded access to the database.
* fixed a tuple memory leak when raising "object has been closed"
exceptions for DB, DBEnv and DBCursor objects. I doubt much
previous code triggered this.
* use of a closed DBCursor now raises a DBCursorClosedError exception
subclass of DBError rather than a boring old DBError.
* added DBCursor.get_current_size() method to return the length in bytes
of the value pointed to by the cursor without reading the actual data.
* Standalone pybsddb builds now use a _pybsddb dynamic/shared library
rather than _bsddb. This allows for pybsddb to be built, installed
and used on python >= 2.3 which includes an older version of pybsddb
as its bsddb library.
* Can now compile and link with BerkeleyDB 4.2.x (when its released).
* the legacy bsddb module supports the iterator interface on python 2.3.
* Support the DBEnv.set_shm_key() method.
* Fixed setup.py include/{db4,db3} header file searching (SF bug #789740).
Changes sinec 4.1.1:
* Extended DB & DBEnv set_get_returns_none functionality to take a
"level" instead of a boolean flag. The boolean 0 and 1 values still
have the same effect. A value of 2 extends the "return None instead
of raising an exception" behaviour to the DBCursor set methods.
This will become the default behaviour in pybsddb 4.2.
* Updated documentation for set_get_returns_none. Regenerated the
stale html docs from the text documentation.
* Fixed a typo in DBCursor.join_item method that made it crash instead
of returning a value. Obviously nobody uses it. Wrote a test case
for join and join_item.
* Added the dbobj wrapper for DBEnv set_timeout method.
* Updated README.txt
* Added the DBEnv.set_timeout method.
* code cleanup to use python 2.x features in .py files
* the standalone pybsddb distribution will install a module
called bsddb3 while the module included with python >= 2.3
will be known as bsddb.
* Shared all .py and .c source with the Python project.
* Fixed DBTxn objects to raise an exception if they are used after
the underlying DB_TXN handle becomes invalid. (rather than
potentially causing a segfault)
* Fixed module to work when compiled against a python without thread
support.
* Do not attempt to double-close DB cursor's whos underlying DB
has already been closed (fixes a segfault).
* Close DB objects when DB.open fails to prevent an exception about
databases still being open when calling DBEnv.close.
Inspired by FreeBSD "ports".
Fix the PLISTs accordingly.
Also, while at it, remove now obsolete compileall.py calls in post-install
targets and insure that extension.mk is in included before builinlinks of
other Python modules.
Discussed with/ok'ed by drochner@.
This NetBSD package includes the patches from bug reports #667340,
#667343, and #669533, which are in the SourceForge pybsddb3 CVS but
not yet in the 4.1.1 release; hence PKGREVISION=1.