ports/89023: USE_BDB doesn't set name of Berkely dB, or location of the include directory

Scot Hetzel swhetzel at gmail.com
Mon Nov 14 17:34:07 UTC 2005


Attached is the patch to bsd.database.mk for USE_BDB to provide the
BDB_LIB_NAME and BDB_INCLUDE_DIR variables.  As well as dealing with
the WITH_BDB_VER variable.

Also, attached are patches to two ports that make use of the changes
provided in the bsd.database.mk patch.

I've CC the maintaines of these ports so that they can see how this
change affects their ports.
--
DISCLAIMER:
No electrons were mamed while sending this message. Only slightly bruised.
-------------- next part --------------
Index: Mk/bsd.database.mk
===================================================================
RCS file: /home/ncvs/ports/Mk/bsd.database.mk,v
retrieving revision 1.2
diff -u -r1.2 bsd.database.mk
--- Mk/bsd.database.mk	11 Nov 2005 10:29:21 -0000	1.2
+++ Mk/bsd.database.mk	13 Nov 2005 12:00:59 -0000
@@ -52,6 +52,15 @@
 #                 by the user via defined variable), try to find the
 #                 currently installed version.  Fall back to default if
 #                 necessary (db41+).
+# BROKEN_WITH_BDB	- This variable can be defined when the port doesn't support
+#			  one or more versions of Berkley DB.
+# WITH_BDB_VER		- User defined variable to set Berkely DB version.
+# BDB_LIB_NAME		- This variable is automatically set to the name of the
+#			  Berkley DB library (default: db41)
+# BDB_INCLUDE_DIR	- This variable is automatically set to the location of
+#			  the Berkley DB include directory.
+#			  (default: ${LOCALBASE}/include/db41)
+#
 ##
 # USE_SQLITE	- Add dependency on sqlite library. Valid values are:
 #				  3 and 2. If version is not specified directly then
@@ -170,6 +179,13 @@
 _DB_41P=	41 42 43
 _DB_42P=	42 43
 
+.if defined(WITH_BDB_VER)
+. if ${WITH_BDB_VER} == 4
+USE_BDB=	40
+. elif ${WITH_BDB_VER} != "yes" && ${WITH_BDB_VER} != 1
+USE_BDB=	${WITH_BDB_VER}
+. endif
+.endif
 _WANT_BDB_VER=	${USE_BDB}
 
 # Assume the default bdb version as 41
@@ -179,26 +195,24 @@
 
 # Detect bdb version
 _FOUND=	no
+_BDB_BROKEN= no
 
 .for bdb in ${_DB_PORTS}
 .if ${_WANT_BDB_VER} == "${bdb}" && ${_FOUND} == "no"
 _MATCHED_DB_VER:=	${bdb:S/+//}
 . if ${_MATCHED_DB_VER} == "${bdb}"
 # USE_BDB is exactly specified
-LIB_DEPENDS+=	${db${bdb}_DEPENDS}
-_FOUND=	yes
+_FOUND=	${bdb}
 .else
 # USE_BDB is specified as VER+
 .  for db4 in ${_DB_${_MATCHED_DB_VER}P}
 .   if exists(${db${db4}_FIND}) && ${_FOUND} == "no"
-LIB_DEPENDS+=   ${db${db4}_DEPENDS}
-_FOUND=	yes
+_FOUND=	${db4}
 .   endif
 .  endfor
 .  if ${_FOUND} == "no"
 # No existing db4 version is detected in system
-LIB_DEPENDS+=	${db${_MATCHED_DB_VER}_DEPENDS}
-_FOUND=	yes
+_FOUND=	${_MATCHED_DB_VER}
 .  endif
 . endif
 .endif
@@ -207,6 +221,31 @@
 # USE_BDB is specified incorrectly, so mark this as IGNORE
 .if ${_FOUND} == "no"
 IGNORE=	"Unknown bdb version: ${USE_BDB}"
+.else
+# Now check if we can use it
+. if defined(BROKEN_WITH_BDB)
+.  for VER in ${BROKEN_WITH_BDB}
+.   if ${_FOUND} == "${VER}"
+_BDB_BROKEN=	yes
+.   endif
+.  endfor
+. endif
+. if ${_BDB_BROKEN} == "yes"
+IGNORE= "Does not work with Berkley DB ${_FOUND} \(${BROKEN_WITH_BDB} not supported\)"
+. else
+# Now add the dependancy on Berkley DB ${_FOUND) version
+LIB_DEPENDS+=	${db${_FOUND}_DEPENDS}
+.  if ${_FOUND} == 40
+BDB_LIB_NAME=	db4
+BDB_INCLUDE_DIR=	${LOCALBASE}/include/db4
+.  elif ${_FOUND} == 42
+BDB_LIB_NAME=	db-4.2
+.  elif ${_FOUND} == 43
+BDB_LIB_NAME=	db-4.3
+.  endif
+BDB_LIB_NAME?=	db${_FOUND}
+BDB_INCLUDE_DIR?=	${LOCALBASE}/include/db${_FOUND}
+. endif
 .endif
 
 .endif # USE_BDB




-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/security/cyrus-sasl2/Makefile,v
retrieving revision 1.120
diff -u -r1.120 Makefile
--- Makefile	8 Nov 2005 16:51:08 -0000	1.120
+++ Makefile	13 Nov 2005 12:06:55 -0000
@@ -54,20 +54,11 @@
 		--with-saslauthd=${SASLAUTHD_RUNPATH}
 
 .if defined(WITH_BDB_VER)
-.if ${WITH_BDB_VER} == 4
-USE_BDB=	40
-.elif ${WITH_BDB_VER} == 42
-BDB_SUFFIX=	-4.2
-.elif ${WITH_BDB_VER} == 43
-BDB_SUFFIX=	-4.3
-.elif ${WITH_BDB_VER} != 3 && ${WITH_BDB_VER} != 41
-BROKEN=		"WITH_BDB_VER must be 3, 4, 41, 42 or 43"
-.endif
-USE_BDB?=	${WITH_BDB_VER}
-BDB_SUFFIX?=	${WITH_BDB_VER}
+USE_BDB=	40+
+BROKEN_WITH_BDB=	2
 CONFIGURE_ARGS+=--with-dblib=berkeley --with-bdb-libdir=${LOCALBASE}/lib \
-		--with-bdb-incdir=${LOCALBASE}/include/db${WITH_BDB_VER} \
-		--with-bdb=db${BDB_SUFFIX}
+		--with-bdb-incdir=${BDB_INCLUDE_DIR} \
+		--with-bdb=${BDB_LIB_NAME}
 SASLDB_NAME=	sasldb2
 .else
 CONFIGURE_ARGS+=--with-dblib=ndbm




-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/devel/kdesdk3/Makefile,v
retrieving revision 1.50
diff -u -r1.50 Makefile
--- Makefile	5 Nov 2005 11:19:28 -0000	1.50
+++ Makefile	14 Nov 2005 04:51:08 -0000
@@ -16,8 +16,7 @@
 COMMENT=	KDE Software Development Kit
 
 RUN_DEPENDS=	bash:${PORTSDIR}/shells/bash
-LIB_DEPENDS=	db4:${PORTSDIR}/databases/db4 \
-		svn_client-1.0:${PORTSDIR}/devel/subversion
+LIB_DEPENDS=	svn_client-1.0:${PORTSDIR}/devel/subversion
 
 CONFLICTS=	umbrello-[0-9]* kcachegrind-[0-9]*
 
@@ -33,8 +32,12 @@
 INSTALLS_SHLIB=	yes
 LDCONFIG_DIRS=	%%PREFIX%%/lib %%PREFIX%%/lib/kde3
 
-CONFIGURE_ARGS+=--with-db-include-dir=/usr/local/include/db4 \
-		--with-db-lib-dir=/usr/local/lib --with-db-name=db4 \
+USE_BDB=	40+
+BROKEN_WITH_BDB=	2 3
+
+CONFIGURE_ARGS+=--with-db-include-dir=${BDB_INCLUDE_DIR} \
+		--with-db-lib-dir=${LOCALBASE}/lib \
+		--with-db-name=${BDB_LIB_NAME} \
 		--with-apr-config=${LOCALBASE}/bin/apr-1-config \
 		--with-apu-config=${LOCALBASE}/bin/apu-1-config
 






More information about the freebsd-ports-bugs mailing list