]> git.pld-linux.org Git - packages/proftpd.git/blame_incremental - proftpd.spec
- parallel install is broken just as build is
[packages/proftpd.git] / proftpd.spec
... / ...
CommitLineData
1# TODO
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.
6#
7# Conditional build:
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
18%bcond_without wrap2file # wrap2 file support
19
20#
21%define mod_clamav_version 0.13
22
23Summary: PROfessional FTP Daemon with apache-like configuration syntax
24Summary(es.UTF-8): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache
25Summary(pl.UTF-8): PROfesionalny serwer FTP
26Summary(pt_BR.UTF-8): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache
27Summary(zh_CN.UTF-8): 易于管理的,安全的 FTP 服务器
28Name: proftpd
29Version: 1.3.7f
30Release: 4
31Epoch: 2
32License: GPL v2+
33Group: Networking/Daemons
34Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
35# Source0-md5: 5dab21933de54926fa0bb0a51a5a8578
36# https://github.com/jbenden/mod_clamav/releases
37Source1: https://github.com/jbenden/mod_clamav/archive/v%{mod_clamav_version}/mod_clamav-%{mod_clamav_version}.tar.gz
38# Source1-md5: 955269eb8b00ebcc217bbd6f74df4e1c
39Source2: %{name}.conf
40Source3: ftp.pamd
41Source4: %{name}.inetd
42Source5: %{name}.sysconfig
43Source6: %{name}.init
44Source7: ftpusers.tar.bz2
45# Source7-md5: 76c80b6ec9f4d079a1e27316edddbe16
46Source9: %{name}-mod_pam.conf
47Source10: %{name}-mod_tls.conf
48Source11: %{name}-anonftp.conf
49Source12: %{name}-mod_clamav.conf
50Source13: %{name}.tmpfiles
51Patch0: %{name}-paths.patch
52Patch1: %{name}-noautopriv.patch
53Patch2: %{name}-wtmp.patch
54Patch3: %{name}-pool.patch
55Patch4: %{name}-link.patch
56URL: http://www.proftpd.org/
57BuildRequires: GeoIP-devel
58BuildRequires: acl-devel
59BuildRequires: autoconf
60BuildRequires: automake
61BuildRequires: hiredis-devel
62BuildRequires: libcap-devel
63BuildRequires: libmemcached-devel
64BuildRequires: libnsl-devel
65BuildRequires: libstdc++-devel
66BuildRequires: libwrap-devel
67%if %{with mysql} || %{with quotamysql}
68BuildRequires: mysql-devel
69%endif
70BuildRequires: ncurses-devel
71%if %{with ldap} || %{with quotaldap}
72BuildRequires: openldap-devel
73%endif
74%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
75%{?with_pam:BuildRequires: pam-devel}
76%if %{with pgsql} || %{with quotapgsql}
77BuildRequires: postgresql-devel
78%endif
79BuildRequires: rpm-perlprov
80BuildRequires: rpmbuild(macros) >= 1.745
81BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
82
83%define _sysconfdir /etc/ftpd
84%define _localstatedir /var/run
85%define _libexecdir %{_prefix}/%{_lib}/%{name}
86
87%define filterout -flto
88
89%description
90ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
91operating systems. ProFTPD is designed to be somewhat of a "drop-in"
92replacement for wu-ftpd. Full online documentation is available at
93<http://www.proftpd.org/>, including a server configuration directive
94reference manual.
95
96%description -l es.UTF-8
97ProFTPD es un servidor FTP altamente configurable para sistemas
98operativos Unix. Está proyectado para ser un substituto directo al
99wu-ftpd. La documentación completa está disponible en
100<http://www.proftpd.org/>, incluido el manual de referencia para las
101directivas de configuración del servidor.
102
103%description -l pl.UTF-8
104ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
105ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
106dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
107włącznie z dokumentacją dotyczącą konfigurowania.
108
109%description -l pt_BR.UTF-8
110O ProFTPD é um servidor FTP altamente configurável para sistemas
111operacionais Unix.
112
113É projetado para ser um substituto direto para o wu-ftpd. A
114documentação completa está disponível em <http://www.proftpd.org/>,
115incluindo o manual de referência para as diretivas de configuração do
116servidor.
117
118%package common
119Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files
120Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki
121Group: Networking/Daemons
122Requires(post): awk
123Requires(post): fileutils
124Obsoletes: proftpd < 0:1.2.2rc1-3
125
126%description common
127ProFTPD is a highly configurable FTP daemon for Unix and Unix-like
128operating systems. ProFTPD is designed to be somewhat of a "drop-in"
129replacement for wu-ftpd. Full online documentation is available at
130<http://www.proftpd.org/>, including a server configuration directive
131reference manual.
132
133%description common -l es.UTF-8
134ProFTPD es un servidor FTP altamente configurable para sistemas
135operativos Unix. Está proyectado para ser un substituto directo al
136wu-ftpd. La documentación completa está disponible en
137<http://www.proftpd.org/>, incluido el manual de referencia para las
138directivas de configuración del servidor.
139
140%description common -l pl.UTF-8
141ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix.
142ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna
143dokumentacja jest dostępna on-line pod <http://www.proftpd.org/>
144włącznie z dokumentacją dotyczącą konfigurowania.
145
146%description common -l pt_BR.UTF-8
147O ProFTPD é um servidor FTP altamente configurável para sistemas
148operacionais Unix.
149
150É projetado para ser um substituto direto para o wu-ftpd. A
151documentação completa está disponível em <http://www.proftpd.org/>,
152incluindo o manual de referência para as diretivas de configuração do
153servidor.
154
155%package inetd
156Summary: inetd configs for proftpd
157Summary(pl.UTF-8): Pliki konfiguracyjne do użycia proftpd poprzez inetd
158Group: Networking/Daemons
159Requires(post): fileutils
160Requires(post): grep
161Requires(post,postun): sed >= 4.0
162Requires: %{name}-common = %{epoch}:%{version}-%{release}
163Requires: rc-inetd
164Provides: ftpserver
165Provides: proftpd = %{epoch}:%{version}-%{release}
166Obsoletes: anonftp
167Obsoletes: bftpd
168Obsoletes: ftpd-BSD
169Obsoletes: ftpserver
170Obsoletes: glftpd
171Obsoletes: heimdal-ftpd
172Obsoletes: krb5-ftpd
173Obsoletes: linux-ftpd
174Obsoletes: muddleftpd
175Obsoletes: proftpd-standalone
176Obsoletes: pure-ftpd
177Obsoletes: troll-ftpd
178Obsoletes: vsftpd
179Obsoletes: wu-ftpd
180Conflicts: man-pages < 1.51
181Conflicts: rpm < 4.4.2-0.2
182
183%description inetd
184ProFTPD configs for running from inetd.
185
186%description inetd -l pl.UTF-8
187Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd.
188
189%package standalone
190Summary: Standalone daemon configs for proftpd
191Summary(pl.UTF-8): Pliki konfiguracyjne do startowania proftpd w trybie standalone
192Group: Networking/Daemons
193Requires(post): fileutils
194Requires(post): grep
195Requires(post,postun): sed >= 4.0
196Requires(post,preun): /sbin/chkconfig
197Requires: %{name}-common = %{epoch}:%{version}-%{release}
198Requires: rc-scripts
199Provides: ftpserver
200Provides: proftpd = %{epoch}:%{version}-%{release}
201Obsoletes: anonftp
202Obsoletes: bftpd
203Obsoletes: ftpd-BSD
204Obsoletes: ftpserver
205Obsoletes: glftpd
206Obsoletes: heimdal-ftpd
207Obsoletes: krb5-ftpd
208Obsoletes: linux-ftpd
209Obsoletes: muddleftpd
210Obsoletes: proftpd-inetd
211Obsoletes: pure-ftpd
212Obsoletes: troll-ftpd
213Obsoletes: vsftpd
214Obsoletes: wu-ftpd
215Conflicts: man-pages < 1.51
216Conflicts: rpm < 4.4.2-0.2
217
218%description standalone
219ProFTPD configs for running as a standalone daemon.
220
221%description standalone -l pl.UTF-8
222Pliki konfiguracyjne ProFTPD do startowania demona w trybie
223standalone.
224
225%package devel
226Summary: Header files ProFTPD
227Summary(pl.UTF-8): Pliki nagłówkowe ProFTPD
228Group: Development/Libraries
229Requires: acl-devel
230
231%description devel
232This is the package containing the header files for ProFTPD.
233
234%description devel -l pl.UTF-8
235Ten pakiet zawiera pliki nagłówkowe ProFTPD
236
237%package anonftp
238Summary: Anonymous FTP config for ProFTPD
239Summary(pl.UTF-8): Konfiguracja anonimowego FTP dla ProFTPD
240Group: Networking/Daemons
241Requires: %{name}-common = %{epoch}:%{version}-%{release}
242
243%description anonftp
244Anonymous FTP config for ProFTPD.
245
246%description anonftp -l pl.UTF-8
247Konfiguracja anonimowego FTP dla ProFTPD.
248
249%package mod_auth_pam
250Summary: ProFTPD PAM auth module
251Summary(pl.UTF-8): Moduł uwierzytelnienia PAM dla ProFTPD
252Group: Networking/Daemons
253Requires: %{name}-common = %{epoch}:%{version}-%{release}
254Requires: pam >= 0.79.0
255
256%description mod_auth_pam
257PAM authentication method for ProFTPD.
258
259%description mod_auth_pam -l pl.UTF-8
260Metoda uwierzytelnienia PAM dla ProFTPD.
261
262%package mod_ldap
263Summary: ProFTPD OpenLDAP module
264Summary(pl.UTF-8): Moduł OpenLDAP dla ProFTPD
265Group: Networking/Daemons
266Requires: %{name}-common = %{epoch}:%{version}-%{release}
267
268%description mod_ldap
269mod_ldap provides LDAP authentication support for ProFTPD. It supports
270many features useful in "toaster" environments such as default UID/GID
271and autocreation/autogeneration of home directories.
272
273%description mod_ldap -l pl.UTF-8
274mod_ldap dodaje obsługę uwierzytelnienia LDAP do ProFTPD. Obsługuje
275wiele cech przydatnych w środowiskach "tosterowych", takich jak
276domyślny UID/GID i automatyczne tworzenie/generowanie katalogów
277domowych.
278
279%package mod_quotatab
280Summary: ProFTPD quotatab module
281Summary(pl.UTF-8): Moduł quotatab dla ProFTPD
282Group: Networking/Daemons
283Requires: %{name}-common = %{epoch}:%{version}-%{release}
284
285%description mod_quotatab
286A module for managing FTP byte/file quotas via centralized tables.
287
288%description mod_quotatab -l pl.UTF-8
289Moduł do zarządzania ograniczeniami bajtów/plików FTP poprzez
290scentralizowane tabele.
291
292%package mod_quotatab_file
293Summary: ProFTPD quotatab file module
294Summary(pl.UTF-8): Moduł quotatab_file dla ProFTPD
295Group: Networking/Daemons
296Requires: %{name}-common = %{epoch}:%{version}-%{release}
297Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
298
299%description mod_quotatab_file
300A mod_quotatab sub-module for managing quota data via file-based
301tables.
302
303%description mod_quotatab_file -l pl.UTF-8
304Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
305tabele zapisane w pliku.
306
307%package mod_quotatab_ldap
308Summary: ProFTPD quotatab ldap module
309Summary(pl.UTF-8): Moduł quotatab_ldap dla ProFTPD
310Group: Networking/Daemons
311Requires: %{name}-common = %{epoch}:%{version}-%{release}
312Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release}
313Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
314
315%description mod_quotatab_ldap
316A mod_quotatab sub-module for obtaining quota information from an LDAP
317directory.
318
319%description mod_quotatab_ldap -l pl.UTF-8
320Podmoduł mod_quotatab do pobierania informacji o ograniczeniach z
321katalogu LDAP.
322
323%package mod_quotatab_sql
324Summary: ProFTPD quotatab sql module
325Summary(pl.UTF-8): Moduł quotatab_sql dla ProFTPD
326Group: Networking/Daemons
327Requires: %{name}-common = %{epoch}:%{version}-%{release}
328Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release}
329Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
330
331%description mod_quotatab_sql
332A mod_quotatab sub-module for managing quota data via SQL-based
333tables.
334
335%description mod_quotatab_sql -l pl.UTF-8
336Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
337tabele SQL.
338
339%package mod_ratio
340Summary: ProFTPD ratio module
341Summary(pl.UTF-8): Moduł ratio dla ProFTPD
342Group: Networking/Daemons
343Requires: %{name}-common = %{epoch}:%{version}-%{release}
344
345%description mod_ratio
346Support upload/download ratios.
347
348%description mod_ratio -l pl.UTF-8
349Obsługa współczynników upload/download.
350
351%package mod_readme
352Summary: ProFTPD readme module
353Summary(pl.UTF-8): Moduł readme dla ProFTPD
354Group: Networking/Daemons
355Requires: %{name}-common = %{epoch}:%{version}-%{release}
356
357%description mod_readme
358"README" file support.
359
360%description mod_readme -l pl.UTF-8
361Obsługa pliku "README".
362
363%package mod_rewrite
364Summary: ProFTPD rewrite module
365Summary(pl.UTF-8): Moduł rewrite dla ProFTPD
366Group: Networking/Daemons
367Requires: %{name}-common = %{epoch}:%{version}-%{release}
368
369%description mod_rewrite
370Runtime rewrite engine.
371
372%description mod_rewrite -l pl.UTF-8
373Silnik przepisujący adresy w locie.
374
375%package mod_sql
376Summary: ProFTPD SQL support module
377Summary(pl.UTF-8): Moduł obsługi SQL dla ProFTPD
378Group: Networking/Daemons
379Requires: %{name}-common = %{epoch}:%{version}-%{release}
380
381%description mod_sql
382This module provides the necessary support for SQL based
383authentication, logging and other features as required.
384
385%description mod_sql -l pl.UTF-8
386Ten moduł dodaje obsługę SQL potrzebną do uwierzytelniania, logowania
387i innych możliwości opartych o SQL.
388
389%package mod_sql_mysql
390Summary: ProFTPD sql mysql module
391Summary(pl.UTF-8): Moduł sql_mysql dla ProFTPD
392Group: Networking/Daemons
393Requires: %{name}-common = %{epoch}:%{version}-%{release}
394Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
395
396%description mod_sql_mysql
397Support for connecting to MySQL databases.
398
399%description mod_sql_mysql -l pl.UTF-8
400Obsługa łączenia się z bazami danych MySQL.
401
402%package mod_sql_postgres
403Summary: ProFTPD sql postgres module
404Summary(pl.UTF-8): Moduł sql_postgres dla ProFTPD
405Group: Networking/Daemons
406Requires: %{name}-common = %{epoch}:%{version}-%{release}
407Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release}
408
409%description mod_sql_postgres
410Support for connecting to PostgreSQL databases.
411
412%description mod_sql_postgres -l pl.UTF-8
413Obsługa łączenia się z bazami danych PostgreSQL.
414
415%package mod_tls
416Summary: ProFTPD TLS support
417Summary(pl.UTF-8): Obsługa TLS dla ProFTPD
418Group: Networking/Daemons
419Requires: %{name}-common = %{epoch}:%{version}-%{release}
420
421%description mod_tls
422An RFC2228 SSL/TLS module for ProFTPD.
423
424%description mod_tls -l pl.UTF-8
425Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD.
426
427%package mod_wrap
428Summary: ProFTPD interface to libwrap
429Summary(pl.UTF-8): Interfejs ProFTPD do libwrap
430Group: Networking/Daemons
431Requires: %{name}-common = %{epoch}:%{version}-%{release}
432Requires: libwrap
433
434%description mod_wrap
435It enables the daemon to use the common tcpwrappers access control
436library while in standalone mode, and in a very configurable manner.
437
438Many programs will automatically add entries in the common allow/deny
439files, and use of this module will allow a ProFTPD daemon running in
440standalone mode to adapt as these entries are added. The portsentry
441program does this, for example: when illegal access is attempted, it
442will add hosts to the /etc/hosts.deny file.
443
444%description mod_wrap -l pl.UTF-8
445Ten pakiet pozwala demonowi używać wspólnej biblioteki kontroli
446dostępu tcpwrappers w trybie samodzielnym w bardzo wygodny sposób.
447
448Wiele programów automatycznie dodaje wpisy we wspólnych plikach
449allow/deny, a użycie tego modułu pozwala demonowi ProFTPD działającemu
450w trybie samodzielnym adaptować te wpisy w miarę dodawania. Robi tak
451na przykład program portsentry: przy próbie niedozwolonego dostępu
452dodaje hosty do pliku /etc/hosts.deny.
453
454%package mod_wrap2
455Summary: ProFTPD mod_wrap2 module
456Summary(pl.UTF-8): Moduł mod_wrap2 dla ProFTPD
457Group: Networking/Daemons
458Requires: %{name}-common = %{epoch}:%{version}-%{release}
459
460%description mod_wrap2
461The mod_wrap2 package allows the proftpd daemon to provide
462tcpwrapper-like access control rules while running in standalone mode.
463It also allows for those access rules to be stored in various formats,
464such as files (e.g. /etc/hosts.allow and /etc/hosts.deny) or in SQL
465tables. Note that the mod_wrap2 module does not require or use the
466standard tcpwrappers libwrap library, and instead implements the same
467functionality internally (in order to support SQL-based access rules).
468
469%description mod_wrap2 -l pl.UTF-8
470Udostępnia funkcjonalność kontroli dostępu podobną do modułu mod_wrap,
471ale do działanie nie wymaga systemowej biblioteki libwrap.
472http://www.proftpd.org/docs/contrib/mod_wrap2.html
473
474%package mod_wrap2_file
475Summary: ProFTPD wrap2 file module
476Summary(pl.UTF-8): Moduł wrap2_file dla ProFTPD
477Group: Networking/Daemons
478Requires: %{name}-common = %{epoch}:%{version}-%{release}
479Requires: %{name}-mod_wrap2 = %{epoch}:%{version}-%{release}
480
481%description mod_wrap2_file
482A mod_wrap2 sub-module for file-based access tables.
483
484%description mod_wrap2_file -l pl.UTF-8
485Podmoduł mod_wrap2 wymagany jeśli tabele dostępu trzymane są w plikach.
486
487%package mod_dnsbl
488Summary: ProFTPD mod_dnsbl module
489Summary(pl.UTF-8): Moduł mod_dnsbl dla ProFTPD
490Group: Networking/Daemons
491Requires: %{name}-common = %{epoch}:%{version}-%{release}
492
493%description mod_dnsbl
494DNSBL module for ProFTPD.
495http://www.proftpd.org/docs/contrib/mod_dnsbl.html
496
497%description mod_dnsbl -l pl.UTF-8
498Moduł zapewniający kontrolę dostępu przy użyciu DNS blacklist (dnsbl).
499http://www.proftpd.org/docs/contrib/mod_dnsbl.html
500
501%package mod_geoip
502Summary: ProFTPD mod_geoip module
503Summary(pl.UTF-8): Moduł mod_geoip dla ProFTPD
504Group: Networking/Daemons
505Requires: %{name}-common = %{epoch}:%{version}-%{release}
506
507%description mod_geoip
508GeoIP module for ProFTPD.
509http://www.proftpd.org/docs/contrib/mod_geoip.html
510
511%description mod_geoip -l pl.UTF-8
512Moduł zapewniający kontrolę dostępu przy użyciu bibliotek
513geolokalizacji firmy MaxMind.
514http://www.proftpd.org/docs/contrib/mod_geoip.html
515
516%package mod_memcache
517Summary: ProFTPD mod_memcache module
518Summary(pl.UTF-8): Moduł mod_memcache dla ProFTPD
519Group: Networking/Daemons
520Requires: %{name}-common = %{epoch}:%{version}-%{release}
521
522%description mod_memcache
523Memcache module for ProFTPD.
524http://www.proftpd.org/docs/howto/Memcache.html
525
526%description mod_memcache -l pl.UTF-8
527Moduł zapewniający dostęp do wydajnego systemu cache'owania Memcache
528http://www.proftpd.org/docs/howto/Memcache.html
529
530%package mod_redis
531Summary: ProFTPD mod_redis module
532Summary(pl.UTF-8): Moduł mod_redis dla ProFTPD
533Group: Networking/Daemons
534Requires: %{name}-common = %{epoch}:%{version}-%{release}
535
536%description mod_redis
537Redis module for ProFTPD. http://www.proftpd.org/docs/howto/Redis.html
538
539%description mod_redis -l pl.UTF-8
540Moduł zapewniający dostęp do wydajnego systemu cache'owania Redis
541http://www.proftpd.org/docs/howto/Redis.html
542
543%package mod_sftp
544Summary: ProFTPD mod_sftp module
545Summary(pl.UTF-8): Moduł mod_sftp dla ProFTPD
546Group: Networking/Daemons
547Requires: %{name}-common = %{epoch}:%{version}-%{release}
548
549%description mod_sftp
550http://www.proftpd.org/docs/contrib/mod_sftp.html
551
552%description mod_sftp -l pl.UTF-8
553Moduł zapewniający serwerowi ProFTPD obsługę protokołu SFTP
554http://www.proftpd.org/docs/contrib/mod_sftp.html
555
556%prep
557%setup -q -n %{name}-%{version}%{?_rc} -a1
558%patch0 -p1
559%patch1 -p1
560%patch2 -p1
561%patch3 -p1
562%patch4 -p1
563
564# mod_clamav
565# no patch as of 0.13
566#patch -p0 < mod_clamav-%{mod_clamav_version}/proftpd.patch || exit 1
567cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/
568
569cp -f /usr/share/automake/config.sub .
570
571# cleanup backups after patching
572find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
573
574sed -E -i -e '1s,#![[:space:]]*/usr/bin/env[[:space:]]+perl,#!%{__perl},' \
575 contrib/ftpasswd \
576 contrib/ftpmail \
577 contrib/ftpquota \
578 contrib/xferstats.holger-preiss \
579 src/prxs.in
580
581%build
582%{__autoconf}
583
584MODULES="
585mod_auth_file
586mod_ident
587mod_ratio
588mod_readme
589mod_rewrite
590mod_wrap
591mod_facl
592mod_dnsbl
593mod_geoip
594mod_memcache
595mod_redis
596mod_sftp
597mod_wrap2
598mod_ifsession
599%{?with_ssl:mod_tls}
600%{?with_pam:mod_auth_pam}
601%{?with_ldap:mod_ldap}
602%{?with_quotafile:mod_quotatab mod_quotatab_file}
603%{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
604%{?with_quotamysql:mod_quotatab mod_quotatab_sql}
605%{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
606%{?with_mysql:mod_sql mod_sql_mysql}
607%{?with_pgsql:mod_sql mod_sql_postgres}
608%{?with_wrap2file:mod_wrap2 mod_wrap2_file}
609"
610
611MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':')
612%configure \
613 ac_cv_lib_iconv_iconv_open=no \
614 ac_cv_lib_iconv_libiconv_open=no \
615 ac_cv_lib_intl_bindtextdomain=no \
616 --disable-auth-file \
617 --enable-buffer-size=4096 \
618 --enable-autoshadow \
619 --enable-ctrls \
620 --enable-dso \
621 %{?with_ipv6:--enable-ipv6} \
622 --enable-nls \
623 --enable-sendfile \
624 --disable-strip \
625 %{!?with_ssl:--disable-tls} \
626 --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \
627 --with-modules=mod_clamav \
628 --with-shared=$MODARG
629
630%{__make} -j1
631
632%install
633rm -rf $RPM_BUILD_ROOT
634install -d $RPM_BUILD_ROOT/etc/{pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \
635 $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log,run/proftpd} \
636 $RPM_BUILD_ROOT%{_sysconfdir}/conf.d \
637 $RPM_BUILD_ROOT%{_includedir}/%{name} \
638 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
639
640%{__make} -j1 install \
641 DESTDIR=$RPM_BUILD_ROOT \
642 INSTALL_USER=%(id -u) \
643 INSTALL_GROUP=%(id -g)
644
645%{__rm} $RPM_BUILD_ROOT%{_sbindir}/in.proftpd
646
647cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}
648cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf
649MODULES="
650mod_auth_file
651mod_ident
652mod_ratio
653mod_readme
654mod_rewrite
655mod_wrap
656mod_wrap2
657mod_dnsbl
658mod_geoip
659mod_memcache
660mod_redis
661mod_sftp
662%{?with_ldap:mod_ldap}
663%{?with_quotafile:mod_quotatab mod_quotatab_file}
664%{?with_quotaldap:mod_quotatab mod_quotatab_ldap}
665%{?with_quotamysql:mod_quotatab mod_quotatab_sql}
666%{?with_quotapgsql:mod_quotatab mod_quotatab_sql}
667%{?with_mysql:mod_sql mod_sql_mysql}
668%{?with_pgsql:mod_sql mod_sql_postgres}
669%{?with_wrap2file:mod_wrap2 mod_wrap2_file}
670"
671for module in $MODULES; do
672 echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf
673done
674cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf
675cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf
676cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_clamav.conf
677
678%{?with_pam:install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp}
679cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd
680cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd
681cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd
682cp -p contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat
683
684bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
685
686:> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default
687:> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers
688
689cp -p %{SOURCE13} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
690
691# only for -inetd package?
692ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd
693
694:> $RPM_BUILD_ROOT/etc/security/blacklist.ftp
695
696# cannot just --disable-static because build process depend on static objects
697%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.a
698%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.la
699
700%{__rm} $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff*
701cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name}
702
703%{__mv} $RPM_BUILD_ROOT%{_localedir}/bg{_BG,}
704%{__mv} $RPM_BUILD_ROOT%{_localedir}/es{_ES,}
705%{__mv} $RPM_BUILD_ROOT%{_localedir}/fr{_FR,}
706%{__mv} $RPM_BUILD_ROOT%{_localedir}/it{_IT,}
707%{__mv} $RPM_BUILD_ROOT%{_localedir}/ja{_JP,}
708%{__mv} $RPM_BUILD_ROOT%{_localedir}/ko{_KR,}
709%{__mv} $RPM_BUILD_ROOT%{_localedir}/ru{_RU,}
710
711%find_lang %{name}
712
713%clean
714rm -rf $RPM_BUILD_ROOT
715
716%post common
717umask 027
718awk -F: '{ if (($3 < 500) && ($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default
719if [ ! -f %{_sysconfdir}/ftpusers ]; then
720 cp -f %{_sysconfdir}/ftpusers.default %{_sysconfdir}/ftpusers
721fi
722
723%posttrans inetd
724if grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf ; then
725 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
726 sed -i -e 's/^ServerType[[:space:]]\+standalone/ServerType inetd/g' %{_sysconfdir}/proftpd.conf
727fi
728%service -q rc-inetd reload
729
730%postun inetd
731if [ "$1" = "0" ]; then
732 %service -q rc-inetd reload
733fi
734
735%posttrans standalone
736if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf ; then
737 cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig}
738 sed -i -e 's/^ServerType[[:space:]]\+inetd/ServerType standalone/g' %{_sysconfdir}/proftpd.conf
739fi
740/sbin/chkconfig --add proftpd
741%service proftpd restart "ProFTPD daemon"
742
743%preun standalone
744if [ "$1" = "0" ]; then
745 %service proftpd stop
746 /sbin/chkconfig --del proftpd
747fi
748
749%triggerin standalone -- pam
750# restart proftpd if pam is upgraded
751# (proftpd is linked with old libpam but tries to open modules linked with new libpam)
752if [ "$2" != 1 ]; then
753 %service -q proftpd restart
754fi
755
756# macro called at module post scriptlet
757%define module_post \
758if [ "$1" = "1" ]; then \
759 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
760 %service -q rc-inetd reload \
761 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
762 %service -q proftpd restart \
763 fi \
764fi
765
766# macro called at module postun scriptlet
767%define module_postun \
768if [ "$1" = "0" ]; then \
769 if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \
770 %service -q rc-inetd reload \
771 elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \
772 %service -q proftpd restart \
773 fi \
774fi
775
776# it's sooo annoying to write them
777%define module_scripts() \
778%post %1 \
779%module_post \
780\
781%postun %1 \
782%module_postun
783
784%module_scripts mod_auth_pam
785%module_scripts mod_ldap
786%module_scripts mod_quotatab
787%module_scripts mod_quotatab_file
788%module_scripts mod_quotatab_ldap
789%module_scripts mod_quotatab_sql
790%module_scripts mod_ratio
791%module_scripts mod_readme
792%module_scripts mod_rewrite
793%module_scripts mod_sql
794%module_scripts mod_sql_mysql
795%module_scripts mod_sql_postgres
796%module_scripts mod_tls
797%module_scripts mod_wrap
798%module_scripts mod_wrap2
799%module_scripts mod_dnsbl
800%module_scripts mod_geoip
801%module_scripts mod_memcache
802%module_scripts mod_redis
803%module_scripts mod_sftp
804
805%files common -f %{name}.lang
806%defattr(644,root,root,755)
807%doc CREDITS ChangeLog NEWS README.md README.modules RELEASE_NOTES
808%doc doc/{*.html,contrib,howto,modules} sample-configurations/*.conf
809%dir %attr(750,root,ftp) %dir %{_sysconfdir}
810%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/proftpd.conf
811%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers
812%attr(640,root,root) %{_sysconfdir}/ftpusers.default
813%dir %attr(750,root,root) %{_sysconfdir}/conf.d
814%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf
815%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf
816%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf
817#%attr(640,root,root) %ghost /var/log/*
818%attr(755,root,root) %{_bindir}/ftpasswd
819%attr(755,root,root) %{_bindir}/ftpcount
820%attr(755,root,root) %{_bindir}/ftpdctl
821%attr(755,root,root) %{_bindir}/ftpmail
822%attr(755,root,root) %{_bindir}/ftpquota
823%attr(755,root,root) %{_bindir}/ftptop
824%attr(755,root,root) %{_bindir}/ftpwho
825%attr(755,root,root) %{_bindir}/prxs
826%attr(755,root,root) %{_bindir}/xferstat
827%attr(755,root,root) %{_sbindir}/ftpscrub
828%attr(755,root,root) %{_sbindir}/ftpshut
829%attr(755,root,root) %{_sbindir}/proftpd
830%attr(755,root,root) %{_sbindir}/ftpd
831%dir %{_libexecdir}
832%attr(755,root,root) %{_libexecdir}/mod_auth_file.so
833%attr(755,root,root) %{_libexecdir}/mod_facl.so
834%attr(755,root,root) %{_libexecdir}/mod_ident.so
835%attr(755,root,root) %{_libexecdir}/mod_ifsession.so
836%dir %{_localstatedir}/proftpd
837%{systemdtmpfilesdir}/%{name}.conf
838%{_mandir}/man1/ftpasswd.1*
839%{_mandir}/man1/ftpcount.1*
840%{_mandir}/man1/ftpmail.1*
841%{_mandir}/man1/ftpquota.1*
842%{_mandir}/man1/ftptop.1*
843%{_mandir}/man1/ftpwho.1*
844%{_mandir}/man5/ftpusers.5*
845%{_mandir}/man5/proftpd.conf.5*
846%{_mandir}/man5/xferlog.5*
847%{_mandir}/man8/ftpdctl.8*
848%{_mandir}/man8/ftpscrub.8*
849%{_mandir}/man8/ftpshut.8*
850%{_mandir}/man8/proftpd.8*
851%lang(ja) %{_mandir}/ja/man5/ftpusers.5*
852%lang(pl) %{_mandir}/pl/man5/ftpusers.5*
853%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers.5*
854%lang(ru) %{_mandir}/ru/man5/ftpusers.5*
855%dir /var/lib/ftp
856%dir /var/lib/ftp/pub
857%attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming
858
859%files inetd
860%defattr(644,root,root,755)
861%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd
862
863%files standalone
864%defattr(644,root,root,755)
865%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd
866%attr(754,root,root) /etc/rc.d/init.d/proftpd
867
868%files devel
869%defattr(644,root,root,755)
870%{_includedir}/%{name}
871%{_pkgconfigdir}/proftpd.pc
872
873%files anonftp
874%defattr(644,root,root,755)
875%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf
876
877%if %{with pam}
878%files mod_auth_pam
879%defattr(644,root,root,755)
880%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/ftp
881%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp
882%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf
883%attr(755,root,root) %{_libexecdir}/mod_auth_pam.so
884%endif
885
886%if %{with ldap}
887%files mod_ldap
888%defattr(644,root,root,755)
889%doc README.LDAP
890%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf
891%attr(755,root,root) %{_libexecdir}/mod_ldap.so
892%endif
893
894%files mod_quotatab
895%defattr(644,root,root,755)
896%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf
897%attr(755,root,root) %{_libexecdir}/mod_quotatab.so
898
899%if %{with quotafile}
900%files mod_quotatab_file
901%defattr(644,root,root,755)
902%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf
903%attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so
904%endif
905
906%if %{with quotaldap}
907%files mod_quotatab_ldap
908%defattr(644,root,root,755)
909%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf
910%attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so
911%endif
912
913%if %{with quotamysql} || %{with quotapgsql}
914%files mod_quotatab_sql
915%defattr(644,root,root,755)
916%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf
917%attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so
918%endif
919
920%files mod_ratio
921%defattr(644,root,root,755)
922%doc contrib/README.ratio
923%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf
924%attr(755,root,root) %{_libexecdir}/mod_ratio.so
925
926%files mod_readme
927%defattr(644,root,root,755)
928%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf
929%attr(755,root,root) %{_libexecdir}/mod_readme.so
930
931%files mod_rewrite
932%defattr(644,root,root,755)
933%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf
934%attr(755,root,root) %{_libexecdir}/mod_rewrite.so
935
936%if %{with mysql} || %{with pgsql}
937%files mod_sql
938%defattr(644,root,root,755)
939%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf
940%attr(755,root,root) %{_libexecdir}/mod_sql.so
941%endif
942
943%if %{with mysql}
944%files mod_sql_mysql
945%defattr(644,root,root,755)
946%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf
947%attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so
948%endif
949
950%if %{with pgsql}
951%files mod_sql_postgres
952%defattr(644,root,root,755)
953%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf
954%attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so
955%endif
956
957%files mod_tls
958%defattr(644,root,root,755)
959%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf
960%attr(755,root,root) %{_libexecdir}/mod_tls.so
961
962%files mod_wrap
963%defattr(644,root,root,755)
964%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf
965%attr(755,root,root) %{_libexecdir}/mod_wrap.so
966
967%files mod_wrap2
968%defattr(644,root,root,755)
969%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap2.conf
970%attr(755,root,root) %{_libexecdir}/mod_wrap2.so
971
972%if %{with wrap2file}
973%files mod_wrap2_file
974%defattr(644,root,root,755)
975%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap2_file.conf
976%attr(755,root,root) %{_libexecdir}/mod_wrap2_file.so
977%endif
978
979%files mod_dnsbl
980%defattr(644,root,root,755)
981%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_dnsbl.conf
982%attr(755,root,root) %{_libexecdir}/mod_dnsbl.so
983
984%files mod_geoip
985%defattr(644,root,root,755)
986%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_geoip.conf
987%attr(755,root,root) %{_libexecdir}/mod_geoip.so
988
989%files mod_memcache
990%defattr(644,root,root,755)
991%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_memcache.conf
992%attr(755,root,root) %{_libexecdir}/mod_memcache.so
993
994%files mod_redis
995%defattr(644,root,root,755)
996%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_redis.conf
997%attr(755,root,root) %{_libexecdir}/mod_redis.so
998
999%files mod_sftp
1000%defattr(644,root,root,755)
1001%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sftp.conf
1002%{_sysconfdir}/blacklist.dat
1003%{_sysconfdir}/dhparams.pem
1004%attr(755,root,root) %{_libexecdir}/mod_sftp.so
This page took 0.057127 seconds and 4 git commands to generate.