1PORTNAME= ldb 2PORTVERSION= 2.8.2 3PORTREVISION= 1 4CATEGORIES= databases 5MASTER_SITES= SAMBA 6PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/} 7 8MAINTAINER= ports@MidnightBSD.org 9COMMENT= LDAP-like embedded database 10WWW= https://ldb.samba.org/ 11 12LICENSE= gpl3+ 13 14IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be \ 15 build with THREADS support 16 17BUILD_DEPENDS= ${_LDB_DEPENDS} \ 18 cmocka>=1.1.3:sysutils/cmocka 19RUN_DEPENDS= ${_LDB_DEPENDS} 20TEST_DEPENDS= ${_LDB_DEPENDS} \ 21 cmocka>=1.1.3:sysutils/cmocka 22 23USES= compiler ldap localbase:ldflags pkgconfig 24USE_LDCONFIG= yes 25 26HAS_CONFIGURE= yes 27CONFIGURE_LOG= ${BUILD_WRKSRC}/bin/config.log 28PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig 29CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \ 30 --disable-rpath \ 31 --with-modulesdir=${PREFIX}/lib/shared-modules \ 32 --with-openldap=${LOCALBASE} \ 33 --with-privatelibdir=${PREFIX}/lib/ldb \ 34 --without-gettext 35CONFIGURE_ENV+= NOCOLOR=yes 36MAKE_ENV+= NOCOLOR=yes 37CFLAGS+= ${_CFLAGS_${COMPILER_TYPE}} 38DEBUG_FLAGS= -g -ggdb3 -O0 39# Some symbols in ldb's linker version scripts are not defined, but since the 40# scripts are generated dynamically, suppress errors with lld >= 17 due to these 41# undefined symbols. 42LDFLAGS+= -Wl,--undefined-version 43 44CONFLICTS_INSTALL= ldb[0-9][0-9] # include/ldb.h 45 46BINARY_ALIAS= python3=${PYTHON_CMD} 47 48PLIST_FILES= ${_LDB_BINS} \ 49 ${_LDB_LIBS_64} \ 50 ${_LDB_LIBS} \ 51 ${PKGCONFIGDIR}/ldb.pc \ 52 include/ldb.h \ 53 include/ldb_errors.h \ 54 include/ldb_handlers.h \ 55 include/ldb_module.h \ 56 include/ldb_version.h 57 58PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;} 59 60OPTIONS_DEFINE= MANPAGES PYTHON3 61OPTIONS_DEFAULT= MANPAGES PYTHON3 62 63MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ 64 xsltproc:textproc/libxslt 65MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false" 66 67PYTHON3_USES= gettext-runtime python 68PYTHON3_USES_OFF= python:build,test 69PYTHON3_CONFIGURE_OFF= --disable-python 70PYTHON3_PLIST_FILES= ${PKGCONFIGDIR}/pyldb-util${PYTHON_TAG}.pc \ 71 ${PYTHON_SITELIBDIR}/_ldb_text.py \ 72 ${PYTHON_SITELIBDIR}/ldb${PYTHON_TAG}.so \ 73 include/pyldb.h \ 74 lib/libpyldb-util${PYTHON_TAG}.so \ 75 lib/libpyldb-util${PYTHON_TAG}.so.2 76 77# No fancy color error messages 78_CFLAGS_clang= -fno-color-diagnostics 79 80_LDB_DEPENDS= talloc>=2.2.0:devel/talloc tevent>=0.10.0:devel/tevent \ 81 tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb \ 82 popt>=0:devel/popt 83_LDB_BINS= bin/ldbedit bin/ldbmodify bin/ldbadd bin/ldbdel bin/ldbsearch \ 84 bin/ldbrename 85_LDB_LIBS= lib/libldb.so lib/libldb.so.2 lib/ldb/libldb-tdb-int.so \ 86 lib/ldb/libldb-tdb-err-map.so lib/ldb/libldb-key-value.so \ 87 lib/ldb/libldb-cmdline.so lib/shared-modules/ldb/skel.so \ 88 lib/shared-modules/ldb/server_sort.so \ 89 lib/shared-modules/ldb/sample.so \ 90 lib/shared-modules/ldb/rdn_name.so \ 91 lib/shared-modules/ldb/paged_searches.so \ 92 lib/shared-modules/ldb/ldb.so lib/shared-modules/ldb/ldap.so \ 93 lib/shared-modules/ldb/asq.so lib/shared-modules/ldb/tdb.so 94_LDB_MAN1= share/man/man1/ldbadd.1.gz share/man/man1/ldbdel.1.gz \ 95 share/man/man1/ldbedit.1.gz share/man/man1/ldbmodify.1.gz \ 96 share/man/man1/ldbrename.1.gz share/man/man1/ldbsearch.1.gz 97_LDB_MAN3= share/man/man3/ldb.3.gz 98 99.include <bsd.mport.options.mk> 100 101.if defined(WITH_DEBUG) 102CONFIGURE_ARGS+= --enable-debug \ 103 --verbose 104.endif 105 106# Only for 64-bit architectures 107.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && \ 108 ${ARCH} != powerpc && ${ARCH} != powerpcspe 109_LDB_LIBS_64= lib/ldb/libldb-mdb-int.so lib/shared-modules/ldb/mdb.so 110.endif 111 112.if ${PORT_OPTIONS:MMANPAGES} 113PLIST_FILES+= ${_LDB_MAN1} \ 114 ${_LDB_MAN3} 115.endif 116 117.if defined(NO_PYTHON) 118WARNING+= "${PKGNAME} does not support NO_PYTHON anymore; use option PYTHON3 instead" 119.endif 120 121post-patch: 122 @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \ 123 ${BUILD_WRKSRC}/wscript 124 125# Use threading (or multiprocessing) but not thread (renamed in python 3+). 126pre-configure: 127 @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \ 128 ${ECHO_CMD}; \ 129 ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \ 130 ${ECHO_CMD}; \ 131 ${FALSE}; \ 132 fi 133 134post-install: 135.for lib in ${_LDB_BINS} ${_LDB_LIBS} ${_LDB_LIBS_64} 136 ${STRIP_CMD} ${PREFIX}/${lib} 137.endfor 138 139post-install-PYTHON3-on: 140 ${STRIP_CMD} ${FAKE_DESTDIR}${PREFIX}/lib/libpyldb-util${PYTHON_TAG}.so 141 ${STRIP_CMD} ${FAKE_DESTDIR}${PYTHONPREFIX_SITELIBDIR}/ldb${PYTHON_TAG}.so 142 143.include <bsd.port.mk> 144