X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=cyrus-imapd.spec;h=e319cd8cf2528d42882c59bbe2921d4f25c5d0ab;hb=e9b22b9e5df444ee3828281c10c64bea539282dc;hp=436b19efb7ca9088fcdf84d53c7920631728ec45;hpb=ad180cab200f5055c7dea92df64b7675f18e8ce9;p=packages%2Fcyrus-imapd.git diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 436b19e..e319cd8 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -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