Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / courier-authlib.spec.in
index 8ca0bc6..508c4d3 100644 (file)
@@ -1,13 +1,16 @@
-# $Id: courier-authlib.spec.in,v 1.8 2007/04/22 18:38:04 mrsam Exp $
 #
 #
-# Copyright 1998 - 2006 Double Precision, Inc.  See COPYING for
+# Copyright 1998 - 2017 Double Precision, Inc.  See COPYING for
 # distribution information.
 
 # No dist tag from mock; detect mandrake, redhat, etc. the old fashioned way
 %if 0%{!?dist:1}
 %define courier_release %(test -e /etc/mandrake-release -o -e /etc/mandriva-release && release="mdk" ; if test $? != 0; then release="`rpm -q --queryformat='.rh%{VERSION}' redhat-release 2>/dev/null`" ; if test $? != 0 ; then release="`rpm -q --queryformat='.fc%{VERSION}' fedora-release 2>/dev/null`" ; if test $? != 0 ; then release="" ; fi ; fi ; fi ; echo "$release")
 # distribution information.
 
 # No dist tag from mock; detect mandrake, redhat, etc. the old fashioned way
 %if 0%{!?dist:1}
 %define courier_release %(test -e /etc/mandrake-release -o -e /etc/mandriva-release && release="mdk" ; if test $? != 0; then release="`rpm -q --queryformat='.rh%{VERSION}' redhat-release 2>/dev/null`" ; if test $? != 0 ; then release="`rpm -q --queryformat='.fc%{VERSION}' fedora-release 2>/dev/null`" ; if test $? != 0 ; then release="" ; fi ; fi ; fi ; echo "$release")
+%else
+%define courier_release %{nil}
 %endif
 
 %endif
 
+%define using_systemd %(test -d /etc/systemd && echo 1 || echo 0)
+
 ################################################################################
 
 Name:           courier-authlib
 ################################################################################
 
 Name:           courier-authlib
@@ -16,12 +19,12 @@ Release:        1%{?dist}%{?courier_release}
 Summary:        Courier authentication library
 
 Group:          System Environment/Daemons
 Summary:        Courier authentication library
 
 Group:          System Environment/Daemons
-License:        GPL
+License:        GPLv3
 URL:            http://www.courier-mta.org
 
 ################################################################################
 
 URL:            http://www.courier-mta.org
 
 ################################################################################
 
-Source:         http://dl.sourceforge.net/courier/%{name}-%{version}.tar.bz2
+Source:         http://downloads.sourceforge.net/courier/%{name}-%{version}.tar.bz2
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -29,22 +32,36 @@ BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:      libtool
 BuildRequires:      openldap-devel
 
 BuildRequires:      libtool
 BuildRequires:      openldap-devel
-BuildRequires:      mysql-devel zlib-devel
+BuildRequires:      mysql-devel zlib-devel sqlite-devel
 BuildRequires:      postgresql-devel
 BuildRequires:      gdbm-devel
 BuildRequires:      pam-devel
 BuildRequires:      expect
 BuildRequires:      gcc-c++
 BuildRequires:      postgresql-devel
 BuildRequires:      gdbm-devel
 BuildRequires:      pam-devel
 BuildRequires:      expect
 BuildRequires:      gcc-c++
+BuildRequires:     redhat-rpm-config
+BuildRequires:      courier-unicode-devel
 
 BuildRequires:      %{_includedir}/ltdl.h
 
 %if 0%(rpm -q redhat-release >/dev/null 2>&1 || rpm -q fedora-release >/dev/null 2>&1 || exit 0; echo "1")
 BuildRequires:      redhat-rpm-config
 
 BuildRequires:      %{_includedir}/ltdl.h
 
 %if 0%(rpm -q redhat-release >/dev/null 2>&1 || rpm -q fedora-release >/dev/null 2>&1 || exit 0; echo "1")
 BuildRequires:      redhat-rpm-config
+BuildRequires:      /usr/bin/ps
 %endif
 
 %endif
 
-
+%if %using_systemd
+Requires(post):     systemd
+Requires(preun):    systemd
+Requires(postun):    systemd
+%else
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/chkconfig
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/chkconfig
+%endif
+
+%define need_perl_generators %(if rpm -q fedora-release >/dev/null 2>/dev/null; then echo "1"; exit 0; fi; echo "1"; exit 1)
+
+%if %need_perl_generators
+BuildRequires: perl-generators
+%endif
 
 ################################################################################
 
 
 ################################################################################
 
@@ -70,7 +87,7 @@ are not needed at runtime.
 
 %package userdb
 
 
 %package userdb
 
-Summary:    userdb support for the Courier authentication library
+Summary:    Userdb support for the Courier authentication library
 Group:      System Environment/Daemons
 Requires:   courier-authlib = 0:%{version}-%{release}
 
 Group:      System Environment/Daemons
 Requires:   courier-authlib = 0:%{version}-%{release}
 
@@ -104,11 +121,22 @@ Requires:   courier-authlib = 0:%{version}-%{release}
 This package installs MySQL support for the Courier authentication library.
 Install this package in order to be able to authenticate using MySQL.
 
 This package installs MySQL support for the Courier authentication library.
 Install this package in order to be able to authenticate using MySQL.
 
+%package sqlite
+
+Summary:    SQLite support for the Courier authentication library
+Group:      System Environment/Daemons
+Requires:   courier-authlib = 0:%{version}-%{release}
+
+%description sqlite
+This package installs SQLite support for the Courier authentication library.
+Install this package in order to be able to authenticate using an SQLite-based
+database file.
+
 ################################################################################
 
 %package pgsql
 
 ################################################################################
 
 %package pgsql
 
-Summary:    MySQL support for the Courier authentication library
+Summary:    PostgreSQL support for the Courier authentication library
 Group:      System Environment/Daemons
 Requires:   courier-authlib = 0:%{version}-%{release}
 
 Group:      System Environment/Daemons
 Requires:   courier-authlib = 0:%{version}-%{release}
 
@@ -134,22 +162,24 @@ program, then communicates through messages on stdin and stdout.
 
 %prep
 %setup -q
 
 %prep
 %setup -q
-%configure --with-redhat
+PATH=/usr/bin:$PATH %configure -C --with-redhat
 
 %build
 
 %build
-%{__make} %{_smp_mflags}
+%{__make} -s %{_smp_mflags}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 MAKEFLAGS= %{__make} -j 1 install DESTDIR=$RPM_BUILD_ROOT
 %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/courier-authlib/*.a
 %{__install} -m 555 sysconftool $RPM_BUILD_ROOT%{_libexecdir}/courier-authlib
 
 %install
 rm -rf $RPM_BUILD_ROOT
 MAKEFLAGS= %{__make} -j 1 install DESTDIR=$RPM_BUILD_ROOT
 %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/courier-authlib/*.a
 %{__install} -m 555 sysconftool $RPM_BUILD_ROOT%{_libexecdir}/courier-authlib
-%{__install} -m 555 authmigrate $RPM_BUILD_ROOT%{_libexecdir}/courier-authlib
 
 ./courierauthconfig --configfiles >configtmp
 
 ./courierauthconfig --configfiles >configtmp
-. configtmp
+. ./configtmp
 
 
-./authmksock $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/socket || exit 1
+d=`pwd`
+cd $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon || exit 1
+$d/authmksock ./socket || exit 1
+cd $d || exit 1
 touch $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/pid.lock || exit 1
 touch $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/pid || exit 1
 %{__chmod} 777 $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/socket || exit 1
 touch $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/pid.lock || exit 1
 touch $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/pid || exit 1
 %{__chmod} 777 $RPM_BUILD_ROOT%{_localstatedir}/spool/authdaemon/socket || exit 1
@@ -163,6 +193,7 @@ cat >configfiles.base <<EOF
 EOF
 
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.mysql
 EOF
 
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.mysql
+echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.sqlite
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.ldap
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.pgsql
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.userdb
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.ldap
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.pgsql
 echo "%defattr(-,$mailuser,$mailgroup,-)" >configfiles.userdb
@@ -185,6 +216,24 @@ done
 for f in $RPM_BUILD_ROOT%{_libdir}/courier-authlib/*
 do
        fn=`basename $f`
 for f in $RPM_BUILD_ROOT%{_libdir}/courier-authlib/*
 do
        fn=`basename $f`
+
+       # Remove *.la for authentication modules, keep the ones
+       # for client libraries. Do this before we sort them into buckets,
+       # below.
+
+       case "$fn" in
+       *.la)
+               case "$fn" in
+               libcourierauth*)
+                       ;;
+               *)
+                       rm -f "$f"
+                       ;;
+               esac
+               continue
+               ;;
+       esac
+
        case "$fn" in
        libauthpipe*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pipe
        case "$fn" in
        libauthpipe*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pipe
@@ -195,6 +244,9 @@ do
        libauthmysql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.mysql
                ;;
        libauthmysql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.mysql
                ;;
+       libauthsqlite*)
+               echo "%{_libdir}/courier-authlib/$fn" >>configfiles.sqlite
+               ;;
        libauthpgsql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pgsql
                ;;
        libauthpgsql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pgsql
                ;;
@@ -209,27 +261,55 @@ do
                ;;
        esac
 done
                ;;
        esac
 done
+%if %using_systemd
+%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}
+%{__install} -m 555 courier-authlib.sysvinit $RPM_BUILD_ROOT%{_datadir}
+
+%{__mkdir_p} $RPM_BUILD_ROOT/lib/systemd/system
+%{__install} -m 644 courier-authlib.service $RPM_BUILD_ROOT/lib/systemd/system
+%else
 %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
 %{__install} -m 555 courier-authlib.sysvinit \
 %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
 %{__install} -m 555 courier-authlib.sysvinit \
-        $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/courier-authlib
+        $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/courier-authlib
+%endif
 
 %post
 
 %post
-%{_libexecdir}/courier-authlib/authmigrate >/dev/null
 %{_libexecdir}/courier-authlib/sysconftool %{_sysconfdir}/authlib/*.dist >/dev/null
 %{_libexecdir}/courier-authlib/sysconftool %{_sysconfdir}/authlib/*.dist >/dev/null
+%if %using_systemd
+if test -f /etc/init.d/courier-authlib
+then
+# Upgrade to systemd
 
 
+        /sbin/chkconfig --del courier-authlib
+        /bin/systemctl stop courier-authlib.service || :
+fi
+%systemd_post courier-authlib.service
+if [ $1 -eq 1 ]
+then
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+%else
 /sbin/chkconfig --del courier-authlib
 /sbin/chkconfig --add courier-authlib
 /sbin/chkconfig --del courier-authlib
 /sbin/chkconfig --add courier-authlib
-
+%endif
 %preun
 %preun
-if test -x %{_sbindir}/authdaemond
+if test "$1" = "0"
 then
 then
-       %{_sbindir}/authdaemond >/dev/null 2>&1 || /bin/true
+%if %using_systemd
+%systemd_preun courier-authlib.service
+%else
+        /sbin/chkconfig --del courier-authlib
+%endif
 fi
 
 fi
 
-if test "$1" = "0"
+%postun
+%if %using_systemd
+if [ $1 -eq 0 ]
 then
 then
-       /sbin/chkconfig --del courier-authlib
+    /bin/systemctl daemon-reload
 fi
 fi
+%systemd_postun_with_restart courier-authlib.service
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -238,8 +318,13 @@ rm -rf $RPM_BUILD_ROOT
 %files -f configfiles.base
 %defattr(-,root,root,-)
 %doc README README*html README.authmysql.myownquery README.ldap
 %files -f configfiles.base
 %defattr(-,root,root,-)
 %doc README README*html README.authmysql.myownquery README.ldap
-%doc NEWS COPYING* AUTHORS ChangeLog authldap.schema
+%doc NEWS COPYING* AUTHORS ChangeLog
+%if %using_systemd
+/lib/systemd/system/*
+%attr(755, bin, bin) %{_datadir}/courier-authlib.sysvinit
+%else
 /etc/rc.d/init.d/*
 /etc/rc.d/init.d/*
+%endif
 %ghost %attr(600, root, root) %{_localstatedir}/spool/authdaemon/pid.lock
 %ghost %attr(644, root, root) %{_localstatedir}/spool/authdaemon/pid
 %ghost %attr(-, root, root) %{_localstatedir}/spool/authdaemon/socket
 %ghost %attr(600, root, root) %{_localstatedir}/spool/authdaemon/pid.lock
 %ghost %attr(644, root, root) %{_localstatedir}/spool/authdaemon/pid
 %ghost %attr(-, root, root) %{_localstatedir}/spool/authdaemon/socket
@@ -253,14 +338,17 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/courierauthconfig
 %{_includedir}/*
 %{_mandir}/man3/*
 %{_bindir}/courierauthconfig
 %{_includedir}/*
 %{_mandir}/man3/*
+%{_libdir}/courier-authlib/*.la
 %doc authlib.html auth_*.html
 
 %files -f configfiles.ldap ldap
 %defattr(-,root,root,-)
 %doc authlib.html auth_*.html
 
 %files -f configfiles.ldap ldap
 %defattr(-,root,root,-)
-%doc authldap.schema
+%doc authldap.schema authldap.ldif
 
 %files -f configfiles.mysql mysql
 
 
 %files -f configfiles.mysql mysql
 
+%files -f configfiles.sqlite sqlite
+
 %files -f configfiles.pgsql pgsql
 
 %files -f configfiles.pipe pipe
 %files -f configfiles.pgsql pgsql
 
 %files -f configfiles.pipe pipe
@@ -276,4 +364,3 @@ rm -rf $RPM_BUILD_ROOT
 
 * Sun Oct  3 2004 Mr. Sam <sam@email-scan.com>                          0.50-1
 - Initial build.
 
 * Sun Oct  3 2004 Mr. Sam <sam@email-scan.com>                          0.50-1
 - Initial build.
-