summaryrefslogtreecommitdiff
path: root/core/openldap/PKGBUILD
blob: 283f230f862500746e4af4d2cf203a6832527ba1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# $Id: PKGBUILD 179825 2013-03-10 01:22:10Z eric $
# Maintainer:

pkgbase=openldap
pkgname=('libldap' 'openldap')
pkgver=2.4.34
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.openldap.org/"
license=('custom')
makedepends=('libltdl' 'libsasl' 'e2fsprogs' 'util-linux')
options=('!makeflags')
source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
        slapd.service slapd.tmpfiles ntlm.patch)
sha1sums=('39c81f32b8c7af1e20047535f0b9ea894235c588'
          '9c7f3441e6a6ee13cdcfe8d965081c7a574c3393'
          'f86a82e35ebe15026980467c9dee4007e686b795'
          'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef')

build() {
  cd "${srcdir}"/${pkgbase}-${pkgver}
  patch -Np1 -i "${srcdir}"/ntlm.patch

  sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in
  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
  sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in

  ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \
    --sysconfdir=/etc --localstatedir=/var/lib/openldap \
    --enable-ipv6 --enable-syslog --enable-local \
    --enable-bdb --enable-hdb \
    --enable-crypt --enable-dynamic \
    --with-threads --disable-wrappers \
    --without-fetch \
    --enable-spasswd --with-cyrus-sasl \
    --enable-overlays=mod --enable-modules=yes
  make
}

check() {
  cd "${srcdir}"/${pkgbase}-${pkgver}
  make test
}

package_libldap() {
  pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
  depends=('libsasl' 'e2fsprogs')
  backup=('etc/openldap/ldap.conf')
  options=('!libtool')

  cd "${srcdir}"/${pkgbase}-${pkgver}
  for dir in include libraries doc/man/man3 ; do
    pushd ${dir}
    make DESTDIR="${pkgdir}" install
    popd
  done
  install -Dm644 doc/man/man5/ldap.conf.5.tmp "${pkgdir}"/usr/share/man/man5/ldap.conf.5
  
# get rid of duplicate default conf files
  rm "${pkgdir}"/etc/openldap/*.default

  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
}

package_openldap() {
  pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
  depends=("libldap>=${pkgver}" 'libltdl')
  backup=('etc/openldap/slapd.conf')
  options=('!libtool' 'emptydirs')
  install=openldap.install

  cd "${srcdir}"/${pkgbase}-${pkgver}
  for dir in clients servers doc/man/man{1,5,8} ; do
    pushd ${dir}
    make DESTDIR="${pkgdir}" install
    popd
  done
  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/sbin/slapd

  chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
  chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}

  install -dm700 -o 439 -g 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
  install -Dm644 "${srcdir}"/slapd.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/slapd.conf
  install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}