LMDB is an ultra-fast, ultra-compact key-value data
store developed by Symas for the OpenLDAP Project.
It uses memory-mapped files, so it has the read
performance of a pure in-memory database while still
offering the persistence of standard disk-based
databases, and is only limited to the size of the
virtual address space, (it is not limited to the
size of physical RAM). LMDB was originally called
MDB, but was renamed to avoid confusion with other
software associated with the name MDB.
databases/lmdb: allow to install both 0.x and 1.x together
LMDB 1.0 and the legacy 0.9 ABI cannot be mixed, the datanase format are
incompatibles as well.
Rename or relocate everything databases/lmdb0 installs so that it no
longer overlaps with databases/lmdb:
- the utilities are now mdb_copy0, mdb_dump0, mdb_load0 and mdb_stat0
- the header is include/lmdb0/lmdb.h
- the linker name is liblmdb0.so, the shared object keeps its ABI name
liblmdb.so.0 so already linked programs are unaffected
- the pkg-config file is lmdb0.pc
A compatibility prefix holding the previous layout is also installed
under ${PREFIX}/lmdb0/ (include/, lib/ and libdata/pkgconfig/) so that
build systems which expect to find lmdb.h and -llmdb relative to a
single directory only need a path change.
Now all ports should migrate to lmdb 1.X and use the lmdb 0.9 port to ease
in the migration path, lmdb, the lmdb 0.x is supposed to get removed at
some point.
Approved by: mat (portmgr)
Reviewed by: mat
Differential Revision: https://reviews.freebsd.org/D60741
databases/lmdb0: update to 0.9.36
This is a bugfix release.
Notable changes since 0.9.35:
- ITS#7772 - limit sub-page growth when re-adding existing data
- ITS#8335 - more input validation for put(MDB_MULTIPLE)
- ITS#9388 - fix mdb_stat page counts for dupsort DBs
- ITS#10054 - fix write of 2GB values
- ITS#10522 - reject 0-length values in DUPSORT DBs
databases/lmdb0: Add port for LMDB 0.9.x legacy ABI
LMDB 1.0 introduced an incompatible on-disk format change and subtle
API breakage: applications that compiled cleanly against 1.0 headers
could fail silently at run time. Known affected ports include dns/knot3,
mail/bogofilter, and mail/postfix; the postfix issue has been confirmed
upstream. Linux distributions such as Arch Linux have observed the same
breakage. Samba can also be affected in certain configurations.
Because the regression is not detectable in an -exp build run -- the
postfix failure only manifests at run time, and bogofilter was caught
only because post-build self-tests happen to exercise this path -- we
cannot rely on package builds to validate the 1.0 upgrade.
This commit introduces databases/lmdb0 as a holding port for the 0.9.35
(Only the first 15 lines of the commit message are shown above )