Files
ports/databases/lmdb/Makefile
T
Xin LI 5f9d389f29 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
release, pinned to the 0.x branch with PORTSCOUT=limit:^0. and mutually
conflicting with databases/lmdb, which retains 1.0. The two packages
cannot be installed simultaneously, but having lmdb0 available means:

* Ports known to require the 0.9 ABI can declare an explicit dependency
  on databases/lmdb0 until they are validated against 1.0.
* Users with existing databases in the 0.9 format can still access the
  mdb_dump and mdb_load utilities to migrate data before upgrading.
* The package conflict prevents accidental mixing.

All 50 direct dependents of databases/lmdb are redirected to
databases/lmdb0 for now with a PORTREVISION bump, effectively restoring
the tree to the state prior to the LMDB 1.0 update. Once all dependent
ports are validated against LMDB 1.0, they will be moved back to
databases/lmdb and databases/lmdb0 will be removed.

PR:             ports/296530
2026-07-06 08:57:32 -07:00

40 lines
972 B
Makefile

PORTNAME= lmdb
PORTVERSION= 1.0.0
DISTVERSIONPREFIX= ${PORTNAME:tu}_
PORTEPOCH= 1
CATEGORIES= databases
MAINTAINER= delphij@FreeBSD.org
COMMENT= OpenLDAP Lightning Memory-Mapped Database
WWW= https://symas.com/lmdb/
LICENSE= OPENLDAP
LICENSE_NAME= OpenLDAP Public License
LICENSE_FILE= ${WRKSRC}/LICENSE
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
CONFLICTS_INSTALL= lmdb0 # include/lmdb.h bin/mdb_stat
WRKSRC_SUBDIR= libraries/liblmdb
MAKE_ARGS+= CC="${CC}"
MAKE_ARGS+= prefix="${PREFIX}" INSTALL_PROGRAM="${INSTALL_PROGRAM}"
MAKE_ARGS+= INSTALL_LIB="${INSTALL_LIB}" INSTALL_DATA="${INSTALL_DATA}" INSTALL_MAN="${INSTALL_MAN}"
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= openldap
GH_PROJECT= openldap
SUB_FILES+= lmdb.pc
SUB_LIST+= PORTVERSION=${PORTVERSION}
post-install:
${INSTALL_DATA} ${WRKDIR}/lmdb.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig
do-test:
${MKDIR} ${WRKSRC}/testdb
cd ${WRKSRC} && ./mtest*
.include <bsd.port.mk>