X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=proftpd.spec;h=dbdb94998fcad60b71e54be98c0ec9e993423ff7;hb=master;hp=c15ba465c1b45654bbbd94512ceb7336d6e8ebdd;hpb=d45887171970ec33487fcd54a02725811bad76c0;p=packages%2Fproftpd.git diff --git a/proftpd.spec b/proftpd.spec index c15ba46..dbdb949 100644 --- a/proftpd.spec +++ b/proftpd.spec @@ -1,33 +1,42 @@ # TODO +# - test mod_clamav as DSO (README says it's allowed) # - 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 -%bcond_without ipv6 # disable IPv6 and TCPD support -%bcond_without ssl # disbale TLS/SSL support -%bcond_without ldap # disable LDAP support -%bcond_without mysql # disable MySQL support -%bcond_without pgsql # disable PostgreSQL support -%bcond_without quotafile # disable quota file support -%bcond_without quotaldap # disable quota ldap support -%bcond_without quotamysql # disable quota mysql support -%bcond_without quotapgsql # disable quota pgsql support +%bcond_without pam # PAM support +%bcond_without ipv6 # IPv6 and TCPD support +%bcond_without ssl # TLS/SSL support +%bcond_without ldap # LDAP support +%bcond_without mysql # MySQL support +%bcond_without pgsql # PostgreSQL support +%bcond_without quotafile # quota file support +%bcond_without quotaldap # quota ldap support +%bcond_without quotamysql # quota mysql support +%bcond_without quotapgsql # quota pgsql support +%bcond_without wrap2file # wrap2 file support + # +%define mod_clamav_version 0.13 + 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 +Version: 1.3.7f Release: 4 Epoch: 2 License: GPL v2+ -Group: Daemons -Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.bz2 -# Source0-md5: 175958df8de92d5209b7b1e2e23a5a28 -Source1: %{name}.conf +Group: Networking/Daemons +Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz +# Source0-md5: 5dab21933de54926fa0bb0a51a5a8578 +# https://github.com/jbenden/mod_clamav/releases +Source1: https://github.com/jbenden/mod_clamav/archive/v%{mod_clamav_version}/mod_clamav-%{mod_clamav_version}.tar.gz +# Source1-md5: 955269eb8b00ebcc217bbd6f74df4e1c +Source2: %{name}.conf Source3: ftp.pamd Source4: %{name}.inetd Source5: %{name}.sysconfig @@ -37,15 +46,22 @@ 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 +Patch4: %{name}-link.patch URL: http://www.proftpd.org/ +BuildRequires: GeoIP-devel +BuildRequires: acl-devel BuildRequires: autoconf BuildRequires: automake +BuildRequires: hiredis-devel +BuildRequires: libcap-devel +BuildRequires: libmemcached-devel +BuildRequires: libnsl-devel BuildRequires: libstdc++-devel BuildRequires: libwrap-devel %if %{with mysql} || %{with quotamysql} @@ -60,13 +76,16 @@ BuildRequires: openldap-devel %if %{with pgsql} || %{with quotapgsql} BuildRequires: postgresql-devel %endif -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpm-perlprov +BuildRequires: rpmbuild(macros) >= 1.745 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} +%define filterout -flto + %description ProFTPD is a highly configurable FTP daemon for Unix and Unix-like operating systems. ProFTPD is designed to be somewhat of a "drop-in" @@ -98,8 +117,8 @@ 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 @@ -136,11 +155,10 @@ 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 -Requires(triggerpostun): sed >= 4.0 +Requires(post,postun): sed >= 4.0 Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: rc-inetd Provides: ftpserver @@ -171,12 +189,11 @@ 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 +Requires(post,postun): sed >= 4.0 Requires(post,preun): /sbin/chkconfig -Requires(triggerpostun): sed >= 4.0 Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: rc-scripts Provides: ftpserver @@ -220,7 +237,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 +249,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 +262,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 +279,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 +292,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 +307,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 +323,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 +339,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 +351,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 @@ -346,16 +363,19 @@ Obsługa pliku "README". %package mod_rewrite Summary: ProFTPD rewrite module Summary(pl.UTF-8): Moduł rewrite dla ProFTPD -Group: Daemons +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 @@ -369,7 +389,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} @@ -382,7 +402,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} @@ -395,7 +415,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 @@ -407,7 +427,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 @@ -431,28 +451,151 @@ w trybie samodzielnym adaptować te wpisy w miarę dodawania. Robi tak na przykład program portsentry: przy próbie niedozwolonego dostępu dodaje hosty do pliku /etc/hosts.deny. +%package mod_wrap2 +Summary: ProFTPD mod_wrap2 module +Summary(pl.UTF-8): Moduł mod_wrap2 dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_wrap2 +The mod_wrap2 package allows the proftpd daemon to provide +tcpwrapper-like access control rules while running in standalone mode. +It also allows for those access rules to be stored in various formats, +such as files (e.g. /etc/hosts.allow and /etc/hosts.deny) or in SQL +tables. Note that the mod_wrap2 module does not require or use the +standard tcpwrappers libwrap library, and instead implements the same +functionality internally (in order to support SQL-based access rules). + +%description mod_wrap2 -l pl.UTF-8 +Udostępnia funkcjonalność kontroli dostępu podobną do modułu mod_wrap, +ale do działanie nie wymaga systemowej biblioteki libwrap. +http://www.proftpd.org/docs/contrib/mod_wrap2.html + +%package mod_wrap2_file +Summary: ProFTPD wrap2 file module +Summary(pl.UTF-8): Moduł wrap2_file dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_wrap2 = %{epoch}:%{version}-%{release} + +%description mod_wrap2_file +A mod_wrap2 sub-module for file-based access tables. + +%description mod_wrap2_file -l pl.UTF-8 +Podmoduł mod_wrap2 wymagany jeśli tabele dostępu trzymane są w plikach. + +%package mod_dnsbl +Summary: ProFTPD mod_dnsbl module +Summary(pl.UTF-8): Moduł mod_dnsbl dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_dnsbl +DNSBL module for ProFTPD. +http://www.proftpd.org/docs/contrib/mod_dnsbl.html + +%description mod_dnsbl -l pl.UTF-8 +Moduł zapewniający kontrolę dostępu przy użyciu DNS blacklist (dnsbl). +http://www.proftpd.org/docs/contrib/mod_dnsbl.html + +%package mod_geoip +Summary: ProFTPD mod_geoip module +Summary(pl.UTF-8): Moduł mod_geoip dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_geoip +GeoIP module for ProFTPD. +http://www.proftpd.org/docs/contrib/mod_geoip.html + +%description mod_geoip -l pl.UTF-8 +Moduł zapewniający kontrolę dostępu przy użyciu bibliotek +geolokalizacji firmy MaxMind. +http://www.proftpd.org/docs/contrib/mod_geoip.html + +%package mod_memcache +Summary: ProFTPD mod_memcache module +Summary(pl.UTF-8): Moduł mod_memcache dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_memcache +Memcache module for ProFTPD. +http://www.proftpd.org/docs/howto/Memcache.html + +%description mod_memcache -l pl.UTF-8 +Moduł zapewniający dostęp do wydajnego systemu cache'owania Memcache +http://www.proftpd.org/docs/howto/Memcache.html + +%package mod_redis +Summary: ProFTPD mod_redis module +Summary(pl.UTF-8): Moduł mod_redis dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_redis +Redis module for ProFTPD. http://www.proftpd.org/docs/howto/Redis.html + +%description mod_redis -l pl.UTF-8 +Moduł zapewniający dostęp do wydajnego systemu cache'owania Redis +http://www.proftpd.org/docs/howto/Redis.html + +%package mod_sftp +Summary: ProFTPD mod_sftp module +Summary(pl.UTF-8): Moduł mod_sftp dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_sftp +http://www.proftpd.org/docs/contrib/mod_sftp.html + +%description mod_sftp -l pl.UTF-8 +Moduł zapewniający serwerowi ProFTPD obsługę protokołu SFTP +http://www.proftpd.org/docs/contrib/mod_sftp.html + %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 +# no patch as of 0.13 +#patch -p0 < mod_clamav-%{mod_clamav_version}/proftpd.patch || exit 1 +cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/ cp -f /usr/share/automake/config.sub . # cleanup backups after patching find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f +sed -E -i -e '1s,#![[:space:]]*/usr/bin/env[[:space:]]+perl,#!%{__perl},' \ + contrib/ftpasswd \ + contrib/ftpmail \ + contrib/ftpquota \ + contrib/xferstats.holger-preiss \ + src/prxs.in + %build %{__autoconf} MODULES=" +mod_auth_file +mod_ident mod_ratio mod_readme mod_rewrite mod_wrap +mod_facl +mod_dnsbl +mod_geoip +mod_memcache +mod_redis +mod_sftp +mod_wrap2 +mod_ifsession %{?with_ssl:mod_tls} %{?with_pam:mod_auth_pam} %{?with_ldap:mod_ldap} @@ -460,80 +603,113 @@ 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} +%{?with_wrap2file:mod_wrap2 mod_wrap2_file} " MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':') %configure \ - --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \ + ac_cv_lib_iconv_iconv_open=no \ + ac_cv_lib_iconv_libiconv_open=no \ + ac_cv_lib_intl_bindtextdomain=no \ + --disable-auth-file \ + --enable-buffer-size=4096 \ --enable-autoshadow \ --enable-ctrls \ --enable-dso \ - --enable-facl \ %{?with_ipv6:--enable-ipv6} \ + --enable-nls \ --enable-sendfile \ + --disable-strip \ %{!?with_ssl:--disable-tls} \ - --with-shared=$MODARG \ + --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \ + --with-modules=mod_clamav \ + --with-shared=$MODARG -%{__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%{systemdtmpfilesdir} -%{__make} install \ +%{__make} -j1 install \ DESTDIR=$RPM_BUILD_ROOT \ INSTALL_USER=%(id -u) \ INSTALL_GROUP=%(id -g) -rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd - -install %{SOURCE1} $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 -echo 'LoadModule mod_readme.c' > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_rewrite.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} -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 +%{__rm} $RPM_BUILD_ROOT%{_sbindir}/in.proftpd + +cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir} +cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf +MODULES=" +mod_auth_file +mod_ident +mod_ratio +mod_readme +mod_rewrite +mod_wrap +mod_wrap2 +mod_dnsbl +mod_geoip +mod_memcache +mod_redis +mod_sftp +%{?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} +%{?with_wrap2file:mod_wrap2 mod_wrap2_file} +" +for module in $MODULES; do + echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf +done +cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf +cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf +cp -p %{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 -install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd -install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd -install contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat +cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd +cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd +cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd +cp -p contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers +cp -p %{SOURCE13} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{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 +# cannot just --disable-static because build process depend on static objects +%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.a +%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.la -rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff* +%{__rm} $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff* cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/bg{_BG,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/es{_ES,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/fr{_FR,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/it{_IT,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/ja{_JP,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/ko{_KR,} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/ru{_RU,} + +%find_lang %{name} + %clean rm -rf $RPM_BUILD_ROOT @@ -570,6 +746,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 \ @@ -612,24 +795,63 @@ fi %module_scripts mod_sql_postgres %module_scripts mod_tls %module_scripts mod_wrap - -%files common +%module_scripts mod_wrap2 +%module_scripts mod_dnsbl +%module_scripts mod_geoip +%module_scripts mod_memcache +%module_scripts mod_redis +%module_scripts mod_sftp + +%files common -f %{name}.lang %defattr(644,root,root,755) -%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 CREDITS ChangeLog NEWS README.md README.modules RELEASE_NOTES +%doc doc/{*.html,contrib,howto,modules} sample-configurations/*.conf %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) %{_sysconfdir}/proftpd.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 -%{_mandir}/man[18]/* +%attr(755,root,root) %{_bindir}/ftpasswd +%attr(755,root,root) %{_bindir}/ftpcount +%attr(755,root,root) %{_bindir}/ftpdctl +%attr(755,root,root) %{_bindir}/ftpmail +%attr(755,root,root) %{_bindir}/ftpquota +%attr(755,root,root) %{_bindir}/ftptop +%attr(755,root,root) %{_bindir}/ftpwho +%attr(755,root,root) %{_bindir}/prxs +%attr(755,root,root) %{_bindir}/xferstat +%attr(755,root,root) %{_sbindir}/ftpscrub +%attr(755,root,root) %{_sbindir}/ftpshut +%attr(755,root,root) %{_sbindir}/proftpd +%attr(755,root,root) %{_sbindir}/ftpd +%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 +%dir %{_localstatedir}/proftpd +%{systemdtmpfilesdir}/%{name}.conf +%{_mandir}/man1/ftpasswd.1* +%{_mandir}/man1/ftpcount.1* +%{_mandir}/man1/ftpmail.1* +%{_mandir}/man1/ftpquota.1* +%{_mandir}/man1/ftptop.1* +%{_mandir}/man1/ftpwho.1* +%{_mandir}/man5/ftpusers.5* +%{_mandir}/man5/proftpd.conf.5* +%{_mandir}/man5/xferlog.5* +%{_mandir}/man8/ftpdctl.8* +%{_mandir}/man8/ftpscrub.8* +%{_mandir}/man8/ftpshut.8* +%{_mandir}/man8/proftpd.8* +%lang(ja) %{_mandir}/ja/man5/ftpusers.5* +%lang(pl) %{_mandir}/pl/man5/ftpusers.5* +%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers.5* +%lang(ru) %{_mandir}/ru/man5/ftpusers.5* %dir /var/lib/ftp %dir /var/lib/ftp/pub %attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming @@ -637,25 +859,16 @@ fi %files inetd %defattr(644,root,root,755) %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd -%{_mandir}/man5/* -%lang(ja) %{_mandir}/ja/man5/ftpusers* -%lang(pl) %{_mandir}/pl/man5/ftpusers* -%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers* -%lang(ru) %{_mandir}/ru/man5/ftpusers* %files standalone %defattr(644,root,root,755) %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd %attr(754,root,root) /etc/rc.d/init.d/proftpd -%{_mandir}/man5/* -%lang(ja) %{_mandir}/ja/man5/ftpusers* -%lang(pl) %{_mandir}/pl/man5/ftpusers* -%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers* -%lang(ru) %{_mandir}/ru/man5/ftpusers* %files devel %defattr(644,root,root,755) %{_includedir}/%{name} +%{_pkgconfigdir}/proftpd.pc %files anonftp %defattr(644,root,root,755) @@ -664,8 +877,7 @@ fi %if %{with pam} %files mod_auth_pam %defattr(644,root,root,755) -%doc README.PAM -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/* +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/ftp %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf %attr(755,root,root) %{_libexecdir}/mod_auth_pam.so @@ -707,6 +919,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 @@ -750,3 +963,42 @@ fi %defattr(644,root,root,755) %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf %attr(755,root,root) %{_libexecdir}/mod_wrap.so + +%files mod_wrap2 +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap2.conf +%attr(755,root,root) %{_libexecdir}/mod_wrap2.so + +%if %{with wrap2file} +%files mod_wrap2_file +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap2_file.conf +%attr(755,root,root) %{_libexecdir}/mod_wrap2_file.so +%endif + +%files mod_dnsbl +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_dnsbl.conf +%attr(755,root,root) %{_libexecdir}/mod_dnsbl.so + +%files mod_geoip +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_geoip.conf +%attr(755,root,root) %{_libexecdir}/mod_geoip.so + +%files mod_memcache +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_memcache.conf +%attr(755,root,root) %{_libexecdir}/mod_memcache.so + +%files mod_redis +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_redis.conf +%attr(755,root,root) %{_libexecdir}/mod_redis.so + +%files mod_sftp +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sftp.conf +%{_sysconfdir}/blacklist.dat +%{_sysconfdir}/dhparams.pem +%attr(755,root,root) %{_libexecdir}/mod_sftp.so