+# TODO:
+# - default config does not work with inetd configuration
#
-%define _ftpdir /home/services/ftp
-#
-%bcond_with clamav #ClamAV scanning support
+# Conditional build:
+%bcond_with clamav # ClamAV scanning support
+%define _ftpdir /home/services/ftp
Summary: vsftpd - Very Secure FTP Daemon
Summary(pl.UTF-8): Bardzo Bezpieczny Demon FTP
Summary(pt_BR.UTF-8): vsftpd - Daemon FTP Muito Seguro
Name: vsftpd
-Version: 2.1.1
-Release: 1
+Version: 3.0.2
+Release: 5
License: GPL v2
Group: Daemons
-Source0: ftp://vsftpd.beasts.org/users/cevans/%{name}-%{version}.tar.gz
-# Source0-md5: b1fab0e6212738f9f3572e067c419778
+Source0: https://security.appspot.com/downloads/%{name}-%{version}.tar.gz
+# Source0-md5: 8b00c749719089401315bd3c44dddbb2
Source1: %{name}.inetd
Source2: %{name}.pamd
Source3: %{name}-ftpusers
Patch0: %{name}-builddefs.patch
Patch1: %{name}-amd64-findlibs.patch
Patch2: %{name}-clamav.patch
-URL: http://vsftpd.beasts.org/
+Patch3: %{name}-switch_sha256_to_sha1.patch
+Patch4: %{name}-findlibs-egrep.patch
+URL: https://security.appspot.com/vsftpd.html
BuildRequires: libcap-devel
BuildRequires: libwrap-devel
+%if "%{pld_release}" == "ac"
BuildRequires: openssl-devel >= 0.9.7d
+%else
+BuildRequires: openssl-devel >= 0.9.8
+%endif
BuildRequires: rpmbuild(macros) >= 1.268
Requires: %{name}-init = %{version}-%{release}
Requires: filesystem >= 3.0-11
Conflicts: man-pages < 1.51
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define specflags -fpie -pipe -Wextra -Werror
+
%description
A Very Secure FTP Daemon - written from scratch - by Chris "One Man
Security Audit Team" Evans.
%patch0 -p1
%patch1 -p1
%if %{with clamav}
-#%patch2 -p1 - needs update
+%patch2 -p1
+%endif
+%if "%{pld_release}" == "ac"
+%patch3 -p1
%endif
+%patch4 -p1
%build
%{__make} \
CC="%{__cc}" \
CFLAGS="%{rpmcflags}" \
+ LIBS="-lwrap -lpam -lcap -lssl -lcrypto" \
LINK="%{rpmldflags}"
%install
$RPM_BUILD_ROOT/etc/{pam.d,sysconfig/rc-inetd,logrotate.d,ftpd,rc.d/init.d} \
$RPM_BUILD_ROOT{%{_ftpdir}/pub/incoming,/var/log}
-install vsftpd $RPM_BUILD_ROOT%{_sbindir}/vsftpd
-install vsftpd.conf $RPM_BUILD_ROOT%{_sysconfdir}/vsftpd.conf
-install vsftpd.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5/vsftpd.conf.5
-install vsftpd.8 $RPM_BUILD_ROOT%{_mandir}/man8/vsftpd.8
-install RedHat/vsftpd.log $RPM_BUILD_ROOT/etc/logrotate.d/vsftpd
+install -p vsftpd $RPM_BUILD_ROOT%{_sbindir}/vsftpd
+cp -p vsftpd.conf $RPM_BUILD_ROOT%{_sysconfdir}/vsftpd.conf
+cp -p vsftpd.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5/vsftpd.conf.5
+cp -p vsftpd.8 $RPM_BUILD_ROOT%{_mandir}/man8/vsftpd.8
+cp -p RedHat/vsftpd.log $RPM_BUILD_ROOT/etc/logrotate.d/vsftpd
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/vsftpd
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/ftp
-install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ftpd/ftpusers
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/vsftpd
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/vsftpd
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/ftp
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ftpd/ftpusers
+install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vsftpd
> $RPM_BUILD_ROOT/var/log/vsftpd.log
bzip2 -dc %{SOURCE4} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-rm -f $RPM_BUILD_ROOT/usr/share/man/ftpusers-path.diff
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --del %{name}
fi
+%triggerin standalone -- glibc
+# restart vsftpd if glibc is upgraded or downgraded
+if [ "$2" != 1 ]; then
+ %service -q vsftpd restart
+fi
+
%files
%defattr(644,root,root,755)
%doc AUDIT BENCHMARKS BUGS Changelog FAQ README README.ssl REWARD SIZE SPEED TODO TUNING EXAMPLE SECURITY