Imported Upstream version 0.66.1
[hcoop/debian/courier-authlib.git] / courier-authlib.spec.in
index 93a5610..5256fdd 100644 (file)
@@ -1,6 +1,5 @@
-# $Id: courier-authlib.spec.in,v 1.18 2009/12/18 04:24:20 mrsam Exp $
 #
-# Copyright 1998 - 2008 Double Precision, Inc.  See COPYING for
+# Copyright 1998 - 2010 Double Precision, Inc.  See COPYING for
 # distribution information.
 
 # No dist tag from mock; detect mandrake, redhat, etc. the old fashioned way
@@ -10,6 +9,8 @@
 %define courier_release %{nil}
 %endif
 
+%define using_systemd %(test -d /etc/systemd && echo 1 || echo 0)
+
 ################################################################################
 
 Name:           courier-authlib
@@ -18,7 +19,7 @@ Release:        1%{?dist}%{?courier_release}
 Summary:        Courier authentication library
 
 Group:          System Environment/Daemons
-License:        GPL
+License:        GPLv3
 URL:            http://www.courier-mta.org
 
 ################################################################################
@@ -31,7 +32,7 @@ BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 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
@@ -45,16 +46,13 @@ BuildRequires:      %{_includedir}/ltdl.h
 BuildRequires:      redhat-rpm-config
 %endif
 
-
+%if %using_systemd
+Requires(post):     /bin/systemctl
+Requires(preun):    /bin/systemctl
+%else
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/chkconfig
-
-# Provides by symlinks in this release, for compatibility with 0.60,
-# will be removed in 0.62. This is temporary hack:
-
-%define dummysuffix %(test "%{_lib}" = "lib64" && echo '()(64bit)')
-
-Provides: libcourierauth.so.0%{dummysuffix} libcourierauthsasl.so.0%{dummysuffix} libcourierauthsaslclient.so.0%{dummysuffix} libcourierauthcommon.so.0%{dummysuffix}
+%endif
 
 ################################################################################
 
@@ -80,7 +78,7 @@ are not needed at runtime.
 
 %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}
 
@@ -114,11 +112,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.
 
+%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
 
-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}
 
@@ -144,7 +153,7 @@ program, then communicates through messages on stdin and stdout.
 
 %prep
 %setup -q
-%configure -C --with-redhat
+PATH=/usr/bin:$PATH %configure -C --with-redhat
 
 %build
 %{__make} -s %{_smp_mflags}
@@ -175,6 +184,7 @@ cat >configfiles.base <<EOF
 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
@@ -197,6 +207,24 @@ done
 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
@@ -207,6 +235,9 @@ do
        libauthmysql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.mysql
                ;;
+       libauthsqlite*)
+               echo "%{_libdir}/courier-authlib/$fn" >>configfiles.sqlite
+               ;;
        libauthpgsql*)
                echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pgsql
                ;;
@@ -221,27 +252,56 @@ do
                ;;
        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 \
-        $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/courier-authlib
+        $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/courier-authlib
+%endif
 
 %post
 %{_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
 
+/bin/systemctl daemon-reload || :
+/bin/systemctl enable courier-authlib.service &> /dev/null || :
+%else
 /sbin/chkconfig --del courier-authlib
 /sbin/chkconfig --add courier-authlib
-
+%endif
 %preun
 if test -x %{_sbindir}/authdaemond
 then
-       %{_sbindir}/authdaemond >/dev/null 2>&1 || /bin/true
+       %{_sbindir}/authdaemond stop >/dev/null 2>&1 || /bin/true
 fi
 
 if test "$1" = "0"
 then
-       /sbin/chkconfig --del courier-authlib
+%if %using_systemd
+        /bin/systemctl stop courier-authlib.service
+        /bin/systemctl disable courier-authlib.service
+%else
+        /sbin/chkconfig --del courier-authlib
+%endif
 fi
 
+%postun
+%if %using_systemd
+/bin/systemctl daemon-reload || :
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -250,7 +310,12 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(-,root,root,-)
 %doc README README*html README.authmysql.myownquery README.ldap
 %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/*
+%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
@@ -264,6 +329,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/courierauthconfig
 %{_includedir}/*
 %{_mandir}/man3/*
+%{_libdir}/courier-authlib/*.la
 %doc authlib.html auth_*.html
 
 %files -f configfiles.ldap ldap
@@ -272,6 +338,8 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -f configfiles.mysql mysql
 
+%files -f configfiles.sqlite sqlite
+
 %files -f configfiles.pgsql pgsql
 
 %files -f configfiles.pipe pipe