[arch-commits] Commit in openldap/trunk (PKGBUILD)

Antonio Rojas arojas at gemini.archlinux.org
Sat Nov 13 09:06:28 UTC 2021


    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 <grawlinson at archlinux.org>
 
 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 <project at openldap.org> 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
 }



More information about the arch-commits mailing list