17 |
17 |
DESCRIPTION="LDAP suite of application and development tools"
|
18 |
18 |
HOMEPAGE="https://www.openldap.org/"
|
19 |
19 |
SRC_URI="
|
20 |
|
https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.gz
|
|
20 |
https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
|
21 |
21 |
mirror://gentoo/${BIS_P}
|
22 |
22 |
"
|
23 |
23 |
S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
|
... | ... | |
25 |
25 |
LICENSE="OPENLDAP GPL-2"
|
26 |
26 |
# Subslot added for bug #835654
|
27 |
27 |
SLOT="0/$(ver_cut 1-2)"
|
28 |
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
|
28 |
KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
29 |
29 |
|
30 |
30 |
IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
|
31 |
31 |
IUSE_OVERLAY="overlays perl autoca"
|
... | ... | |
41 |
41 |
kerberos? ( ?? ( kinit smbkrb5passwd ) )"
|
42 |
42 |
RESTRICT="!test? ( test )"
|
43 |
43 |
|
|
44 |
SYSTEM_LMDB_VER=0.9.30
|
44 |
45 |
# openssl is needed to generate lanman-passwords required by samba
|
45 |
46 |
COMMON_DEPEND="
|
46 |
47 |
kernel_linux? ( sys-apps/util-linux )
|
... | ... | |
57 |
58 |
!minimal? (
|
58 |
59 |
dev-libs/libltdl
|
59 |
60 |
sys-fs/e2fsprogs
|
60 |
|
>=dev-db/lmdb-0.9.18:=
|
|
61 |
>=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
|
61 |
62 |
argon2? ( app-crypt/argon2:= )
|
62 |
63 |
crypt? ( virtual/libcrypt:= )
|
63 |
64 |
tcpd? ( sys-apps/tcp-wrappers )
|
... | ... | |
140 |
141 |
"${FILESDIR}"/${PN}-2.6.1-cloak.patch
|
141 |
142 |
"${FILESDIR}"/${PN}-2.6.1-flags.patch
|
142 |
143 |
"${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.patch
|
143 |
|
"${FILESDIR}"/${PN}-2.6.1-fix-bashism-configure.patch
|
144 |
|
"${FILESDIR}"/${PN}-2.6.3-clang16.patch
|
|
144 |
"${FILESDIR}"/${PN}-2.6.4-clang16.patch
|
|
145 |
"${FILESDIR}"/${PN}-2.6.4-libressl.patch #903001
|
145 |
146 |
)
|
146 |
147 |
|
147 |
148 |
openldap_filecount() {
|
... | ... | |
334 |
335 |
}
|
335 |
336 |
|
336 |
337 |
src_prepare() {
|
|
338 |
# The system copy of dev-db/lmdb must match the version that this copy
|
|
339 |
# of OpenLDAP shipped with! See bug #588792.
|
|
340 |
#
|
|
341 |
# Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
|
|
342 |
# the bundled lmdb's header to find out the version.
|
|
343 |
local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' libraries/liblmdb/lmdb.h || die)
|
|
344 |
printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
|
|
345 |
|
|
346 |
if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
|
|
347 |
eerror "Source lmdb version: ${bundled_lmdb_version}"
|
|
348 |
eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
|
|
349 |
die "Ebuild needs to update SYSTEM_LMDB_VER!"
|
|
350 |
fi
|
|
351 |
|
337 |
352 |
rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
|
338 |
353 |
|
|
354 |
local filename
|
339 |
355 |
for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
|
340 |
|
iconv -f iso-8859-1 -t utf-8 "$filename" > "$filename.utf8"
|
341 |
|
mv "$filename.utf8" "$filename"
|
|
356 |
iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
|
|
357 |
mv "${filename}.utf8" "${filename}"
|
342 |
358 |
done
|
343 |
359 |
|
344 |
360 |
default
|
... | ... | |
353 |
369 |
einfo "Making sure upstream build strip does not do stripping too early"
|
354 |
370 |
sed -i.orig \
|
355 |
371 |
-e '/^STRIP/s,-s,,g' \
|
356 |
|
top.mk || die "Failed to remove to early stripping"
|
|
372 |
top.mk || die "Failed to remove too early stripping"
|
357 |
373 |
popd &>/dev/null || die
|
358 |
374 |
|
|
375 |
# Fails with OpenSSL 3, bug #848894
|
|
376 |
# https://bugs.openldap.org/show_bug.cgi?id=10009
|
|
377 |
rm tests/scripts/test076-authid-rewrite || die
|
|
378 |
|
359 |
379 |
eautoreconf
|
360 |
380 |
multilib_copy_sources
|
361 |
381 |
}
|
... | ... | |
368 |
388 |
emake \
|
369 |
389 |
LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
|
370 |
390 |
CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
|
371 |
|
"$target"
|
|
391 |
"${target}"
|
372 |
392 |
popd &>/dev/null || die
|
373 |
393 |
}
|
374 |
394 |
|
... | ... | |
388 |
408 |
--without-fetch
|
389 |
409 |
)
|
390 |
410 |
|
|
411 |
if use experimental ; then
|
|
412 |
# connectionless ldap per bug #342439
|
|
413 |
# connectionless is a unsupported feature according to Howard Chu
|
|
414 |
# see https://bugs.openldap.org/show_bug.cgi?id=9739
|
|
415 |
# (see also bug #892009)
|
|
416 |
append-flags -DLDAP_CONNECTIONLESS
|
|
417 |
fi
|
|
418 |
|
391 |
419 |
if ! use minimal && multilib_is_native_abi; then
|
392 |
420 |
# SLAPD (Standalone LDAP Daemon) Options
|
393 |
421 |
# overlay chaining requires '--enable-ldap' #296567
|
... | ... | |
402 |
430 |
$(use_enable tcpd wrappers)
|
403 |
431 |
)
|
404 |
432 |
if use experimental ; then
|
405 |
|
# connectionless ldap per bug #342439
|
406 |
|
# connectionless is a unsupported feature according to Howard Chu
|
407 |
|
# see https://bugs.openldap.org/show_bug.cgi?id=9739
|
408 |
|
append-cppflags -DLDAP_CONNECTIONLESS
|
409 |
|
|
410 |
433 |
myconf+=(
|
411 |
434 |
--enable-dynacl
|
412 |
435 |
# ACI build as dynamic module not supported (yet)
|
... | ... | |
525 |
548 |
|
526 |
549 |
mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
|
527 |
550 |
pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
|
528 |
|
local LDFLAGS=${LDFLAGS}
|
529 |
|
local CPPFLAGS=${CPPFLAGS}
|
530 |
|
append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs \
|
531 |
|
-L"${BUILD_DIR}"/libraries/libldap/.libs
|
|
551 |
|
|
552 |
local LDFLAGS="${LDFLAGS}"
|
|
553 |
local CPPFLAGS="${CPPFLAGS}"
|
|
554 |
|
|
555 |
append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
|
532 |
556 |
append-cppflags -I"${BUILD_DIR}"/include
|
533 |
|
ECONF_SOURCE=${S}/contrib/ldapc++ \
|
534 |
|
econf "${myconf_ldapcpp[@]}"
|
|
557 |
|
|
558 |
ECONF_SOURCE="${S}"/contrib/ldapc++ econf "${myconf_ldapcpp[@]}"
|
535 |
559 |
popd &>/dev/null || die "popd contrib/ldapc++"
|
536 |
560 |
}
|
537 |
561 |
|
... | ... | |
622 |
646 |
$(tc-getCC) -shared \
|
623 |
647 |
-I"${BUILD_DIR}"/include \
|
624 |
648 |
-I../../../include \
|
|
649 |
${CPPFLAGS} \
|
625 |
650 |
${CFLAGS} \
|
626 |
651 |
-fPIC \
|
627 |
652 |
${LDFLAGS} \
|
... | ... | |
633 |
658 |
|
634 |
659 |
multilib_src_test() {
|
635 |
660 |
if multilib_is_native_abi; then
|
636 |
|
cd "tests"
|
|
661 |
cd tests || die
|
637 |
662 |
pwd
|
|
663 |
|
|
664 |
# Increase various test timeouts/delays, bug #894012
|
|
665 |
# We can't just double everything as there's a cumulative effect.
|
|
666 |
export SLEEP0=2 # originally 1
|
|
667 |
export SLEEP1=10 # originally 7
|
|
668 |
export SLEEP2=20 # originally 15
|
|
669 |
export TIMEOUT=16 # originally 8
|
|
670 |
|
638 |
671 |
# emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
|
639 |
672 |
# emake partests => runs ALL of the tests in parallel
|
640 |
673 |
# wt/WiredTiger is not supported in Gentoo
|
641 |
674 |
TESTS=( plloadd pmdb )
|
642 |
675 |
#TESTS+=( pldif ) # not done by default, so also exclude here
|
643 |
676 |
#use odbc && TESTS+=( psql ) # not done by default, so also exclude here
|
|
677 |
|
644 |
678 |
emake "${TESTS[@]}"
|
645 |
679 |
fi
|
646 |
680 |
}
|