X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=proftpd.spec;h=05b00221c47486b3e219ec88bb5c5f59f06508c4;hb=7611743e5d3b4d835787dd5b32bd9426c6764cac;hp=d5954c8b0e77bc2d0c7de1ca8a10e044e8c7f382;hpb=f86c7f0bc2d8594368a771a130c3d2a693c50b7e;p=packages%2Fproftpd.git diff --git a/proftpd.spec b/proftpd.spec index d5954c8..05b0022 100644 --- a/proftpd.spec +++ b/proftpd.spec @@ -1,6 +1,7 @@ # TODO # - mod_caps uses uname -r for detection # - don't use internal libltdl +# - package contrib/ftp* perl scripts. # # Conditional build: %bcond_without pam # disable PAM support @@ -14,20 +15,24 @@ %bcond_without quotamysql # disable quota mysql support %bcond_without quotapgsql # disable quota pgsql support # +%define mod_clamav_version 0.11rc + Summary: PROfessional FTP Daemon with apache-like configuration syntax Summary(es.UTF-8): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache Summary(pl.UTF-8): PROfesionalny serwer FTP Summary(pt_BR.UTF-8): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache Summary(zh_CN.UTF-8): 易于管理的,安全的 FTP 服务器 Name: proftpd -Version: 1.3.1 -Release: 4 +Version: 1.3.4a +Release: 2 Epoch: 2 License: GPL v2+ -Group: Daemons +Group: Networking/Daemons Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.bz2 -# Source0-md5: 175958df8de92d5209b7b1e2e23a5a28 -Source1: %{name}.conf +# Source0-md5: 4e3235dc1ef95d36e59721d70c5c489c +Source1: https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-%{mod_clamav_version}.tar.gz +# Source1-md5: 42e560ec0bd5964e13fad1b2bb7afe21 +Source2: %{name}.conf Source3: ftp.pamd Source4: %{name}.inetd Source5: %{name}.sysconfig @@ -37,15 +42,17 @@ Source7: ftpusers.tar.bz2 Source9: %{name}-mod_pam.conf Source10: %{name}-mod_tls.conf Source11: %{name}-anonftp.conf -Patch0: %{name}-umode_t.patch -Patch1: %{name}-paths.patch -Patch2: %{name}-noautopriv.patch -Patch3: %{name}-wtmp.patch -Patch4: %{name}-configure.patch -Patch5: %{name}-pool.patch +Source12: %{name}-mod_clamav.conf +Source13: %{name}.tmpfiles +Patch0: %{name}-paths.patch +Patch1: %{name}-noautopriv.patch +Patch2: %{name}-wtmp.patch +Patch3: %{name}-pool.patch URL: http://www.proftpd.org/ +BuildRequires: acl-devel BuildRequires: autoconf BuildRequires: automake +BuildRequires: libcap-devel BuildRequires: libstdc++-devel BuildRequires: libwrap-devel %if %{with mysql} || %{with quotamysql} @@ -64,11 +71,11 @@ BuildRequires: rpmbuild(macros) >= 1.268 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sysconfdir /etc/ftpd -%define _localstatedir /var/run +%define _localstatedir /var/run %define _libexecdir %{_prefix}/%{_lib}/%{name} %description -ProFTPD is a highly configurable FTP daemon for unix and unix-like +ProFTPD is a highly configurable FTP daemon for Unix and Unix-like operating systems. ProFTPD is designed to be somewhat of a "drop-in" replacement for wu-ftpd. Full online documentation is available at , including a server configuration directive @@ -76,7 +83,7 @@ reference manual. %description -l es.UTF-8 ProFTPD es un servidor FTP altamente configurable para sistemas -operativos unix. Está proyectado para ser un substituto directo al +operativos Unix. Está proyectado para ser un substituto directo al wu-ftpd. La documentación completa está disponible en , incluido el manual de referencia para las directivas de configuración del servidor. @@ -89,7 +96,7 @@ włącznie z dokumentacją dotyczącą konfigurowania. %description -l pt_BR.UTF-8 O ProFTPD é um servidor FTP altamente configurável para sistemas -operacionais unix. +operacionais Unix. É projetado para ser um substituto direto para o wu-ftpd. A documentação completa está disponível em , @@ -98,14 +105,14 @@ servidor. %package common Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files -Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki -Group: Daemons +Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki +Group: Networking/Daemons Requires(post): awk Requires(post): fileutils Obsoletes: proftpd < 0:1.2.2rc1-3 %description common -ProFTPD is a highly configurable FTP daemon for unix and unix-like +ProFTPD is a highly configurable FTP daemon for Unix and Unix-like operating systems. ProFTPD is designed to be somewhat of a "drop-in" replacement for wu-ftpd. Full online documentation is available at , including a server configuration directive @@ -113,7 +120,7 @@ reference manual. %description common -l es.UTF-8 ProFTPD es un servidor FTP altamente configurable para sistemas -operativos unix. Está proyectado para ser un substituto directo al +operativos Unix. Está proyectado para ser un substituto directo al wu-ftpd. La documentación completa está disponible en , incluido el manual de referencia para las directivas de configuración del servidor. @@ -126,7 +133,7 @@ włącznie z dokumentacją dotyczącą konfigurowania. %description common -l pt_BR.UTF-8 O ProFTPD é um servidor FTP altamente configurável para sistemas -operacionais unix. +operacionais Unix. É projetado para ser um substituto direto para o wu-ftpd. A documentação completa está disponível em , @@ -136,7 +143,7 @@ servidor. %package inetd Summary: inetd configs for proftpd Summary(pl.UTF-8): Pliki konfiguracyjne do użycia proftpd poprzez inetd -Group: Daemons +Group: Networking/Daemons Requires(post): fileutils Requires(post): grep Requires(post): sed >= 4.0 @@ -171,7 +178,7 @@ Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd. %package standalone Summary: Standalone daemon configs for proftpd Summary(pl.UTF-8): Pliki konfiguracyjne do startowania proftpd w trybie standalone -Group: Daemons +Group: Networking/Daemons Requires(post): fileutils Requires(post): grep Requires(post): sed >= 4.0 @@ -220,7 +227,7 @@ Ten pakiet zawiera pliki nagłówkowe ProFTPD %package anonftp Summary: Anonymous FTP config for ProFTPD Summary(pl.UTF-8): Konfiguracja anonimowego FTP dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description anonftp @@ -232,7 +239,7 @@ Konfiguracja anonimowego FTP dla ProFTPD. %package mod_auth_pam Summary: ProFTPD PAM auth module Summary(pl.UTF-8): Moduł uwierzytelnienia PAM dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: pam >= 0.79.0 @@ -245,7 +252,7 @@ Metoda uwierzytelnienia PAM dla ProFTPD. %package mod_ldap Summary: ProFTPD OpenLDAP module Summary(pl.UTF-8): Moduł OpenLDAP dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_ldap @@ -262,7 +269,7 @@ domowych. %package mod_quotatab Summary: ProFTPD quotatab module Summary(pl.UTF-8): Moduł quotatab dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_quotatab @@ -275,7 +282,7 @@ scentralizowane tabele. %package mod_quotatab_file Summary: ProFTPD quotatab file module Summary(pl.UTF-8): Moduł quotatab_file dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} @@ -290,7 +297,7 @@ tabele zapisane w pliku. %package mod_quotatab_ldap Summary: ProFTPD quotatab ldap module Summary(pl.UTF-8): Moduł quotatab_ldap dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release} Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} @@ -306,7 +313,7 @@ katalogu LDAP. %package mod_quotatab_sql Summary: ProFTPD quotatab sql module Summary(pl.UTF-8): Moduł quotatab_sql dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} @@ -322,7 +329,7 @@ tabele SQL. %package mod_ratio Summary: ProFTPD ratio module Summary(pl.UTF-8): Moduł ratio dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_ratio @@ -334,7 +341,7 @@ Obsługa współczynników upload/download. %package mod_readme Summary: ProFTPD readme module Summary(pl.UTF-8): Moduł readme dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_readme @@ -343,10 +350,22 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_readme -l pl.UTF-8 Obsługa pliku "README". +%package mod_rewrite +Summary: ProFTPD rewrite module +Summary(pl.UTF-8): Moduł rewrite dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_rewrite +Runtime rewrite engine. + +%description mod_rewrite -l pl.UTF-8 +Silnik przepisujący adresy w locie. + %package mod_sql Summary: ProFTPD SQL support module Summary(pl.UTF-8): Moduł obsługi SQL dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_sql @@ -360,7 +379,7 @@ i innych możliwości opartych o SQL. %package mod_sql_mysql Summary: ProFTPD sql mysql module Summary(pl.UTF-8): Moduł sql_mysql dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} @@ -373,7 +392,7 @@ Obsługa łączenia się z bazami danych MySQL. %package mod_sql_postgres Summary: ProFTPD sql postgres module Summary(pl.UTF-8): Moduł sql_postgres dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} @@ -386,7 +405,7 @@ Obsługa łączenia się z bazami danych PostgreSQL. %package mod_tls Summary: ProFTPD TLS support Summary(pl.UTF-8): Obsługa TLS dla ProFTPD -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} %description mod_tls @@ -398,7 +417,7 @@ Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD. %package mod_wrap Summary: ProFTPD interface to libwrap Summary(pl.UTF-8): Interfejs ProFTPD do libwrap -Group: Daemons +Group: Networking/Daemons Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: libwrap @@ -423,13 +442,15 @@ na przykład program portsentry: przy próbie niedozwolonego dostępu dodaje hosty do pliku /etc/hosts.deny. %prep -%setup -q -n %{name}-%{version}%{?_rc} +%setup -q -n %{name}-%{version}%{?_rc} -a1 %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 + +# mod_clamav +patch -p0 < mod_clamav-%{mod_clamav_version}/proftpd.patch +cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/ cp -f /usr/share/automake/config.sub . @@ -440,9 +461,15 @@ find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f %{__autoconf} MODULES=" +mod_auth_file +mod_ident mod_ratio mod_readme +mod_rewrite mod_wrap +mod_facl +mod_ifsession +mod_lang %{?with_ssl:mod_tls} %{?with_pam:mod_auth_pam} %{?with_ldap:mod_ldap} @@ -450,7 +477,6 @@ mod_wrap %{?with_quotaldap:mod_quotatab mod_quotatab_ldap} %{?with_quotamysql:mod_quotatab mod_quotatab_sql} %{?with_quotapgsql:mod_quotatab mod_quotatab_sql} -%{?with_linuxprivs:mod_linuxprivs} %{?with_mysql:mod_sql mod_sql_mysql} %{?with_pgsql:mod_sql mod_sql_postgres} " @@ -458,23 +484,27 @@ mod_wrap MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':') %configure \ --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \ + --disable-strip \ + --enable-buffer-size=4096 \ + --disable-auth-file \ --enable-autoshadow \ --enable-ctrls \ --enable-dso \ - --enable-facl \ %{?with_ipv6:--enable-ipv6} \ --enable-sendfile \ %{!?with_ssl:--disable-tls} \ --with-shared=$MODARG \ + --with-modules=mod_clamav -%{__make} +%{__make} -j1 %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \ - $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log} \ + $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log,run/proftpd} \ $RPM_BUILD_ROOT%{_sysconfdir}/conf.d \ - $RPM_BUILD_ROOT%{_includedir}/%{name} + $RPM_BUILD_ROOT%{_includedir}/%{name} \ + $RPM_BUILD_ROOT/usr/lib/tmpfiles.d %{__make} install \ DESTDIR=$RPM_BUILD_ROOT \ @@ -483,23 +513,29 @@ install -d $RPM_BUILD_ROOT/etc/{pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \ rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd -install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} +install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir} install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf -%{?with_ldap:echo 'LoadModule mod_ldap.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_ldap.conf} -echo 'LoadModule mod_quotatab.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_quotatab.conf -echo 'LoadModule mod_quotatab_file.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_quotatab_file.conf -%{?with_quotaldap:echo 'LoadModule mod_quotatab_ldap.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_quotatab_ldap.conf} -echo 'LoadModule mod_ratio.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_ratio.conf -echo 'LoadModule mod_readme.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_readme.conf -%if %{with mysql} || %{with pgsql} -echo 'LoadModule mod_quotatab_sql.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_quotatab_sql.conf -echo 'LoadModule mod_sql.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_sql.conf -%endif -%{?with_mysql:echo 'LoadModule mod_sql_mysql.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_sql_mysql.conf} -%{?with_pgsql:echo 'LoadModule mod_sql_postgres.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_sql_postgres.conf} +MODULES=" +mod_auth_file +mod_ident +mod_ratio +mod_readme +mod_rewrite +mod_wrap +%{?with_ldap:mod_ldap} +%{?with_quotafile:mod_quotatab mod_quotatab_file} +%{?with_quotaldap:mod_quotatab mod_quotatab_ldap} +%{?with_quotamysql:mod_quotatab mod_quotatab_sql} +%{?with_quotapgsql:mod_quotatab mod_quotatab_sql} +%{?with_mysql:mod_sql mod_sql_mysql} +%{?with_pgsql:mod_sql mod_sql_postgres} +" +for module in $MODULES; do + echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf +done install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf -echo 'LoadModule mod_wrap.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_wrap.conf install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf +install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_clamav.conf %{?with_pam:install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp} install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd @@ -512,13 +548,15 @@ bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers +install %{SOURCE13} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf + # only for -inetd package? ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd :> $RPM_BUILD_ROOT/etc/security/blacklist.ftp -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/*.a -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/*.la +rm $RPM_BUILD_ROOT%{_libexecdir}/*.a +rm $RPM_BUILD_ROOT%{_libexecdir}/*.la rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff* cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name} @@ -559,6 +597,13 @@ if [ "$1" = "0" ]; then /sbin/chkconfig --del proftpd fi +%triggerin standalone -- pam +# restart proftpd if pam is upgraded +# (proftpd is linked with old libpam but tries to open modules linked with new libpam) +if [ "$2" != 1 ]; then + %service -q proftpd restart +fi + # macro called at module post scriptlet %define module_post \ if [ "$1" = "1" ]; then \ @@ -595,6 +640,7 @@ fi %module_scripts mod_quotatab_sql %module_scripts mod_ratio %module_scripts mod_readme +%module_scripts mod_rewrite %module_scripts mod_sql %module_scripts mod_sql_mysql %module_scripts mod_sql_postgres @@ -606,17 +652,26 @@ fi %doc sample-configurations/*.conf CREDITS ChangeLog NEWS RELEASE_NOTES %doc README README.capabilities README.classes README.controls README.IPv6 %doc README.modules -%doc doc/*html +%doc doc/*.html doc/contrib doc/howto doc/modules %dir %attr(750,root,ftp) %dir %{_sysconfdir} %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers %attr(640,root,root) %{_sysconfdir}/ftpusers.default %dir %attr(750,root,root) %{_sysconfdir}/conf.d +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf #%attr(640,root,root) %ghost /var/log/* %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/* -%dir %{_libdir}/%{name} -%dir /var/run/proftpd +%dir %{_libexecdir} +%attr(755,root,root) %{_libexecdir}/mod_auth_file.so +%attr(755,root,root) %{_libexecdir}/mod_facl.so +%attr(755,root,root) %{_libexecdir}/mod_ident.so +%attr(755,root,root) %{_libexecdir}/mod_ifsession.so +%attr(755,root,root) %{_libexecdir}/mod_lang.so +%dir %{_localstatedir}/proftpd +/usr/lib/tmpfiles.d/%{name}.conf %{_mandir}/man[18]/* %dir /var/lib/ftp %dir /var/lib/ftp/pub @@ -644,6 +699,7 @@ fi %files devel %defattr(644,root,root,755) %{_includedir}/%{name} +%{_pkgconfigdir}/%{name}.pc %files anonftp %defattr(644,root,root,755) @@ -695,6 +751,7 @@ fi %files mod_ratio %defattr(644,root,root,755) +%doc contrib/README.ratio %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf %attr(755,root,root) %{_libexecdir}/mod_ratio.so @@ -703,6 +760,11 @@ fi %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf %attr(755,root,root) %{_libexecdir}/mod_readme.so +%files mod_rewrite +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf +%attr(755,root,root) %{_libexecdir}/mod_rewrite.so + %if %{with mysql} || %{with pgsql} %files mod_sql %defattr(644,root,root,755)