]> TLD Linux GIT Repositories - packages/proftpd.git/blob - proftpd.spec
- updated to 1.3.6b
[packages/proftpd.git] / proftpd.spec
1 # TODO
2 # - mod_caps uses uname -r for detection
3 # - don't use internal libltdl
4 # - package contrib/ftp* perl scripts.
5 #
6 # Conditional build:
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
17 #
18 %define         mod_clamav_version      0.13
19
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 服务器
25 Name:           proftpd
26 Version:        1.3.6b
27 Release:        1
28 Epoch:          2
29 License:        GPL v2+
30 Group:          Networking/Daemons
31 Source0:        ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
32 # Source0-md5:  4040f6a6b86173e2a03f4ccdb9b9af6e
33 # https://github.com/jbenden/mod_clamav
34 Source1:        mod_clamav-%{mod_clamav_version}.tar.xz
35 # Source1-md5:  89ec19115d9ea7c7f4e0b0c4551e69bc
36 Source2:        %{name}.conf
37 Source3:        ftp.pamd
38 Source4:        %{name}.inetd
39 Source5:        %{name}.sysconfig
40 Source6:        %{name}.init
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
61 %endif
62 BuildRequires:  ncurses-devel
63 %if %{with ldap} || %{with quotaldap}
64 BuildRequires:  openldap-devel
65 %endif
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
70 %endif
71 BuildRequires:  rpmbuild(macros) >= 1.268
72 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
73
74 %define         _sysconfdir             /etc/proftpd
75 %define         _localstatedir          /var/run
76 %define         _libexecdir             %{_prefix}/%{_lib}/%{name}
77
78 # macro called at module post scriptlet
79 %define module_post \
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 \
85         fi \
86 fi
87
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 \
95         fi \
96 fi
97
98 %define module_triggerun \
99 if [ $1 -le 1 ]; then \
100         exit 0 \
101 fi \
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 \
105         f=${f##*/} \
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 || : \
108 done \
109 %else \
110 [ -f /etc/ftpd/conf.d/%1.conf ] && mv /etc/ftpd/conf.d/%1.conf /etc/proftpd/conf.d 2>/dev/null || : \
111 %endif \
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 || :
115
116 # it's sooo annoying to write them
117 %define module_scripts() \
118 %post %1 \
119 %module_post \
120 \
121 %postun %1 \
122 %module_postun \
123 \
124 %triggerun %1 -- proftpd-%1 \
125 %module_triggerun
126
127 %description
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
132 reference manual.
133
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.
140
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.
146
147 %description -l pt_BR.UTF-8
148 O ProFTPD é um servidor FTP altamente configurável para sistemas
149 operacionais Unix.
150
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
154 servidor.
155
156 %package common
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
160 Requires(post): awk
161 Requires(post): fileutils
162 Obsoletes:      proftpd < 0:1.2.2rc1-3
163
164 %description common
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
169 reference manual.
170
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.
177
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.
183
184 %description common -l pt_BR.UTF-8
185 O ProFTPD é um servidor FTP altamente configurável para sistemas
186 operacionais Unix.
187
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
191 servidor.
192
193 %package inetd
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
198 Requires(post): grep
199 Requires(post): sed >= 4.0
200 Requires(triggerpostun):        sed >= 4.0
201 Requires:       %{name}-common = %{epoch}:%{version}-%{release}
202 Requires:       rc-inetd
203 Provides:       ftpserver
204 Provides:       proftpd = %{epoch}:%{version}-%{release}
205 Obsoletes:      anonftp
206 Obsoletes:      bftpd
207 Obsoletes:      ftpd-BSD
208 Obsoletes:      ftpserver
209 Obsoletes:      glftpd
210 Obsoletes:      heimdal-ftpd
211 Obsoletes:      krb5-ftpd
212 Obsoletes:      linux-ftpd
213 Obsoletes:      muddleftpd
214 Obsoletes:      proftpd-standalone
215 Obsoletes:      pure-ftpd
216 Obsoletes:      troll-ftpd
217 Obsoletes:      vsftpd
218 Obsoletes:      wu-ftpd
219 Conflicts:      man-pages < 1.51
220 Conflicts:      rpm < 4.4.2-0.2
221
222 %description inetd
223 ProFTPD configs for running from inetd.
224
225 %description inetd -l pl.UTF-8
226 Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd.
227
228 %package standalone
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
233 Requires(post): grep
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}
238 Requires:       rc-scripts
239 Provides:       ftpserver
240 Provides:       proftpd = %{epoch}:%{version}-%{release}
241 Obsoletes:      anonftp
242 Obsoletes:      bftpd
243 Obsoletes:      ftpd-BSD
244 Obsoletes:      ftpserver
245 Obsoletes:      glftpd
246 Obsoletes:      heimdal-ftpd
247 Obsoletes:      krb5-ftpd
248 Obsoletes:      linux-ftpd
249 Obsoletes:      muddleftpd
250 Obsoletes:      proftpd-inetd
251 Obsoletes:      pure-ftpd
252 Obsoletes:      troll-ftpd
253 Obsoletes:      vsftpd
254 Obsoletes:      wu-ftpd
255 Conflicts:      man-pages < 1.51
256 Conflicts:      rpm < 4.4.2-0.2
257
258 %description standalone
259 ProFTPD configs for running as a standalone daemon.
260
261 %description standalone -l pl.UTF-8
262 Pliki konfiguracyjne ProFTPD do startowania demona w trybie
263 standalone.
264
265 %package devel
266 Summary:        Header files ProFTPD
267 Summary(pl.UTF-8):      Pliki nagłówkowe ProFTPD
268 Group:          Development/Libraries
269 Requires:       acl-devel
270
271 %description devel
272 This is the package containing the header files for ProFTPD.
273
274 %description devel -l pl.UTF-8
275 Ten pakiet zawiera pliki nagłówkowe ProFTPD
276
277 %package anonftp
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}
282
283 %description anonftp
284 Anonymous FTP config for ProFTPD.
285
286 %description anonftp -l pl.UTF-8
287 Konfiguracja anonimowego FTP dla ProFTPD.
288
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
295
296 %description mod_auth_pam
297 PAM authentication method for ProFTPD.
298
299 %description mod_auth_pam -l pl.UTF-8
300 Metoda uwierzytelnienia PAM dla ProFTPD.
301
302 %package mod_ldap
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}
307
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.
312
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
317 domowych.
318
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}
324
325 %description mod_quotatab
326 A module for managing FTP byte/file quotas via centralized tables.
327
328 %description mod_quotatab -l pl.UTF-8
329 Moduł do zarządzania ograniczeniami bajtów/plików FTP poprzez
330 scentralizowane tabele.
331
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}
338
339 %description mod_quotatab_file
340 A mod_quotatab sub-module for managing quota data via file-based
341 tables.
342
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.
346
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}
354
355 %description mod_quotatab_ldap
356 A mod_quotatab sub-module for obtaining quota information from an LDAP
357 directory.
358
359 %description mod_quotatab_ldap -l pl.UTF-8
360 Podmoduł mod_quotatab do pobierania informacji o ograniczeniach z
361 katalogu LDAP.
362
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}
370
371 %description mod_quotatab_sql
372 A mod_quotatab sub-module for managing quota data via SQL-based
373 tables.
374
375 %description mod_quotatab_sql -l pl.UTF-8
376 Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez
377 tabele SQL.
378
379 %package mod_ratio
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}
384
385 %description mod_ratio
386 Support upload/download ratios.
387
388 %description mod_ratio -l pl.UTF-8
389 Obsługa współczynników upload/download.
390
391 %package mod_readme
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}
396
397 %description mod_readme
398 "README" file support.
399
400 %description mod_readme -l pl.UTF-8
401 Obsługa pliku "README".
402
403 %package mod_rewrite
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}
408
409 %description mod_rewrite
410 Runtime rewrite engine.
411
412 %description mod_rewrite -l pl.UTF-8
413 Silnik przepisujący adresy w locie.
414
415 %package mod_sql
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}
420
421 %description mod_sql
422 This module provides the necessary support for SQL based
423 authentication, logging and other features as required.
424
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.
428
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}
435
436 %description mod_sql_mysql
437 Support for connecting to MySQL databases.
438
439 %description mod_sql_mysql -l pl.UTF-8
440 Obsługa łączenia się z bazami danych MySQL.
441
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}
448
449 %description mod_sql_postgres
450 Support for connecting to PostgreSQL databases.
451
452 %description mod_sql_postgres -l pl.UTF-8
453 Obsługa łączenia się z bazami danych PostgreSQL.
454
455 %package mod_tls
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}
460
461 %description mod_tls
462 An RFC2228 SSL/TLS module for ProFTPD.
463
464 %description mod_tls -l pl.UTF-8
465 Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD.
466
467 %package mod_wrap
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}
472 Requires:       libwrap
473
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.
477
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.
483
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.
487
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.
493
494 %prep
495 %setup -q -n %{name}-%{version}%{?_rc} -a1
496 %patch0 -p1
497 %patch1 -p1
498
499 # mod_clamav
500 cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/
501
502 cp -f /usr/share/automake/config.sub .
503
504 # cleanup backups after patching
505 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
506
507 %build
508 %{__autoconf}
509
510 MODULES="
511 mod_auth_file
512 mod_ident
513 mod_ratio
514 mod_readme
515 mod_rewrite
516 mod_wrap
517 mod_facl
518 mod_ifsession
519 mod_lang
520 %{?with_ssl:mod_tls}
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}
529 "
530
531 MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':')
532 %configure \
533         --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \
534         --disable-strip \
535         --enable-buffer-size=4096 \
536         --disable-auth-file \
537         --enable-autoshadow \
538         --enable-ctrls \
539         --enable-dso \
540         --enable-facls \
541         %{?with_ipv6:--enable-ipv6} \
542         --enable-nls \
543         --enable-sendfile \
544         %{!?with_ssl:--disable-tls} \
545         --with-shared=$MODARG \
546         --with-modules=mod_clamav
547
548 %{__make} -j1
549
550 %install
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}
556
557 %{__make} install \
558         DESTDIR=$RPM_BUILD_ROOT \
559         INSTALL_USER=%(id -u) \
560         INSTALL_GROUP=%(id -g)
561
562 rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd
563
564 install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}
565 cp -a %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf
566 MODULES="
567 mod_auth_file
568 mod_ident
569 mod_ratio
570 mod_readme
571 mod_rewrite
572 mod_wrap
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}
580 "
581 for module in $MODULES; do
582         echo "LoadModule        $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf
583 done
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
587
588 cp -a %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/server.crt
589 cp -a %{SOURCE15} $RPM_BUILD_ROOT%{_sysconfdir}/server.key
590
591 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/proftpd
592
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
598
599 bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
600
601 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default
602 :> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers
603
604 # only for -inetd package?
605 ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd
606
607 :> $RPM_BUILD_ROOT/etc/security/blacklist.ftp
608
609 rm $RPM_BUILD_ROOT%{_libexecdir}/*.a
610 rm $RPM_BUILD_ROOT%{_libexecdir}/*.la
611
612 rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff*
613 cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name}
614
615 %clean
616 rm -rf $RPM_BUILD_ROOT
617
618 %post common
619 umask 027
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
623 fi
624
625 %posttrans inetd
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
629 fi
630 %service -q rc-inetd reload
631
632 %postun inetd
633 if [ "$1" = "0" ]; then
634         %service -q rc-inetd reload
635 fi
636
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
641 fi
642 /sbin/chkconfig --add proftpd
643 %service proftpd restart "ProFTPD daemon"
644
645 %preun standalone
646 if [ "$1" = "0" ]; then
647         %service proftpd stop
648         /sbin/chkconfig --del proftpd
649 fi
650
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
656 fi
657
658 %triggerun common -- proftpd-common < 2:1.3.6-5
659 if [ $1 -le 1 ]; then
660         exit 0
661 fi
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
664         f=${f##*/}
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 || :
667 done
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 || :
671
672 %triggerpostun common -- proftpd-common < 2:1.3.6-5
673 echo
674 echo "Warning! Configuration has been migrated to /etc/proftpd."
675 echo
676
677 %triggerun anonftp -- proftpd-anonftp < 2:1.3.6-5
678 if [ $1 -le 1 ]; then
679         exit 0
680 fi
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 || :
686
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
701
702 %files common
703 %defattr(644,root,root,755)
704 %doc sample-configurations/*.conf CREDITS ChangeLog NEWS RELEASE_NOTES
705 %doc README.md README.capabilities README.classes README.controls README.IPv6
706 %doc README.modules
707 %doc doc/*.html doc/contrib doc/howto doc/modules
708 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/proftpd
709 %dir %attr(750,root,ftp) %dir %{_sysconfdir}
710 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
711 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers
712 %attr(640,root,root) %{_sysconfdir}/ftpusers.default
713 %dir %attr(750,root,root) %{_sysconfdir}/conf.d
714 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf
715 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf
716 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf
717 %attr(750,root,root) %dir /var/log/proftpd
718 %attr(750,root,root) %dir /var/log/archive/proftpd
719 %attr(755,root,root) %{_bindir}/*
720 %attr(755,root,root) %{_sbindir}/*
721 %dir %{_libexecdir}
722 %attr(755,root,root) %{_libexecdir}/mod_auth_file.so
723 %attr(755,root,root) %{_libexecdir}/mod_facl.so
724 %attr(755,root,root) %{_libexecdir}/mod_ident.so
725 %attr(755,root,root) %{_libexecdir}/mod_ifsession.so
726 %attr(755,root,root) %{_libexecdir}/mod_lang.so
727 %dir %{_localstatedir}/proftpd
728 %{_mandir}/man5/*
729 %lang(ja) %{_mandir}/ja/man5/ftpusers*
730 %lang(pl) %{_mandir}/pl/man5/ftpusers*
731 %lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers*
732 %lang(ru) %{_mandir}/ru/man5/ftpusers*
733 %{_mandir}/man[18]/*
734 %dir /var/lib/ftp
735 %dir /var/lib/ftp/pub
736 %attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming
737
738 %files inetd
739 %defattr(644,root,root,755)
740 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd
741
742 %files standalone
743 %defattr(644,root,root,755)
744 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd
745 %attr(754,root,root) /etc/rc.d/init.d/proftpd
746
747 %files devel
748 %defattr(644,root,root,755)
749 %{_includedir}/%{name}
750 %{_pkgconfigdir}/%{name}.pc
751
752 %files anonftp
753 %defattr(644,root,root,755)
754 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf
755
756 %if %{with pam}
757 %files mod_auth_pam
758 %defattr(644,root,root,755)
759 %doc README.PAM
760 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
761 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp
762 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf
763 %attr(755,root,root) %{_libexecdir}/mod_auth_pam.so
764 %endif
765
766 %if %{with ldap}
767 %files mod_ldap
768 %defattr(644,root,root,755)
769 %doc README.LDAP
770 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf
771 %attr(755,root,root) %{_libexecdir}/mod_ldap.so
772 %endif
773
774 %files mod_quotatab
775 %defattr(644,root,root,755)
776 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf
777 %attr(755,root,root) %{_libexecdir}/mod_quotatab.so
778
779 %if %{with quotafile}
780 %files mod_quotatab_file
781 %defattr(644,root,root,755)
782 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf
783 %attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so
784 %endif
785
786 %if %{with quotaldap}
787 %files mod_quotatab_ldap
788 %defattr(644,root,root,755)
789 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf
790 %attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so
791 %endif
792
793 %if %{with quotamysql} || %{with quotapgsql}
794 %files mod_quotatab_sql
795 %defattr(644,root,root,755)
796 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf
797 %attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so
798 %endif
799
800 %files mod_ratio
801 %defattr(644,root,root,755)
802 %doc contrib/README.ratio
803 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf
804 %attr(755,root,root) %{_libexecdir}/mod_ratio.so
805
806 %files mod_readme
807 %defattr(644,root,root,755)
808 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf
809 %attr(755,root,root) %{_libexecdir}/mod_readme.so
810
811 %files mod_rewrite
812 %defattr(644,root,root,755)
813 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf
814 %attr(755,root,root) %{_libexecdir}/mod_rewrite.so
815
816 %if %{with mysql} || %{with pgsql}
817 %files mod_sql
818 %defattr(644,root,root,755)
819 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf
820 %attr(755,root,root) %{_libexecdir}/mod_sql.so
821 %endif
822
823 %if %{with mysql}
824 %files mod_sql_mysql
825 %defattr(644,root,root,755)
826 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf
827 %attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so
828 %endif
829
830 %if %{with pgsql}
831 %files mod_sql_postgres
832 %defattr(644,root,root,755)
833 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf
834 %attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so
835 %endif
836
837 %files mod_tls
838 %defattr(644,root,root,755)
839 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf
840 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/server.crt
841 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/server.key
842 %attr(755,root,root) %{_libexecdir}/mod_tls.so
843
844 %files mod_wrap
845 %defattr(644,root,root,755)
846 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf
847 %attr(755,root,root) %{_libexecdir}/mod_wrap.so