X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=proftpd.spec;h=08e596dc6ee0a8b133005425eb962345520a6b7f;hb=4fb7f0310315b9b0ba2deef6262b5cf45618fe25;hp=3559470e1f1fc779ab62a749e75a10ea897aef9e;hpb=ed2253cff956d2c9d477f4afaa9ca58c9c7df5c9;p=packages%2Fproftpd.git diff --git a/proftpd.spec b/proftpd.spec index 3559470..08e596d 100644 --- a/proftpd.spec +++ b/proftpd.spec @@ -1,83 +1,96 @@ +# TODO +# - mod_caps uses uname -r for detection +# 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 # enable LDAP support +%bcond_without mysql # enable MySQL support +%bcond_without pgsql # enable PostgreSQL support +%bcond_without quotafile # enable quota file support +%bcond_without quotaldap # enable quota ldap support +%bcond_without quotamysql # enable quota mysql support +%bcond_without quotapgsql # enable quota pgsql support # -# Conditional builds: -# _without_pam - disable PAM support -# _with_ldap - enable LDAP suppoer -# _with_mysql - enable MySQL suppoer -# _with_quota - enable quota support -# _with_linuxprivs - enable libcap support -# _without_ipv6 - disable IPv6 and TCPD support -# _without_ssl - disbale TLS/SSL support -# --without pam --with ldap --with mysql --with quota --with linuxprivs Summary: PROfessional FTP Daemon with apache-like configuration syntax Summary(es): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache Summary(pl): PROfesionalny serwer FTP Summary(pt_BR): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache Summary(zh_CN): Ò×ÓÚ¹ÜÀíµÄ,°²È«µÄ FTP ·þÎñÆ÷ Name: proftpd -Version: 1.2.5 -Release: 5 +Version: 1.3.0 +Release: 2 Epoch: 1 -License: GPL +License: GPL v2+ Group: Daemons Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.bz2 +# Source0-md5: fae47d01b52e035eb6b7190e74c17722 Source1: %{name}.conf -Source2: %{name}.logrotate Source3: ftp.pamd Source4: %{name}.inetd Source5: %{name}.sysconfig Source6: %{name}.init -Source7: %{name}-mod_tcpd.c -Source8: ftpusers.tar.bz2 -Patch0: %{name}-1.2.5-v6-20020808.patch.gz -# ftp://ftp.runestig.com/pub/proftpd-tls/ -Patch1: %{name}-1.2.2rc3+v6-tls.20010505.patch.gz -Patch2: %{name}-umode_t.patch -Patch3: %{name}-glibc.patch -Patch4: %{name}-paths.patch -Patch5: %{name}-release.patch -Patch6: %{name}-noautopriv.patch -Patch7: %{name}-DESTDIR.patch -Patch8: %{name}-wtmp.patch -Patch9: %{name}-link.patch -Patch10: %{name}-port-65535.patch +Source7: ftpusers.tar.bz2 +# Source7-md5: 76c80b6ec9f4d079a1e27316edddbe16 +Source9: %{name}-mod_pam.conf +Source10: %{name}-mod_tls.conf +Source11: %{name}-anonftp.conf +Patch0: %{name}-umode_t.patch +Patch1: %{name}-glibc.patch +Patch2: %{name}-paths.patch +Patch3: %{name}-noautopriv.patch +Patch4: %{name}-wtmp.patch +Patch5: %{name}-sendfile64.patch +Patch6: %{name}-configure.patch URL: http://www.proftpd.org/ -%{?!_without_pam:BuildRequires: pam-devel} -%{?_with_ldap:BuildRequires: openldap-devel} -%{?_with_mysql:BuildRequires: mysql-devel} -%{?!_without_ssl:BuildRequires: openssl-devel >= 0.9.6a} -BuildRequires: libwrap-devel BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libwrap-devel +%if %{with mysql} || %{with quotamysql} +BuildRequires: mysql-devel +%endif +BuildRequires: ncurses-devel +%if %{with ldap} || %{with quotaldap} +BuildRequires: openldap-devel +%endif +%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d} +%{?with_pam:BuildRequires: pam-devel} +%if %{with pgsql} || %{with quotapgsql} +BuildRequires: postgresql-devel +%endif +BuildRequires: rpmbuild(macros) >= 1.268 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _sysconfdir /etc/ftpd +%define _sysconfdir /etc/ftpd %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 -http://www.proftpd.org/, including a server configuration directive +, including a server configuration directive reference manual. %description -l es -ProFTPD es un servidor ftp altamente configurable para sistemas +ProFTPD es un servidor FTP altamente configurable para sistemas operativos unix. Está proyectado para ser un substituto directo al wu-ftpd. La documentación completa está disponible en -http://www.proftpd.org, incluido el manual de referencia para las +, incluido el manual de referencia para las directivas de configuración del servidor. %description -l pl -ProFTPD jest wysoce konfigurowalnym serwerem ftp dla systemów Unix. +ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix. ProFTPD jest robiony jako bezpo¶redni zamiennik wu-ftpd. Pe³na -dokunentacja jest dostêpna on-line pod http://www.proftpd.org/ +dokumentacja jest dostêpna on-line pod w³±cznie z dokumentacj± dotycz±c± konfigurowania. %description -l pt_BR -O ProFTPD é um servidor ftp altamente configurável para sistemas +O ProFTPD é um servidor FTP altamente configurável para sistemas operacionais unix. É projetado para ser um substituto direto para o wu-ftpd. A -documentação completa está disponível em http://www.proftpd.org, +documentação completa está disponível em , incluindo o manual de referência para as diretivas de configuração do servidor. @@ -85,47 +98,66 @@ servidor. Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files Summary(pl): PROfesionalny serwer FTP - wspólne pliki Group: Daemons -Prereq: awk -Prereq: fileutils -Requires: logrotate -%{?!_without_pam:Requires: pam >= 0.67} +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 +%description common +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 -http://www.proftpd.org/, including a server configuration directive +, including a server configuration directive reference manual. +%description common -l es +ProFTPD es un servidor FTP altamente configurable para sistemas +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. + %description common -l pl -ProFTPD jest wysoce konfigurowalnym serwerem ftp dla systemów Unix. +ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix. ProFTPD jest robiony jako bezpo¶redni zamiennik wu-ftpd. Pe³na -dokunentacja jest dostêpna on-line pod http://www.proftpd.org/ +dokumentacja jest dostêpna on-line pod w³±cznie z dokumentacj± dotycz±c± konfigurowania. +%description common -l pt_BR +O ProFTPD é um servidor FTP altamente configurável para sistemas +operacionais unix. + +É projetado para ser um substituto direto para o wu-ftpd. A +documentação completa está disponível em , +incluindo o manual de referência para as diretivas de configuração do +servidor. + %package inetd Summary: inetd configs for proftpd Summary(pl): Pliki konfiguracyjne do u¿ycia proftpd poprzez inetd Group: Daemons -Prereq: %{name}-common = %{epoch}:%{version} -Prereq: rc-inetd -Provides: proftpd = %{epoch}:%{version}-%{release} -Requires: inetdaemon +Requires(post): fileutils +Requires(post): grep +Requires(post): sed >= 4.0 +Requires(triggerpostun): sed >= 4.0 +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: rc-inetd Provides: ftpserver -Obsoletes: proftpd-standalone -Obsoletes: ftpserver +Provides: proftpd = %{epoch}:%{version}-%{release} Obsoletes: anonftp Obsoletes: bftpd Obsoletes: ftpd-BSD +Obsoletes: ftpserver +Obsoletes: glftpd Obsoletes: heimdal-ftpd Obsoletes: linux-ftpd Obsoletes: muddleftpd +Obsoletes: proftpd-standalone Obsoletes: pure-ftpd Obsoletes: troll-ftpd Obsoletes: vsftpd Obsoletes: wu-ftpd Conflicts: man-pages < 1.51 +Conflicts: rpm < 4.4.2-0.2 %description inetd ProFTPD configs for running from inetd. @@ -134,27 +166,33 @@ ProFTPD configs for running from inetd. Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd. %package standalone -Summary: standalone daemon configs for proftpd +Summary: Standalone daemon configs for proftpd Summary(pl): Pliki konfiguracyjne do startowania proftpd w trybie standalone Group: Daemons -Prereq: %{name}-common = %{version} -Prereq: rc-scripts -Prereq: /sbin/chkconfig -Provides: proftpd = %{epoch}:%{version}-%{release} +Requires(post): fileutils +Requires(post): grep +Requires(post): sed >= 4.0 +Requires(post,preun): /sbin/chkconfig +Requires(triggerpostun): sed >= 4.0 +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: rc-scripts Provides: ftpserver -Obsoletes: proftpd-inetd -Obsoletes: ftpserver +Provides: proftpd = %{epoch}:%{version}-%{release} Obsoletes: anonftp Obsoletes: bftpd Obsoletes: ftpd-BSD +Obsoletes: ftpserver +Obsoletes: glftpd Obsoletes: heimdal-ftpd Obsoletes: linux-ftpd Obsoletes: muddleftpd +Obsoletes: proftpd-inetd Obsoletes: pure-ftpd Obsoletes: troll-ftpd Obsoletes: vsftpd Obsoletes: wu-ftpd Conflicts: man-pages < 1.51 +Conflicts: rpm < 4.4.2-0.2 %description standalone ProFTPD configs for running as a standalone daemon. @@ -163,136 +201,455 @@ ProFTPD configs for running as a standalone daemon. Pliki konfiguracyjne ProFTPD do startowania demona w trybie standalone. +%package devel +Summary: Header files ProFTPD +Summary(pl): Pliki nag³ówkowe ProFTPD +Group: Development/Libraries + +%description devel +This is the package containing the header files for ProFTPD. + +%description devel -l pl +Ten pakiet zawiera pliki nag³ówkowe ProFTPD + +%package anonftp +Summary: Anonymous FTP config for ProFTPD +Summary(pl): Konfiguracja anonimowego FTP dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description anonftp +Anonymous FTP config for ProFTPD. + +%description anonftp -l pl +Konfiguracja anonimowego FTP dla ProFTPD. + +%package mod_auth_pam +Summary: ProFTPD PAM auth module +Summary(pl): Modu³ uwierzytelnienia PAM dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: pam >= 0.79.0 + +%description mod_auth_pam +PAM authentication method for ProFTPD. + +%description mod_auth_pam -l pl +Metoda uwierzytelnienia PAM dla ProFTPD. + +%package mod_ldap +Summary: ProFTPD OpenLDAP module +Summary(pl): Modu³ OpenLDAP dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_ldap +mod_ldap provides LDAP authentication support for ProFTPD. It supports +many features useful in "toaster" environments such as default UID/GID +and autocreation/autogeneration of home directories. + +%description mod_ldap -l pl +mod_ldap dodaje obs³ugê uwierzytelnienia LDAP do ProFTPD. Obs³uguje +wiele cech przydatnych w ¶rodowiskach "tosterowych", takich jak +domy¶lny UID/GID i automatyczne tworzenie/generowanie katalogów +domowych. + +%package mod_quotatab +Summary: ProFTPD quotatab module +Summary(pl): Modu³ quotatab dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_quotatab +A module for managing FTP byte/file quotas via centralized tables. + +%description mod_quotatab -l pl +Modu³ do zarz±dzania ograniczeniami bajtów/plików FTP poprzez +scentralizowane tabele. + +%package mod_quotatab_file +Summary: ProFTPD quotatab file module +Summary(pl): Modu³ quotatab_file dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} + +%description mod_quotatab_file +A mod_quotatab sub-module for managing quota data via file-based +tables. + +%description mod_quotatab_file -l pl +Podmodu³ mod_quotatab do zarz±dzania danymi o ograniczeniach poprzez +tabele zapisane w pliku. + +%package mod_quotatab_ldap +Summary: ProFTPD quotatab ldap module +Summary(pl): Modu³ quotatab_ldap dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} + +%description mod_quotatab_ldap +A mod_quotatab sub-module for obtaining quota information from an LDAP +directory. + +%description mod_quotatab_ldap -l pl +Podmodu³ mod_quotatab do pobierania informacji o ograniczeniach z +katalogu LDAP. + +%package mod_quotatab_sql +Summary: ProFTPD quotatab sql module +Summary(pl): Modu³ quotatab_sql dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_quotatab_sql +A mod_quotatab sub-module for managing quota data via SQL-based +tables. + +%description mod_quotatab_sql -l pl +Podmodu³ mod_quotatab do zarz±dzania danymi o ograniczeniach poprzez +tabele SQL. + +%package mod_ratio +Summary: ProFTPD ratio module +Summary(pl): Modu³ ratio dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_ratio +Support upload/download ratios. + +%description mod_ratio -l pl +Obs³uga wspó³czynników upload/download. + +%package mod_readme +Summary: ProFTPD readme module +Summary(pl): Modu³ readme dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_readme +"README" file support. + +%description mod_readme -l pl +Obs³uga pliku "README". + +%package mod_sql +Summary: ProFTPD SQL support module +Summary(pl): Modu³ obs³ugi SQL dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_sql +This module provides the necessary support for SQL based +authentication, logging and other features as required. + +%description mod_sql -l pl +Ten modu³ dodaje obs³ugê SQL potrzebn± do uwierzytelniania, logowania +i innych mo¿liwo¶ci opartych o SQL. + +%package mod_sql_mysql +Summary: ProFTPD sql mysql module +Summary(pl): Modu³ sql_mysql dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_sql_mysql +Support for connecting to MySQL databases. + +%description mod_sql_mysql -l pl +Obs³uga ³±czenia siê z bazami danych MySQL. + +%package mod_sql_postgres +Summary: ProFTPD sql postgres module +Summary(pl): Modu³ sql_postgres dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_sql_postgres +Support for connecting to PostgreSQL databases. + +%description mod_sql_postgres -l pl +Obs³uga ³±czenia siê z bazami danych PostgreSQL. + +%package mod_tls +Summary: ProFTPD TLS support +Summary(pl): Obs³uga TLS dla ProFTPD +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_tls +An RFC2228 SSL/TLS module for ProFTPD. + +%description mod_tls -l pl +Modu³ SSL/TLS zgodny z RFC2228 dla ProFTPD. + +%package mod_wrap +Summary: ProFTPD interface to libwrap +Summary(pl): Interfejs ProFTPD do libwrap +Group: Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: libwrap + +%description mod_wrap +It enables the daemon to use the common tcpwrappers access control +library while in standalone mode, and in a very configurable manner. + +Many programs will automatically add entries in the common allow/deny +files, and use of this module will allow a ProFTPD daemon running in +standalone mode to adapt as these entries are added. The portsentry +program does this, for example: when illegal access is attempted, it +will add hosts to the /etc/hosts.deny file. + +%description mod_wrap -l pl +Ten pakiet pozwala demonowi u¿ywaæ wspólnej biblioteki kontroli +dostêpu tcpwrappers w trybie samodzielnym w bardzo wygodny sposób. + +Wiele programów automatycznie dodaje wpisy we wspólnych plikach +allow/deny, a u¿ycie tego modu³u pozwala demonowi ProFTPD dzia³aj±cemu +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. + %prep -%setup -q +%setup -q -n %{name}-%{version}%{?_rc} %patch0 -p1 -%patch1 -p1 +#%patch1 -p1 CONFUSES mod_ls.c %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 +#%patch5 -p1 NEEDS UPDATE %patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p0 -install -m644 %{SOURCE7} contrib/mod_tcpd.c + +cp -f /usr/share/automake/config.sub . + +# cleanup backups after patching +find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f %build %{__autoconf} -RUN_DIR=%{_localstatedir} ; export RUN_DIR + +MODULES=" +mod_ratio +mod_readme +mod_wrap +%{?with_ssl:mod_tls} +%{?with_pam:mod_auth_pam} +%{?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_linuxprivs:mod_linuxprivs} +%{?with_mysql:mod_sql mod_sql_mysql} +%{?with_pgsql:mod_sql mod_sql_postgres} +" + +MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':') %configure \ + --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \ --enable-autoshadow \ - --with-modules=mod_ratio:mod_readme%{?!_without_ipv6::mod_tcpd}%{?!_without_pam::mod_pam}%{?_with_ldap::mod_ldap}%{?_with_quota::mod_quota}%{?_with_linuxprivs::mod_linuxprivs}%{?_with_mysql::mod_sql:mod_sql_mysql} \ - %{?!_without_ipv6:--enable-ipv6} \ - %{?_without_ssl:--disable-tls} \ - --enable-sendfile + --enable-ctrls \ + --enable-dso \ + --enable-facl \ + %{?with_ipv6:--enable-ipv6} \ + --enable-sendfile \ + %{!?with_ssl:--disable-tls} \ + --with-shared=$MODARG \ %{__make} %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%{_sysconfdir}/conf.d \ + $RPM_BUILD_ROOT%{_includedir}/%{name} -install -d $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \ - $RPM_BUILD_ROOT/{home/ftp/pub/Incoming,var/log} +%{__make} install \ + DESTDIR=$RPM_BUILD_ROOT \ + INSTALL_USER=%(id -u) \ + INSTALL_GROUP=%(id -g) -%{__make} install DESTDIR=$RPM_BUILD_ROOT \ - INSTALL_USER=`id -u` \ - INSTALL_GROUP=`id -g` - -rm -f $RPM_BUILD_ROOT%{_sbindir}/in.proftpd +rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} -install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/ftpd -%{?!_without_pam:install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp} +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} +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 + +%{?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 -bzip2 -dc %{SOURCE8} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} - -mv -f contrib/README contrib/README.modules +bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers -:> $RPM_BUILD_ROOT/var/log/xferlog +# 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 -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff* +cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name} + %clean rm -rf $RPM_BUILD_ROOT %post common -touch /var/log/xferlog -awk 'BEGIN { FS = ":" }; { if(($3 < 500)&&($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default +umask 027 +awk -F: '{ if (($3 < 500) && ($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default if [ ! -f %{_sysconfdir}/ftpusers ]; then - ( cd %{_sysconfdir}; mv -f ftpusers.default ftpusers ) + cp -f %{_sysconfdir}/ftpusers.default %{_sysconfdir}/ftpusers fi -%post inetd +%posttrans inetd if grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf ; then - cp -a %{_sysconfdir}/proftpd.conf %{_sysconfdir}/proftpd.conf.rpmorig - sed -e "s/^ServerType[[:space:]]\+standalone/ServerType inetd/g" \ - %{_sysconfdir}/proftpd.conf.rpmorig >%{_sysconfdir}/proftpd.conf -fi -if [ -f /var/lock/subsys/rc-inetd ]; then - /etc/rc.d/init.d/rc-inetd reload 1>&2 -else - echo "Type \"/etc/rc.d/init.d/rc-inetd start\" to start inet server" 1>&2 + cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} + sed -i -e 's/^ServerType[[:space:]]\+standalone/ServerType inetd/g' %{_sysconfdir}/proftpd.conf fi +%service -q rc-inetd reload %postun inetd -if [ "$1" = "0" -a -f /var/lock/subsys/rc-inetd ]; then - /etc/rc.d/init.d/rc-inetd reload 1>&2 +if [ "$1" = "0" ]; then + %service -q rc-inetd reload fi -%post standalone -/sbin/chkconfig --add proftpd +%posttrans standalone if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf ; then - cp -a %{_sysconfdir}/proftpd.conf %{_sysconfdir}/proftpd.conf.rpmorig - sed -e "s/^ServerType[[:space:]]\+inetd/ServerType standalone/g" \ - %{_sysconfdir}/proftpd.conf.rpmorig >%{_sysconfdir}/proftpd.conf -fi -if [ -f /var/lock/subsys/proftpd ]; then - /etc/rc.d/init.d/proftpd restart 1>&2 -else - echo "Run \"/etc/rc.d/init.d/proftpd start\" to start ProFTPD daemon." + cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} + sed -i -e 's/^ServerType[[:space:]]\+inetd/ServerType standalone/g' %{_sysconfdir}/proftpd.conf fi +/sbin/chkconfig --add proftpd +%service proftpd restart "ProFTPD daemon" %preun standalone if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/proftpd ]; then - /etc/rc.d/init.d/proftpd stop 1>&2 - fi + %service proftpd stop /sbin/chkconfig --del proftpd fi +# macro called at module post scriptlet +%define module_post \ +if [ "$1" = "1" ]; then \ + if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \ + %service -q rc-inetd reload \ + elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \ + %service -q proftpd restart \ + fi \ +fi + +# macro called at module postun scriptlet +%define module_postun \ +if [ "$1" = "0" ]; then \ + if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \ + %service -q rc-inetd reload \ + elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \ + %service -q proftpd restart \ + fi \ +fi + +# it's sooo annoying to write them +%define module_scripts() \ +%post %1 \ +%module_post \ +\ +%postun %1 \ +%module_postun + +%module_scripts mod_auth_pam +%module_scripts mod_ldap +%module_scripts mod_quotatab +%module_scripts mod_quotatab_file +%module_scripts mod_quotatab_ldap +%module_scripts mod_quotatab_sql +%module_scripts mod_ratio +%module_scripts mod_readme +%module_scripts mod_sql +%module_scripts mod_sql_mysql +%module_scripts mod_sql_postgres +%module_scripts mod_tls +%module_scripts mod_wrap + +%triggerpostun inetd -- %{name}-inetd <= 1:1.2.10 +echo "Changing deprecated config options" +cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} +sed -i -e ' + s/AuthPAMAuthoritative\b/AuthPAM/ + s/TCPDServiceName/TCPServiceName/ + s/TlsRsaCertFile/TLSRSACertificateFile/ + s/TlsRsaKeyFile/TLSRSACertificateKeyFile/ + s/TlsDsaCertFile/TLSDSACertificateFile/ + s/TlsDsaKeyFile/TLSDSACertificateKeyFile/ + s/TlsCrlFile/TLSCARevocationFile/ + s/TlsDhParamFile/TLSDHParamFile/ + s/TlsCipherList/TLSCipherSuite/ + s/TlsCertsOk/TLSVerifyClient/ + /UseTCPD/d +' %{_sysconfdir}/proftpd.conf + +%triggerpostun standalone -- %{name}-standalone <= 1:1.2.10 +echo "Changing deprecated config options" +cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} +sed -i -e ' + s/AuthPAMAuthoritative\b/AuthPAM/ + s/TCPDServiceName/TCPServiceName/ + s/TlsRsaCertFile/TLSRSACertificateFile/ + s/TlsRsaKeyFile/TLSRSACertificateKeyFile/ + s/TlsDsaCertFile/TLSDSACertificateFile/ + s/TlsDsaKeyFile/TLSDSACertificateKeyFile/ + s/TlsCrlFile/TLSCARevocationFile/ + s/TlsDhParamFile/TLSDHParamFile/ + s/TlsCipherList/TLSCipherSuite/ + s/TlsCertsOk/TLSVerifyClient/ + /UseTCPD/d +' %{_sysconfdir}/proftpd.conf + %files common %defattr(644,root,root,755) -%doc sample-configurations/{virtual,anonymous}.conf ChangeLog README -%doc README.linux-* contrib/README.modules README.IPv6 README.PAM -%doc README.TLS README.mod_sql README.LDAP doc/*html - -%attr(750,root,ftp) %dir %{_sysconfdir} +%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 +%dir %attr(750,root,ftp) %dir %{_sysconfdir} %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf -%attr(640,root,root) /etc/logrotate.d/* -%attr(640,root,root) %ghost /var/log/* -%{?!_without_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) %ghost %{_sysconfdir}/ftpusers %attr(640,root,root) %{_sysconfdir}/ftpusers.default -%attr(640,root,root) %ghost %{_sysconfdir}/ftpusers -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp - +%dir %attr(750,root,root) %{_sysconfdir}/conf.d %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/* - +%dir %{_libdir}/%{name} +%dir /var/run/proftpd %{_mandir}/man[18]/* - -%dir /home/ftp/pub -%attr(711,root,root) %dir /home/ftp/pub/Incoming +%dir /var/lib/ftp +%dir /var/lib/ftp/pub +%attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming %files inetd %defattr(644,root,root,755) @@ -305,10 +662,103 @@ fi %files standalone %defattr(644,root,root,755) -%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/proftpd +%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} + +%files anonftp +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf + +%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/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 +%endif + +%if %{with ldap} +%files mod_ldap +%defattr(644,root,root,755) +%doc README.LDAP +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf +%attr(755,root,root) %{_libexecdir}/mod_ldap.so +%endif + +%files mod_quotatab +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab.so + +%if %{with quotafile} +%files mod_quotatab_file +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so +%endif + +%if %{with quotaldap} +%files mod_quotatab_ldap +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so +%endif + +%if %{with quotamysql} || %{with quotapgsql} +%files mod_quotatab_sql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so +%endif + +%files mod_ratio +%defattr(644,root,root,755) +%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 + +%files mod_readme +%defattr(644,root,root,755) +%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 + +%if %{with mysql} || %{with pgsql} +%files mod_sql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf +%attr(755,root,root) %{_libexecdir}/mod_sql.so +%endif + +%if %{with mysql} +%files mod_sql_mysql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf +%attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so +%endif + +%if %{with pgsql} +%files mod_sql_postgres +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf +%attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so +%endif + +%files mod_tls +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf +%attr(755,root,root) %{_libexecdir}/mod_tls.so + +%files mod_wrap +%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