git: 3e103a874233 - main - databases/dlmdb: Datalevin fork of OpenLDAP LMDB
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 21 Mar 2026 15:12:25 UTC
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