2 # - test mod_clamav as DSO (README says it's allowed)
3 # - mod_caps uses uname -r for detection
4 # - don't use internal libltdl
5 # - package contrib/ftp* perl scripts.
8 %bcond_without pam # PAM support
9 %bcond_without ipv6 # IPv6 and TCPD support
10 %bcond_without ssl # TLS/SSL support
11 %bcond_without ldap # LDAP support
12 %bcond_without mysql # MySQL support
13 %bcond_without pgsql # PostgreSQL support
14 %bcond_without quotafile # quota file support
15 %bcond_without quotaldap # quota ldap support
16 %bcond_without quotamysql # quota mysql support
17 %bcond_without quotapgsql # quota pgsql support
19 %define mod_clamav_version 0.13
21 Summary: PROfessional FTP Daemon with apache-like configuration syntax
22 Summary(es.UTF-8): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache
23 Summary(pl.UTF-8): PROfesionalny serwer FTP
24 Summary(pt_BR.UTF-8): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache
25 Summary(zh_CN.UTF-8): 易于管理的,安全的 FTP 服务器
31 Group: Networking/Daemons
32 Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
33 # Source0-md5: 4a9b8877b2e9b08d70e71ad56c19e2c9
34 # https://github.com/jbenden/mod_clamav/releases
35 Source1: https://github.com/jbenden/mod_clamav/archive/v%{mod_clamav_version}/mod_clamav-%{mod_clamav_version}.tar.gz
36 # Source1-md5: 955269eb8b00ebcc217bbd6f74df4e1c
39 Source4: %{name}.inetd
40 Source5: %{name}.sysconfig
42 Source7: ftpusers.tar.bz2
43 # Source7-md5: 76c80b6ec9f4d079a1e27316edddbe16
44 Source9: %{name}-mod_pam.conf
45 Source10: %{name}-mod_tls.conf
46 Source11: %{name}-anonftp.conf
47 Source12: %{name}-mod_clamav.conf
48 Source13: %{name}.tmpfiles
49 Patch0: %{name}-paths.patch
50 Patch1: %{name}-noautopriv.patch
51 Patch2: %{name}-wtmp.patch
52 Patch3: %{name}-pool.patch
53 Patch4: %{name}-link.patch
54 URL: http://www.proftpd.org/
55 BuildRequires: GeoIP-devel
56 BuildRequires: acl-devel
57 BuildRequires: autoconf
58 BuildRequires: automake
59 BuildRequires: hiredis-devel
60 BuildRequires: libcap-devel
61 BuildRequires: libmemcached-devel
62 BuildRequires: libnsl-devel
63 BuildRequires: libstdc++-devel
64 BuildRequires: libwrap-devel
65 %if %{with mysql} || %{with quotamysql}
66 BuildRequires: mysql-devel
68 BuildRequires: ncurses-devel
69 %if %{with ldap} || %{with quotaldap}
70 BuildRequires: openldap-devel
72 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
73 %{?with_pam:BuildRequires: pam-devel}
74 %if %{with pgsql} || %{with quotapgsql}
75 BuildRequires: postgresql-devel
77 BuildRequires: rpm-perlprov
78 BuildRequires: rpmbuild(macros) >= 1.745
79 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81 %define _sysconfdir /etc/ftpd
82 %define _localstatedir /var/run
83 %define _libexecdir %{_prefix}/%{_lib}/%{name}
85 %define filterout -flto
88 ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
89 operating systems. ProFTPD is designed to be somewhat of a "drop-in"
90 replacement for wu-ftpd. Full online documentation is available at
91 <http://www.proftpd.org/>, including a server configuration directive
94 %description -l es.UTF-8
95 ProFTPD es un servidor FTP altamente configurable para sistemas
96 operativos Unix. Está proyectado para ser un substituto directo al
97 wu-ftpd. La documentación completa está disponible en
98 <http://www.proftpd.org/>, incluido el manual de referencia para las
99 directivas de configuración del servidor.
101 %description -l pl.UTF-8
102 ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
103 ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
104 dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
105 włącznie z dokumentacją dotyczącą konfigurowania.
107 %description -l pt_BR.UTF-8
108 O ProFTPD é um servidor FTP altamente configurável para sistemas
111 É projetado para ser um substituto direto para o wu-ftpd. A
112 documentação completa está disponível em <http://www.proftpd.org/>,
113 incluindo o manual de referência para as diretivas de configuração do
117 Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files
118 Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki
119 Group: Networking/Daemons
121 Requires(post): fileutils
122 Obsoletes: proftpd < 0:1.2.2rc1-3
125 ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
126 operating systems. ProFTPD is designed to be somewhat of a "drop-in"
127 replacement for wu-ftpd. Full online documentation is available at
128 <http://www.proftpd.org/>, including a server configuration directive
131 %description common -l es.UTF-8
132 ProFTPD es un servidor FTP altamente configurable para sistemas
133 operativos Unix. Está proyectado para ser un substituto directo al
134 wu-ftpd. La documentación completa está disponible en
135 <http://www.proftpd.org/>, incluido el manual de referencia para las
136 directivas de configuración del servidor.
138 %description common -l pl.UTF-8
139 ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
140 ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
141 dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
142 włącznie z dokumentacją dotyczącą konfigurowania.
144 %description common -l pt_BR.UTF-8
145 O ProFTPD é um servidor FTP altamente configurável para sistemas
148 É projetado para ser um substituto direto para o wu-ftpd. A
149 documentação completa está disponível em <http://www.proftpd.org/>,
150 incluindo o manual de referência para as diretivas de configuração do
154 Summary: inetd configs for proftpd
155 Summary(pl.UTF-8): Pliki konfiguracyjne do użycia proftpd poprzez inetd
156 Group: Networking/Daemons
157 Requires(post): fileutils
159 Requires(post,postun): sed >= 4.0
160 Requires: %{name}-common = %{epoch}:%{version}-%{release}
163 Provides: proftpd = %{epoch}:%{version}-%{release}
169 Obsoletes: heimdal-ftpd
171 Obsoletes: linux-ftpd
172 Obsoletes: muddleftpd
173 Obsoletes: proftpd-standalone
175 Obsoletes: troll-ftpd
178 Conflicts: man-pages < 1.51
179 Conflicts: rpm < 4.4.2-0.2
182 ProFTPD configs for running from inetd.
184 %description inetd -l pl.UTF-8
185 Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd.
188 Summary: Standalone daemon configs for proftpd
189 Summary(pl.UTF-8): Pliki konfiguracyjne do startowania proftpd w trybie standalone
190 Group: Networking/Daemons
191 Requires(post): fileutils
193 Requires(post,postun): sed >= 4.0
194 Requires(post,preun): /sbin/chkconfig
195 Requires: %{name}-common = %{epoch}:%{version}-%{release}
198 Provides: proftpd = %{epoch}:%{version}-%{release}
204 Obsoletes: heimdal-ftpd
206 Obsoletes: linux-ftpd
207 Obsoletes: muddleftpd
208 Obsoletes: proftpd-inetd
210 Obsoletes: troll-ftpd
213 Conflicts: man-pages < 1.51
214 Conflicts: rpm < 4.4.2-0.2
216 %description standalone
217 ProFTPD configs for running as a standalone daemon.
219 %description standalone -l pl.UTF-8
220 Pliki konfiguracyjne ProFTPD do startowania demona w trybie
224 Summary: Header files ProFTPD
225 Summary(pl.UTF-8): Pliki nagłówkowe ProFTPD
226 Group: Development/Libraries
230 This is the package containing the header files for ProFTPD.
232 %description devel -l pl.UTF-8
233 Ten pakiet zawiera pliki nagłówkowe ProFTPD
236 Summary: Anonymous FTP config for ProFTPD
237 Summary(pl.UTF-8): Konfiguracja anonimowego FTP dla ProFTPD
238 Group: Networking/Daemons
239 Requires: %{name}-common = %{epoch}:%{version}-%{release}
242 Anonymous FTP config for ProFTPD.
244 %description anonftp -l pl.UTF-8
245 Konfiguracja anonimowego FTP dla ProFTPD.
247 %package mod_auth_pam
248 Summary: ProFTPD PAM auth module
249 Summary(pl.UTF-8): Moduł uwierzytelnienia PAM dla ProFTPD
250 Group: Networking/Daemons
251 Requires: %{name}-common = %{epoch}:%{version}-%{release}
252 Requires: pam >= 0.79.0
254 %description mod_auth_pam
255 PAM authentication method for ProFTPD.
257 %description mod_auth_pam -l pl.UTF-8
258 Metoda uwierzytelnienia PAM dla ProFTPD.
261 Summary: ProFTPD OpenLDAP module
262 Summary(pl.UTF-8): Moduł OpenLDAP dla ProFTPD
263 Group: Networking/Daemons
264 Requires: %{name}-common = %{epoch}:%{version}-%{release}
266 %description mod_ldap
267 mod_ldap provides LDAP authentication support for ProFTPD. It supports
268 many features useful in "toaster" environments such as default UID/GID
269 and autocreation/autogeneration of home directories.
271 %description mod_ldap -l pl.UTF-8
272 mod_ldap dodaje obsługę uwierzytelnienia LDAP do ProFTPD. Obsługuje
273 wiele cech przydatnych w środowiskach "tosterowych", takich jak
274 domyślny UID/GID i automatyczne tworzenie/generowanie katalogów
277 %package mod_quotatab
278 Summary: ProFTPD quotatab module
279 Summary(pl.UTF-8): Moduł quotatab dla ProFTPD
280 Group: Networking/Daemons
281 Requires: %{name}-common = %{epoch}:%{version}-%{release}
283 %description mod_quotatab
284 A module for managing FTP byte/file quotas via centralized tables.
286 %description mod_quotatab -l pl.UTF-8
287 Moduł do zarządzania ograniczeniami bajtów/plików FTP poprzez
288 scentralizowane tabele.
290 %package mod_quotatab_file
291 Summary: ProFTPD quotatab file module
292 Summary(pl.UTF-8): Moduł quotatab_file dla ProFTPD
293 Group: Networking/Daemons
294 Requires: %{name}-common = %{epoch}:%{version}-%{release}
295 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
297 %description mod_quotatab_file
298 A mod_quotatab sub-module for managing quota data via file-based
301 %description mod_quotatab_file -l pl.UTF-8
302 Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
303 tabele zapisane w pliku.
305 %package mod_quotatab_ldap
306 Summary: ProFTPD quotatab ldap module
307 Summary(pl.UTF-8): Moduł quotatab_ldap dla ProFTPD
308 Group: Networking/Daemons
309 Requires: %{name}-common = %{epoch}:%{version}-%{release}
310 Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release}
311 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
313 %description mod_quotatab_ldap
314 A mod_quotatab sub-module for obtaining quota information from an LDAP
317 %description mod_quotatab_ldap -l pl.UTF-8
318 Podmoduł mod_quotatab do pobierania informacji o ograniczeniach z
321 %package mod_quotatab_sql
322 Summary: ProFTPD quotatab sql module
323 Summary(pl.UTF-8): Moduł quotatab_sql dla ProFTPD
324 Group: Networking/Daemons
325 Requires: %{name}-common = %{epoch}:%{version}-%{release}
326 Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
327 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
329 %description mod_quotatab_sql
330 A mod_quotatab sub-module for managing quota data via SQL-based
333 %description mod_quotatab_sql -l pl.UTF-8
334 Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
338 Summary: ProFTPD ratio module
339 Summary(pl.UTF-8): Moduł ratio dla ProFTPD
340 Group: Networking/Daemons
341 Requires: %{name}-common = %{epoch}:%{version}-%{release}
343 %description mod_ratio
344 Support upload/download ratios.
346 %description mod_ratio -l pl.UTF-8
347 Obsługa współczynników upload/download.
350 Summary: ProFTPD readme module
351 Summary(pl.UTF-8): Moduł readme dla ProFTPD
352 Group: Networking/Daemons
353 Requires: %{name}-common = %{epoch}:%{version}-%{release}
355 %description mod_readme
356 "README" file support.
358 %description mod_readme -l pl.UTF-8
359 Obsługa pliku "README".
362 Summary: ProFTPD rewrite module
363 Summary(pl.UTF-8): Moduł rewrite dla ProFTPD
364 Group: Networking/Daemons
365 Requires: %{name}-common = %{epoch}:%{version}-%{release}
367 %description mod_rewrite
368 Runtime rewrite engine.
370 %description mod_rewrite -l pl.UTF-8
371 Silnik przepisujący adresy w locie.
374 Summary: ProFTPD SQL support module
375 Summary(pl.UTF-8): Moduł obsługi SQL dla ProFTPD
376 Group: Networking/Daemons
377 Requires: %{name}-common = %{epoch}:%{version}-%{release}
380 This module provides the necessary support for SQL based
381 authentication, logging and other features as required.
383 %description mod_sql -l pl.UTF-8
384 Ten moduł dodaje obsługę SQL potrzebną do uwierzytelniania, logowania
385 i innych możliwości opartych o SQL.
387 %package mod_sql_mysql
388 Summary: ProFTPD sql mysql module
389 Summary(pl.UTF-8): Moduł sql_mysql dla ProFTPD
390 Group: Networking/Daemons
391 Requires: %{name}-common = %{epoch}:%{version}-%{release}
392 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
394 %description mod_sql_mysql
395 Support for connecting to MySQL databases.
397 %description mod_sql_mysql -l pl.UTF-8
398 Obsługa łączenia się z bazami danych MySQL.
400 %package mod_sql_postgres
401 Summary: ProFTPD sql postgres module
402 Summary(pl.UTF-8): Moduł sql_postgres dla ProFTPD
403 Group: Networking/Daemons
404 Requires: %{name}-common = %{epoch}:%{version}-%{release}
405 Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
407 %description mod_sql_postgres
408 Support for connecting to PostgreSQL databases.
410 %description mod_sql_postgres -l pl.UTF-8
411 Obsługa łączenia się z bazami danych PostgreSQL.
414 Summary: ProFTPD TLS support
415 Summary(pl.UTF-8): Obsługa TLS dla ProFTPD
416 Group: Networking/Daemons
417 Requires: %{name}-common = %{epoch}:%{version}-%{release}
420 An RFC2228 SSL/TLS module for ProFTPD.
422 %description mod_tls -l pl.UTF-8
423 Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD.
426 Summary: ProFTPD interface to libwrap
427 Summary(pl.UTF-8): Interfejs ProFTPD do libwrap
428 Group: Networking/Daemons
429 Requires: %{name}-common = %{epoch}:%{version}-%{release}
432 %description mod_wrap
433 It enables the daemon to use the common tcpwrappers access control
434 library while in standalone mode, and in a very configurable manner.
436 Many programs will automatically add entries in the common allow/deny
437 files, and use of this module will allow a ProFTPD daemon running in
438 standalone mode to adapt as these entries are added. The portsentry
439 program does this, for example: when illegal access is attempted, it
440 will add hosts to the /etc/hosts.deny file.
442 %description mod_wrap -l pl.UTF-8
443 Ten pakiet pozwala demonowi używać wspólnej biblioteki kontroli
444 dostępu tcpwrappers w trybie samodzielnym w bardzo wygodny sposób.
446 Wiele programów automatycznie dodaje wpisy we wspólnych plikach
447 allow/deny, a użycie tego modułu pozwala demonowi ProFTPD działającemu
448 w trybie samodzielnym adaptować te wpisy w miarę dodawania. Robi tak
449 na przykład program portsentry: przy próbie niedozwolonego dostępu
450 dodaje hosty do pliku /etc/hosts.deny.
453 Summary: ProFTPD mod_wrap2 module
454 Summary(pl.UTF-8): Moduł mod_wrap2 dla ProFTPD
455 Group: Networking/Daemons
456 Requires: %{name}-common = %{epoch}:%{version}-%{release}
458 %description mod_wrap2
459 The mod_wrap2 package allows the proftpd daemon to provide
460 tcpwrapper-like access control rules while running in standalone mode.
461 It also allows for those access rules to be stored in various formats,
462 such as files (e.g. /etc/hosts.allow and /etc/hosts.deny) or in SQL
463 tables. Note that the mod_wrap2 module does not require or use the
464 standard tcpwrappers libwrap library, and instead implements the same
465 functionality internally (in order to support SQL-based access rules).
467 %description mod_wrap2 -l pl.UTF-8
468 Udostępnia funkcjonalność kontroli dostępu podobną do modułu mod_wrap,
469 ale do działanie nie wymaga systemowej biblioteki libwrap.
470 http://www.proftpd.org/docs/contrib/mod_wrap2.html
473 Summary: ProFTPD mod_dnsbl module
474 Summary(pl.UTF-8): Moduł mod_dnsbl dla ProFTPD
475 Group: Networking/Daemons
476 Requires: %{name}-common = %{epoch}:%{version}-%{release}
478 %description mod_dnsbl
479 DNSBL module for ProFTPD.
480 http://www.proftpd.org/docs/contrib/mod_dnsbl.html
482 %description mod_dnsbl -l pl.UTF-8
483 Moduł zapewniający kontrolę dostępu przy użyciu DNS blacklist (dnsbl).
484 http://www.proftpd.org/docs/contrib/mod_dnsbl.html
487 Summary: ProFTPD mod_geoip module
488 Summary(pl.UTF-8): Moduł mod_geoip dla ProFTPD
489 Group: Networking/Daemons
490 Requires: %{name}-common = %{epoch}:%{version}-%{release}
492 %description mod_geoip
493 GeoIP module for ProFTPD.
494 http://www.proftpd.org/docs/contrib/mod_geoip.html
496 %description mod_geoip -l pl.UTF-8
497 Moduł zapewniający kontrolę dostępu przy użyciu bibliotek
498 geolokalizacji firmy MaxMind.
499 http://www.proftpd.org/docs/contrib/mod_geoip.html
501 %package mod_memcache
502 Summary: ProFTPD mod_memcache module
503 Summary(pl.UTF-8): Moduł mod_memcache dla ProFTPD
504 Group: Networking/Daemons
505 Requires: %{name}-common = %{epoch}:%{version}-%{release}
507 %description mod_memcache
508 Memcache module for ProFTPD.
509 http://www.proftpd.org/docs/howto/Memcache.html
511 %description mod_geoip -l pl.UTF-8
512 Moduł zapewniający dostęp do wydajnego systemu cache'owania Memcache
513 http://www.proftpd.org/docs/howto/Memcache.html
516 Summary: ProFTPD mod_redis module
517 Summary(pl.UTF-8): Moduł mod_redis dla ProFTPD
518 Group: Networking/Daemons
519 Requires: %{name}-common = %{epoch}:%{version}-%{release}
521 %description mod_redis
522 Redis module for ProFTPD. http://www.proftpd.org/docs/howto/Redis.html
524 %description mod_redis -l pl.UTF-8
525 Moduł zapewniający dostęp do wydajnego systemu cache'owania Redis
526 http://www.proftpd.org/docs/howto/Redis.html
529 Summary: ProFTPD mod_sftp module
530 Summary(pl.UTF-8): Moduł mod_sftp dla ProFTPD
531 Group: Networking/Daemons
532 Requires: %{name}-common = %{epoch}:%{version}-%{release}
534 %description mod_sftp
535 http://www.proftpd.org/docs/contrib/mod_sftp.html
537 %description mod_sftp -l pl.UTF-8
538 Moduł zapewniający serwerowi ProFTPD obsługę protokołu SFTP
539 http://www.proftpd.org/docs/contrib/mod_sftp.html
542 %setup -q -n %{name}-%{version}%{?_rc} -a1
550 # no patch as of 0.13
551 #patch -p0 < mod_clamav-%{mod_clamav_version}/proftpd.patch || exit 1
552 cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/
554 cp -f /usr/share/automake/config.sub .
556 # cleanup backups after patching
557 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
559 sed -E -i -e '1s,#![[:space:]]*/usr/bin/env[[:space:]]+perl,#!%{__perl},' \
563 contrib/xferstats.holger-preiss \
585 %{?with_pam:mod_auth_pam}
586 %{?with_ldap:mod_ldap}
587 %{?with_quotafile:mod_quotatab mod_quotatab_file}
588 %{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
589 %{?with_quotamysql:mod_quotatab mod_quotatab_sql}
590 %{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
591 %{?with_mysql:mod_sql mod_sql_mysql}
592 %{?with_pgsql:mod_sql mod_sql_postgres}
595 MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':')
597 ac_cv_lib_iconv_iconv_open=no \
598 ac_cv_lib_iconv_libiconv_open=no \
599 ac_cv_lib_intl_bindtextdomain=no \
600 --disable-auth-file \
601 --enable-buffer-size=4096 \
602 --enable-autoshadow \
605 %{?with_ipv6:--enable-ipv6} \
609 %{!?with_ssl:--disable-tls} \
610 --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \
611 --with-modules=mod_clamav \
612 --with-shared=$MODARG
617 rm -rf $RPM_BUILD_ROOT
618 install -d $RPM_BUILD_ROOT/etc/{pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \
619 $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log,run/proftpd} \
620 $RPM_BUILD_ROOT%{_sysconfdir}/conf.d \
621 $RPM_BUILD_ROOT%{_includedir}/%{name} \
622 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
625 DESTDIR=$RPM_BUILD_ROOT \
626 INSTALL_USER=%(id -u) \
627 INSTALL_GROUP=%(id -g)
629 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/in.proftpd
631 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}
632 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf
646 %{?with_ldap:mod_ldap}
647 %{?with_quotafile:mod_quotatab mod_quotatab_file}
648 %{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
649 %{?with_quotamysql:mod_quotatab mod_quotatab_sql}
650 %{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
651 %{?with_mysql:mod_sql mod_sql_mysql}
652 %{?with_pgsql:mod_sql mod_sql_postgres}
654 for module in $MODULES; do
655 echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf
657 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf
658 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf
659 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_clamav.conf
661 %{?with_pam:install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp}
662 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd
663 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd
664 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd
665 cp -p contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat
667 bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
669 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default
670 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers
672 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
674 # only for -inetd package?
675 ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd
677 :> $RPM_BUILD_ROOT/etc/security/blacklist.ftp
679 # cannot just --disable-static because build process depend on static objects
680 %{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.a
681 %{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.la
683 %{__rm} $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff*
684 cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name}
686 %{__mv} $RPM_BUILD_ROOT%{_localedir}/bg{_BG,}
687 %{__mv} $RPM_BUILD_ROOT%{_localedir}/es{_ES,}
688 %{__mv} $RPM_BUILD_ROOT%{_localedir}/fr{_FR,}
689 %{__mv} $RPM_BUILD_ROOT%{_localedir}/it{_IT,}
690 %{__mv} $RPM_BUILD_ROOT%{_localedir}/ja{_JP,}
691 %{__mv} $RPM_BUILD_ROOT%{_localedir}/ko{_KR,}
692 %{__mv} $RPM_BUILD_ROOT%{_localedir}/ru{_RU,}
697 rm -rf $RPM_BUILD_ROOT
701 awk -F: '{ if (($3 < 500) && ($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default
702 if [ ! -f %{_sysconfdir}/ftpusers ]; then
703 cp -f %{_sysconfdir}/ftpusers.default %{_sysconfdir}/ftpusers
707 if grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf ; then
708 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
709 sed -i -e 's/^ServerType[[:space:]]\+standalone/ServerType inetd/g' %{_sysconfdir}/proftpd.conf
711 %service -q rc-inetd reload
714 if [ "$1" = "0" ]; then
715 %service -q rc-inetd reload
718 %posttrans standalone
719 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf ; then
720 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
721 sed -i -e 's/^ServerType[[:space:]]\+inetd/ServerType standalone/g' %{_sysconfdir}/proftpd.conf
723 /sbin/chkconfig --add proftpd
724 %service proftpd restart "ProFTPD daemon"
727 if [ "$1" = "0" ]; then
728 %service proftpd stop
729 /sbin/chkconfig --del proftpd
732 %triggerin standalone -- pam
733 # restart proftpd if pam is upgraded
734 # (proftpd is linked with old libpam but tries to open modules linked with new libpam)
735 if [ "$2" != 1 ]; then
736 %service -q proftpd restart
739 # macro called at module post scriptlet
740 %define module_post \
741 if [ "$1" = "1" ]; then \
742 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
743 %service -q rc-inetd reload \
744 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
745 %service -q proftpd restart \
749 # macro called at module postun scriptlet
750 %define module_postun \
751 if [ "$1" = "0" ]; then \
752 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
753 %service -q rc-inetd reload \
754 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
755 %service -q proftpd restart \
759 # it's sooo annoying to write them
760 %define module_scripts() \
767 %module_scripts mod_auth_pam
768 %module_scripts mod_ldap
769 %module_scripts mod_quotatab
770 %module_scripts mod_quotatab_file
771 %module_scripts mod_quotatab_ldap
772 %module_scripts mod_quotatab_sql
773 %module_scripts mod_ratio
774 %module_scripts mod_readme
775 %module_scripts mod_rewrite
776 %module_scripts mod_sql
777 %module_scripts mod_sql_mysql
778 %module_scripts mod_sql_postgres
779 %module_scripts mod_tls
780 %module_scripts mod_wrap
781 %module_scripts mod_wrap2
782 %module_scripts mod_dnsbl
783 %module_scripts mod_geoip
784 %module_scripts mod_memcache
785 %module_scripts mod_redis
786 %module_scripts mod_sftp
788 %files common -f %{name}.lang
789 %defattr(644,root,root,755)
790 %doc CREDITS ChangeLog NEWS README.md README.modules RELEASE_NOTES
791 %doc doc/{*.html,contrib,howto,modules} sample-configurations/*.conf
792 %dir %attr(750,root,ftp) %dir %{_sysconfdir}
793 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/proftpd.conf
794 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers
795 %attr(640,root,root) %{_sysconfdir}/ftpusers.default
796 %dir %attr(750,root,root) %{_sysconfdir}/conf.d
797 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf
798 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf
799 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf
800 #%attr(640,root,root) %ghost /var/log/*
801 %attr(755,root,root) %{_bindir}/ftpasswd
802 %attr(755,root,root) %{_bindir}/ftpcount
803 %attr(755,root,root) %{_bindir}/ftpdctl
804 %attr(755,root,root) %{_bindir}/ftpmail
805 %attr(755,root,root) %{_bindir}/ftpquota
806 %attr(755,root,root) %{_bindir}/ftptop
807 %attr(755,root,root) %{_bindir}/ftpwho
808 %attr(755,root,root) %{_bindir}/prxs
809 %attr(755,root,root) %{_bindir}/xferstat
810 %attr(755,root,root) %{_sbindir}/ftpscrub
811 %attr(755,root,root) %{_sbindir}/ftpshut
812 %attr(755,root,root) %{_sbindir}/proftpd
813 %attr(755,root,root) %{_sbindir}/ftpd
815 %attr(755,root,root) %{_libexecdir}/mod_auth_file.so
816 %attr(755,root,root) %{_libexecdir}/mod_facl.so
817 %attr(755,root,root) %{_libexecdir}/mod_ident.so
818 %attr(755,root,root) %{_libexecdir}/mod_ifsession.so
819 %dir %{_localstatedir}/proftpd
820 %{systemdtmpfilesdir}/%{name}.conf
821 %{_mandir}/man1/ftpasswd.1*
822 %{_mandir}/man1/ftpcount.1*
823 %{_mandir}/man1/ftpmail.1*
824 %{_mandir}/man1/ftpquota.1*
825 %{_mandir}/man1/ftptop.1*
826 %{_mandir}/man1/ftpwho.1*
827 %{_mandir}/man5/ftpusers.5*
828 %{_mandir}/man5/proftpd.conf.5*
829 %{_mandir}/man5/xferlog.5*
830 %{_mandir}/man8/ftpdctl.8*
831 %{_mandir}/man8/ftpscrub.8*
832 %{_mandir}/man8/ftpshut.8*
833 %{_mandir}/man8/proftpd.8*
834 %lang(ja) %{_mandir}/ja/man5/ftpusers.5*
835 %lang(pl) %{_mandir}/pl/man5/ftpusers.5*
836 %lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers.5*
837 %lang(ru) %{_mandir}/ru/man5/ftpusers.5*
839 %dir /var/lib/ftp/pub
840 %attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming
843 %defattr(644,root,root,755)
844 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd
847 %defattr(644,root,root,755)
848 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd
849 %attr(754,root,root) /etc/rc.d/init.d/proftpd
852 %defattr(644,root,root,755)
853 %{_includedir}/%{name}
854 %{_pkgconfigdir}/proftpd.pc
857 %defattr(644,root,root,755)
858 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf
862 %defattr(644,root,root,755)
863 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/ftp
864 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp
865 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf
866 %attr(755,root,root) %{_libexecdir}/mod_auth_pam.so
871 %defattr(644,root,root,755)
873 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf
874 %attr(755,root,root) %{_libexecdir}/mod_ldap.so
878 %defattr(644,root,root,755)
879 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf
880 %attr(755,root,root) %{_libexecdir}/mod_quotatab.so
882 %if %{with quotafile}
883 %files mod_quotatab_file
884 %defattr(644,root,root,755)
885 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf
886 %attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so
889 %if %{with quotaldap}
890 %files mod_quotatab_ldap
891 %defattr(644,root,root,755)
892 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf
893 %attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so
896 %if %{with quotamysql} || %{with quotapgsql}
897 %files mod_quotatab_sql
898 %defattr(644,root,root,755)
899 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf
900 %attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so
904 %defattr(644,root,root,755)
905 %doc contrib/README.ratio
906 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf
907 %attr(755,root,root) %{_libexecdir}/mod_ratio.so
910 %defattr(644,root,root,755)
911 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf
912 %attr(755,root,root) %{_libexecdir}/mod_readme.so
915 %defattr(644,root,root,755)
916 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf
917 %attr(755,root,root) %{_libexecdir}/mod_rewrite.so
919 %if %{with mysql} || %{with pgsql}
921 %defattr(644,root,root,755)
922 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf
923 %attr(755,root,root) %{_libexecdir}/mod_sql.so
928 %defattr(644,root,root,755)
929 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf
930 %attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so
934 %files mod_sql_postgres
935 %defattr(644,root,root,755)
936 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf
937 %attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so
941 %defattr(644,root,root,755)
942 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf
943 %attr(755,root,root) %{_libexecdir}/mod_tls.so
946 %defattr(644,root,root,755)
947 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf
948 %attr(755,root,root) %{_libexecdir}/mod_wrap.so
951 %defattr(644,root,root,755)
952 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap2.conf
953 %attr(755,root,root) %{_libexecdir}/mod_wrap2.so
956 %defattr(644,root,root,755)
957 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_dnsbl.conf
958 %attr(755,root,root) %{_libexecdir}/mod_dnsbl.so
961 %defattr(644,root,root,755)
962 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_geoip.conf
963 %attr(755,root,root) %{_libexecdir}/mod_geoip.so
966 %defattr(644,root,root,755)
967 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_memcache.conf
968 %attr(755,root,root) %{_libexecdir}/mod_memcache.so
971 %defattr(644,root,root,755)
972 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_redis.conf
973 %attr(755,root,root) %{_libexecdir}/mod_redis.so
976 %defattr(644,root,root,755)
977 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sftp.conf
978 %attr(755,root,root) %{_libexecdir}/mod_sftp.so