]> git.pld-linux.org Git - packages/cyrus-imapd.git/blobdiff - cyrus-imapd.spec
- move lots of admin-only/system-only stuff to sbin and lib, yet keep compat
[packages/cyrus-imapd.git] / cyrus-imapd.spec
index 436b19efb7ca9088fcdf84d53c7920631728ec45..e319cd8cf2528d42882c59bbe2921d4f25c5d0ab 100644 (file)
@@ -1,18 +1,19 @@
 #
-# TODO:
-# - fix path in .init for lib64
-#
-%include       /usr/lib/rpm/macros.perl
-Summary:       High-performance mail store with imap and pop3
+# Conditional build:
+%bcond_without perl            # build with perl
+%bcond_without shared          # build with shared patch (not updated)
+
+%{?with_perl:%include  /usr/lib/rpm/macros.perl}
+Summary:       High-performance mail store with IMAP and POP3
 Summary(pl.UTF-8):     Wysoko wydajny serwer IMAP i POP3
 Summary(pt_BR.UTF-8):  Um servidor de mail de alto desempenho que suporta IMAP e POP3
 Name:          cyrus-imapd
-Version:       2.3.9
-Release:       0.1
+Version:       2.4.11
+Release:       1
 License:       BSD-like
-Group:         Networking/Daemons
-Source0:       ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/%{name}-%{version}.tar.gz
-# Source0-md5: 113433c1fdc777e3b0466b5ce643b8bc
+Group:         Networking/Daemons/POP3
+Source0:       ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
+# Source0-md5: d4a066e979adbe85679a6e239d64ee74
 Source1:       cyrus-README
 Source2:       cyrus-procmailrc
 Source3:       cyrus-deliver-wrapper.c
@@ -24,9 +25,16 @@ Source9:     %{name}.pamd
 Source10:      %{name}-pop.pamd
 Source11:      %{name}.init
 Source12:      cyrus.conf
+Source13:      cyrus-sync.init
 Patch0:                %{name}-et.patch
+# http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3095
 Patch1:                %{name}-shared.patch
-URL:           http://andrew2.andrew.cmu.edu/cyrus/imapd/
+# http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3094
+Patch2:                %{name}-verifydbver.patch
+Patch3:                gcc44.patch
+Patch4:                glibc.patch
+Patch6:                makeopt.patch
+URL:           http://www.cyrusimap.org/
 BuildRequires: autoconf >= 2.54
 BuildRequires: automake
 BuildRequires: cyrus-sasl-devel >= 1.5.27
@@ -36,18 +44,20 @@ BuildRequires:      libcom_err-devel >= 1.21
 BuildRequires: libtool
 BuildRequires: net-snmp-devel
 BuildRequires: openssl-devel >= 0.9.7d
-BuildRequires: perl-devel >= 1:5.8.0
-BuildRequires: rpm-perlprov
+BuildRequires: patchutils
+%{?with_perl:BuildRequires:    perl-devel >= 1:5.8.0}
+%{?with_perl:BuildRequires:    rpm-perlprov}
 BuildRequires: rpmbuild(macros) >= 1.268
 Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/userdel
 Requires(pre): /bin/id
 Requires(pre): /usr/sbin/useradd
-Requires:      %{name}-libs = %{version}-%{release}
-Requires:      rc-scripts
+%{?with_shared:Requires:       %{name}-libs = %{version}-%{release}}
+Requires:      rc-scripts >= 0.4.0.18
+%{!?with_shared:Obsoletes:     %{name}-libs}
 # needed by scripts from %{_bindir}
 Requires:      pam >= 0.79.0
-Requires:      perl-%{name} = %{version}-%{release}
+%{?with_perl:Requires: perl-%{name} = %{version}-%{release}}
 Provides:      imapdaemon
 Provides:      pop3daemon
 Provides:      user(cyrus)
@@ -161,20 +171,41 @@ Perl interface to cyrus-imapd library.
 %description -n perl-%{name} -l pl.UTF-8
 Perlowy interfejs do biblioteki cyrus-imapd.
 
+%package doc
+Summary:       Cyrus-IMAP documentation
+Group:         Documentation
+
+%description doc
+Cyrus-IMAP HTML documentation.
+
 %prep
 %setup -q
+%patch6 -p1
 %patch0 -p1
+%if %{with shared}
+lsdiff --strip 1 %{PATCH1} |grep -E '(configure.in|Makefile.in)'| xargs %{__sed} -i -e '
+       s/\.o/.lo/g
+       s/\.a/.la/g
+'
 %patch1 -p1
+%endif
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 rm -rf autom4te.cache
 
+cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
+
 %build
 cd makedepend
+%{__libtoolize}
 %{__aclocal}
 %{__autoconf}
+cp -f %{_datadir}/automake/config.* .
 %configure
 %{__make}
-PATH=$PATH:`pwd`; export PATH
+PATH=$PATH:$(pwd); export PATH
 cd ..
 %{__libtoolize}
 %{__aclocal} -I cmulocal
@@ -183,16 +214,16 @@ cd ..
 cp -f %{_datadir}/automake/config.* .
 cp -f %{_datadir}/automake/install-sh .
 %configure \
-       --with-auth=unix \
-       --without-libwrap \
        --with-cyrus-prefix=%{_libexecdir} \
        --with-service-path=%{_libexecdir} \
        --with-com_err=/usr \
-       --with-perl=%{__perl} \
+       --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
+       --without-libwrap \
        --enable-nntp \
        --enable-replication
-%{__make} \
-       INSTALLDIRS=vendor
+%{__make} -j1 \
+       INSTALLDIRS=vendor \
+       VERSION=%{version}
 
 %{__cc} %{rpmcflags} \
        -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
@@ -213,37 +244,54 @@ touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT \
-       CYRUS_USER="`id -u`" \
-       CYRUS_GROUP="`id -g`" \
+       CYRUS_USER=%(id -u) \
+       CYRUS_GROUP=%(id -g) \
        INSTALLDIRS=vendor
 
-install deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
+install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
 
-install %{SOURCE1}     %{SOURCE2} %{SOURCE4} %{SOURCE5} .
-install %{SOURCE6}     $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
-install %{SOURCE7}     $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
-install %{SOURCE9}     $RPM_BUILD_ROOT/etc/pam.d/imap
-install %{SOURCE10}    $RPM_BUILD_ROOT/etc/pam.d/pop
+cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
+cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
+cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
-install %{SOURCE12}    $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
+sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
+
+# move lots of admin-only/system-only stuff to sbin and lib
+# but keep compat links as they are used in configs
+for i in master reconstruct quota deliver; do
+       mv $RPM_BUILD_ROOT{%{_libexecdir}/$i,%{_sbindir}/cyr$i}
+       ln -s %{_sbindir}/cyr$i $RPM_BUILD_ROOT%{_libexecdir}/$i
+done
+for i in mbpath ctl_mboxlist ctl_deliver ctl_cyrusdb squatter \
+                tls_prune ipurge cyrdump cvt_cyrusdb chk_cyrus arbitron \
+        cyr_expire; do
+       mv $RPM_BUILD_ROOT{%{_libexecdir},%{_sbindir}}/$i
+       ln -s %{_sbindir}/$i $RPM_BUILD_ROOT%{_libexecdir}
+done
+# We rename some utils, so we need to sort out the manpages
+for i in master reconstruct quota deliver; do
+       mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
+done
 
-mv -f $RPM_BUILD_ROOT%{_libexecdir}/master     $RPM_BUILD_ROOT%{_libexecdir}/cyrus-master
-mv -f $RPM_BUILD_ROOT%{_mandir}/man8/master.8  $RPM_BUILD_ROOT%{_mandir}/man8/cyrus-master.8
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
-rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
 
 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
 
-find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
-
 # make hashed dirs
-for i in `%{__perl} -le 'print for "a".."z"'`; do
+for i in $(%{__perl} -le 'print for "a".."z"'); do
        install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
        install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
        install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
        install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
 done
 
+%if %{with perl}
+find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
+%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -251,19 +299,23 @@ rm -rf $RPM_BUILD_ROOT
 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
 
 %post
-/sbin/chkconfig --add cyrus-imapd
 touch /var/lib/imap/faillog
 chown cyrus:mail /var/lib/imap/faillog
 chmod 640 /var/lib/imap/faillog
 cd /var/lib/imap
 chattr +S . user quota user/* quota/* 2>/dev/null ||:
 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
+
+/sbin/chkconfig --add cyrus-imapd
 %service cyrus-imapd restart "cyrus imap daemon"
+%service cyrus-sync restart "cyrus replication service"
 
 %preun
 if [ "$1" = "0" ]; then
        %service cyrus-imapd stop
+       %service cyrus-sync stop
        /sbin/chkconfig --del cyrus-imapd
+       /sbin/chkconfig --del cyrus-sync
 fi
 
 %postun
@@ -277,53 +329,87 @@ fi
 %files
 %defattr(644,root,root,755)
 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
-%doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT doc/*.html tools
+%doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT tools
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
+%attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
-%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_bindir}/cyradm
+%attr(755,root,root) %{_bindir}/imtest
+%attr(755,root,root) %{_bindir}/installsieve
+%attr(755,root,root) %{_bindir}/lmtptest
+%attr(755,root,root) %{_bindir}/mupdatetest
+%attr(755,root,root) %{_bindir}/nntptest
+%attr(755,root,root) %{_bindir}/pop3test
+%attr(755,root,root) %{_bindir}/sieveshell
+%attr(755,root,root) %{_bindir}/sivtest
+%attr(755,root,root) %{_bindir}/smtptest
+%attr(755,root,root) %{_bindir}/synctest
+
+%attr(4754,cyrus,mail) %{_sbindir}/cyrdeliver
+%attr(755,root,root) %{_sbindir}/arbitron
+%attr(755,root,root) %{_sbindir}/chk_cyrus
+%attr(755,root,root) %{_sbindir}/ctl_cyrusdb
+%attr(755,root,root) %{_sbindir}/ctl_deliver
+%attr(755,root,root) %{_sbindir}/ctl_mboxlist
+%attr(755,root,root) %{_sbindir}/cvt_cyrusdb
+%attr(755,root,root) %{_sbindir}/cyr_expire
+%attr(755,root,root) %{_sbindir}/cyrdump
+%attr(755,root,root) %{_sbindir}/cyrmaster
+%attr(755,root,root) %{_sbindir}/cyrquota
+%attr(755,root,root) %{_sbindir}/cyrreconstruct
+%attr(755,root,root) %{_sbindir}/ipurge
+%attr(755,root,root) %{_sbindir}/mbpath
+%attr(755,root,root) %{_sbindir}/squatter
+%attr(755,root,root) %{_sbindir}/tls_prune
+
 %dir %{_libexecdir}
-%attr(4754,cyrus,mail) %{_libexecdir}/deliver
 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
-%attr(755,root,root) %{_libexecdir}/arbitron
-%attr(755,root,root) %{_libexecdir}/chk_cyrus
-%attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
-%attr(755,root,root) %{_libexecdir}/ctl_deliver
-%attr(755,root,root) %{_libexecdir}/ctl_mboxlist
-%attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
 %attr(755,root,root) %{_libexecdir}/cyr_dbtool
-%attr(755,root,root) %{_libexecdir}/cyrdump
-%attr(755,root,root) %{_libexecdir}/cyr_expire
-%attr(755,root,root) %{_libexecdir}/cyrus-master
+%attr(755,root,root) %{_libexecdir}/cyr_df
+%attr(755,root,root) %{_libexecdir}/cyr_sequence
+%attr(755,root,root) %{_libexecdir}/cyr_synclog
+%attr(755,root,root) %{_libexecdir}/cyr_userseen
 %attr(755,root,root) %{_libexecdir}/fetchnews
 %attr(755,root,root) %{_libexecdir}/fud
 %attr(755,root,root) %{_libexecdir}/imapd
-%attr(755,root,root) %{_libexecdir}/ipurge
 %attr(755,root,root) %{_libexecdir}/lmtpd
 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
-%attr(755,root,root) %{_libexecdir}/make_md5
-%attr(755,root,root) %{_libexecdir}/sync_client
-%attr(755,root,root) %{_libexecdir}/sync_reset
-%attr(755,root,root) %{_libexecdir}/sync_server
 %attr(755,root,root) %{_libexecdir}/mbexamine
-%attr(755,root,root) %{_libexecdir}/mbpath
 %attr(755,root,root) %{_libexecdir}/nntpd
 %attr(755,root,root) %{_libexecdir}/notifyd
 %attr(755,root,root) %{_libexecdir}/pop3d
 %attr(755,root,root) %{_libexecdir}/pop3proxyd
 %attr(755,root,root) %{_libexecdir}/proxyd
-%attr(755,root,root) %{_libexecdir}/quota
-%attr(755,root,root) %{_libexecdir}/reconstruct
 %attr(755,root,root) %{_libexecdir}/sievec
+%attr(755,root,root) %{_libexecdir}/sieved
 %attr(755,root,root) %{_libexecdir}/smmapd
-%attr(755,root,root) %{_libexecdir}/squatter
+%attr(755,root,root) %{_libexecdir}/sync_client
+%attr(755,root,root) %{_libexecdir}/sync_reset
+%attr(755,root,root) %{_libexecdir}/sync_server
 %attr(755,root,root) %{_libexecdir}/timsieved
-%attr(755,root,root) %{_libexecdir}/tls_prune
 %attr(755,root,root) %{_libexecdir}/unexpunge
 
+# symlinks
+%attr(755,root,root) %{_libexecdir}/arbitron
+%attr(755,root,root) %{_libexecdir}/chk_cyrus
+%attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
+%attr(755,root,root) %{_libexecdir}/ctl_deliver
+%attr(755,root,root) %{_libexecdir}/ctl_mboxlist
+%attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
+%attr(755,root,root) %{_libexecdir}/cyr_expire
+%attr(755,root,root) %{_libexecdir}/cyrdump
+%attr(755,root,root) %{_libexecdir}/deliver
+%attr(755,root,root) %{_libexecdir}/ipurge
+%attr(755,root,root) %{_libexecdir}/master
+%attr(755,root,root) %{_libexecdir}/mbpath
+%attr(755,root,root) %{_libexecdir}/quota
+%attr(755,root,root) %{_libexecdir}/reconstruct
+%attr(755,root,root) %{_libexecdir}/squatter
+%attr(755,root,root) %{_libexecdir}/tls_prune
 
 %attr(750,cyrus,mail) /var/spool/imap
 %attr(750,cyrus,mail) %dir /var/lib/imap
@@ -341,20 +427,29 @@ fi
 
 %{_mandir}/man*/*
 
+%if %{with shared}
 %files libs
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libcyrus-%{version}.so
+%attr(755,root,root) %{_libdir}/libcyrus_min-%{version}.so
+%endif
 
 %files devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
 %{_includedir}/cyrus
+%if %{with shared}
+%attr(755,root,root) %{_libdir}/libcyrus.so
+%attr(755,root,root) %{_libdir}/libcyrus_min.so
+%{_libdir}/libcyrus.la
+%{_libdir}/libcyrus_min.la
 
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%endif
+%{_libdir}/libcyrus.a
+%{_libdir}/libcyrus_min.a
 
+%if %{with perl}
 %files -n perl-%{name}
 %defattr(644,root,root,755)
 %{perl_vendorarch}/Cyrus
@@ -366,3 +461,8 @@ fi
 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
 %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.bs
+%endif
+
+%files doc
+%defattr(644,root,root,755)
+%doc doc/*.html
This page took 0.050772 seconds and 4 git commands to generate.