%bcond_without pgsql # disable PostgreSQL support
%bcond_without puredb # disable pure-db support
%bcond_without tls # disable SSL/TLS support
+%bcond_without cap # disable capabilities
#
Summary: Small, fast and secure FTP server
-Summary(pl): Ma³y, szybki i bezpieczny serwer FTP
+Summary(pl.UTF-8): Mały, szybki i bezpieczny serwer FTP
Name: pure-ftpd
-Version: 1.0.20
-Release: 8%{?with_extra:extra}
+Version: 1.0.21
+Release: 7%{?with_extra:extra}
Epoch: 0
License: BSD-like%{?with_extra:, GLPv2 for pure-config due to libcfg+ license}
Group: Daemons
Source0: ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/%{name}-%{version}.tar.bz2
-# Source0-md5: e928e9e15adf6b52bfe6183fdad20144
+# Source0-md5: ca8a8dbec0cd9c8ea92fc4c37ea9c410
Source1: %{name}.pamd
Source2: %{name}.init
-Source3: ftpusers.tar.bz2
-# Source3-md5: 76c80b6ec9f4d079a1e27316edddbe16
-Source4: http://twittner.host.sk/files/pure-config/pure-config-20041201.tar.gz
-# Source4-md5: 3f2ff6b00b5c38ee11ce588ee5af6cf6
+Source3: %{name}.sysconfig
+Source4: ftpusers.tar.bz2
+# Source4-md5: 76c80b6ec9f4d079a1e27316edddbe16
+Source5: http://twittner.host.sk/files/pure-config/pure-config-20041201.tar.gz
+# Source5-md5: 3f2ff6b00b5c38ee11ce588ee5af6cf6
Patch0: %{name}-config.patch
Patch1: %{name}-path_to_ssl_cert_in_config.patch
Patch2: %{name}-pure-pw_passwd.patch
-Patch3: %{name}-userlength.patch
-Patch4: %{name}-mysql_config.patch
-Patch5: %{name}-nosymlinks-hideuidmismatch.patch
+Patch3: %{name}-mysql_config.patch
+Patch4: %{name}-nosymlinks-hideuidmismatch.patch
+Patch5: %{name}-auth-can-delete-pure.patch
+Patch6: %{name}-nonssl-die.patch
+Patch7: %{name}-del-log-path.patch
URL: http://www.pureftpd.org/
%{?with_extra:BuildRequires: autoconf}
%{?with_extra:BuildRequires: automake}
-BuildRequires: libcap-devel
+%{?with_cap:BuildRequires: libcap-devel}
%{?with_extra:BuildRequires: libcfg+-devel >= 0.6.2}
-%{?with_ldap:BuildRequires: openldap-devel}
%{?with_mysql:BuildRequires: mysql-devel}
-%{?with_pgsql:BuildRequires: postgresql-devel}
+%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%{?with_tls:BuildRequires: openssl-devel}
BuildRequires: pam-devel
-PreReq: rc-scripts
+%{?with_pgsql:BuildRequires: postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 1.304
Requires(post,preun): /sbin/chkconfig
Requires: pam >= 0.79.0
%{!?with_extra:Requires: perl-base}
+Requires: rc-scripts
Provides: ftpserver
-Obsoletes: ftpserver
Obsoletes: anonftp
Obsoletes: bftpd
Obsoletes: ftpd-BSD
+Obsoletes: ftpserver
Obsoletes: glftpd
Obsoletes: heimdal-ftpd
+Obsoletes: krb5-ftpd
Obsoletes: linux-ftpd
Obsoletes: muddleftpd
Obsoletes: proftpd
%define _sysconfdir /etc/ftpd
%define _ftpdir /home/services/ftp
+%define schemadir /usr/share/openldap/schema
%description
Pure-FTPd is a fast, production-quality, standard-comformant FTP
directories, virtual domains, built-in LS, anti-warez system, bounded
ports for passive downloads...
-%description -l pl
-Pure-FTPD to szybki, wysokiej jako¶ci, odpowiadaj±cy standardom serwer
-FTP bazuj±cy na Troll-FTPd. W przeciwieñstwie do innych serwerów FTP
-nie ma znanych luk w bezpieczeñstwie. Ponadto jest trywialny w
+%description -l pl.UTF-8
+Pure-FTPD to szybki, wysokiej jakości, odpowiadający standardom serwer
+FTP bazujący na Troll-FTPd. W przeciwieństwie do innych serwerów FTP
+nie ma znanych luk w bezpieczeństwie. Ponadto jest trywialny w
konfiguracji i specjalnie zaprojektowany dla nowych kerneli Linuksa
-(setfsuid, sendfile, capabilibies). Mo¿liwo¶ci to wsparcie dla PAM-a,
-IPv6, chroot()owanych katalogów domowych, virtualne domeny, wbudowany
-LS, system anty-warezowy, ograniczanie portów dla pasywnych
-po³±czeñ...
+(setfsuid, sendfile, capabilibies). Możliwości to wsparcie dla PAM-a,
+IPv6, chroot()owanych katalogów domowych, virtualne domeny, wbudowany
+LS, system anty-warezowy, ograniczanie portów dla pasywnych
+połączeń...
+
+%package -n openldap-schema-pureftpd
+Summary: Pure-FTPd LDAP schema
+Summary(pl.UTF-8): Schemat LDAP dla Pure-FTPd
+Group: Networking/Daemons
+Requires(post,postun): sed >= 4.0
+Requires: openldap-servers
+Requires: sed >= 4.0
+
+%description -n openldap-schema-pureftpd
+This package contains an Pure-FTPd openldap schema.
+
+%description -n openldap-schema-pureftpd -l pl.UTF-8
+Ten pakiet zawiera schemat Pure-FTPd pureftpd.schema dla openldapa.
%prep
-%setup -q -a 4
+%setup -q -a 5
%patch0 -p0
+%patch3 -p1
%patch4 -p1
%patch5 -p1
-%{?with_longusername:%patch3 -p1}
+%patch6 -p0
+%patch7 -p1
%{?with_extra:%patch1 -p1}
%{?with_extra:%patch2 -p1}
%build
+# drop --without-cork for Th
%configure \
+ --without-cork \
--with-boring \
--with-altlog \
--with-cookie \
--with-ftpwho \
--with-language=english \
--with-largefile \
+ %{!?with_cap:--without-capabilities} \
%{?with_ldap:--with-ldap} \
%{?with_mysql:CPPFLAGS="-I%{_includedir}/mysql" --with-mysql} \
--with-pam \
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{pam.d,sysconfig,security,rc.d/init.d} \
- $RPM_BUILD_ROOT{%{_sysconfdir}/vhosts,%{_ftpdir}}
+ $RPM_BUILD_ROOT{%{_sysconfdir}/vhosts,%{_ftpdir},%{schemadir}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name}
install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
%{?with_ldap:install pureftpd-ldap.conf $RPM_BUILD_ROOT%{_sysconfdir}/pureftpd-ldap.conf}
%{?with_mysql:install pureftpd-mysql.conf $RPM_BUILD_ROOT%{_sysconfdir}/pureftpd-mysql.conf}
%{?with_pgsql:install pureftpd-pgsql.conf $RPM_BUILD_ROOT%{_sysconfdir}/pureftpd-pgsql.conf}
install configuration-file/pure-ftpd.conf $RPM_BUILD_ROOT%{_sysconfdir}/pureftpd.conf
%{!?with_extra:install configuration-file/pure-config.pl $RPM_BUILD_ROOT%{_sbindir}}
-touch $RPM_BUILD_ROOT/etc/security/blacklist.ftp
+install pureftpd.schema $RPM_BUILD_ROOT%{schemadir}/pureftpd.schema
+
+touch $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers
ln -s vhosts $RPM_BUILD_ROOT%{_sysconfdir}/pure-ftpd
-bzip2 -dc %{SOURCE3} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+bzip2 -dc %{SOURCE4} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff
%if %{with extra}
-cd pure-config
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
+%{__make} -C pure-config install \
+ DESTDIR=$RPM_BUILD_ROOT
%endif
%clean
%post
/sbin/chkconfig --add %{name}
-if [ -f %{_var}/lock/subsys/%{name} ]; then
- /etc/rc.d/init.d/%{name} restart 1>&2
-else
- echo "Run \"/etc/rc.d/init.d/%{name} start\" to start PureFTPD daemon."
-fi
+%service %{name} restart "PureFTPD daemon"
%preun
if [ "$1" = "0" ]; then
- if [ -f %{_var}/lock/subsys/%{name} ]; then
- /etc/rc.d/init.d/%{name} stop 1>&2
- fi
+ %service %{name} stop
/sbin/chkconfig --del %{name}
fi
+%post -n openldap-schema-pureftpd
+%openldap_schema_register %{schemadir}/pureftpd.schema -d core
+%service -q ldap restart
+
+%postun -n openldap-schema-pureftpd
+if [ "$1" = "0" ]; then
+ %openldap_schema_unregister %{schemadir}/pureftpd.schema
+ %service -q ldap restart
+fi
+
+
%files
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog CONTACT FAQ HISTORY NEWS README* THANKS pure*.conf pureftpd.schema
+%doc AUTHORS ChangeLog CONTACT COPYING FAQ HISTORY NEWS README* THANKS pure*.conf pureftpd.schema
%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_sbindir}/*
%attr(754,root,root) /etc/rc.d/init.d/%{name}
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
-%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/security/blacklist.ftp
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ftpusers
%{?with_ldap:%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pureftpd-ldap.conf}
%{?with_mysql:%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pureftpd-mysql.conf}
%{?with_pgsql:%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pureftpd-pgsql.conf}
%lang(pl) %{_mandir}/pl/man5/ftpusers*
%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers*
%lang(ru) %{_mandir}/ru/man5/ftpusers*
+
+%files -n openldap-schema-pureftpd
+%defattr(644,root,root,755)
+%{schemadir}/pureftpd.schema