2 # - mod_caps uses uname -r for detection
3 # - don't use internal libltdl
4 # - package contrib/ftp* perl scripts.
7 %bcond_without pam # disable PAM support
8 %bcond_without ipv6 # disable IPv6 and TCPD support
9 %bcond_without ssl # disbale TLS/SSL support
10 %bcond_without ldap # disable LDAP support
11 %bcond_without mysql # disable MySQL support
12 %bcond_without pgsql # disable PostgreSQL support
13 %bcond_without quotafile # disable quota file support
14 %bcond_without quotaldap # disable quota ldap support
15 %bcond_without quotamysql # disable quota mysql support
16 %bcond_without quotapgsql # disable quota pgsql support
18 %define mod_clamav_version 0.13
20 Summary: PROfessional FTP Daemon with apache-like configuration syntax
21 Summary(es.UTF-8): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache
22 Summary(pl.UTF-8): PROfesionalny serwer FTP
23 Summary(pt_BR.UTF-8): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache
24 Summary(zh_CN.UTF-8): 易于管理的,安全的 FTP 服务器
30 Group: Networking/Daemons
31 Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
32 # Source0-md5: bee3df0bc3c945c62657410610fedeb3
33 # https://github.com/jbenden/mod_clamav
34 Source1: mod_clamav-%{mod_clamav_version}.tar.xz
35 # Source1-md5: 89ec19115d9ea7c7f4e0b0c4551e69bc
38 Source4: %{name}.inetd
39 Source5: %{name}.sysconfig
41 Source7: ftpusers.tar.bz2
42 # Source7-md5: 76c80b6ec9f4d079a1e27316edddbe16
43 Source9: %{name}-mod_pam.conf
44 Source10: %{name}-mod_tls.conf
45 Source11: %{name}-anonftp.conf
46 Source12: %{name}-mod_clamav.conf
47 Source13: %{name}.logrotate
48 Source14: %{name}-server.crt
49 Source15: %{name}-server.key
50 Patch0: %{name}-paths.patch
51 Patch1: %{name}-noautopriv.patch
52 URL: http://www.proftpd.org/
53 BuildRequires: acl-devel
54 BuildRequires: autoconf
55 BuildRequires: automake
56 BuildRequires: libcap-devel
57 BuildRequires: libstdc++-devel
58 BuildRequires: libwrap-devel
59 %if %{with mysql} || %{with quotamysql}
60 BuildRequires: mysql-devel
62 BuildRequires: ncurses-devel
63 %if %{with ldap} || %{with quotaldap}
64 BuildRequires: openldap-devel
66 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
67 %{?with_pam:BuildRequires: pam-devel}
68 %if %{with pgsql} || %{with quotapgsql}
69 BuildRequires: postgresql-devel
71 BuildRequires: rpmbuild(macros) >= 1.268
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 %define _sysconfdir /etc/proftpd
75 %define _localstatedir /var/run
76 %define _libexecdir %{_prefix}/%{_lib}/%{name}
78 # macro called at module post scriptlet
80 if [ "$1" = "1" ]; then \
81 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
82 %service -q rc-inetd reload \
83 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
84 %service -q proftpd restart \
88 # macro called at module postun scriptlet
89 %define module_postun \
90 if [ "$1" = "0" ]; then \
91 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
92 %service -q rc-inetd reload \
93 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
94 %service -q proftpd restart \
98 %define module_triggerun \
99 if [ $1 -le 1 ]; then \
102 [ -d /etc/proftpd/conf.d ] || mkdir -p /etc/proftpd 2>/dev/null || : \
103 %if "%1" == "mod_tls" \
104 for f in /etc/ftpd/{conf.d/mod_tls.conf,server.crt,server.key}; do \
106 [ -f "/etc/ftpd/$f" ] && mv "/etc/ftpd/$f" /etc/proftpd 2>/dev/null || : \
107 [ -f "/etc/ftpd/conf.d/$f" ] && mv "/etc/ftpd/conf.d/$f" /etc/proftpd/conf.d 2>/dev/null || : \
110 [ -f /etc/ftpd/conf.d/%1.conf ] && mv /etc/ftpd/conf.d/%1.conf /etc/proftpd/conf.d 2>/dev/null || : \
112 sed -i -e 's|/etc/ftpd|/etc/proftpd|g' /etc/ftpd/conf.d/%1.conf 2>/dev/null \
113 [ -n "$(find /etc/ftpd/conf.d -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd/conf.d 2>/dev/null || : \
114 [ -n "$(find /etc/ftpd -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd 2>/dev/null || :
116 # it's sooo annoying to write them
117 %define module_scripts() \
124 %triggerun %1 -- proftpd-%1 \
128 ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
129 operating systems. ProFTPD is designed to be somewhat of a "drop-in"
130 replacement for wu-ftpd. Full online documentation is available at
131 <http://www.proftpd.org/>, including a server configuration directive
134 %description -l es.UTF-8
135 ProFTPD es un servidor FTP altamente configurable para sistemas
136 operativos Unix. Está proyectado para ser un substituto directo al
137 wu-ftpd. La documentación completa está disponible en
138 <http://www.proftpd.org/>, incluido el manual de referencia para las
139 directivas de configuración del servidor.
141 %description -l pl.UTF-8
142 ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
143 ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
144 dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
145 włącznie z dokumentacją dotyczącą konfigurowania.
147 %description -l pt_BR.UTF-8
148 O ProFTPD é um servidor FTP altamente configurável para sistemas
151 É projetado para ser um substituto direto para o wu-ftpd. A
152 documentação completa está disponível em <http://www.proftpd.org/>,
153 incluindo o manual de referência para as diretivas de configuração do
157 Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files
158 Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki
159 Group: Networking/Daemons
161 Requires(post): fileutils
162 Obsoletes: proftpd < 0:1.2.2rc1-3
165 ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
166 operating systems. ProFTPD is designed to be somewhat of a "drop-in"
167 replacement for wu-ftpd. Full online documentation is available at
168 <http://www.proftpd.org/>, including a server configuration directive
171 %description common -l es.UTF-8
172 ProFTPD es un servidor FTP altamente configurable para sistemas
173 operativos Unix. Está proyectado para ser un substituto directo al
174 wu-ftpd. La documentación completa está disponible en
175 <http://www.proftpd.org/>, incluido el manual de referencia para las
176 directivas de configuración del servidor.
178 %description common -l pl.UTF-8
179 ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
180 ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
181 dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
182 włącznie z dokumentacją dotyczącą konfigurowania.
184 %description common -l pt_BR.UTF-8
185 O ProFTPD é um servidor FTP altamente configurável para sistemas
188 É projetado para ser um substituto direto para o wu-ftpd. A
189 documentação completa está disponível em <http://www.proftpd.org/>,
190 incluindo o manual de referência para as diretivas de configuração do
194 Summary: inetd configs for proftpd
195 Summary(pl.UTF-8): Pliki konfiguracyjne do użycia proftpd poprzez inetd
196 Group: Networking/Daemons
197 Requires(post): fileutils
199 Requires(post): sed >= 4.0
200 Requires(triggerpostun): sed >= 4.0
201 Requires: %{name}-common = %{epoch}:%{version}-%{release}
204 Provides: proftpd = %{epoch}:%{version}-%{release}
210 Obsoletes: heimdal-ftpd
212 Obsoletes: linux-ftpd
213 Obsoletes: muddleftpd
214 Obsoletes: proftpd-standalone
216 Obsoletes: troll-ftpd
219 Conflicts: man-pages < 1.51
220 Conflicts: rpm < 4.4.2-0.2
223 ProFTPD configs for running from inetd.
225 %description inetd -l pl.UTF-8
226 Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd.
229 Summary: Standalone daemon configs for proftpd
230 Summary(pl.UTF-8): Pliki konfiguracyjne do startowania proftpd w trybie standalone
231 Group: Networking/Daemons
232 Requires(post): fileutils
234 Requires(post): sed >= 4.0
235 Requires(post,preun): /sbin/chkconfig
236 Requires(triggerpostun): sed >= 4.0
237 Requires: %{name}-common = %{epoch}:%{version}-%{release}
240 Provides: proftpd = %{epoch}:%{version}-%{release}
246 Obsoletes: heimdal-ftpd
248 Obsoletes: linux-ftpd
249 Obsoletes: muddleftpd
250 Obsoletes: proftpd-inetd
252 Obsoletes: troll-ftpd
255 Conflicts: man-pages < 1.51
256 Conflicts: rpm < 4.4.2-0.2
258 %description standalone
259 ProFTPD configs for running as a standalone daemon.
261 %description standalone -l pl.UTF-8
262 Pliki konfiguracyjne ProFTPD do startowania demona w trybie
266 Summary: Header files ProFTPD
267 Summary(pl.UTF-8): Pliki nagłówkowe ProFTPD
268 Group: Development/Libraries
272 This is the package containing the header files for ProFTPD.
274 %description devel -l pl.UTF-8
275 Ten pakiet zawiera pliki nagłówkowe ProFTPD
278 Summary: Anonymous FTP config for ProFTPD
279 Summary(pl.UTF-8): Konfiguracja anonimowego FTP dla ProFTPD
280 Group: Networking/Daemons
281 Requires: %{name}-common = %{epoch}:%{version}-%{release}
284 Anonymous FTP config for ProFTPD.
286 %description anonftp -l pl.UTF-8
287 Konfiguracja anonimowego FTP dla ProFTPD.
289 %package mod_auth_pam
290 Summary: ProFTPD PAM auth module
291 Summary(pl.UTF-8): Moduł uwierzytelnienia PAM dla ProFTPD
292 Group: Networking/Daemons
293 Requires: %{name}-common = %{epoch}:%{version}-%{release}
294 Requires: pam >= 0.79.0
296 %description mod_auth_pam
297 PAM authentication method for ProFTPD.
299 %description mod_auth_pam -l pl.UTF-8
300 Metoda uwierzytelnienia PAM dla ProFTPD.
303 Summary: ProFTPD OpenLDAP module
304 Summary(pl.UTF-8): Moduł OpenLDAP dla ProFTPD
305 Group: Networking/Daemons
306 Requires: %{name}-common = %{epoch}:%{version}-%{release}
308 %description mod_ldap
309 mod_ldap provides LDAP authentication support for ProFTPD. It supports
310 many features useful in "toaster" environments such as default UID/GID
311 and autocreation/autogeneration of home directories.
313 %description mod_ldap -l pl.UTF-8
314 mod_ldap dodaje obsługę uwierzytelnienia LDAP do ProFTPD. Obsługuje
315 wiele cech przydatnych w środowiskach "tosterowych", takich jak
316 domyślny UID/GID i automatyczne tworzenie/generowanie katalogów
319 %package mod_quotatab
320 Summary: ProFTPD quotatab module
321 Summary(pl.UTF-8): Moduł quotatab dla ProFTPD
322 Group: Networking/Daemons
323 Requires: %{name}-common = %{epoch}:%{version}-%{release}
325 %description mod_quotatab
326 A module for managing FTP byte/file quotas via centralized tables.
328 %description mod_quotatab -l pl.UTF-8
329 Moduł do zarządzania ograniczeniami bajtów/plików FTP poprzez
330 scentralizowane tabele.
332 %package mod_quotatab_file
333 Summary: ProFTPD quotatab file module
334 Summary(pl.UTF-8): Moduł quotatab_file dla ProFTPD
335 Group: Networking/Daemons
336 Requires: %{name}-common = %{epoch}:%{version}-%{release}
337 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
339 %description mod_quotatab_file
340 A mod_quotatab sub-module for managing quota data via file-based
343 %description mod_quotatab_file -l pl.UTF-8
344 Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
345 tabele zapisane w pliku.
347 %package mod_quotatab_ldap
348 Summary: ProFTPD quotatab ldap module
349 Summary(pl.UTF-8): Moduł quotatab_ldap dla ProFTPD
350 Group: Networking/Daemons
351 Requires: %{name}-common = %{epoch}:%{version}-%{release}
352 Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release}
353 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
355 %description mod_quotatab_ldap
356 A mod_quotatab sub-module for obtaining quota information from an LDAP
359 %description mod_quotatab_ldap -l pl.UTF-8
360 Podmoduł mod_quotatab do pobierania informacji o ograniczeniach z
363 %package mod_quotatab_sql
364 Summary: ProFTPD quotatab sql module
365 Summary(pl.UTF-8): Moduł quotatab_sql dla ProFTPD
366 Group: Networking/Daemons
367 Requires: %{name}-common = %{epoch}:%{version}-%{release}
368 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
369 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
371 %description mod_quotatab_sql
372 A mod_quotatab sub-module for managing quota data via SQL-based
375 %description mod_quotatab_sql -l pl.UTF-8
376 Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
380 Summary: ProFTPD ratio module
381 Summary(pl.UTF-8): Moduł ratio dla ProFTPD
382 Group: Networking/Daemons
383 Requires: %{name}-common = %{epoch}:%{version}-%{release}
385 %description mod_ratio
386 Support upload/download ratios.
388 %description mod_ratio -l pl.UTF-8
389 Obsługa współczynników upload/download.
392 Summary: ProFTPD readme module
393 Summary(pl.UTF-8): Moduł readme dla ProFTPD
394 Group: Networking/Daemons
395 Requires: %{name}-common = %{epoch}:%{version}-%{release}
397 %description mod_readme
398 "README" file support.
400 %description mod_readme -l pl.UTF-8
401 Obsługa pliku "README".
404 Summary: ProFTPD rewrite module
405 Summary(pl.UTF-8): Moduł rewrite dla ProFTPD
406 Group: Networking/Daemons
407 Requires: %{name}-common = %{epoch}:%{version}-%{release}
409 %description mod_rewrite
410 Runtime rewrite engine.
412 %description mod_rewrite -l pl.UTF-8
413 Silnik przepisujący adresy w locie.
416 Summary: ProFTPD SQL support module
417 Summary(pl.UTF-8): Moduł obsługi SQL dla ProFTPD
418 Group: Networking/Daemons
419 Requires: %{name}-common = %{epoch}:%{version}-%{release}
422 This module provides the necessary support for SQL based
423 authentication, logging and other features as required.
425 %description mod_sql -l pl.UTF-8
426 Ten moduł dodaje obsługę SQL potrzebną do uwierzytelniania, logowania
427 i innych możliwości opartych o SQL.
429 %package mod_sql_mysql
430 Summary: ProFTPD sql mysql module
431 Summary(pl.UTF-8): Moduł sql_mysql dla ProFTPD
432 Group: Networking/Daemons
433 Requires: %{name}-common = %{epoch}:%{version}-%{release}
434 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
436 %description mod_sql_mysql
437 Support for connecting to MySQL databases.
439 %description mod_sql_mysql -l pl.UTF-8
440 Obsługa łączenia się z bazami danych MySQL.
442 %package mod_sql_postgres
443 Summary: ProFTPD sql postgres module
444 Summary(pl.UTF-8): Moduł sql_postgres dla ProFTPD
445 Group: Networking/Daemons
446 Requires: %{name}-common = %{epoch}:%{version}-%{release}
447 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
449 %description mod_sql_postgres
450 Support for connecting to PostgreSQL databases.
452 %description mod_sql_postgres -l pl.UTF-8
453 Obsługa łączenia się z bazami danych PostgreSQL.
456 Summary: ProFTPD TLS support
457 Summary(pl.UTF-8): Obsługa TLS dla ProFTPD
458 Group: Networking/Daemons
459 Requires: %{name}-common = %{epoch}:%{version}-%{release}
462 An RFC2228 SSL/TLS module for ProFTPD.
464 %description mod_tls -l pl.UTF-8
465 Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD.
468 Summary: ProFTPD interface to libwrap
469 Summary(pl.UTF-8): Interfejs ProFTPD do libwrap
470 Group: Networking/Daemons
471 Requires: %{name}-common = %{epoch}:%{version}-%{release}
474 %description mod_wrap
475 It enables the daemon to use the common tcpwrappers access control
476 library while in standalone mode, and in a very configurable manner.
478 Many programs will automatically add entries in the common allow/deny
479 files, and use of this module will allow a ProFTPD daemon running in
480 standalone mode to adapt as these entries are added. The portsentry
481 program does this, for example: when illegal access is attempted, it
482 will add hosts to the /etc/hosts.deny file.
484 %description mod_wrap -l pl.UTF-8
485 Ten pakiet pozwala demonowi używać wspólnej biblioteki kontroli
486 dostępu tcpwrappers w trybie samodzielnym w bardzo wygodny sposób.
488 Wiele programów automatycznie dodaje wpisy we wspólnych plikach
489 allow/deny, a użycie tego modułu pozwala demonowi ProFTPD działającemu
490 w trybie samodzielnym adaptować te wpisy w miarę dodawania. Robi tak
491 na przykład program portsentry: przy próbie niedozwolonego dostępu
492 dodaje hosty do pliku /etc/hosts.deny.
495 %setup -q -n %{name}-%{version}%{?_rc} -a1
500 cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/
502 cp -f /usr/share/automake/config.sub .
504 # cleanup backups after patching
505 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
521 %{?with_pam:mod_auth_pam}
522 %{?with_ldap:mod_ldap}
523 %{?with_quotafile:mod_quotatab mod_quotatab_file}
524 %{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
525 %{?with_quotamysql:mod_quotatab mod_quotatab_sql}
526 %{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
527 %{?with_mysql:mod_sql mod_sql_mysql}
528 %{?with_pgsql:mod_sql mod_sql_postgres}
531 MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':')
533 --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \
535 --enable-buffer-size=4096 \
536 --disable-auth-file \
537 --enable-autoshadow \
541 %{?with_ipv6:--enable-ipv6} \
544 %{!?with_ssl:--disable-tls} \
545 --with-shared=$MODARG \
546 --with-modules=mod_clamav
551 rm -rf $RPM_BUILD_ROOT
552 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \
553 $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log/{archive,}/proftpd,run/proftpd} \
554 $RPM_BUILD_ROOT%{_sysconfdir}/conf.d \
555 $RPM_BUILD_ROOT%{_includedir}/%{name}
558 DESTDIR=$RPM_BUILD_ROOT \
559 INSTALL_USER=%(id -u) \
560 INSTALL_GROUP=%(id -g)
562 rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd
564 install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}
565 cp -a %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf
573 %{?with_ldap:mod_ldap}
574 %{?with_quotafile:mod_quotatab mod_quotatab_file}
575 %{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
576 %{?with_quotamysql:mod_quotatab mod_quotatab_sql}
577 %{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
578 %{?with_mysql:mod_sql mod_sql_mysql}
579 %{?with_pgsql:mod_sql mod_sql_postgres}
581 for module in $MODULES; do
582 echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf
584 cp -a %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf
585 cp -a %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf
586 cp -a %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_clamav.conf
588 cp -a %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/server.crt
589 cp -a %{SOURCE15} $RPM_BUILD_ROOT%{_sysconfdir}/server.key
591 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/proftpd
593 %{?with_pam:cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp}
594 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd
595 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd
596 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd
597 install contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat
599 bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
601 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default
602 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers
604 # only for -inetd package?
605 ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd
607 :> $RPM_BUILD_ROOT/etc/security/blacklist.ftp
609 rm $RPM_BUILD_ROOT%{_libexecdir}/*.a
610 rm $RPM_BUILD_ROOT%{_libexecdir}/*.la
612 rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff*
613 cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name}
616 rm -rf $RPM_BUILD_ROOT
620 awk -F: '{ if (($3 < 500) && ($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default
621 if [ ! -f %{_sysconfdir}/ftpusers ]; then
622 cp -f %{_sysconfdir}/ftpusers.default %{_sysconfdir}/ftpusers
626 if grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf ; then
627 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
628 sed -i -e 's/^ServerType[[:space:]]\+standalone/ServerType inetd/g' %{_sysconfdir}/proftpd.conf
630 %service -q rc-inetd reload
633 if [ "$1" = "0" ]; then
634 %service -q rc-inetd reload
637 %posttrans standalone
638 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf ; then
639 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
640 sed -i -e 's/^ServerType[[:space:]]\+inetd/ServerType standalone/g' %{_sysconfdir}/proftpd.conf
642 /sbin/chkconfig --add proftpd
643 %service proftpd restart "ProFTPD daemon"
646 if [ "$1" = "0" ]; then
647 %service proftpd stop
648 /sbin/chkconfig --del proftpd
651 %triggerin standalone -- pam
652 # restart proftpd if pam is upgraded
653 # (proftpd is linked with old libpam but tries to open modules linked with new libpam)
654 if [ "$2" != 1 ]; then
655 %service -q proftpd restart
658 %triggerun common -- proftpd-common < 2:1.3.6-5
659 if [ $1 -le 1 ]; then
662 [ -d /etc/proftpd/conf.d ] || mkdir -p /etc/proftpd/conf.d 2>/dev/null || :
663 for f in /etc/ftpd/{conf.d/mod_{auth_file,clamav,ident}.conf,ftpusers,ftpusers.default,proftpd.conf}; do
665 [ -f "/etc/ftpd/$f" ] && mv "/etc/ftpd/$f" /etc/proftpd 2>/dev/null || :
666 [ -f "/etc/ftpd/conf.d/$f" ] && mv "/etc/ftpd/conf.d/$f" /etc/proftpd/conf.d 2>/dev/null || :
668 find /etc/proftpd -type f 2>/dev/null | xargs sed -i -e 's|/etc/ftpd|/etc/proftpd|g' 2>/dev/null
669 [ -n "$(find /etc/ftpd/conf.d -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd 2>/dev/null || :
670 [ -n "$(find /etc/ftpd -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd 2>/dev/null || :
672 %triggerpostun common -- proftpd-common < 2:1.3.6-5
674 echo "Warning! Configuration has been migrated to /etc/proftpd."
677 %triggerun anonftp -- proftpd-anonftp < 2:1.3.6-5
678 if [ $1 -le 1 ]; then
681 [ -d /etc/proftpd/conf.d ] || mkdir -p /etc/proftpd 2>/dev/null || :
682 [ -f /etc/ftpd/conf.d/anonftp.conf ] && mv /etc/ftpd/conf.d/anonftp.conf /etc/proftpd/conf.d 2>/dev/null || :
683 sed -i -e 's|/etc/ftpd|/etc/proftpd|g' /etc/ftpd/conf.d/anonftp.conf 2>/dev/null
684 [ -n "$(find /etc/ftpd/conf.d -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd 2>/dev/null || :
685 [ -n "$(find /etc/ftpd -type d -empty 2>/dev/null)" ] && rmdir /etc/ftpd 2>/dev/null || :
687 %module_scripts mod_auth_pam
688 %module_scripts mod_ldap
689 %module_scripts mod_quotatab
690 %module_scripts mod_quotatab_file
691 %module_scripts mod_quotatab_ldap
692 %module_scripts mod_quotatab_sql
693 %module_scripts mod_ratio
694 %module_scripts mod_readme
695 %module_scripts mod_rewrite
696 %module_scripts mod_sql
697 %module_scripts mod_sql_mysql
698 %module_scripts mod_sql_postgres
699 %module_scripts mod_tls
700 %module_scripts mod_wrap
703 %defattr(644,root,root,755)
704 %doc sample-configurations/*.conf CREDITS ChangeLog NEWS RELEASE_NOTES
705 %doc README.md README.modules
706 %doc doc/*.html doc/contrib doc/howto doc/modules
707 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/proftpd
708 %dir %attr(750,root,ftp) %dir %{_sysconfdir}
709 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
710 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers
711 %attr(640,root,root) %{_sysconfdir}/ftpusers.default
712 %dir %attr(750,root,root) %{_sysconfdir}/conf.d
713 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf
714 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf
715 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf
716 %attr(750,root,root) %dir /var/log/proftpd
717 %attr(750,root,root) %dir /var/log/archive/proftpd
718 %attr(755,root,root) %{_bindir}/*
719 %attr(755,root,root) %{_sbindir}/*
721 %attr(755,root,root) %{_libexecdir}/mod_auth_file.so
722 %attr(755,root,root) %{_libexecdir}/mod_facl.so
723 %attr(755,root,root) %{_libexecdir}/mod_ident.so
724 %attr(755,root,root) %{_libexecdir}/mod_ifsession.so
725 %attr(755,root,root) %{_libexecdir}/mod_lang.so
726 %dir %{_localstatedir}/proftpd
728 %lang(ja) %{_mandir}/ja/man5/ftpusers*
729 %lang(pl) %{_mandir}/pl/man5/ftpusers*
730 %lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers*
731 %lang(ru) %{_mandir}/ru/man5/ftpusers*
734 %dir /var/lib/ftp/pub
735 %attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming
738 %defattr(644,root,root,755)
739 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd
742 %defattr(644,root,root,755)
743 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd
744 %attr(754,root,root) /etc/rc.d/init.d/proftpd
747 %defattr(644,root,root,755)
748 %{_includedir}/%{name}
749 %{_pkgconfigdir}/%{name}.pc
752 %defattr(644,root,root,755)
753 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf
757 %defattr(644,root,root,755)
758 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
759 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp
760 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf
761 %attr(755,root,root) %{_libexecdir}/mod_auth_pam.so
766 %defattr(644,root,root,755)
768 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf
769 %attr(755,root,root) %{_libexecdir}/mod_ldap.so
773 %defattr(644,root,root,755)
774 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf
775 %attr(755,root,root) %{_libexecdir}/mod_quotatab.so
777 %if %{with quotafile}
778 %files mod_quotatab_file
779 %defattr(644,root,root,755)
780 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf
781 %attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so
784 %if %{with quotaldap}
785 %files mod_quotatab_ldap
786 %defattr(644,root,root,755)
787 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf
788 %attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so
791 %if %{with quotamysql} || %{with quotapgsql}
792 %files mod_quotatab_sql
793 %defattr(644,root,root,755)
794 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf
795 %attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so
799 %defattr(644,root,root,755)
800 %doc contrib/README.ratio
801 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf
802 %attr(755,root,root) %{_libexecdir}/mod_ratio.so
805 %defattr(644,root,root,755)
806 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf
807 %attr(755,root,root) %{_libexecdir}/mod_readme.so
810 %defattr(644,root,root,755)
811 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf
812 %attr(755,root,root) %{_libexecdir}/mod_rewrite.so
814 %if %{with mysql} || %{with pgsql}
816 %defattr(644,root,root,755)
817 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf
818 %attr(755,root,root) %{_libexecdir}/mod_sql.so
823 %defattr(644,root,root,755)
824 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf
825 %attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so
829 %files mod_sql_postgres
830 %defattr(644,root,root,755)
831 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf
832 %attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so
836 %defattr(644,root,root,755)
837 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf
838 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/server.crt
839 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/server.key
840 %attr(755,root,root) %{_libexecdir}/mod_tls.so
843 %defattr(644,root,root,755)
844 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf
845 %attr(755,root,root) %{_libexecdir}/mod_wrap.so