]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blobdiff - openldap/openldap.nm
gobject-introspection: Update to 1.39.3.
[people/ms/ipfire-3.x.git] / openldap / openldap.nm
index c6bfb7ee2ec901da58859bf99130d6280d872e1b..25880615effdc8a5d60f16c5130c2e0603963526 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = openldap
-version    = 2.4.28
-release    = 2
+version    = 2.4.32
+release    = 5
 
 groups     = System/Daemons
 url        = http://www.openldap.org/
@@ -33,6 +33,7 @@ build
                libtool-devel
                openssl-devel
                pth-devel
+               shadow-utils
        end
 
        configure_options += \
@@ -49,12 +50,13 @@ build
                --enable-overlays=mod \
                --enable-sql=no \
                --enable-ndb=no \
+               --enable-hdb=yes \
+               --enable-monitor=yes \
                --disable-static
 
-# Doens't seem to work in chroot.
-#define test
-#      cd %{DIR_APP} && make check
-#endef
+       prepare_cmds
+               %{create_user}
+       end
 
        install_cmds
                mv -v %{BUILDROOT}%{libdir}/slapd %{BUILDROOT}/usr/sbin/slapd
@@ -68,23 +70,82 @@ build
                ln -svf slapd %{BUILDROOT}/usr/sbin/slapschema
                ln -svf slapd %{BUILDROOT}/usr/sbin/slaptest
 
-               rm -rvf %{BUILDROOT}/var/openldap-data
+               # Remove unneeded files.
+               rm -rvf %{BUILDROOT}%{sysconfidir}/slapd.{conf,ldif}
+               rm -rvf %{BUILDROOT}%{localstatedir}/openldap-data
+               rm -rvf %{BUILDROOT}%{localstatedir}/run
 
                for LINK in lber ldap ldap_r; do
                        chmod -v 0755 %{BUILDROOT}%{libdir}/$(readlink %{BUILDROOT}%{libdir}/lib${LINK}.so)
                done
 
-               # Install configuration
-               mkdir -pv %{BUILDROOT}/etc/%{name}
-               cp -vf %{DIR_SOURCE}/slapd.conf %{BUILDROOT}/etc/%{name}/slapd.conf
-
-               mkdir -pv %{BUILDROOT}/var/lib/ldap
-               chmod 700 -Rv %{BUILDROOT}/var/lib/ldap
+               # Install configuration file.
+               mkdir -pv %{BUILDROOT}%{datadir}/%{name}
+               cp -vf %{DIR_SOURCE}/openldap-conf.ldif \
+                        %{BUILDROOT}%{datadir}/%{name}/
+
+               # Install ldapcert.sh script.
+               install -m 0755 %{DIR_SOURCE}/ldapcert.sh \
+                       %{BUILDROOT}%{datadir}/%{name}/
+
+               # Create directoires.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/%{name}/slapd.d
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/%{name}/certs
+               mkdir -pv %{BUILDROOT}/run/%{name}
+               mkdir -pv %{BUILDROOT}%{sharedstatedir}/ldap
+
+               # Fix permissions and ownerships.
+               chown -Rv ldap:ldap %{BUILDROOT}%{sysconfdir}/%{name}
+               chown ldap:ldap %{BUILDROOT}/run/%{name}
+               chown ldap:ldap %{BUILDROOT}%{sharedstatedir}/ldap
+               chmod 700 -Rv %{BUILDROOT}%{sharedstatedir}/ldap
        end
 end
 
+create_user
+       getent group ldap >/dev/null || groupadd -r ldap
+       getent passwd ldap >/dev/null || useradd -r -g ldap \
+               -d /var/lib/ldap -s /sbin/nologin -c "OpenLDAP server" ldap
+end
+
 packages
        package %{name}
+               prerequires
+                       openssl
+                       shadow-utils
+               end
+
+               script prein
+                       %{create_user}
+               end
+
+               datafiles
+                       %{sysconfdir}/%{name}/slapd.d
+                       %{sysconfdir}/%{name}/certs
+                       %{sharedstatedir}/ldap
+               end
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl enable openldap.socket >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       systemctl --no-reload disable openldap.service >/dev/null 2>&1 || :
+                       systemctl --no-reload disable openldap.socket >/dev/null 2>&1 || :
+                       systemctl stop openldap.service >/dev/null 2>&1 || :
+                       systemctl stop openldap.socket >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl try-restart openldap.service >/dev/null 2>&1 || :
+               end
+       end
 
        package %{name}-libs
                template LIBS