231 lines
5.5 KiB
Text
231 lines
5.5 KiB
Text
|
|
||
|
pkgbase=openldap
|
||
|
pkgver=2.6.3
|
||
|
pkgrel=4
|
||
|
url='https://www.openldap.org/'
|
||
|
|
||
|
pkgname=(
|
||
|
'openldap'
|
||
|
'libldap'
|
||
|
)
|
||
|
|
||
|
track="OpenLDAP/openldap-release"
|
||
|
target="$pkgbase-$pkgver"
|
||
|
source=(
|
||
|
"https://www.openldap.org/software/download/${track}/${target}.tgz"{,.asc}
|
||
|
openldap.tmpfiles
|
||
|
openldap.sysusers
|
||
|
)
|
||
|
|
||
|
#----------------------
|
||
|
# BUILD CONFIGURATION ]
|
||
|
|
||
|
makedepends=(
|
||
|
'libtool'
|
||
|
'libsasl'
|
||
|
'e2fsprogs'
|
||
|
'util-linux'
|
||
|
'chrpath'
|
||
|
'unixodbc'
|
||
|
'libsodium'
|
||
|
)
|
||
|
|
||
|
options=(
|
||
|
'!makeflags'
|
||
|
'emptydirs'
|
||
|
'!lto'
|
||
|
)
|
||
|
|
||
|
# extra modules found in contrib/slapd-modules
|
||
|
_extra_modules=(
|
||
|
'nssov'
|
||
|
'autogroup'
|
||
|
'lastbind'
|
||
|
'passwd/sha2'
|
||
|
)
|
||
|
|
||
|
#----------------
|
||
|
# BUILD PREPARE ]
|
||
|
|
||
|
prepare() {
|
||
|
cd $pkgbase-$pkgver
|
||
|
|
||
|
## change perms from 0644 to 0755
|
||
|
sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap}/Makefile.in
|
||
|
|
||
|
## change rundir to /run/openldap
|
||
|
sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h
|
||
|
sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.{conf,ldif}
|
||
|
sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in
|
||
|
}
|
||
|
|
||
|
#----------------
|
||
|
# BUILD CONTROL ]
|
||
|
|
||
|
_flags=(
|
||
|
--prefix=/usr
|
||
|
--libexecdir=/usr/lib
|
||
|
--sysconfdir=/etc
|
||
|
--localstatedir=/var/lib/openldap
|
||
|
--sbindir=/usr/bin
|
||
|
--enable-dynamic
|
||
|
--enable-syslog
|
||
|
--enable-ipv6
|
||
|
--enable-local
|
||
|
--enable-crypt
|
||
|
--enable-spasswd
|
||
|
--enable-modules
|
||
|
--enable-backends
|
||
|
--enable-argon2
|
||
|
--enable-overlays=mod
|
||
|
--with-argon2=libsodium
|
||
|
--with-cyrus-sasl
|
||
|
--with-threads
|
||
|
--disable-wt
|
||
|
)
|
||
|
|
||
|
#----------------------
|
||
|
# BUILD CONFIGURATION ]
|
||
|
|
||
|
build() {
|
||
|
cd $pkgbase-$pkgver
|
||
|
|
||
|
autoconf
|
||
|
./configure "${_flags[@]}"
|
||
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
||
|
make
|
||
|
|
||
|
## build extra modules
|
||
|
for module in "${_extra_modules[@]}"; do
|
||
|
make -C "contrib/slapd-modules/$module" \
|
||
|
OPT="$CFLAGS $CPPFLAGS" \
|
||
|
prefix=/usr \
|
||
|
libexecdir=/usr/lib \
|
||
|
sysconfdir=/etc/openldap
|
||
|
done
|
||
|
}
|
||
|
|
||
|
#---------
|
||
|
# CHECK ]
|
||
|
|
||
|
check() {
|
||
|
cd $pkgbase-$pkgver
|
||
|
make test
|
||
|
}
|
||
|
|
||
|
#----------
|
||
|
# PACKAGE ]
|
||
|
|
||
|
package_libldap() {
|
||
|
pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
|
||
|
|
||
|
depends=(
|
||
|
'libsasl'
|
||
|
'e2fsprogs'
|
||
|
)
|
||
|
backup=(
|
||
|
'etc/openldap/ldap.conf'
|
||
|
)
|
||
|
|
||
|
cd $pkgbase-$pkgver
|
||
|
|
||
|
for dir in include libraries doc/man/man3 ; do
|
||
|
pushd ${dir}
|
||
|
make DESTDIR="$pkgdir" install
|
||
|
popd
|
||
|
done
|
||
|
|
||
|
install -Dm644 -t "$pkgdir"/usr/share/man/man5 doc/man/man5/ldap.conf.5
|
||
|
|
||
|
## get rid of duplicate default conf files
|
||
|
rm "$pkgdir"/etc/openldap/*.default
|
||
|
|
||
|
## shared library versioning
|
||
|
ln -sf liblber.so "$pkgdir"/usr/lib/liblber.so.2
|
||
|
ln -sf libldap.so "$pkgdir"/usr/lib/libldap.so.2
|
||
|
|
||
|
## license
|
||
|
install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
|
||
|
}
|
||
|
|
||
|
package_openldap() {
|
||
|
pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
|
||
|
|
||
|
depends=(
|
||
|
"libldap>=$pkgver"
|
||
|
'libtool'
|
||
|
'unixodbc'
|
||
|
'perl'
|
||
|
)
|
||
|
optdepends=(
|
||
|
'libsodium: for argon2 password module'
|
||
|
)
|
||
|
backup=(
|
||
|
'etc/openldap/slapd.conf'
|
||
|
'etc/openldap/slapd.ldif'
|
||
|
)
|
||
|
|
||
|
cd $pkgbase-$pkgver
|
||
|
|
||
|
for dir in clients servers doc/man/man{1,5,8}; do
|
||
|
pushd ${dir}
|
||
|
make DESTDIR="$pkgdir" install
|
||
|
popd
|
||
|
done
|
||
|
|
||
|
## install extra modules
|
||
|
for module in "${_extra_modules[@]}"; do
|
||
|
make -C "contrib/slapd-modules/$module" \
|
||
|
prefix=/usr \
|
||
|
libexecdir=/usr/lib \
|
||
|
sysconfdir=/etc/openldap \
|
||
|
DESTDIR="$pkgdir" install
|
||
|
|
||
|
## passwd/sha2 has no man page, so skip it
|
||
|
if [ "$module" != "passwd/sha2" ]; then
|
||
|
install -m644 -t "$pkgdir/usr/share/man/man5" \
|
||
|
"contrib/slapd-modules/$module/slapo-$module.5"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
## should be in libldap package
|
||
|
rm "$pkgdir"/usr/share/man/man5/ldap.conf.5
|
||
|
rm -r "$pkgdir"/run
|
||
|
|
||
|
## get rid of duplicate default conf files
|
||
|
rm "$pkgdir"/etc/openldap/*.default
|
||
|
|
||
|
ln -s ../lib/slapd "$pkgdir"/usr/bin/slapd
|
||
|
|
||
|
chown root:439 "$pkgdir"/etc/openldap/slapd.{conf,ldif} #,DB_CONFIG.example}
|
||
|
chmod 640 "$pkgdir"/etc/openldap/slapd.{conf,ldif} #,DB_CONFIG.example}
|
||
|
|
||
|
install -dm700 -o 439 -g 439 "$pkgdir"/var/lib/openldap
|
||
|
chown -R 439:439 "$pkgdir"/var/lib/openldap
|
||
|
|
||
|
install -dm700 -o 439 -g 439 "$pkgdir"/etc/openldap/slapd.d
|
||
|
install -Dm644 "$srcdir"/openldap.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/openldap.conf
|
||
|
install -Dm644 "$srcdir"/openldap.sysusers "$pkgdir"/usr/lib/sysusers.d/openldap.conf
|
||
|
|
||
|
## license
|
||
|
install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
|
||
|
}
|
||
|
|
||
|
#-------------------------
|
||
|
# LICENCE AND VALIDATION ]
|
||
|
|
||
|
arch=(x86_64)
|
||
|
license=(custom)
|
||
|
|
||
|
validpgpkeys=(
|
||
|
'3CE269B5398BC8B785645E987F67D5FD1CE1CBCE' # OpenLDAP Project <project@openldap.org>
|
||
|
# https://www.openldap.org/software/download/OpenLDAP/gpg-pubkey.txt
|
||
|
)
|
||
|
|
||
|
sha256sums=(d2a2a1d71df3d77396b1c16ad7502e674df446e06072b0e5a4e941c3d06c0d46 # openldap-2.6.3.tgz
|
||
|
8fbe13b688de3da469dc160947a2425fbe3c2423c9f556c6f1dad73962d916d9 # openldap-2.6.3.tgz.asc
|
||
|
0be46138e53ff2fa6d4b4c06bfbdd2100426e0bd2ed29bf3419ade6b5974e9a0 # openldap.tmpfiles
|
||
|
c6e3fa72138edfebb4ecb17f677e217c885ff9eef805b5c8ad1c09169bb0ff8e) # openldap.sysusers
|
||
|
|
||
|
|