Bug 174007

Summary: [new port] databases/mdb: Add MDB database library to FreeBSD
Product: Ports & Packages Reporter: Quanah Gibson-Mount <quanah>
Component: Individual Port(s)Assignee: Xin LI <delphij>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Quanah Gibson-Mount 2012-11-29 21:40:00 UTC
The MDB database library is not currently present in FreeBSD.  It can
be used by a growing number of software packages, such as OpenDKIM,
OpenLDAP, and Postfix.  It is a preferable alternative to BDB as it uses
a completely free license (BSD) and also has significant performance
improvements over BDB.

More information on MDB and how to obtain it at:
http://www.symas.com/mdb/

Fix: 

Add libmdb to FreeBSD: http://www.symas.com/mdb/
Comment 1 Xin LI freebsd_committer freebsd_triage 2012-11-29 22:16:08 UTC
Class Changed
From-To: sw-bug->change-request

I'm inclined to make a port for this so change category to ports. 


Comment 2 Xin LI freebsd_committer freebsd_triage 2012-11-29 22:16:08 UTC
Responsible Changed
From-To: freebsd-bugs->delphij

Take.
Comment 3 Quanah Gibson-Mount 2013-02-25 19:14:12 UTC
--On Thursday, November 29, 2012 9:40 PM +0000 
FreeBSD-gnats-submit@FreeBSD.org wrote:

> http://www.freebsd.org/cgi/query-pr.cgi?pr=174007


Standalone liblmdb can now be found at <https://gitorious.org/mdb/mdb>

--

Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra ::  the leader in open source messaging and collaboration
Comment 4 Gerard Seibert 2013-02-25 20:21:24 UTC
The: <https://gitorious.org/mdb/mdb> link is apparently broken.
Comment 5 Quanah Gibson-Mount 2013-02-25 20:34:04 UTC
Can you better define broken?  It works for me in Safari, Chrome, and Firefo=
x.=20

--Quanah

On Feb 25, 2013, at 12:21 PM, Gerard Seibert <gerard@seibercom.net> wrote:

> The: <https://gitorious.org/mdb/mdb> link is apparently broken.
Comment 6 dfilter service freebsd_committer freebsd_triage 2013-03-11 23:58:15 UTC
Author: delphij
Date: Mon Mar 11 23:58:01 2013
New Revision: 313947
URL: http://svnweb.freebsd.org/changeset/ports/313947

Log:
  LMDB is an ultra-fast, ultra-compact key-value data
  store developed by Symas for the OpenLDAP Project.
  
  PR:		ports/174007

Added:
  head/databases/lmdb/
  head/databases/lmdb/Makefile   (contents, props changed)
  head/databases/lmdb/distinfo   (contents, props changed)
  head/databases/lmdb/files/
  head/databases/lmdb/files/patch-Makefile   (contents, props changed)
  head/databases/lmdb/pkg-descr   (contents, props changed)
Modified:
  head/databases/Makefile

Modified: head/databases/Makefile
==============================================================================
--- head/databases/Makefile	Mon Mar 11 23:54:38 2013	(r313946)
+++ head/databases/Makefile	Mon Mar 11 23:58:01 2013	(r313947)
@@ -178,6 +178,7 @@
     SUBDIR += linux-oracle-instantclient-sdk
     SUBDIR += linux-oracle-instantclient-sqlplus
     SUBDIR += liquibase
+    SUBDIR += lmdb
     SUBDIR += lsdb
     SUBDIR += luasql-mysql
     SUBDIR += luasql-postgres

Added: head/databases/lmdb/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/lmdb/Makefile	Mon Mar 11 23:58:01 2013	(r313947)
@@ -0,0 +1,29 @@
+# Created by: Xin Li <delphij@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	lmdb
+PORTVERSION=	0.9.6
+CATEGORIES=	databases
+MASTER_SITES=	https://gitorious.org/${GO_ACCOUNT}/${GO_PROJECT}/archive-tarball/${GO_TAGNAME}?dummy=
+
+MAINTAINER=	delphij@FreeBSD.org
+COMMENT=	OpenLDAP Lightning Memory-Mapped Database
+
+# XXX FreeBSD does not implement O_DSYNC and fdatasync at this time.
+CFLAGS+=	-DMDB_DSYNC=O_SYNC -Dfdatasync=fsync
+WRKSRC=		${WRKDIR}/mdb-mdb/libraries/liblmdb
+MAKE_ENV+=	CC="${CC}"
+MAKE_ENV+=	XCFLAGS="${CFLAGS} ${PTHREAD_LIBS}" prefix="${PREFIX}" INSTALL_PROGRAM="${INSTALL_PROGRAM}"
+MAKE_ENV+=	INSTALL_LIB="${INSTALL_LIB}" INSTALL_DATA="${INSTALL_DATA}" INSTALL_MAN="${INSTALL_MAN}"
+
+GO_ACCOUNT=	mdb
+GO_PROJECT=	mdb
+GO_TAGNAME=	${PORTNAME:U}_${PORTVERSION:S/./_/g}
+FETCH_ARGS?=	-o - > ${DISTDIR}/${DISTFILES}
+
+MAN1=		mdb_stat.1 mdb_copy.1
+PLIST_FILES=	lib/liblmdb.a lib/liblmdb.so
+PLIST_FILES+=	bin/mdb_stat bin/mdb_copy
+PLIST_FILES+=	include/lmdb.h
+
+.include <bsd.port.mk>

Added: head/databases/lmdb/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/lmdb/distinfo	Mon Mar 11 23:58:01 2013	(r313947)
@@ -0,0 +1,2 @@
+SHA256 (lmdb-0.9.6.tar.gz) = dddbf8de3f1802d6060f14bbcd37397fbebaf10971a20bfe5f2dcb008a44f14d
+SIZE (lmdb-0.9.6.tar.gz) = 96903

Added: head/databases/lmdb/files/patch-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/lmdb/files/patch-Makefile	Mon Mar 11 23:58:01 2013	(r313947)
@@ -0,0 +1,42 @@
+--- ./Makefile.orig	2013-02-25 05:06:51.000000000 -0800
++++ ./Makefile	2013-03-11 12:29:40.265384057 -0700
+@@ -1,23 +1,21 @@
+-CC	= gcc
+ W	= -W -Wall -Wno-unused-parameter -Wbad-function-cast
+ OPT = -O2 -g
+-CFLAGS	= -pthread $(OPT) $(W) $(XCFLAGS)
++CFLAGS	= $(XCFLAGS)
+ LDLIBS	=
+ SOLIBS	=
+-prefix	= /usr/local
+ 
+ IHDRS	= lmdb.h
+ ILIBS	= liblmdb.a liblmdb.so
+ IPROGS	= mdb_stat mdb_copy
+ IDOCS	= mdb_stat.1 mdb_copy.1
+ PROGS	= $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5
+-all:	$(ILIBS) $(PROGS)
++all:	$(ILIBS) $(IPROGS)
+ 
+ install: $(ILIBS) $(IPROGS) $(IHDRS)
+-	cp $(IPROGS) $(DESTDIR)$(prefix)/bin
+-	cp $(ILIBS) $(DESTDIR)$(prefix)/lib
+-	cp $(IHDRS) $(DESTDIR)$(prefix)/include
+-	cp $(IDOCS) $(DESTDIR)$(prefix)/man/man1
++	${INSTALL_PROGRAM} $(IPROGS) $(DESTDIR)$(prefix)/bin
++	${INSTALL_LIB} $(ILIBS) $(DESTDIR)$(prefix)/lib
++	${INSTALL_DATA} $(IHDRS) $(DESTDIR)$(prefix)/include
++	${INSTALL_MAN} $(IDOCS) $(DESTDIR)$(prefix)/man/man1
+ 
+ clean:
+ 	rm -rf $(PROGS) *.[ao] *.so *~ testdb
+@@ -33,7 +31,9 @@
+ 	$(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.o midl.o $(SOLIBS)
+ 
+ mdb_stat: mdb_stat.o liblmdb.a
++	${CC} ${LDFLAGS} -o ${.TARGET} mdb_stat.o liblmdb.a
+ mdb_copy: mdb_copy.o liblmdb.a
++	${CC} ${LDFLAGS} -o ${.TARGET} mdb_copy.o liblmdb.a
+ mtest:    mtest.o    liblmdb.a
+ mtest2:	mtest2.o liblmdb.a
+ mtest3:	mtest3.o liblmdb.a

Added: head/databases/lmdb/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/lmdb/pkg-descr	Mon Mar 11 23:58:01 2013	(r313947)
@@ -0,0 +1,13 @@
+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.
+
+WWW: http://symas.com/mdb/
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 7 Xin LI freebsd_committer freebsd_triage 2013-03-11 23:58:18 UTC
State Changed
From-To: open->closed

New port added as databases/lmdb.