# Maintainer: Natanael Copa pkgname=openldap pkgver=2.4.44 pkgrel=5 pkgdesc="LDAP Server" url="http://www.openldap.org/" arch="all" license="custom" depends= pkgusers="ldap" pkggroups="ldap" depends_dev="libressl-dev cyrus-sasl-dev util-linux-dev" makedepends="$depends_dev db-dev groff unixodbc-dev libtool mosquitto-dev autoconf automake libtool" subpackages="$pkgname-dev $pkgname-doc libldap $pkgname-back-sql:sql $pkgname-back-bdb:bdb $pkgname-back-hdb:hdb $pkgname-back-ldap:ldap $pkgname-back-meta:meta $pkgname-back-monitor:monitor $pkgname-clients $pkgname-mqtt $pkgname-passwd-pbkdf2:passwd_pbkdf2 " install="$pkgname.pre-install" source="ftp://ftp.$pkgname.org/pub/OpenLDAP/$pkgname-release/$pkgname-$pkgver.tgz openldap-2.4-ppolicy.patch openldap-2.4.11-libldap_r.patch bdb-enabled-by-default.patch openldap-mqtt-overlay.patch CVE-2017-9287.patch slapd.initd slapd.confd slurpd.initd " # secfixes: # 2.4.44-r5: # - CVE-2017-9287 prepare() { cd "$srcdir"/$pkgname-$pkgver update_config_sub || return 1 default_prepare || return 1 sed -e '/^STRIP/s,-s,,g' \ -i build/top.mk || return 1 libtoolize --force && aclocal && autoconf || return 1 } build () { cd "$srcdir"/$pkgname-$pkgver ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var/lib/openldap \ --enable-slapd \ --enable-crypt \ --enable-modules \ --enable-dynamic \ --enable-bdb=mod \ --enable-hdb=mod \ --enable-dnssrv=mod \ --enable-ldap=mod \ --enable-meta=mod \ --enable-monitor=mod \ --enable-null=mod \ --enable-passwd=mod \ --enable-relay=mod \ --enable-shell=mod \ --enable-sock=mod \ --enable-sql=mod \ --enable-overlays=mod \ --with-tls=openssl \ --with-cyrus-sasl \ || return 1 make || return 1 # build mqtt overlay make prefix=/usr libexec=/usr/lib \ -C contrib/slapd-modules/mqtt || return 1 # build passwd pbkdf2 make prefix=/usr libexecdir=/usr/lib \ -C contrib/slapd-modules/passwd/pbkdf2 || return 1 } package() { cd "$srcdir"/$pkgname-$pkgver make DESTDIR="$pkgdir" install || return 1 install -d -o ldap -g ldap "$pkgdir"/var/run/openldap \ "$pkgdir"/var/lib/openldap sed -i -e 's:/var/lib/openldap/run:/var/run/openldap:g' \ -e 's:back_bdb.la:back_bdb.so:' \ -e 's:back_hdb.la:back_hdb.so:' \ -e 's:back_ldap.la:back_ldap.so:' \ "$pkgdir"/etc/openldap/slapd.conf || return 1 mv "$pkgdir"/usr/lib/slapd "$pkgdir"/usr/sbin/ || reteurn 1 chgrp ldap "$pkgdir"/etc/openldap/slapd.conf chmod g+r "$pkgdir"/etc/openldap/slapd.conf chown -R ldap.ldap "$pkgdir"/var/lib/openldap/openldap-data chmod 700 "$pkgdir"/var/lib/openldap \ "$pkgdir"/var/lib/openldap/openldap-data chown -R ldap.ldap "$pkgdir"/var/lib/openldap/openldap-data install -Dm755 "$srcdir"/slapd.initd "$pkgdir"/etc/init.d/slapd install -Dm755 "$srcdir"/slapd.confd "$pkgdir"/etc/conf.d/slapd install -Dm755 "$srcdir"/slurpd.initd "$pkgdir"/etc/init.d/slurpd # FIXME: symlinks in sbin are symlinked to /usr/lib/slapd ln -s /usr/sbin/slapd "$pkgdir"/usr/lib/slapd # install mqtt overlay make DESTDIR="$pkgdir" prefix=/usr libexec=/usr/lib \ -C contrib/slapd-modules/mqtt install || return 1 # install passwd pbkdf2 make DESTDIR="$pkgdir" prefix=/usr libexecdir=/usr/lib \ -C contrib/slapd-modules/passwd/pbkdf2 install || return 1 } libldap() { pkgdesc="OpenLDAP libraries" depends= install= mkdir -p "$subpkgdir"/usr/lib "$subpkgdir"/etc/openldap mv "$pkgdir"/usr/lib/*.so* "$subpkgdir"/usr/lib/ mv "$pkgdir"/etc/openldap/ldap.conf "$subpkgdir"/etc/openldap/ } _backend() { pkgdesc="OpenLDAP ${2:-$1} backend" mkdir -p "$subpkgdir"/usr/lib/openldap mv "$pkgdir"/usr/lib/openldap/back_$1* "$subpkgdir"/usr/lib/openldap/ } bdb() { _backend bdb ; } hdb() { _backend hdb ; } sql() { _backend sql ODBC; } ldap() { _backend ldap LDAP; } meta() { _backend meta; } monitor() { _backend monitor; } clients() { pkgdesc="LDAP client utilities" mkdir -p "$subpkgdir"/usr mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ } mqtt() { pkgdesc="OpenLDAP MQTT overlay" depends=$pkgname mkdir -p "$subpkgdir"/usr/lib/openldap mv "$pkgdir"/usr/lib/openldap/mqtt.* "$subpkgdir"/usr/lib/openldap || return 1 } passwd_pbkdf2() { pkgdesc="PBKDF2 OpenLDAP support" depends=$pkgname mkdir -p "$subpkgdir"/usr/lib/openldap mv "$pkgdir"/usr/lib/openldap/pw-pbkdf2.* "$subpkgdir"/usr/lib/openldap || return 1 } sha512sums="132eb81798f59a364c9246d08697e1c7ebb6c2c3b983f786b14ec0233df09696cbad33a1f35f3076348b5efb77665a076ab854a24122c31e8b58310b7c7fd136 openldap-2.4.44.tgz 5d34d49eabe7cb66cf8284cc3bd9730fa23df4932df68549e242d250ee50d40c434ae074ebc720d5fbcd9d16587c9333c5598d30a5f1177caa61461ab7771f38 openldap-2.4-ppolicy.patch 44d97efb25d4f39ab10cd5571db43f3bfa7c617a5bb087085ae16c0298aca899b55c8742a502121ba743a73e6d77cd2056bc96cee63d6d0862dabc8fb5574357 openldap-2.4.11-libldap_r.patch d94f791ff3d10f1fe244a6a071331d6dd5933ed859e1cf9465654e650ff7223eedad5f054ad77de2ad4dbbd0b4a2cfda970ad733baaa833183aee996216bdbf1 bdb-enabled-by-default.patch 9c7f41279e91ed995c91e9a8c543c797d9294a93cf260afdc03ab5777e45ed045a4d6a4d4d0180b5dc387dc04babca01d818fbfa8168309df44f4500d2a430a4 openldap-mqtt-overlay.patch e81417c5df06148ddc6c4458c63349045b750b0f5ca981f92596777996114480301bc0ae62eb82a2cc242a025f53de3174efef5e3c28a54a94ccee773435a42a CVE-2017-9287.patch 1a5490a29a2be8382a64d3d07a36906d2189571f4c44d8ad96b769db58d91a33b2eee24fe10343ec26440fa61cfd406c4e95153dce29c2f315d1f13f5b0f47e8 slapd.initd 8290769b63b3a5863622de2deb9269a0711ba5f4a225eb230d7c5097937b9d4e8cf5a998ee99232824e2335ae1b6e0114357b61c9611bc2460ebd195d12eabae slapd.confd c8bffecdbd09583bec7720b5f6a5b9680b0eae055fd63f10736cf2fe25378b95acddf910e60f6408c9637a3fe48050299cfb500a6bc9a95a0ef135d5a4c4d5f9 slurpd.initd"