Skip to content

Commit 5f9d389

Browse files
committed
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
1 parent fcddf87 commit 5f9d389

71 files changed

Lines changed: 293 additions & 105 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

archivers/urbackup-server/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
PORTNAME= urbackup-server
22
DISTVERSION= 2.5.37
3+
PORTREVISION= 1
34
CATEGORIES= archivers
45
MASTER_SITES= https://hndl.urbackup.org/Server/${DISTVERSION}/
56

@@ -12,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/server-license.txt
1213

1314
LIB_DEPENDS= libcryptopp.so:security/cryptopp \
1415
libcurl.so:ftp/curl \
15-
liblmdb.so:databases/lmdb \
16+
liblmdb.so:databases/lmdb0 \
1617
libzstd.so:archivers/zstd
1718

1819
USES= autoreconf compiler:c++11-lang dos2unix fakeroot fuse libtool \

biology/ncbi-blast+/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
PORTNAME= ncbi-blast+
22
DISTVERSION= 2.17.0
3+
PORTREVISION= 1
34
CATEGORIES= biology perl5 python
45
MASTER_SITES= https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ \
56
https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${PORTVERSION}/
@@ -18,7 +19,7 @@ ONLY_FOR_ARCHS_REASON= deflate.c:149:2: error: "Only 64-bit Intel and ARM archit
1819

1920
BUILD_DEPENDS= grpc>0:devel/grpc
2021
LIB_DEPENDS= libdw.so:devel/elfutils \
21-
liblmdb.so:databases/lmdb \
22+
liblmdb.so:databases/lmdb0 \
2223
liblzo2.so:archivers/lzo2 \
2324
libnghttp2.so:www/libnghttp2 \
2425
libpcre2-8.so:devel/pcre2 \

biology/ncbi-cxx-toolkit/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
PORTNAME= ncbi-cxx-toolkit
22
DISTVERSIONPREFIX= release/
33
DISTVERSION= 30.4.0
4+
PORTREVISION= 1
45
CATEGORIES= biology science devel
56

67
MAINTAINER= yuri@FreeBSD.org
@@ -16,7 +17,7 @@ ONLY_FOR_ARCHS= aarch64 amd64
1617
ONLY_FOR_ARCHS_REASON= deflate.c:149:2: error: "Only 64-bit Intel and ARM architectures are supported"
1718

1819
LIB_DEPENDS= libcdd.so:math/cddlib \
19-
liblmdb.so:databases/lmdb \
20+
liblmdb.so:databases/lmdb0 \
2021
libpcre.so:devel/pcre \
2122
libunwind.so:devel/libunwind \
2223
libzstd.so:archivers/zstd

databases/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@
155155
SUBDIR += liquibase
156156
SUBDIR += litestream
157157
SUBDIR += lmdb
158+
SUBDIR += lmdb0
158159
SUBDIR += lua-lsqlite3
159160
SUBDIR += lua-pgsql
160161
SUBDIR += lua-resty-redis

databases/ldb25/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
PORTNAME= ldb
22
PORTVERSION= 2.5.3
3-
PORTREVISION= 1
3+
PORTREVISION= 2
44
CATEGORIES= databases
55
MASTER_SITES= SAMBA
66
PKGNAMESUFFIX?= 25
@@ -15,7 +15,7 @@ IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be \
1515
build with THREADS support
1616

1717
LDB_DEPENDS= talloc>=2.2.0:devel/talloc tevent>=0.10.0:devel/tevent \
18-
tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb \
18+
tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb0 \
1919
popt>=0:devel/popt
2020
BUILD_DEPENDS= ${LDB_DEPENDS} \
2121
${PY_SETUPTOOLS} \

databases/ldb28/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
PORTNAME= ldb
22
PORTVERSION= 2.8.2
3-
PORTREVISION= 1
3+
PORTREVISION= 2
44
CATEGORIES= databases
55
MASTER_SITES= SAMBA
66
PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/}
@@ -78,7 +78,7 @@ PYTHON3_PLIST_FILES= ${PKGCONFIGDIR}/pyldb-util${PYTHON_TAG}.pc \
7878
_CFLAGS_clang= -fno-color-diagnostics
7979

8080
_LDB_DEPENDS= talloc>=2.2.0:devel/talloc tevent>=0.10.0:devel/tevent \
81-
tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb \
81+
tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb0 \
8282
popt>=0:devel/popt
8383
_LDB_BINS= bin/ldbedit bin/ldbmodify bin/ldbadd bin/ldbdel bin/ldbsearch \
8484
bin/ldbrename

databases/ldb29/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
PORTNAME= ldb
22
PORTVERSION= 2.9.2
3-
PORTREVISION= 2
3+
PORTREVISION= 3
44
CATEGORIES= databases
55
MASTER_SITES= SAMBA
66
PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/}
@@ -78,7 +78,7 @@ PYTHON3_PLIST_FILES= ${PKGCONFIGDIR}/pyldb-util${PYTHON_TAG}.pc \
7878
_CFLAGS_clang= -fno-color-diagnostics
7979

8080
_LDB_DEPENDS= talloc242>=2.4.2:devel/talloc242 tevent016>=0.16.0:devel/tevent016 \
81-
tdb1410>=1.4.10:databases/tdb1410 lmdb>=0.9.23:databases/lmdb \
81+
tdb1410>=1.4.10:databases/tdb1410 lmdb>=0.9.23:databases/lmdb0 \
8282
popt>=0:devel/popt
8383
_LDB_BINS= bin/ldbedit bin/ldbmodify bin/ldbadd bin/ldbdel bin/ldbsearch \
8484
bin/ldbrename

databases/lmdb/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ LICENSE_NAME= OpenLDAP Public License
1313
LICENSE_FILE= ${WRKSRC}/LICENSE
1414
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
1515

16+
CONFLICTS_INSTALL= lmdb0 # include/lmdb.h bin/mdb_stat
17+
1618
WRKSRC_SUBDIR= libraries/liblmdb
1719
MAKE_ARGS+= CC="${CC}"
1820
MAKE_ARGS+= prefix="${PREFIX}" INSTALL_PROGRAM="${INSTALL_PROGRAM}"

databases/lmdb0/Makefile

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
PORTNAME= lmdb
2+
PORTVERSION= 0.9.35
3+
DISTVERSIONPREFIX= ${PORTNAME:tu}_
4+
PKGNAMESUFFIX= 0
5+
CATEGORIES= databases
6+
7+
MAINTAINER= delphij@FreeBSD.org
8+
COMMENT= OpenLDAP Lightning Memory-Mapped Database (legacy)
9+
WWW= https://symas.com/lmdb/
10+
11+
LICENSE= OPENLDAP
12+
LICENSE_NAME= OpenLDAP Public License
13+
LICENSE_FILE= ${WRKSRC}/LICENSE
14+
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
15+
16+
CONFLICTS_INSTALL= lmdb # include/lmdb.h bin/mdb_stat
17+
18+
PORTSCOUT= limit:^0\.
19+
20+
WRKSRC_SUBDIR= libraries/liblmdb
21+
MAKE_ARGS+= CC="${CC}"
22+
MAKE_ARGS+= prefix="${PREFIX}" INSTALL_PROGRAM="${INSTALL_PROGRAM}"
23+
MAKE_ARGS+= INSTALL_LIB="${INSTALL_LIB}" INSTALL_DATA="${INSTALL_DATA}" INSTALL_MAN="${INSTALL_MAN}"
24+
25+
USE_LDCONFIG= yes
26+
27+
USE_GITHUB= yes
28+
GH_ACCOUNT= openldap
29+
GH_PROJECT= openldap
30+
31+
SUB_FILES+= lmdb.pc
32+
SUB_LIST+= PORTVERSION=${PORTVERSION}
33+
34+
post-install:
35+
${LN} -sf liblmdb.so.0 ${STAGEDIR}${PREFIX}/lib/liblmdb.so
36+
${INSTALL_DATA} ${WRKDIR}/lmdb.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig
37+
38+
do-test:
39+
${MKDIR} ${WRKSRC}/testdb
40+
cd ${WRKSRC} && ./mtest*
41+
42+
.include <bsd.port.mk>

databases/lmdb0/distinfo

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
TIMESTAMP = 1770161944
2+
SHA256 (openldap-openldap-LMDB_0.9.35_GH0.tar.gz) = 0d090c6a7c85a4f31a2ab0d734554c21097f24752393a190b0e51996b08f48c4
3+
SIZE (openldap-openldap-LMDB_0.9.35_GH0.tar.gz) = 149788

0 commit comments

Comments
 (0)