Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Mar 2026 15:12:25 +0000
From:      Gleb Popov <arrowd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Markus Graf <markus.graf@markusgraf.net>
Subject:   git: 3e103a874233 - main - databases/dlmdb: Datalevin fork of OpenLDAP LMDB
Message-ID:  <69beb559.20290.24bab044@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3e103a874233a655aa2343e04bace64d8f57dadc

commit 3e103a874233a655aa2343e04bace64d8f57dadc
Author:     Markus Graf <markus.graf@markusgraf.net>
AuthorDate: 2026-03-03 15:11:19 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2026-03-21 15:12:07 +0000

    databases/dlmdb: Datalevin fork of OpenLDAP LMDB
    
    Pull Request:   https://github.com/freebsd/freebsd-ports/pull/490
---
 databases/Makefile                   |  1 +
 databases/dlmdb/Makefile             | 36 +++++++++++++
 databases/dlmdb/distinfo             |  3 ++
 databases/dlmdb/files/dlmdb.pc.in    | 11 ++++
 databases/dlmdb/files/patch-Makefile | 98 ++++++++++++++++++++++++++++++++++++
 databases/dlmdb/pkg-descr            |  2 +
 databases/dlmdb/pkg-plist            | 15 ++++++
 7 files changed, 166 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 746cf660b520..96d0253b859c 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -56,6 +56,7 @@
     SUBDIR += dbtool
     SUBDIR += dbview
     SUBDIR += diesel
+    SUBDIR += dlmdb
     SUBDIR += duckdb
     SUBDIR += ejdb
     SUBDIR += emacsql
diff --git a/databases/dlmdb/Makefile b/databases/dlmdb/Makefile
new file mode 100644
index 000000000000..3bcffe771742
--- /dev/null
+++ b/databases/dlmdb/Makefile
@@ -0,0 +1,36 @@
+PORTNAME=	dlmdb
+PORTVERSION=	1.0.0.20260306
+CATEGORIES=	databases
+
+MAINTAINER=	markus.graf@markusgraf.net
+COMMENT=	Datalevin fork of OpenLDAP Lightning Memory-Mapped Database
+WWW=		https://github.com/datalevin/dlmdb
+
+LICENSE=	OPENLDAP
+LICENSE_NAME=	OpenLDAP Public License
+LICENSE_FILE=	${WRKSRC}/LICENSE
+LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+WRKSRC_SUBDIR=	libraries/liblmdb
+MAKE_ARGS=	CC="${CC}" prefix="${PREFIX}" \
+		INSTALL_PROGRAM="${INSTALL_PROGRAM}" INSTALL_LIB="${INSTALL_LIB}" \
+		INSTALL_DATA="${INSTALL_DATA}" INSTALL_MAN="${INSTALL_MAN}"
+
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	datalevin
+GH_TAGNAME=	a3fd1f5
+
+SUB_FILES=	dlmdb.pc
+SUB_LIST=	PORTVERSION=${PORTVERSION}
+
+post-install:
+	${LN} -sf libdlmdb.so.0 ${STAGEDIR}${PREFIX}/lib/libdlmdb.so
+	${INSTALL_DATA} ${WRKDIR}/dlmdb.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig
+
+do-test:
+	${MKDIR} ${WRKSRC}/testdb
+	cd ${WRKSRC} && LD_LIBRARY_PATH=$$(pwd) ./mtest*
+
+.include <bsd.port.mk>
diff --git a/databases/dlmdb/distinfo b/databases/dlmdb/distinfo
new file mode 100644
index 000000000000..b0d0189bb363
--- /dev/null
+++ b/databases/dlmdb/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1773157851
+SHA256 (datalevin-dlmdb-1.0.0.20260306-a3fd1f5_GH0.tar.gz) = 96ef76e790acb0b59bec2130e555b96ea5161160b81a77df1e6735e3b23085e2
+SIZE (datalevin-dlmdb-1.0.0.20260306-a3fd1f5_GH0.tar.gz) = 283730
diff --git a/databases/dlmdb/files/dlmdb.pc.in b/databases/dlmdb/files/dlmdb.pc.in
new file mode 100644
index 000000000000..271a0b719ad3
--- /dev/null
+++ b/databases/dlmdb/files/dlmdb.pc.in
@@ -0,0 +1,11 @@
+prefix=%%PREFIX%%
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: dlmdb
+Description: Datalevin Lightning Memory-Mapped Database
+URL: https://github.com/datalevin/dlmdb
+Version: %%PORTVERSION%%
+Libs: -L${libdir} -ldlmdb
+Cflags: -I${includedir}
diff --git a/databases/dlmdb/files/patch-Makefile b/databases/dlmdb/files/patch-Makefile
new file mode 100644
index 000000000000..feba5769d2e3
--- /dev/null
+++ b/databases/dlmdb/files/patch-Makefile
@@ -0,0 +1,98 @@
+--- Makefile.orig	2026-02-25 10:55:03 UTC
++++ Makefile
+@@ -23,17 +23,17 @@ OPT = -O2 -g
+ W	= -W -Wall -Wno-unused-parameter -Wbad-function-cast -Wuninitialized
+ THREADS = -pthread
+ OPT = -O2 -g
+-CFLAGS	= $(THREADS) $(OPT) $(W) $(XCFLAGS)
++CFLAGS	+= $(THREADS) $(W)
+ LDLIBS	=
+ SOLIBS	=
+-SOEXT	= .so
++SOEXT	= .so.0
+ prefix	?= /usr/local
+ exec_prefix = $(prefix)
+ bindir = $(exec_prefix)/bin
+ libdir = $(exec_prefix)/lib
+ includedir = $(prefix)/include
+ datarootdir = $(prefix)/share
+-mandir = $(datarootdir)/man
++mandir = $(prefix)/share/man
+ 
+ ########################################################################
+ 
+@@ -41,7 +41,7 @@ ILIBS	= $(LIBS) $(SHLIBS)
+ LIBS	= libdlmdb.a
+ SHLIBS	= libdlmdb$(SOEXT)
+ ILIBS	= $(LIBS) $(SHLIBS)
+-LINKLIBS	= $(LIBS)
++LINKLIBS	= $(SHLIBS)
+ IPROGS	= dlmdb_stat dlmdb_copy dlmdb_dump dlmdb_load dlmdb_drop
+ IDOCS	= dlmdb_stat.1 dlmdb_copy.1 dlmdb_dump.1 dlmdb_load.1 dlmdb_drop.1
+ PROGS	= $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5 mtest_count mtest_prefix mtest_inmem count_bench compress_bench sample_bench dup_iter_bench inmem_bench
+@@ -53,10 +53,11 @@ install: $(ILIBS) $(IPROGS) $(IHDRS)
+ 	mkdir -p $(DESTDIR)$(libdir)
+ 	mkdir -p $(DESTDIR)$(includedir)
+ 	mkdir -p $(DESTDIR)$(mandir)/man1
+-	for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done
+-	for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done
+-	for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done
+-	for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1/dl$$f; done
++	for f in $(IPROGS); do $(INSTALL_PROGRAM) $$f $(DESTDIR)$(bindir); done
++	for f in $(LIBS); do $(INSTALL_DATA) $$f $(DESTDIR)$(libdir); done
++	for f in $(SHLIBS); do $(INSTALL_LIB) $$f $(DESTDIR)$(libdir); done
++	for f in $(IHDRS); do $(INSTALL_DATA) $$f $(DESTDIR)$(includedir); done
++	for f in $(IDOCS); do $(INSTALL_MAN) $$f $(DESTDIR)$(mandir)/man1/dl$$f; done
+ 
+ clean:
+ 	rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb
+@@ -79,28 +80,48 @@ libdlmdb$(SOEXT):	mdb.lo midl.lo
+ 
+ libdlmdb$(SOEXT):	mdb.lo midl.lo
+ #	$(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
+-	$(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
++	$(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS)
+ 
+ dlmdb_stat: mdb_stat.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ dlmdb_copy: mdb_copy.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ dlmdb_dump: mdb_dump.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ dlmdb_load: mdb_load.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ dlmdb_drop: mdb_drop.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest:  mtest.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest2:	mtest2.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest3:	mtest3.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest4:	mtest4.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest5:	mtest5.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest_count:	mtest_count.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest_prefix:	mtest_prefix.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest_inmem:	mtest_inmem.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ count_bench:	count_bench.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ compress_bench:	compress_bench.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ sample_bench:	sample_bench.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ dup_iter_bench:	dup_iter_bench.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ inmem_bench:	inmem_bench.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mtest6:	mtest6.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ mplay:	mplay.o $(LINKLIBS)
++	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
+ 
+ mdb.o: mdb.c dlmdb.h midl.h
+ 	$(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c
diff --git a/databases/dlmdb/pkg-descr b/databases/dlmdb/pkg-descr
new file mode 100644
index 000000000000..32499c981cfa
--- /dev/null
+++ b/databases/dlmdb/pkg-descr
@@ -0,0 +1,2 @@
+DLMDB is a fork of LMDB which serves as the datastore of dtlnative, the backend
+of Datalevin, a Clojure datalog database.
diff --git a/databases/dlmdb/pkg-plist b/databases/dlmdb/pkg-plist
new file mode 100644
index 000000000000..ce6beb0d2721
--- /dev/null
+++ b/databases/dlmdb/pkg-plist
@@ -0,0 +1,15 @@
+bin/dlmdb_copy
+bin/dlmdb_drop
+bin/dlmdb_dump
+bin/dlmdb_load
+bin/dlmdb_stat
+include/dlmdb.h
+lib/libdlmdb.a
+lib/libdlmdb.so
+lib/libdlmdb.so.0
+libdata/pkgconfig/dlmdb.pc
+share/man/man1/dlmdb_copy.1.gz
+share/man/man1/dlmdb_drop.1.gz
+share/man/man1/dlmdb_dump.1.gz
+share/man/man1/dlmdb_load.1.gz
+share/man/man1/dlmdb_stat.1.gz


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69beb559.20290.24bab044>