1 |
%define _disable_ld_no_undefined 1 |
2 |
|
3 |
%define _localstatedir /var/run |
4 |
|
5 |
%define mod_gss_version 1.3.3 |
6 |
%define mod_autohost_version 0.3 |
7 |
%define mod_case_version 0.4 |
8 |
%define mod_shaper_version 0.6.5 |
9 |
%define mod_time_version 2.2.1 |
10 |
%define mod_vroot_version 0.9.2 |
11 |
|
12 |
Summary: Professional FTP Server |
13 |
Name: proftpd |
14 |
Version: 1.3.3g |
15 |
%define subrel 1 |
16 |
Release: %mkrel 1 |
17 |
License: GPLv2+ |
18 |
Group: System/Servers |
19 |
URL: http://proftpd.org/ |
20 |
Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz |
21 |
Source1: proftpd.logrotate |
22 |
Source2: proftpd.xinetd |
23 |
Source3: proftpd.init |
24 |
Source4: proftpd.service |
25 |
Source5: basic.conf |
26 |
Source7: welcome.msg |
27 |
Source32: 32_mod_shaper.conf |
28 |
# http://sourceforge.net/projects/gssmod/ |
29 |
Source100: http://prdownloads.sourceforge.net/gssmod/mod_gss-%{mod_gss_version}.tar.gz |
30 |
# from http://www.castaglia.org/proftpd/ |
31 |
Source102: http://www.castaglia.org/proftpd/modules/proftpd-mod-autohost-%{mod_autohost_version}.tar.gz |
32 |
Source103: http://www.castaglia.org/proftpd/modules/proftpd-mod-case-%{mod_case_version}.tar.gz |
33 |
Source104: http://www.castaglia.org/proftpd/modules/proftpd-mod-shaper-%{mod_shaper_version}.tar.gz |
34 |
Source105: http://www.castaglia.org/proftpd/modules/proftpd-mod-time-%{mod_time_version}.tar.bz2 |
35 |
Source108: http://www.castaglia.org/proftpd/modules/proftpd-mod-vroot-%{mod_vroot_version}.tar.gz |
36 |
Source200: anonymous.conf |
37 |
Patch0: proftpd-1.3.0-xferstats_logfile_location.diff |
38 |
# (pixel): i kept the /lib/security/*.so instead of *.so in the patch to have a smaller patch |
39 |
# (pixel): spec-helper will clean it up |
40 |
Patch2: proftpd-use-system-auth-instead-of-pam_unix.diff |
41 |
Patch4: proftpd-1.3.0-installfix.diff |
42 |
Patch7: proftpd-1.3.0-change_pam_name.diff |
43 |
Patch8: proftpd-1.3.2-mod_time_fix.diff |
44 |
Patch10: proftpd-1.3.3c-verbose_tests.diff |
45 |
Patch40: mod_gss-1.3.0-format_not_a_string_literal_and_no_format_arguments.diff |
46 |
Patch41: mod_time-format_not_a_string_literal_and_no_format_arguments.diff |
47 |
Patch42: proftpd-1.3.3c-no_-ldes425.diff |
48 |
Patch43: proftpd-1.3.3g-CVE-2012-6095.diff |
49 |
BuildRequires: cap-devel |
50 |
BuildRequires: gettext-devel |
51 |
BuildRequires: libacl-devel |
52 |
BuildRequires: libattr-devel |
53 |
BuildRequires: libkrb-devel |
54 |
BuildRequires: libtool |
55 |
BuildRequires: libtool-devel |
56 |
BuildRequires: mysql-devel |
57 |
BuildRequires: ncurses-devel |
58 |
BuildRequires: openldap-devel |
59 |
BuildRequires: openssl-devel |
60 |
BuildRequires: pam-devel |
61 |
BuildRequires: pkgconfig |
62 |
BuildRequires: postgresql-devel |
63 |
BuildRequires: sasl-plug-gssapi |
64 |
BuildRequires: tcp_wrappers-devel |
65 |
BuildRequires: zlib-devel |
66 |
# for the test suite |
67 |
# disabled for now but kept here for reference |
68 |
#BuildRequires: check-devel perl-Test-Unit perl-Error |
69 |
Provides: ftpserver |
70 |
Requires: pam |
71 |
Requires(post): rpm-helper |
72 |
Requires(postun): rpm-helper |
73 |
Requires(preun): rpm-helper |
74 |
Requires(pre): rpm-helper |
75 |
|
76 |
%description |
77 |
ProFTPd is an enhanced FTP server with a focus on simplicity, security, and |
78 |
ease of configuration. It features a very Apache-like configuration syntax, |
79 |
and a highly customizable server infrastructure, including support for multiple |
80 |
'virtual' FTP servers, anonymous FTP, and permission-based directory |
81 |
visibility. |
82 |
|
83 |
This version supports both standalone and xinetd operation. |
84 |
|
85 |
%package devel |
86 |
Summary: Development files for ProFTPD |
87 |
Group: Development/C |
88 |
|
89 |
%description devel |
90 |
This package contains the development headers for ProFTPD |
91 |
|
92 |
%package mod_ctrls_admin |
93 |
Summary: Module implementing admin control handlers |
94 |
Group: System/Servers |
95 |
Requires(post): %{name} = %{version}-%{release} |
96 |
Requires(preun): %{name} = %{version}-%{release} |
97 |
Requires: %{name} = %{version}-%{release} |
98 |
|
99 |
%description mod_ctrls_admin |
100 |
This module implements administrative control actions for the ftpdctl program. |
101 |
|
102 |
%package mod_ifsession |
103 |
Summary: Module supporting conditional per-user/group/class configuration contexts |
104 |
Group: System/Servers |
105 |
Requires(post): %{name} = %{version}-%{release} |
106 |
Requires(preun): %{name} = %{version}-%{release} |
107 |
Requires: %{name} = %{version}-%{release} |
108 |
|
109 |
%description mod_ifsession |
110 |
Module supporting conditional per-user/group/class configuration contexts |
111 |
|
112 |
%package mod_ldap |
113 |
Summary: LDAP password lookup module for ProFTPD |
114 |
Group: System/Servers |
115 |
Requires(post): %{name} = %{version}-%{release} |
116 |
Requires(preun): %{name} = %{version}-%{release} |
117 |
Requires: %{name} = %{version}-%{release} |
118 |
|
119 |
%description mod_ldap |
120 |
LDAP password lookup module for ProFTPD |
121 |
|
122 |
%package mod_quotatab |
123 |
Summary: Module for managing FTP byte/file quotas via centralized tables |
124 |
Group: System/Servers |
125 |
Requires(post): %{name} = %{version}-%{release} |
126 |
Requires(preun): %{name} = %{version}-%{release} |
127 |
Requires: %{name} = %{version}-%{release} |
128 |
Requires: %{name}-mod_quotatab_driver = %{version}-%{release} |
129 |
|
130 |
%description mod_quotatab |
131 |
Module for managing FTP byte/file quotas via centralized tables |
132 |
|
133 |
%package mod_quotatab_file |
134 |
Summary: Sub-module for managing quota data via file-based tables |
135 |
Group: System/Servers |
136 |
Requires(post): %{name} = %{version}-%{release} |
137 |
Requires(preun): %{name} = %{version}-%{release} |
138 |
Requires: %{name}-mod_quotatab = %{version}-%{release} |
139 |
Provides: %{name}-mod_quotatab_driver = %{version}-%{release} |
140 |
|
141 |
%description mod_quotatab_file |
142 |
Sub-module for managing quota data via file-based tables |
143 |
|
144 |
%package mod_quotatab_ldap |
145 |
Summary: Sub-module for obtaining quota information from an LDAP directory |
146 |
Group: System/Servers |
147 |
Requires(post): %{name} = %{version}-%{release} |
148 |
Requires(preun): %{name} = %{version}-%{release} |
149 |
Requires: %{name}-mod_quotatab = %{version}-%{release} |
150 |
Provides: %{name}-mod_quotatab_driver = %{version}-%{release} |
151 |
|
152 |
%description mod_quotatab_ldap |
153 |
Sub-module for obtaining quota information from an LDAP directory |
154 |
|
155 |
%package mod_quotatab_sql |
156 |
Summary: Sub-module for managing quota data via SQL-based tables |
157 |
Group: System/Servers |
158 |
Requires(post): %{name} = %{version}-%{release} |
159 |
Requires(preun): %{name} = %{version}-%{release} |
160 |
Requires: %{name}-mod_quotatab = %{version}-%{release} |
161 |
Provides: %{name}-mod_quotatab_driver = %{version}-%{release} |
162 |
|
163 |
%description mod_quotatab_sql |
164 |
Sub-module for managing quota data via SQL-based tables |
165 |
|
166 |
%package mod_quotatab_radius |
167 |
Summary: Sub-module for managing quota data via radius |
168 |
Group: System/Servers |
169 |
Requires(post): %{name} = %{version}-%{release} |
170 |
Requires(preun): %{name} = %{version}-%{release} |
171 |
Requires: %{name}-mod_quotatab = %{version}-%{release} |
172 |
Provides: %{name}-mod_quotatab_driver = %{version}-%{release} |
173 |
|
174 |
%description mod_quotatab_radius |
175 |
Sub-module for managing quota data via radius |
176 |
|
177 |
%package mod_radius |
178 |
Summary: Module for RADIUS authentication and accounting |
179 |
Group: System/Servers |
180 |
Requires(post): %{name} = %{version}-%{release} |
181 |
Requires(preun): %{name} = %{version}-%{release} |
182 |
Requires: %{name} = %{version}-%{release} |
183 |
|
184 |
%description mod_radius |
185 |
Module for RADIUS authentication and accounting |
186 |
|
187 |
%package mod_ratio |
188 |
Summary: Support upload/download ratios |
189 |
Group: System/Servers |
190 |
Requires(post): %{name} = %{version}-%{release} |
191 |
Requires(preun): %{name} = %{version}-%{release} |
192 |
Requires: %{name} = %{version}-%{release} |
193 |
|
194 |
%description mod_ratio |
195 |
Support upload/download ratios |
196 |
|
197 |
%package mod_rewrite |
198 |
Summary: Module for rewriting FTP commands |
199 |
Group: System/Servers |
200 |
Requires(post): %{name} = %{version}-%{release} |
201 |
Requires(preun): %{name} = %{version}-%{release} |
202 |
Requires: %{name} = %{version}-%{release} |
203 |
|
204 |
%description mod_rewrite |
205 |
Module for rewriting FTP commands |
206 |
|
207 |
%package mod_site_misc |
208 |
Summary: Module implementing miscellaneous SITE commands |
209 |
Group: System/Servers |
210 |
Requires(post): %{name} = %{version}-%{release} |
211 |
Requires(preun): %{name} = %{version}-%{release} |
212 |
Requires: %{name} = %{version}-%{release} |
213 |
|
214 |
%description mod_site_misc |
215 |
Module implementing miscellaneous SITE commands |
216 |
|
217 |
%package mod_sql |
218 |
Summary: SQL frontend |
219 |
Group: System/Servers |
220 |
Requires(post): %{name} = %{version}-%{release} |
221 |
Requires(preun): %{name} = %{version}-%{release} |
222 |
Requires: %{name} = %{version}-%{release} |
223 |
Requires: %{name}-mod_sql_driver = %{version}-%{release} |
224 |
|
225 |
%description mod_sql |
226 |
SQL frontend |
227 |
|
228 |
%package mod_sql_mysql |
229 |
Summary: Support for connecting to MySQL databases |
230 |
Group: System/Servers |
231 |
Requires(post): %{name} = %{version}-%{release} |
232 |
Requires(preun): %{name} = %{version}-%{release} |
233 |
Requires: %{name}-mod_sql = %{version}-%{release} |
234 |
Provides: %{name}-mod_sql_driver = %{version}-%{release} |
235 |
|
236 |
%description mod_sql_mysql |
237 |
Support for connecting to MySQL databases |
238 |
|
239 |
%package mod_sql_postgres |
240 |
Summary: Support for connecting to Postgres databases |
241 |
Group: System/Servers |
242 |
Requires(post): %{name} = %{version}-%{release} |
243 |
Requires(preun): %{name} = %{version}-%{release} |
244 |
Requires: %{name}-mod_sql = %{version}-%{release} |
245 |
Provides: %{name}-mod_sql_driver = %{version}-%{release} |
246 |
|
247 |
%description mod_sql_postgres |
248 |
Support for connecting to Postgres databases |
249 |
|
250 |
%package mod_sql_passwd |
251 |
Summary: Support for other password formats stored in SQL databases |
252 |
Group: System/Servers |
253 |
Requires(post): %{name} = %{version}-%{release} |
254 |
Requires(preun): %{name} = %{version}-%{release} |
255 |
Requires: %{name}-mod_sql = %{version}-%{release} |
256 |
Requires: %{name}-mod_sql_driver = %{version}-%{release} |
257 |
|
258 |
%description mod_sql_passwd |
259 |
Support for other password formats stored in SQL databases |
260 |
|
261 |
%package mod_tls |
262 |
Summary: An RFC2228 SSL/TLS module for ProFTPD |
263 |
Group: System/Servers |
264 |
Requires(post): %{name} = %{version}-%{release} |
265 |
Requires(preun): %{name} = %{version}-%{release} |
266 |
Requires: %{name} = %{version}-%{release} |
267 |
|
268 |
%description mod_tls |
269 |
An RFC2228 SSL/TLS module for ProFTPD |
270 |
|
271 |
#%package mod_facl |
272 |
#Summary: POSIX ACL checking code (aka POSIX.1e hell) |
273 |
#Group: System/Servers |
274 |
#Requires: %{name} = %{version}-%{release} |
275 |
# |
276 |
#%description mod_facl |
277 |
#POSIX ACL checking code (aka POSIX.1e hell) |
278 |
|
279 |
%package mod_autohost |
280 |
Summary: An autohost module for ProFTPD |
281 |
Group: System/Servers |
282 |
Requires(post): %{name} = %{version}-%{release} |
283 |
Requires(preun): %{name} = %{version}-%{release} |
284 |
Requires: %{name} = %{version}-%{release} |
285 |
|
286 |
%description mod_autohost |
287 |
For sites that run a large number of <VirtualHost>s for proftpd, it can be |
288 |
cumbersome to configure them all in the proftpd.conf file. Adding or removing |
289 |
virtual server configurations require restarting the daemon, as do changes to |
290 |
one of the server configurations. The daemon also consumes memory for each |
291 |
server configuration, and the memory footprint for the daemon process can grow |
292 |
large for large numbers of servers. |
293 |
|
294 |
The mod_autohost module allows for server configurations to be configured in |
295 |
individual files, and for those configuration to be used in an "on demand" |
296 |
fashion. Rather than loading the configurations into memory when the daemon |
297 |
starts up, the daemon will check the IP address and port being contacted by a |
298 |
connecting client, check in the filesystem for a mod_autohost configuration |
299 |
file for that address/port, dynamically parse the configuration, and insert |
300 |
the configuration into the session's process space. Thus changes to the |
301 |
configuration are seen whenever a client connects, without requiring a daemon |
302 |
restart. The memory footprint is reduced because proftpd, via mod_autohost, |
303 |
only reads and uses the needed configuration. |
304 |
|
305 |
%package mod_case |
306 |
Summary: Makes ProFTPD case insensitive |
307 |
Group: System/Servers |
308 |
Requires(post): %{name} = %{version}-%{release} |
309 |
Requires(preun): %{name} = %{version}-%{release} |
310 |
Requires: %{name} = %{version}-%{release} |
311 |
|
312 |
%description mod_case |
313 |
The mod_case module is designed to help ProFTPD be case-insensitive, for those |
314 |
sites that may need it (e.g. those that are migrating from a Windows |
315 |
environment or have mounted Windows filesystems). |
316 |
|
317 |
mod_case works by performing two checks on the filename used in FTP commands. |
318 |
First, mod_case will scan the directory to see if there is already a file whose |
319 |
name exactly matches the given filename. If not, mod_case will scan the |
320 |
directory again, this time looking for case-insensitive matches. |
321 |
|
322 |
%package mod_gss |
323 |
Summary: A Kerberos 5 GSS module for ProFTPD |
324 |
Group: System/Servers |
325 |
Requires(post): %{name} = %{version}-%{release} |
326 |
Requires(preun): %{name} = %{version}-%{release} |
327 |
Requires: %{name} = %{version}-%{release} |
328 |
|
329 |
%description mod_gss |
330 |
A Kerberos 5 GSS module for ProFTPD |
331 |
|
332 |
%package mod_load |
333 |
Summary: A module that determines average load for ProFTPD |
334 |
Group: System/Servers |
335 |
Requires(post): %{name} = %{version}-%{release} |
336 |
Requires(preun): %{name} = %{version}-%{release} |
337 |
Requires: %{name} = %{version}-%{release} |
338 |
|
339 |
%description mod_load |
340 |
The code for determining load average on a given system is hairy, to say the |
341 |
least. Unfortunately, it is necessary to do it this way, as there is no |
342 |
standard method for extracting such information from the kernel. This module |
343 |
uses code from GNU's make application, which should function properly. If not, |
344 |
please contact the author as soon as possible. |
345 |
|
346 |
%package mod_shaper |
347 |
Summary: A shaping module for ProFTPD |
348 |
Group: System/Servers |
349 |
Requires(post): %{name} = %{version}-%{release} |
350 |
Requires(preun): %{name} = %{version}-%{release} |
351 |
Requires: %{name} = %{version}-%{release} |
352 |
|
353 |
%description mod_shaper |
354 |
The mod_shaper module is designed to split overall rates, both download and |
355 |
upload, for the proftpd daemon among all connected FTP clients, shaping each |
356 |
session to use only a portion of the overall rate. mod_shaper shapes both |
357 |
transmitted traffic, e.g. bits being downloaded via the RETR command, and |
358 |
received traffic, e.g. bits being uploaded via the APPE, STOR, and STOU |
359 |
commands. |
360 |
|
361 |
%package mod_time |
362 |
Summary: Limits acces based on the time of day and/or the day of the week |
363 |
Group: System/Servers |
364 |
Requires(post): %{name} = %{version}-%{release} |
365 |
Requires(preun): %{name} = %{version}-%{release} |
366 |
Requires: %{name} = %{version}-%{release} |
367 |
|
368 |
%description mod_time |
369 |
This module is designed to allow for limiting FTP commands based on the time of |
370 |
day and/or the day of the week. A more detailed explanation of the usage of |
371 |
this module follows the directive explanations. |
372 |
|
373 |
%package mod_wrap |
374 |
Summary: Provides tcpwrapper-like access control rules for ProFTPD |
375 |
Group: System/Servers |
376 |
Requires(post): %{name} = %{version}-%{release} |
377 |
Requires(preun): %{name} = %{version}-%{release} |
378 |
Requires: %{name} = %{version}-%{release} |
379 |
Requires: %{name}-mod_wrap_driver = %{version}-%{release} |
380 |
Requires: tcp_wrappers |
381 |
|
382 |
%description mod_wrap |
383 |
The mod_wrap package allows the proftpd daemon to provide tcpwrapper-like |
384 |
access control rules while running in standalone mode. It also allows for those |
385 |
access rules to be stored in various formats, such as files (e.g. |
386 |
/etc/hosts.allow and /etc/hosts.deny) or in SQL tables. |
387 |
|
388 |
The most current version of mod_wrap's submodules supports storage of access |
389 |
table information in various formats: |
390 |
|
391 |
o mod_wrap_file for file-based access tables |
392 |
o mod_wrap_sql for SQL-based access tables |
393 |
|
394 |
%package mod_wrap_file |
395 |
Summary: A file-specific driver for the mod_wrap module for ProFTPD |
396 |
Group: System/Servers |
397 |
Requires(post): %{name} = %{version}-%{release} |
398 |
Requires(preun): %{name} = %{version}-%{release} |
399 |
Requires: %{name} = %{version}-%{release} |
400 |
Provides: %{name}-mod_wrap_driver = %{version}-%{release} |
401 |
|
402 |
%description mod_wrap_file |
403 |
This submodule provides the file-specific "driver" for storing IP/DNS-based |
404 |
access control information in files. |
405 |
|
406 |
%package mod_wrap_sql |
407 |
Summary: A SQL database driver for the mod_wrap module for ProFTPD |
408 |
Group: System/Servers |
409 |
Requires(post): %{name} = %{version}-%{release} |
410 |
Requires(preun): %{name} = %{version}-%{release} |
411 |
Requires: %{name} = %{version}-%{release} |
412 |
Provides: %{name}-mod_wrap_driver = %{version}-%{release} |
413 |
|
414 |
%description mod_wrap_sql |
415 |
This submodule provides the SQL database "driver" for storing IP/DNS-based |
416 |
access control information in SQL tables. |
417 |
|
418 |
%package mod_ban |
419 |
Summary: Adds dynamic "ban" lists to ProFTPD |
420 |
Group: System/Servers |
421 |
Requires(post): %{name} = %{version}-%{release} |
422 |
Requires(preun): %{name} = %{version}-%{release} |
423 |
Requires: %{name} = %{version}-%{release} |
424 |
|
425 |
%description mod_ban |
426 |
The mod_ban module is designed to add dynamic "ban" lists to proftpd. A ban |
427 |
prevents the banned user, host, or class from logging in to the server; it does |
428 |
not prevent the banned user, host, or class from connecting to the server. |
429 |
mod_ban is not a firewall. The module also provides automatic bans that are |
430 |
triggered based on configurable criteria. |
431 |
|
432 |
%package mod_vroot |
433 |
Summary: Adds virtual chroot capability to ProFTPD |
434 |
Group: System/Servers |
435 |
Requires(post): %{name} = %{version}-%{release} |
436 |
Requires(preun): %{name} = %{version}-%{release} |
437 |
Requires: %{name} = %{version}-%{release} |
438 |
|
439 |
%description mod_vroot |
440 |
The purpose of this module to is to implement a virtual chroot capability that |
441 |
does not require root privileges. The mod_vroot module provides this capability |
442 |
by using ProFTPD's FS API, available as of 1.2.8rc1. |
443 |
|
444 |
%package mod_sftp |
445 |
Summary: Implements the SSH2 protocol and its SFTP subsystem for ProFTPD |
446 |
Group: System/Servers |
447 |
Requires(post): %{name} = %{version}-%{release} |
448 |
Requires(preun): %{name} = %{version}-%{release} |
449 |
Requires: %{name} = %{version}-%{release} |
450 |
|
451 |
%description mod_sftp |
452 |
The mod_sftp module implements the SSH2 protocol and its SFTP subsystem, for |
453 |
secure file transfer over an SSH2 connection. The mod_sftp module supports: |
454 |
|
455 |
o Public key authentication |
456 |
o Password authentication (e.g. user authentication via mod_sql, mod_ldap, |
457 |
mod_auth_file, mod_auth_unix, mod_auth_pam) |
458 |
o SCP support |
459 |
o Quotas (via the mod_quotatab module) |
460 |
o FIPS support (see Usage section) |
461 |
o Throttled transfers (via TransferRate, and/or the mod_shaper module) |
462 |
o Blacklisted public keys |
463 |
o Configurable traffic analysis protection |
464 |
o Passphrase-protected host keys |
465 |
|
466 |
%prep |
467 |
|
468 |
%setup -q -n %{name}-%{version} -a100 -a102 -a103 -a104 -a105 -a108 |
469 |
|
470 |
%patch0 -p0 -b .logfile_location |
471 |
%patch2 -p0 -b .pam |
472 |
%patch4 -p1 -b .installfix |
473 |
%patch7 -p0 -b .change_pam_name |
474 |
%patch8 -p0 -b .mod_time_fix |
475 |
%patch10 -p0 -b .verbose_tests |
476 |
|
477 |
%patch40 -p0 -b .format_not_a_string_literal_and_no_format_arguments |
478 |
%patch41 -p0 -b .format_not_a_string_literal_and_no_format_arguments |
479 |
%patch42 -p1 -b .no_-ldes425 |
480 |
%patch43 -p1 -b .CVE-2012-6095 |
481 |
|
482 |
# our config |
483 |
mkdir -p %{_vendor} |
484 |
install -m0644 %{SOURCE1} %{_vendor}/proftpd.logrotate |
485 |
install -m0644 %{SOURCE2} %{_vendor}/proftpd.xinetd |
486 |
install -m0644 %{SOURCE3} %{_vendor}/proftpd.init |
487 |
install -m0644 %{SOURCE4} %{_vendor}/proftpd.service |
488 |
install -m0644 %{SOURCE5} %{_vendor}/basic.conf |
489 |
install -m0644 %{SOURCE7} %{_vendor}/welcome.msg |
490 |
install -m0644 %{SOURCE32} %{_vendor}/32_mod_shaper.conf |
491 |
|
492 |
# lib64 fix |
493 |
perl -pi -e "s|/usr/lib|%{_libdir}|g" %{_vendor}/basic.conf |
494 |
|
495 |
# fix includes, instead of a patch |
496 |
perl -pi -e "s|\<mysql\.h\>|\<mysql\/mysql\.h\>|g" contrib/mod_sql_mysql.c |
497 |
#perl -pi -e "s|\<libpq-fe\.h\>|\<pgsql\/libpq-fe\.h\>|g" contrib/mod_sql_postgres.c |
498 |
|
499 |
%build |
500 |
|
501 |
%serverbuild |
502 |
|
503 |
export CFLAGS="$CFLAGS -DLDAP_DEPRECATED -DUSE_LDAP_TLS -DHAVE_OPENSSL" |
504 |
export LIBS="-L%{_libdir} -lattr" |
505 |
|
506 |
pushd mod_gss-%{mod_gss_version} |
507 |
perl -pi -e "s|<gssapi.h>|<gssapi/gssapi.h>|" configure* |
508 |
perl -pi -e "s|NULL,code|kc,code|" *.in |
509 |
#libtoolize --copy --force --ltdl |
510 |
#rm -rf lib/libltdl; mv libltdl lib/ |
511 |
#rm -f configure; autoconf |
512 |
%configure2_5x --enable-mit |
513 |
# Workaround a missing dcl in kerberos... |
514 |
cat >> mod_gss.h <<EOF |
515 |
#ifndef GSS_C_AF_INET6 |
516 |
#define GSS_C_AF_INET6 24 |
517 |
#endif |
518 |
EOF |
519 |
popd |
520 |
|
521 |
pushd contrib/mod_load |
522 |
%configure2_5x |
523 |
popd |
524 |
|
525 |
pushd contrib/mod_wrap2 |
526 |
%configure2_5x |
527 |
popd |
528 |
|
529 |
# put extra modules in place |
530 |
for i in `find mod_* -type f -name "*.c"` `find mod_* -type f -name "*.h"`; do |
531 |
cp $i contrib/ |
532 |
done |
533 |
|
534 |
#head -n 190 aclocal.m4 > acinclude.m4 |
535 |
#rm -f aclocal.m4 |
536 |
#libtoolize --copy --force --ltdl |
537 |
#rm -rf lib/libltdl; mv libltdl lib/ |
538 |
#aclocal; autoconf |
539 |
|
540 |
%configure2_5x \ |
541 |
--libexecdir=%{_libdir}/%{name} \ |
542 |
--enable-auth-pam \ |
543 |
--enable-cap \ |
544 |
--disable-facl \ |
545 |
--enable-dso \ |
546 |
--enable-nls \ |
547 |
--enable-openssl \ |
548 |
--with-lastlog=/var/log/lastlog \ |
549 |
--enable-ipv6 \ |
550 |
--enable-shadow \ |
551 |
--enable-ctrls \ |
552 |
--with-shared="mod_ratio:mod_tls:mod_radius:mod_ldap:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_passwd:mod_rewrite:mod_gss:mod_load:mod_ctrls_admin:mod_quotatab:mod_quotatab_file:mod_quotatab_ldap:mod_quotatab_sql:mod_quotatab_radius:mod_site_misc:mod_wrap2:mod_wrap2_file:mod_wrap2_sql:mod_autohost:mod_case:mod_shaper:mod_ban:mod_vroot:mod_sftp:mod_time:mod_ifsession" \ |
553 |
--with-modules="mod_readme:mod_auth_pam" \ |
554 |
--enable-buffer-size=8192 |
555 |
|
556 |
# --enable-tests |
557 |
|
558 |
# libcap hack |
559 |
perl -pi -e "s|/lib/libcap|/blabla|g" Make.rules |
560 |
echo "#define HAVE_LINUX_CAPABILITY_H 1" >> config.h |
561 |
|
562 |
%make |
563 |
|
564 |
#%%check |
565 |
#make check |
566 |
|
567 |
%install |
568 |
rm -rf %{buildroot} |
569 |
|
570 |
install -d %{buildroot}%{_initrddir} |
571 |
install -d %{buildroot}%{_libdir}/%{name} |
572 |
install -d %{buildroot}%{_sysconfdir}/logrotate.d |
573 |
install -d %{buildroot}%{_sysconfdir}/%{name}.d |
574 |
install -d %{buildroot}%{_sysconfdir}/pam.d |
575 |
install -d %{buildroot}%{_sysconfdir}/xinetd.d |
576 |
install -d %{buildroot}%{_sysconfdir}/avahi/services |
577 |
install -d %{buildroot}/var/ftp/pub |
578 |
install -d %{buildroot}/var/log/%{name} |
579 |
install -d %{buildroot}/var/run/%{name} |
580 |
|
581 |
%makeinstall \ |
582 |
rundir=%{buildroot}/var/run/%{name} \ |
583 |
LIBEXECDIR=%{buildroot}%{_libdir}/%{name} \ |
584 |
SHARED_MODULE_DIRS="" \ |
585 |
pkgconfigdir=%{buildroot}%{_libdir}/pkgconfig |
586 |
|
587 |
# fix borked pkgconfig file |
588 |
perl -pi -e "s|^prefix.*|prefix=%{_prefix}|g" %{buildroot}%{_libdir}/pkgconfig/*.pc |
589 |
perl -pi -e "s|/lib/|/%{_lib}/|g" %{buildroot}%{_libdir}/pkgconfig/*.pc |
590 |
|
591 |
%makeinstall -C contrib/mod_wrap2 LIBEXECDIR=%{buildroot}%{_libdir}/%{name} |
592 |
%makeinstall -C contrib/mod_load LIBEXECDIR=%{buildroot}%{_libdir}/%{name} |
593 |
%makeinstall -C contrib/mod_sftp LIBEXECDIR=%{buildroot}%{_libdir}/%{name} |
594 |
|
595 |
install -m0644 contrib/dist/rpm/ftp.pamd %{buildroot}%{_sysconfdir}/pam.d/%{name} |
596 |
install -m0755 contrib/xferstats.holger-preiss %{buildroot}%{_sbindir} |
597 |
|
598 |
install -m0644 %{_vendor}/proftpd.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name} |
599 |
install -m0644 %{_vendor}/proftpd.xinetd %{buildroot}%{_sysconfdir}/xinetd.d/%{name}-xinetd |
600 |
install -m0755 %{_vendor}/proftpd.init %{buildroot}%{_initrddir}/%{name} |
601 |
install -m0644 %{_vendor}/proftpd.service %{buildroot}%{_sysconfdir}/avahi/services/%{name}.service |
602 |
install -m0644 %{_vendor}/basic.conf %{buildroot}%{_sysconfdir}/%{name}.conf |
603 |
install -m0644 %{_vendor}/welcome.msg %{buildroot}/var/ftp/pub/welcome.msg |
604 |
|
605 |
install -m0644 %{SOURCE200} %{buildroot}%{_sysconfdir}/proftpd-anonymous.conf |
606 |
|
607 |
ln -snf %{name} %{buildroot}%{_sbindir}/in.%{name} |
608 |
ln -snf %{name} %{buildroot}%{_sbindir}/in.ftpd |
609 |
|
610 |
# config |
611 |
echo "LoadModule mod_ctrls_admin.c" > %{buildroot}%{_sysconfdir}/%{name}.d/10_mod_ctrls_admin.conf |
612 |
echo "LoadModule mod_tls.c" > %{buildroot}%{_sysconfdir}/%{name}.d/11_mod_tls.conf |
613 |
echo "LoadModule mod_sql.c" > %{buildroot}%{_sysconfdir}/%{name}.d/12_mod_sql.conf |
614 |
echo "LoadModule mod_ldap.c" > %{buildroot}%{_sysconfdir}/%{name}.d/13_mod_ldap.conf |
615 |
echo "LoadModule mod_sql_mysql.c" > %{buildroot}%{_sysconfdir}/%{name}.d/14_mod_sql_mysql.conf |
616 |
echo "LoadModule mod_sql_postgres.c" > %{buildroot}%{_sysconfdir}/%{name}.d/15_mod_sql_postgres.conf |
617 |
echo "LoadModule mod_quotatab.c" > %{buildroot}%{_sysconfdir}/%{name}.d/16_mod_quotatab.conf |
618 |
echo "LoadModule mod_quotatab_file.c" > %{buildroot}%{_sysconfdir}/%{name}.d/17_mod_quotatab_file.conf |
619 |
echo "LoadModule mod_quotatab_ldap.c" > %{buildroot}%{_sysconfdir}/%{name}.d/18_mod_quotatab_ldap.conf |
620 |
echo "LoadModule mod_quotatab_sql.c" > %{buildroot}%{_sysconfdir}/%{name}.d/19_mod_quotatab_sql.conf |
621 |
echo "LoadModule mod_quotatab_radius.c" > %{buildroot}%{_sysconfdir}/%{name}.d/20_mod_quotatab_radius.conf |
622 |
echo "LoadModule mod_radius.c" > %{buildroot}%{_sysconfdir}/%{name}.d/20_mod_radius.conf |
623 |
echo "LoadModule mod_wrap2.c" > %{buildroot}%{_sysconfdir}/%{name}.d/21_mod_wrap2.conf |
624 |
echo "LoadModule mod_wrap2_file.c" > %{buildroot}%{_sysconfdir}/%{name}.d/22_mod_wrap2_file.conf |
625 |
echo "LoadModule mod_wrap2_sql.c" > %{buildroot}%{_sysconfdir}/%{name}.d/23_mod_wrap2_sql.conf |
626 |
echo "LoadModule mod_rewrite.c" > %{buildroot}%{_sysconfdir}/%{name}.d/24_mod_rewrite.conf |
627 |
echo "LoadModule mod_ratio.c" > %{buildroot}%{_sysconfdir}/%{name}.d/25_mod_ratio.conf |
628 |
echo "LoadModule mod_gss.c" > %{buildroot}%{_sysconfdir}/%{name}.d/26_mod_gss.conf |
629 |
echo "LoadModule mod_autohost.c" > %{buildroot}%{_sysconfdir}/%{name}.d/27_mod_autohost.conf |
630 |
echo "LoadModule mod_case.c" > %{buildroot}%{_sysconfdir}/%{name}.d/28_mod_case.conf |
631 |
#echo "LoadModule mod_facl.c" > %{buildroot}%{_sysconfdir}/%{name}.d/30_mod_facl.conf |
632 |
echo "LoadModule mod_load.c" > %{buildroot}%{_sysconfdir}/%{name}.d/31_mod_load.conf |
633 |
install -m0644 %{_vendor}/32_mod_shaper.conf %{buildroot}%{_sysconfdir}/%{name}.d/32_mod_shaper.conf |
634 |
echo "LoadModule mod_site_misc.c" > %{buildroot}%{_sysconfdir}/%{name}.d/33_mod_site_misc.conf |
635 |
echo "LoadModule mod_time.c" > %{buildroot}%{_sysconfdir}/%{name}.d/34_mod_time.conf |
636 |
echo "LoadModule mod_ban.c" > %{buildroot}%{_sysconfdir}/%{name}.d/35_mod_ban.conf |
637 |
echo "LoadModule mod_vroot.c" > %{buildroot}%{_sysconfdir}/%{name}.d/36_mod_vroot.conf |
638 |
echo "LoadModule mod_sftp.c" > %{buildroot}%{_sysconfdir}/%{name}.d/37_mod_sftp.conf |
639 |
echo "LoadModule mod_sql_passwd.c" > %{buildroot}%{_sysconfdir}/%{name}.d/38_mod_sql_passwd.conf |
640 |
|
641 |
cat > %{buildroot}%{_sysconfdir}/%{name}.d/99_mod_ifsession.conf << EOF |
642 |
# keep this module the last one |
643 |
LoadModule mod_ifsession.c |
644 |
EOF |
645 |
|
646 |
# automatic reloading for new plugins |
647 |
install -d %buildroot%{_var}/lib/rpm/filetriggers |
648 |
cat > %buildroot%{_var}/lib/rpm/filetriggers/%{name}.filter << EOF |
649 |
^.%{_sysconfdir}/proftpd.d/.*\.conf$ |
650 |
EOF |
651 |
cat > %buildroot%{_var}/lib/rpm/filetriggers/%{name}.script << EOF |
652 |
#!/bin/sh |
653 |
service proftpd condrestart |
654 |
EOF |
655 |
chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/%{name}.script |
656 |
|
657 |
|
658 |
%find_lang %{name} |
659 |
|
660 |
# cleanup |
661 |
rm -f %{buildroot}%{_libdir}/%{name}/*.{a,la} |
662 |
rm -f contrib/README.mod_sql contrib/README.linux-privs |
663 |
|
664 |
cat > %{buildroot}%{_sysconfdir}/ftpusers << EOF |
665 |
root |
666 |
bin |
667 |
daemon |
668 |
adm |
669 |
lp |
670 |
sync |
671 |
shutdown |
672 |
halt |
673 |
mail |
674 |
news |
675 |
uucp |
676 |
operator |
677 |
games |
678 |
nobody |
679 |
EOF |
680 |
|
681 |
%post |
682 |
%_post_service %{name} |
683 |
|
684 |
%pre |
685 |
%_pre_useradd ftp /var/ftp /bin/false |
686 |
|
687 |
%postun |
688 |
%_postun_userdel ftp |
689 |
|
690 |
%preun |
691 |
%_preun_service %{name} |
692 |
if [ "$1" = 0 ]; then |
693 |
if [ -d /var/run/%{name} ]; then |
694 |
rm -rf /var/run/%{name}/* |
695 |
fi |
696 |
fi |
697 |
|
698 |
%clean |
699 |
rm -rf %{buildroot} |
700 |
|
701 |
%files -f %{name}.lang |
702 |
%defattr(-,root,root) |
703 |
%doc README* INSTALL NEWS CREDITS COPYING doc/* |
704 |
%doc sample-configurations/* |
705 |
%dir %{_sysconfdir}/proftpd.d |
706 |
%config(noreplace) %{_sysconfdir}/%{name}.conf |
707 |
%config(noreplace) %{_sysconfdir}/%{name}-anonymous.conf |
708 |
%config(noreplace) %{_sysconfdir}/pam.d/%{name} |
709 |
%config(noreplace) %{_sysconfdir}/xinetd.d/%{name}-xinetd |
710 |
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} |
711 |
%config(noreplace) %{_sysconfdir}/avahi/services/%{name}.service |
712 |
%config(noreplace) %{_sysconfdir}/ftpusers |
713 |
%{_initrddir}/%{name} |
714 |
%{_sbindir}/%{name} |
715 |
%{_sbindir}/ftpscrub |
716 |
%{_sbindir}/ftpshut |
717 |
%{_sbindir}/in.ftpd |
718 |
%{_sbindir}/in.%{name} |
719 |
%{_sbindir}/xferstats.holger-preiss |
720 |
%{_bindir}/ftpcount |
721 |
%{_bindir}/ftpdctl |
722 |
%{_bindir}/ftptop |
723 |
%{_bindir}/ftpwho |
724 |
%{_bindir}/prxs |
725 |
%dir %{_libdir}/%{name} |
726 |
%dir /var/ftp |
727 |
%dir /var/ftp/pub |
728 |
%config(noreplace) /var/ftp/pub/welcome.msg |
729 |
%dir /var/run/%{name} |
730 |
%dir /var/log/%{name} |
731 |
%{_mandir}/man*/* |
732 |
%{_var}/lib/rpm/filetriggers/proftpd.* |
733 |
|
734 |
%files devel |
735 |
%defattr(-,root,root) |
736 |
%doc ChangeLog |
737 |
%dir %{_includedir}/%{name} |
738 |
%{_includedir}/%{name}/*.h |
739 |
%{_libdir}/pkgconfig/*.pc |
740 |
|
741 |
%files mod_ctrls_admin |
742 |
%defattr(-,root,root) |
743 |
%doc doc/contrib/mod_ctrls_admin.html |
744 |
%config(noreplace) %{_sysconfdir}/%{name}.d/10_mod_ctrls_admin.conf |
745 |
%{_libdir}/%{name}/mod_ctrls_admin.so |
746 |
|
747 |
%files mod_ifsession |
748 |
%defattr(-,root,root) |
749 |
%doc doc/contrib/mod_ifsession.html |
750 |
%config(noreplace) %{_sysconfdir}/%{name}.d/99_mod_ifsession.conf |
751 |
%{_libdir}/%{name}/mod_ifsession.so |
752 |
|
753 |
%files mod_ldap |
754 |
%defattr(-,root,root) |
755 |
%config(noreplace) %{_sysconfdir}/%{name}.d/13_mod_ldap.conf |
756 |
%{_libdir}/%{name}/mod_ldap.so |
757 |
|
758 |
%files mod_quotatab |
759 |
%defattr(-,root,root) |
760 |
%doc doc/contrib/mod_quotatab.html |
761 |
%config(noreplace) %{_sysconfdir}/%{name}.d/16_mod_quotatab.conf |
762 |
%{_libdir}/%{name}/mod_quotatab.so |
763 |
|
764 |
%files mod_quotatab_file |
765 |
%defattr(-,root,root) |
766 |
%doc doc/contrib/mod_quotatab_file.html |
767 |
%config(noreplace) %{_sysconfdir}/%{name}.d/17_mod_quotatab_file.conf |
768 |
%{_libdir}/%{name}/mod_quotatab_file.so |
769 |
|
770 |
%files mod_quotatab_ldap |
771 |
%defattr(-,root,root) |
772 |
%doc doc/contrib/mod_quotatab_ldap.html |
773 |
%config(noreplace) %{_sysconfdir}/%{name}.d/18_mod_quotatab_ldap.conf |
774 |
%{_libdir}/%{name}/mod_quotatab_ldap.so |
775 |
|
776 |
%files mod_quotatab_sql |
777 |
%defattr(-,root,root) |
778 |
%doc doc/contrib/mod_quotatab_sql.html |
779 |
%config(noreplace) %{_sysconfdir}/%{name}.d/19_mod_quotatab_sql.conf |
780 |
%{_libdir}/%{name}/mod_quotatab_sql.so |
781 |
|
782 |
%files mod_quotatab_radius |
783 |
%defattr(-,root,root) |
784 |
%doc doc/contrib/mod_quotatab_radius.html |
785 |
%config(noreplace) %{_sysconfdir}/%{name}.d/20_mod_quotatab_radius.conf |
786 |
%{_libdir}/%{name}/mod_quotatab_radius.so |
787 |
|
788 |
%files mod_radius |
789 |
%defattr(-,root,root) |
790 |
%doc doc/contrib/mod_radius.html |
791 |
%config(noreplace) %{_sysconfdir}/%{name}.d/20_mod_radius.conf |
792 |
%{_libdir}/%{name}/mod_radius.so |
793 |
|
794 |
%files mod_ratio |
795 |
%defattr(-,root,root) |
796 |
%doc contrib/README.ratio |
797 |
%config(noreplace) %{_sysconfdir}/%{name}.d/25_mod_ratio.conf |
798 |
%{_libdir}/%{name}/mod_ratio.so |
799 |
|
800 |
%files mod_rewrite |
801 |
%defattr(-,root,root) |
802 |
%doc doc/contrib/mod_rewrite.html |
803 |
%config(noreplace) %{_sysconfdir}/%{name}.d/24_mod_rewrite.conf |
804 |
%{_libdir}/%{name}/mod_rewrite.so |
805 |
|
806 |
%files mod_site_misc |
807 |
%defattr(-,root,root) |
808 |
%doc doc/contrib/mod_site_misc.html |
809 |
%config(noreplace) %{_sysconfdir}/%{name}.d/33_mod_site_misc.conf |
810 |
%{_libdir}/%{name}/mod_site_misc.so |
811 |
|
812 |
%files mod_sql |
813 |
%defattr(-,root,root) |
814 |
%doc doc/contrib/mod_sql.html |
815 |
%config(noreplace) %{_sysconfdir}/%{name}.d/12_mod_sql.conf |
816 |
%{_libdir}/%{name}/mod_sql.so |
817 |
|
818 |
%files mod_sql_mysql |
819 |
%defattr(-,root,root) |
820 |
%config(noreplace) %{_sysconfdir}/%{name}.d/14_mod_sql_mysql.conf |
821 |
%{_libdir}/%{name}/mod_sql_mysql.so |
822 |
|
823 |
%files mod_sql_postgres |
824 |
%defattr(-,root,root) |
825 |
%config(noreplace) %{_sysconfdir}/%{name}.d/15_mod_sql_postgres.conf |
826 |
%{_libdir}/%{name}/mod_sql_postgres.so |
827 |
|
828 |
%files mod_sql_passwd |
829 |
%defattr(-,root,root) |
830 |
%config(noreplace) %{_sysconfdir}/%{name}.d/38_mod_sql_passwd.conf |
831 |
%{_libdir}/%{name}/mod_sql_passwd.so |
832 |
|
833 |
%files mod_tls |
834 |
%defattr(-,root,root) |
835 |
%doc doc/contrib/mod_tls.html |
836 |
%config(noreplace) %{_sysconfdir}/%{name}.d/11_mod_tls.conf |
837 |
%{_libdir}/%{name}/mod_tls.so |
838 |
|
839 |
#%files mod_facl |
840 |
#%defattr(-,root,root) |
841 |
#%config(noreplace) %{_sysconfdir}/%{name}.d/30_mod_facl.conf |
842 |
#%{_libdir}/%{name}/mod_facl.so |
843 |
|
844 |
%files mod_autohost |
845 |
%defattr(-,root,root) |
846 |
%doc mod_autohost/mod_autohost.html |
847 |
%config(noreplace) %{_sysconfdir}/%{name}.d/27_mod_autohost.conf |
848 |
%{_libdir}/%{name}/mod_autohost.so |
849 |
|
850 |
%files mod_case |
851 |
%defattr(-,root,root) |
852 |
%doc mod_case/mod_case.html |
853 |
%config(noreplace) %{_sysconfdir}/%{name}.d/28_mod_case.conf |
854 |
%{_libdir}/%{name}/mod_case.so |
855 |
|
856 |
%files mod_gss |
857 |
%defattr(-,root,root) |
858 |
%doc mod_gss-*/COPYING mod_gss-*/mod_gss.html mod_gss-*/README.mod_gss mod_gss-*/rfc1509.txt mod_gss-*/rfc2228.txt |
859 |
%config(noreplace) %{_sysconfdir}/%{name}.d/26_mod_gss.conf |
860 |
%{_libdir}/%{name}/mod_gss.so |
861 |
|
862 |
%files mod_load |
863 |
%defattr(-,root,root) |
864 |
%doc doc/contrib/mod_load.html |
865 |
%config(noreplace) %{_sysconfdir}/%{name}.d/31_mod_load.conf |
866 |
%{_libdir}/%{name}/mod_load.so |
867 |
|
868 |
%files mod_shaper |
869 |
%defattr(-,root,root) |
870 |
%doc mod_shaper/mod_shaper.html |
871 |
%config(noreplace) %{_sysconfdir}/%{name}.d/32_mod_shaper.conf |
872 |
%{_libdir}/%{name}/mod_shaper.so |
873 |
|
874 |
%files mod_time |
875 |
%defattr(-,root,root) |
876 |
%doc mod_time/README mod_time/mod_time.html |
877 |
%config(noreplace) %{_sysconfdir}/%{name}.d/34_mod_time.conf |
878 |
%{_libdir}/%{name}/mod_time.so |
879 |
|
880 |
%files mod_wrap |
881 |
%defattr(-,root,root) |
882 |
%doc doc/contrib/mod_wrap2.html |
883 |
%config(noreplace) %{_sysconfdir}/%{name}.d/21_mod_wrap2.conf |
884 |
%{_libdir}/%{name}/mod_wrap2.so |
885 |
|
886 |
%files mod_wrap_file |
887 |
%defattr(-,root,root) |
888 |
%doc doc/contrib/mod_wrap2_file.html |
889 |
%config(noreplace) %{_sysconfdir}/%{name}.d/22_mod_wrap2_file.conf |
890 |
%{_libdir}/%{name}/mod_wrap2_file.so |
891 |
|
892 |
%files mod_wrap_sql |
893 |
%defattr(-,root,root) |
894 |
%doc doc/contrib/mod_wrap2_sql.html |
895 |
%config(noreplace) %{_sysconfdir}/%{name}.d/23_mod_wrap2_sql.conf |
896 |
%{_libdir}/%{name}/mod_wrap2_sql.so |
897 |
|
898 |
%files mod_ban |
899 |
%defattr(-,root,root) |
900 |
%doc doc/contrib/mod_ban.html |
901 |
%config(noreplace) %{_sysconfdir}/%{name}.d/35_mod_ban.conf |
902 |
%{_libdir}/%{name}/mod_ban.so |
903 |
|
904 |
%files mod_vroot |
905 |
%defattr(-,root,root) |
906 |
%doc mod_vroot/mod_vroot.html |
907 |
%config(noreplace) %{_sysconfdir}/%{name}.d/36_mod_vroot.conf |
908 |
%{_libdir}/%{name}/mod_vroot.so |
909 |
|
910 |
%files mod_sftp |
911 |
%defattr(-,root,root) |
912 |
%doc doc/contrib/mod_sftp.html |
913 |
%config(noreplace) %{_sysconfdir}/blacklist.dat |
914 |
%config(noreplace) %{_sysconfdir}/dhparams.pem |
915 |
%config(noreplace) %{_sysconfdir}/%{name}.d/37_mod_sftp.conf |
916 |
%{_libdir}/%{name}/mod_sftp.so |