-# $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
%define courier_release %{nil}
%endif
+%define using_systemd %(test -d /etc/systemd && echo 1 || echo 0)
+
################################################################################
Name: courier-authlib
Summary: Courier authentication library
Group: System Environment/Daemons
-License: GPL
+License: GPLv3
URL: http://www.courier-mta.org
################################################################################
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: redhat-rpm-config
+BuildRequires: courier-unicode-devel
BuildRequires: %{_includedir}/ltdl.h
BuildRequires: redhat-rpm-config
%endif
-
+%if %using_systemd
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%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
################################################################################
%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}
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}
%prep
%setup -q
-%configure -C --with-redhat
+PATH=/usr/bin:$PATH %configure -C --with-redhat
%build
%{__make} -s %{_smp_mflags}
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
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
libauthmysql*)
echo "%{_libdir}/courier-authlib/$fn" >>configfiles.mysql
;;
+ libauthsqlite*)
+ echo "%{_libdir}/courier-authlib/$fn" >>configfiles.sqlite
+ ;;
libauthpgsql*)
echo "%{_libdir}/courier-authlib/$fn" >>configfiles.pgsql
;;
;;
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
+%systemd_post courier-authlib.service
+%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
+%systemd_preun courier-authlib.service
+%else
+ /sbin/chkconfig --del courier-authlib
+%endif
fi
+%postun
+%if %using_systemd
+%systemd_postun_with_restart courier-authlib.service
+%endif
+
%clean
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
%{_bindir}/courierauthconfig
%{_includedir}/*
%{_mandir}/man3/*
+%{_libdir}/courier-authlib/*.la
%doc authlib.html auth_*.html
%files -f configfiles.ldap ldap
%files -f configfiles.mysql mysql
+%files -f configfiles.sqlite sqlite
+
%files -f configfiles.pgsql pgsql
%files -f configfiles.pipe pipe