Date: Saturday, November 13, 2021 @ 09:06:28 Author: arojas Revision: 428211
Update to 2.6.0 Modified: openldap/trunk/PKGBUILD ----------+ PKGBUILD | 126 ++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 42 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-11-13 08:39:50 UTC (rev 428210) +++ PKGBUILD 2021-11-13 09:06:28 UTC (rev 428211) @@ -1,55 +1,89 @@ # Maintainer: +# Contributor: George Rawlinson <[email protected]> pkgbase=openldap pkgname=('openldap' 'libldap') -pkgver=2.4.59 -pkgrel=2 +pkgver=2.6.0 +pkgrel=1 arch=('x86_64') url="https://www.openldap.org/" license=('custom') -makedepends=('libtool' 'libsasl' 'e2fsprogs' 'util-linux' 'chrpath' 'unixodbc' 'libsodium') +makedepends=('libtool' 'libsasl' 'e2fsprogs' 'util-linux' 'chrpath' 'unixodbc' 'libsodium' 'systemd') options=('!makeflags' 'emptydirs') -source=(https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz{,.asc} - slapd.service openldap.tmpfiles openldap.sysusers) -sha256sums=('99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34' +source=( + https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz{,.asc} + openldap.tmpfiles + openldap.sysusers) +sha256sums=('b71c580eac573e9aba15d95f33dd4dd08f2ed4f0d7fc09e08ad4be7ed1e41a4f' 'SKIP' - 'a642dbc7ea3d6861178a01acb73e9ec7b97cdc9f08196c9202936fae52b9f435' '0be46138e53ff2fa6d4b4c06bfbdd2100426e0bd2ed29bf3419ade6b5974e9a0' 'c6e3fa72138edfebb4ecb17f677e217c885ff9eef805b5c8ad1c09169bb0ff8e') validpgpkeys=('3CE269B5398BC8B785645E987F67D5FD1CE1CBCE') # OpenLDAP Project <[email protected]> https://www.openldap.org/software/download/OpenLDAP/gpg-pubkey.txt +# extra modules found in contrib/slapd-modules +_extra_modules=( + 'nssov' + 'autogroup' + 'lastbind' + 'passwd/sha2' +) + prepare() { cd ${pkgbase}-${pkgver} - sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in + + # 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 + + # modify upstream systemd service + sed -i -e "s|EnvironmentFile.*|EnvironmentFile=-/etc/conf.d/slapd|" -e "s/slapd -d 0/\0 -u ldap -g ldap/" servers/slapd/slapd.service } build() { cd ${pkgbase}-${pkgver} autoconf - CFLAGS="${CFLAGS} -DLDAP_CONNECTIONLESS" ./configure --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 --disable-ndb --enable-overlays=mod \ - --with-cyrus-sasl --with-threads + ./configure \ + --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 \ + --with-argon2=libsodium \ + --disable-wt \ + --enable-overlays=mod \ + --with-cyrus-sasl \ + --with-threads sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make - make -C contrib/slapd-modules/nssov OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap - make -C contrib/slapd-modules/autogroup OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap - make -C contrib/slapd-modules/lastbind OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap - make -C contrib/slapd-modules/passwd/sha2 OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap - make -C contrib/slapd-modules/passwd/argon2 OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap + # 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() { cd ${pkgbase}-${pkgver} -# make test + make test } package_libldap() { @@ -63,21 +97,22 @@ make DESTDIR="${pkgdir}" install popd done - install -Dm644 doc/man/man5/ldap.conf.5.tmp "${pkgdir}"/usr/share/man/man5/ldap.conf.5 + install -Dm644 -t "$pkgdir/usr/share/man/man5" doc/man/man5/ldap.conf.5 -# get rid of duplicate default conf files + # remove duplicate 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 - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + # 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') + depends=("libldap>=${pkgver}" 'libtool' 'unixodbc' 'perl' 'systemd-libs' 'libsodium') backup=('etc/openldap/slapd.conf' 'etc/openldap/slapd.ldif') cd ${pkgbase}-${pkgver} @@ -87,32 +122,39 @@ popd done - make -C contrib/slapd-modules/autogroup prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap DESTDIR="$pkgdir" install - make -C contrib/slapd-modules/lastbind prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap DESTDIR="$pkgdir" install - make -C contrib/slapd-modules/passwd/sha2 prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap DESTDIR="$pkgdir" install - make -C contrib/slapd-modules/passwd/argon2 prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap DESTDIR="$pkgdir" install - make -C contrib/slapd-modules/nssov prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap DESTDIR="$pkgdir" install - install -m644 contrib/slapd-modules/nssov/slapo-nssov.5 "${pkgdir}"/usr/share/man/man5/slapo-nssov.5 - install -m644 contrib/slapd-modules/autogroup/slapo-autogroup.5 "${pkgdir}"/usr/share/man/man5/slapo-autogroup.5 - install -m644 contrib/slapd-modules/lastbind/slapo-lastbind.5 "${pkgdir}"/usr/share/man/man5/slapo-lastbind.5 + # 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 + + # let systemd-tmpfiles generate this directory rm -r "${pkgdir}"/run -# get rid of duplicate default conf files + # get rid of duplicate 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} + chown root:439 "${pkgdir}"/etc/openldap/slapd.{conf,ldif} + chmod 640 "${pkgdir}"/etc/openldap/slapd.{conf,ldif} - 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}"/slapd.service "${pkgdir}"/usr/lib/systemd/system/slapd.service + # systemd integration install -Dm644 "${srcdir}"/openldap.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/openldap.conf install -Dm644 "${srcdir}"/openldap.sysusers "${pkgdir}"/usr/lib/sysusers.d/openldap.conf - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + + # license + install -Dm644 -t "${pkgdir}"/usr/share/licenses/"${pkgname}" LICENSE }
