X-Git-Url: http://git.pld-linux.org/?p=packages%2Fdovecot.git;a=blobdiff_plain;f=dovecot.spec;h=ba4c4c389baf7006926ed176517112fd80b527a7;hp=af8d89677b3bf6505541462e0a53bc7b88b03960;hb=b4b3817b729a7ba040d4db70798061449b3cf35a;hpb=3ee251c02ad662b3c1b0eb96f4d6c6f58f3a02da diff --git a/dovecot.spec b/dovecot.spec index af8d896..ba4c4c3 100644 --- a/dovecot.spec +++ b/dovecot.spec @@ -6,27 +6,28 @@ %bcond_without pgsql # without PostgreSQL auth %bcond_without sqlite # without SQLite3 auth %bcond_without sasl # without SASL auth -# + Summary: IMAP and POP3 server written with security primarily in mind Summary(pl.UTF-8): Serwer IMAP i POP3 pisany głównie z myślą o bezpieczeństwie Name: dovecot -Version: 1.2.8 +Version: 2.2.13 Release: 2 Epoch: 1 License: MIT (libraries), LGPL v2.1 (the rest) Group: Networking/Daemons -Source0: http://dovecot.org/releases/1.2/%{name}-%{version}.tar.gz -# Source0-md5: c6d6c061413d299ccea7b55c3e4faa0a +Source0: http://dovecot.org/releases/2.2/%{name}-%{version}.tar.gz +# Source0-md5: a3eb1c0b1822c4f2b0fe9247776baa71 Source1: %{name}.pamd Source2: %{name}.init Source3: %{name}.sysconfig +Source4: %{name}.tmpfiles Patch0: %{name}-config.patch +Patch1: %{name}-rpath.patch URL: http://dovecot.org/ BuildRequires: autoconf BuildRequires: automake BuildRequires: bzip2-devel %{?with_sasl:BuildRequires: cyrus-sasl-devel >= 2.0} -BuildRequires: findutils BuildRequires: gettext-devel %{?with_gssapi:BuildRequires: heimdal-devel} BuildRequires: libcap-devel @@ -37,6 +38,7 @@ BuildRequires: openssl-devel >= 0.9.7d BuildRequires: pam-devel BuildRequires: pkgconfig %{?with_pgsql:BuildRequires: postgresql-devel} +BuildRequires: rpmbuild(macros) >= 1.647 BuildRequires: sed >= 4.0 %{?with_sqlite:BuildRequires: sqlite3-devel} BuildRequires: zlib-devel @@ -47,12 +49,15 @@ Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd +Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: pam >= 0.79.0 Provides: group(dovecot) Provides: imapdaemon Provides: user(dovecot) BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define no_install_post_check_so 1 + %description Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems, written with security primarily in mind. Although it's written with C, @@ -116,80 +121,85 @@ Stan: plików może być problematyczna %package devel -Summary: Development package for dovecot plugins -Summary(pl.UTF-8): Pakiet programistyczny do tworzenia wtyczek dla dovecota +Summary: Development package for Dovecot plugins +Summary(pl.UTF-8): Pakiet programistyczny do tworzenia wtyczek dla Dovecota Group: Development/Libraries -# doesn't require base +Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description devel -Development package for dovecot plugins. +Development package for Dovecot plugins. %description devel -l pl.UTF-8 -Pakiet programistyczny do tworzenia wtyczek dla dovecota. +Pakiet programistyczny do tworzenia wtyczek dla Dovecota. + +%package libs +Summary: Dovecot shared libraries +Summary(pl.UTF-8): Współdzielone biblioteki Dovecota +Group: Development/Libraries + +%description libs +Dovecot shared libraries. + +%description libs -l pl.UTF-8 +Współdzielone biblioteki Dovecota. %prep %setup -q %patch0 -p1 +%patch1 -p1 -%{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' dovecot-example.conf +%{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' doc/example-config/*.conf doc/example-config/conf.d/*.conf %build touch config.rpath %{__libtoolize} -%{__aclocal} +%{__aclocal} -I . %{__autoconf} %{__autoheader} %{__automake} %configure \ --disable-static \ %{?debug:--enable-debug} \ - --enable-header-install \ %{?with_ldap:--with-ldap=yes} \ %{?with_mysql:--with-mysql} \ %{?with_pgsql:--with-pgsql} \ %{?with_sqlite:--with-sqlite} \ %{?with_gssapi:--with-gssapi=plugin} \ + --with-sql=plugin \ + --with-pam \ --with-zlib \ --with-bzlib \ --with-libcap \ --with-ssl=openssl \ + --with-moduledir=%{_libdir}/%{name}/plugins \ --with-ssldir=/var/lib/openssl \ - --sysconfdir=/etc/%{name} + --sysconfdir=%{_sysconfdir} \ + --with-systemdsystemunitdir=%{systemdunitdir} %{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,security} -install -d $RPM_BUILD_ROOT{/var/lib/dovecot,/var/run/dovecot/login} +install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,security} \ + $RPM_BUILD_ROOT{/var/lib/dovecot,/var/run/dovecot/login} \ + $RPM_BUILD_ROOT/usr/lib/tmpfiles.d %{__make} install \ - moduledir=%{_libdir}/%{name}/plugins \ DESTDIR=$RPM_BUILD_ROOT -mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{dovecot-example.conf,dovecot.conf} +mv -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/* $RPM_BUILD_ROOT%{_sysconfdir}/dovecot -install %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name} -install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} -install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name} +cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name} +install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name} +install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf touch $RPM_BUILD_ROOT/etc/security/blacklist.imap -rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins{,/auth,/imap}/*.la - -# devel -for folder in deliver imap lib lib-imap lib-mail lib-storage; do - install -d $RPM_BUILD_ROOT%{_includedir}/%{name}/$folder - install -p -m644 src/$folder/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/$folder/ -done -for dir in lib lib-auth lib-charset lib-imap lib-index lib-mail lib-storage; do - for file in $(find src/$dir -name '*.a'); do - install -D -m644 $file $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/$file - done -done -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/dovecot-config $RPM_BUILD_ROOT%{_libdir}/%{name}-devel +find $RPM_BUILD_ROOT%{_libdir}/%{name} -name '*.la' | xargs rm -rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name} +%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name} +%{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/README %clean rm -rf $RPM_BUILD_ROOT @@ -197,85 +207,167 @@ rm -rf $RPM_BUILD_ROOT %pre %groupadd -g 172 dovecot %useradd -u 172 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovecot dovecot +%groupadd -g 254 dovenull +%useradd -u 254 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovenull dovenull %post /sbin/chkconfig --add dovecot -if [ -f /var/lock/subsys/dovecot ]; then - /etc/rc.d/init.d/dovecot restart >&2 -else - echo "Run \"/etc/rc.d/init.d/dovecot start\" to start dovecot daemon." -fi +%service dovecot restart +%systemd_post dovecot.socket dovecot.service %preun if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/dovecot ]; then - /etc/rc.d/init.d/dovecot stop >&2 - fi + %service dovecot stop /sbin/chkconfig --del dovecot fi +%systemd_preun dovecot.service dovecot.socket %postun if [ "$1" = "0" ]; then %userremove dovecot %groupremove dovecot + %userremove dovenull + %groupremove dovenull fi +%systemd_reload -%triggerpostun -- dovecot < 1:1.1 +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig + +%triggerin -- pam +# restart devocot if pam is upgraded +# (dovecot is linked with old libpam but tries to open modules linked with new libpam) +if [ "$2" != 1 ]; then + %service -q dovecot restart +fi + +%triggerpostun -- dovecot < 1:2.0.0 +# upgrading dovecot < 1.1 echo "Configuration change default_mail_env -> mail_location" %{__sed} -i -e "s/^default_mail_env/mail_location/" /etc/dovecot/dovecot.conf +# upgrading dovecot < 2.0 +i=0 +for a in /etc/dovecot/dovecot-db-example.conf \ + /etc/dovecot/dovecot-dict-sql-example.conf \ + /etc/dovecot/dovecot-ldap-example.conf \ + /etc/dovecot/dovecot-sql-example.conf \ + /etc/dovecot/dovecot.conf; do + if [ -f "$a" ]; then + [ "$i" -eq 0 ] && echo "Read http://wiki2.dovecot.org/Upgrading/2.0" + i=1 + echo "Trying to migrate $a config file to dovecot 2." + cp -a "$a" "$a-1.2.org" + :> "$a.log" + chmod 600 "$a.log" + # convert config and prefix stderr lines with # + %{_bindir}/doveconf -n -c "$a-1.2.org" > "$a" 2> "$a.log" || : + fi +done +if [ "$i" -eq 1 ]; then + echo "Please verify contents of %{_sysconfdir}/%{name}/* files." +fi + +%triggerpostun -- %{name} < 1:2.2.4-2 +%systemd_trigger dovecot.service dovecot.socket %files %defattr(644,root,root,755) # COPYING contains some notes, not actual LGPL text %doc AUTHORS COPYING ChangeLog NEWS README TODO doc/*.txt doc/*.c*f doc/wiki/*.txt +%attr(755,root,root) %{_bindir}/doveadm +%attr(755,root,root) %{_bindir}/doveconf +%attr(755,root,root) %{_bindir}/dsync %attr(755,root,root) %{_sbindir}/%{name} -%attr(755,root,root) %{_sbindir}/%{name}pw -%attr(750,root,root) %dir %{_sysconfdir}/%{name} +%attr(751,root,root) %dir %{_sysconfdir}/%{name} %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}-db-example.conf -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}-dict-sql-example.conf -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}-ldap-example.conf -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}-sql-example.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.ext +%attr(751,root,root) %dir %{_sysconfdir}/%{name}/conf.d +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.ext %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/%{name} %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.imap %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} %attr(754,root,root) /etc/rc.d/init.d/%{name} -%dir %{_libdir}/%{name} -%attr(755,root,root) %{_libdir}/%{name}/authtest +%attr(755,root,root) %{_libdir}/%{name}/aggregator +%attr(755,root,root) %{_libdir}/%{name}/anvil +%attr(755,root,root) %{_libdir}/%{name}/auth %attr(755,root,root) %{_libdir}/%{name}/checkpassword-reply +%attr(755,root,root) %{_libdir}/%{name}/config +%attr(755,root,root) %{_libdir}/%{name}/decode2text.sh %attr(755,root,root) %{_libdir}/%{name}/deliver %attr(755,root,root) %{_libdir}/%{name}/dict -%attr(755,root,root) %{_libdir}/%{name}/dovecot-auth +%attr(755,root,root) %{_libdir}/%{name}/director +%attr(755,root,root) %{_libdir}/%{name}/dns-client +%attr(755,root,root) %{_libdir}/%{name}/doveadm-server +%attr(755,root,root) %{_libdir}/%{name}/dovecot-lda %attr(755,root,root) %{_libdir}/%{name}/gdbhelper -%attr(755,root,root) %{_libdir}/%{name}/idxview %attr(755,root,root) %{_libdir}/%{name}/imap %attr(755,root,root) %{_libdir}/%{name}/imap-login -%attr(755,root,root) %{_libdir}/%{name}/imap-utf7 -%attr(755,root,root) %{_libdir}/%{name}/convert-tool -%attr(755,root,root) %{_libdir}/%{name}/expire-tool -%attr(755,root,root) %{_libdir}/%{name}/listview -%attr(755,root,root) %{_libdir}/%{name}/logview +%attr(755,root,root) %{_libdir}/%{name}/imap-urlauth +%attr(755,root,root) %{_libdir}/%{name}/imap-urlauth-login +%attr(755,root,root) %{_libdir}/%{name}/imap-urlauth-worker +%attr(755,root,root) %{_libdir}/%{name}/indexer +%attr(755,root,root) %{_libdir}/%{name}/indexer-worker +%attr(755,root,root) %{_libdir}/%{name}/ipc +%attr(755,root,root) %{_libdir}/%{name}/lmtp +%attr(755,root,root) %{_libdir}/%{name}/log %attr(755,root,root) %{_libdir}/%{name}/maildirlock %attr(755,root,root) %{_libdir}/%{name}/pop3 %attr(755,root,root) %{_libdir}/%{name}/pop3-login +%attr(755,root,root) %{_libdir}/%{name}/quota-status %attr(755,root,root) %{_libdir}/%{name}/rawlog -%attr(755,root,root) %{_libdir}/%{name}/ssl-build-param -%attr(755,root,root) %{_libdir}/%{name}/threadview +%attr(755,root,root) %{_libdir}/%{name}/replicator +%attr(755,root,root) %{_libdir}/%{name}/script +%attr(755,root,root) %{_libdir}/%{name}/script-login +%attr(755,root,root) %{_libdir}/%{name}/ssl-params +%attr(755,root,root) %{_libdir}/%{name}/stats +%attr(755,root,root) %{_libdir}/%{name}/xml2text %dir %{_libdir}/%{name}/plugins %attr(755,root,root) %{_libdir}/%{name}/plugins/*.so -#%dir %{_libdir}/%{name}/plugins/auth -#%attr(755,root,root)%{_libdir}/%{name}/plugins/auth/*.so -%dir %{_libdir}/%{name}/plugins/imap -%attr(755,root,root)%{_libdir}/%{name}/plugins/imap/*.so -%dir %{_libdir}/%{name}/plugins/lda -%attr(755,root,root) %{_libdir}/%{name}/plugins/lda/*.so -%dir %{_libdir}/%{name}/plugins/pop3 -%attr(755,root,root) %{_libdir}/%{name}/plugins/pop3/*.so +%dir %{_libdir}/%{name}/plugins/auth +%attr(755,root,root) %{_libdir}/%{name}/plugins/auth/*.so +%dir %{_libdir}/%{name}/plugins/dict +%attr(755,root,root) %{_libdir}/%{name}/plugins/dict/*.so +%dir %{_libdir}/%{name}/plugins/doveadm +%attr(755,root,root) %{_libdir}/%{name}/plugins/doveadm/*.so +%{systemdunitdir}/dovecot.service +%{systemdunitdir}/dovecot.socket +/usr/lib/tmpfiles.d/%{name}.conf %dir /var/lib/dovecot %dir /var/run/dovecot -%attr(750,root,dovecot) %dir /var/run/dovecot/login +%attr(750,root,dovenull) %dir /var/run/dovecot/login + +%{_mandir}/man1/deliver.1* +%{_mandir}/man1/dove*.1* +%{_mandir}/man1/dsync.1* +%{_mandir}/man7/doveadm-search-query.7* %files devel %defattr(644,root,root,755) -%{_libdir}/%{name}-devel +%attr(755,root,root) %{_libdir}/%{name}/libdovecot.so +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so +%{_libdir}/%{name}/%{name}-config %{_includedir}/%{name} +%{_aclocaldir}/dovecot.m4 + +%files libs +%defattr(644,root,root,755) +%dir %{_libdir}/%{name} +%attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0.0.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0.0.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0.0.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0.0.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0.0.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0.0.0 +# Note: we are in %{_libdir}/dovecot, ldconfig does not look into this +# directory. This is why the following files are not %ghost +%attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0 +%attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0