jobcore/openldap/PKGBUILD-oba

231 lines
5.5 KiB
Plaintext

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