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