diff --git a/.cvsignore b/.cvsignore index e69de29..b57698d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +pure-ftpd-1.0.20.tar.bz2 diff --git a/pure-ftpd-1.0.20-config.patch b/pure-ftpd-1.0.20-config.patch new file mode 100644 index 0000000..aa88019 --- /dev/null +++ b/pure-ftpd-1.0.20-config.patch @@ -0,0 +1,95 @@ +--- ./configuration-file/pure-ftpd.conf.in.config 2004-05-15 22:34:54.000000000 +0200 ++++ ./configuration-file/pure-ftpd.conf.in 2005-02-11 20:26:35.209063248 +0100 +@@ -9,7 +9,7 @@ + # instead of command-line options, please run the + # following command : + # +-# @prefix@/sbin/pure-config.pl @prefix@/etc/pure-ftpd.conf ++# @sbindir@/pure-config.pl @sysconfdir@/pure-ftpd.conf + # + # Please don't forget to have a look at documentation at + # http://www.pureftpd.org/documentation.shtml for a complete list of +@@ -107,23 +107,23 @@ + + # LDAP configuration file (see README.LDAP) + +-# LDAPConfigFile /etc/pureftpd-ldap.conf ++# LDAPConfigFile @sysconfdir@/pureftpd-ldap.conf + + + + # MySQL configuration file (see README.MySQL) + +-# MySQLConfigFile /etc/pureftpd-mysql.conf ++# MySQLConfigFile @sysconfdir@/pureftpd-mysql.conf + + + # Postgres configuration file (see README.PGSQL) + +-# PGSQLConfigFile /etc/pureftpd-pgsql.conf ++# PGSQLConfigFile @sysconfdir@/pureftpd-pgsql.conf + + + # PureDB user database (see README.Virtual-Users) + +-# PureDB /etc/pureftpd.pdb ++# PureDB @sysconfdir@/pureftpd.pdb + + + # Path to pure-authd socket (see README.Authentication-Modules) +@@ -134,7 +134,7 @@ + + # If you want to enable PAM authentication, uncomment the following line + +-# PAMAuthentication yes ++PAMAuthentication yes + + + +@@ -158,7 +158,7 @@ + # 'ls' recursion limits. The first argument is the maximum number of + # files to be displayed. The second one is the max subdirectories depth + +-LimitRecursion 2000 8 ++LimitRecursion 7500 8 + + + +@@ -237,7 +237,7 @@ + + # Minimum UID for an authenticated user to log in. + +-MinUID 100 ++MinUID 500 + + + +@@ -276,7 +276,7 @@ + + # Disallow anonymous users to upload new files (no = upload is allowed) + +-AnonymousCantUpload no ++AnonymousCantUpload yes + + + +@@ -301,7 +301,7 @@ + # fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338 + # This log file can then be processed by www traffic analyzers. + +-# AltLog clf:/var/log/pureftpd.log ++AltLog clf:/var/log/pureftpd.log + + + +@@ -434,3 +434,10 @@ + # By default, both IPv4 and IPv6 are enabled. + + # IPV6Only yes ++ ++ ++ ++# Do not use the /etc/ftpusers file to disable accounts. We're already ++# using MinUID to block users with uid < 500 ++ ++UseFtpUsers no diff --git a/pure-ftpd-1.0.20-libdir.patch b/pure-ftpd-1.0.20-libdir.patch new file mode 100644 index 0000000..77b6c86 --- /dev/null +++ b/pure-ftpd-1.0.20-libdir.patch @@ -0,0 +1,13 @@ +--- ./configure.libdir 2004-06-20 19:41:54.000000000 +0200 ++++ ./configure 2005-01-31 12:33:03.901660331 +0100 +@@ -19781,8 +19781,8 @@ + LDFLAGS="$LDFLAGS -L${withval}/lib -L${withval}/lib/mysql -L${withval}/mysql/lib" + CPPFLAGS="$CPPFLAGS -I${withval}/include -I${withval}/include/mysql -I${withval}/mysql/include" + else +- LD_RUN_PATH="/usr/local/mysql/lib:/usr/local/mysql/lib/mysql:/usr/lib/mysql:/usr/mysql/lib:/usr/mysql/lib/mysql:/usr/local/lib/mysql:${LD_RUN_PATH:+:}${LD_RUN_PATH}" +- LDFLAGS="$LDFLAGS -L/usr/local/mysql/lib -L/usr/lib/mysql -L/usr/mysql/lib -L/usr/local/lib/mysql -L/usr/local/mysql/lib/mysql -L/usr/mysql/lib/mysql" ++ LD_RUN_PATH="/usr/local/mysql/lib:/usr/local/mysql/lib/mysql:${libdir}/mysql:/usr/mysql/lib:/usr/mysql/lib/mysql:/usr/local/lib/mysql:${LD_RUN_PATH:+:}${LD_RUN_PATH}" ++ LDFLAGS="$LDFLAGS -L/usr/local/mysql/lib -L${libdir}/mysql -L/usr/mysql/lib -L/usr/local/lib/mysql -L/usr/local/mysql/lib/mysql -L/usr/mysql/lib/mysql" + CPPFLAGS="$CPPFLAGS -I/usr/local/mysql/include -I/usr/include/mysql -I/usr/mysql/include -I/usr/local/include/mysql -I/usr/local/mysql/include/mysql -I/usr/mysql/include/mysql" + fi + diff --git a/pure-ftpd.init b/pure-ftpd.init new file mode 100644 index 0000000..b330c9b --- /dev/null +++ b/pure-ftpd.init @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Startup script for the pure-ftpd FTP Server $Revision: 1.1 $ +# +# chkconfig: - 85 15 +# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd +# processname: pure-ftpd +# pidfile: /var/run/pure-ftpd.pid +# config: /etc/pure-ftpd/pure-ftpd.conf + +# Source function library. +. /etc/init.d/functions +. /etc/sysconfig/network + +# Check that networking is configured. +[ ${NETWORKING} = "no" ] && exit 0 + +RETVAL=0 + +# Path to the pure-ftp binaries. +fullpath=/usr/sbin/pure-ftpd +pureftpwho=/usr/sbin/pure-ftpwho +pure_config=/etc/pure-ftpd/pure-ftpd.conf +pure_launch_script=/usr/sbin/pure-config.pl + + +start() { + echo -n $"Starting Pure-ftpd: " + daemon $pure_launch_script $pure_config --daemonize + RETVAL=$? + [ $RETVAL = 0 ] && touch /var/lock/subsys/pure-ftpd + echo +} + +stop() { + echo -n $"Stopping Pure-ftpd: " + killproc pure-ftpd + RETVAL=$? + [ $RETVAL = 0 ] && rm -f /var/lock/subsys/pure-ftpd + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + echo -n "Re-reading Pure-ftpd config: " + killproc pure-ftpd -HUP + RETVAL=$? + echo + ;; + condrestart) + if [ -f /var/lock/subsys/pure-ftpd ] ; then + stop + # avoid race + sleep 3 + start + fi + ;; + status) + status pure-ftpd + RETVAL=$? + if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then + $pureftpwho + fi + ;; + *) + echo $"Usage: pure-ftpd {start|stop|restart|reload|condrestart|status}" + RETVAL=1 +esac +exit $RETVAL diff --git a/pure-ftpd.logrotate b/pure-ftpd.logrotate new file mode 100644 index 0000000..dde31f1 --- /dev/null +++ b/pure-ftpd.logrotate @@ -0,0 +1,5 @@ +/var/log/pureftpd.log { + weekly + notifempty + missingok +} diff --git a/pure-ftpd.spec b/pure-ftpd.spec new file mode 100644 index 0000000..942a403 --- /dev/null +++ b/pure-ftpd.spec @@ -0,0 +1,213 @@ +Name: pure-ftpd +Version: 1.0.20 +Release: 0.fdr.9 +Epoch: 0 +Summary: Lightweight, fast and secure FTP server + +Group: System Environment/Daemons +License: BSD +URL: http://www.pureftpd.org +Source0: ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.bz2 +Source1: pure-ftpd.init +Source2: pure-ftpd.logrotate +Source3: pure-ftpd.xinetd +Patch0: pure-ftpd-1.0.20-config.patch +Patch1: pure-ftpd-1.0.20-libdir.patch +Provides: ftpserver +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: pam-devel, perl, python, libcap-devel +#BuildRequires: openssl-devel +%{?_with_ldap:BuildRequires: openldap-devel} +%{?_with_mysql:BuildRequires: mysql-devel} +%{?_with_pgsql:BuildRequires: postgresql-devel} + +Requires(post): chkconfig +Requires(preun): chkconfig, initscripts +Requires(postun): initscripts +Requires: logrotate + + +%description +Pure-FTPd is a fast, production-quality, standard-comformant FTP server, +based upon Troll-FTPd. Unlike other popular FTP servers, it has no known +security flaw, it is really trivial to set up and it is especially designed +for modern Linux and FreeBSD kernels (setfsuid, sendfile, capabilities) . +Features include PAM support, IPv6, chroot()ed home directories, virtual +domains, built-in LS, anti-warez system, bandwidth throttling, FXP, bounded +ports for passive downloads, UL/DL ratios, native LDAP and SQL support, +Apache log files and more. +Rebuild switches: +--with ldap enable ldap support +--with mysql enable mysql support +--with pgsql enable postgresql support +--with extauth enable external authentication + + +%prep +%setup -q +%patch0 -p0 -b .config +%patch1 -p0 -b .libdir + + +%build +%configure --with-paranoidmsg \ + --with-capabilities \ + --with-privsep \ + --with-pam \ + --with-puredb \ + --with-sendfile \ + --with-altlog \ + --with-cookie \ + --with-diraliases \ + --with-throttling \ + --with-ratios \ + --with-quotas \ + --with-ftpwho \ + --with-welcomemsg \ + --with-uploadscript \ + --with-peruserlimits \ + --with-virtualhosts \ + --with-virtualchroot \ + --with-largefile \ + --sysconfdir=%{_sysconfdir}/%{name} \ + --without-tls \ + --without-rendezvous \ + %{?_with_ldap} \ + %{?_with_mysql} \ + %{?_with_pgsql} \ + %{?_with_extauth} + +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT + +install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man8/ +install -d -m 755 $RPM_BUILD_ROOT%{_sbindir} +install -d -m 755 $RPM_BUILD_ROOT%{_initrddir} +install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/ftp + +# Conf +install -p -m 755 configuration-file/pure-config.pl $RPM_BUILD_ROOT%{_sbindir} +install -p -m 644 configuration-file/pure-ftpd.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install -p -m 755 configuration-file/pure-config.py $RPM_BUILD_ROOT%{_sbindir} +install -p -m 644 pureftpd-ldap.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install -p -m 644 pureftpd-mysql.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install -p -m 644 pureftpd-pgsql.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name} + +# Man +install -p -m 644 man/pure-ftpd.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-ftpwho.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-mrtginfo.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-uploadscript.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-pw.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-pwconvert.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-statsdecode.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-quotacheck.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 man/pure-authd.8 $RPM_BUILD_ROOT%{_mandir}/man8 + +# Init script +install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/%{name} + +# Pam +install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/ +install -p -m 644 pam/pure-ftpd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/ + +# Logrotate +install -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ +install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} + +# xinetd support +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/ +install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/%{name} + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%post +if [ "$1" -le "1" ]; then + /sbin/chkconfig --add pure-ftpd +fi + +%preun +if [ "$1" -lt "1" ]; then + /sbin/service pure-ftpd stop > /dev/null 2>&1 || : + /sbin/chkconfig --del pure-ftpd +fi + +%postun +if [ "$1" -ge "1" ]; then + /sbin/service pure-ftpd condrestart > /dev/null 2>&1 +fi + + +%files +%defattr(-, root, root, -) +%doc FAQ THANKS README.Authentication-Modules README.Virtual-Users README +%doc README.Contrib README.Configuration-File AUTHORS CONTACT HISTORY NEWS +%doc README.LDAP README.PGSQL README.MySQL README.Netfilter +%doc contrib/pure-vpopauth.pl pureftpd.schema contrib/pure-stat.pl +%{_bindir}/pure-* +%{_sbindir}/pure-* +%config %{_initrddir}/%{name} +%config(noreplace) %{_sysconfdir}/%{name} +%config(noreplace) %{_sysconfdir}/pam.d/%{name} +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%config(noreplace) %{_sysconfdir}/xinetd.d/%{name} +%{_mandir}/man8/* +%dir /var/ftp/ + + +%changelog +* Wed Feb 16 2005 Aurelien Bompard 0:1.0.20-0.fdr.9 +- license is BSD, not GPL + +* Mon Feb 14 2005 Aurelien Bompard 0:1.0.20-0.fdr.8 +- various fixes. See bug 1573 (fedora.us) for more info. + +* Fri Feb 11 2005 Aurelien Bompard 0:1.0.20-0.fdr.7 +- fix init script +- require logrotate +- add rebuild switches to lower dependancies +- see bug 1573 (fedora.us) for more info. + +* Fri Feb 04 2005 Aurelien Bompard 0:1.0.20-0.fdr.6 +- Add the "UseFtpUsers no" directive in the config file since we don't + use it anymore + +* Wed Feb 02 2005 Aurelien Bompard 0:1.0.20-0.fdr.5 +- various spec file improvements + +* Mon Jan 31 2005 Aurelien Bompard 0:1.0.20-0.fdr.4 +- add patch for x86_64 support +- implement wishes in bug 1573 from Jose Pedro Oliveira +- don't use the ftpusers file, and thus remove conflicts with other FTP servers +- rediff config patch + +* Tue Nov 02 2004 Aurelien Bompard 0:1.0.20-0.fdr.3 +- add large file support + +* Fri Sep 24 2004 Aurelien Bompard 0:1.0.20-0.fdr.2 +- redirect %%preun output to /dev/null +- add requirements to chkconfig for the scriptlets + +* Sun Aug 01 2004 Aurelien Bompard 0:1.0.20-0.fdr.1 +- version 1.0.20 (bugfixes) + +* Mon Jun 28 2004 Aurelien Bompard 0:1.0.19-0.fdr.1 +- version 1.0.19 + +* Tue May 04 2004 Aurelien Bompard 0:1.0.18-0.fdr.1 +- version 1.0.18 +- spec file cleanups + +* Sun Oct 19 2003 Aurelien Bompard 1.0.16a-1 +- Redhatize the Mandrake RPM +- version 1.0.16a +- improve ftpusers creation script + diff --git a/pure-ftpd.xinetd b/pure-ftpd.xinetd new file mode 100644 index 0000000..e980e94 --- /dev/null +++ b/pure-ftpd.xinetd @@ -0,0 +1,17 @@ +# default: off +# description: pure-ftpd server, xinetd version. \ +# Don't run the standalone version if you run \ +# this and remember do set "Daemonize" to "no" \ +# in /etc/pure-ftpd/pure-ftpd.conf +service ftp +{ + disable = yes + socket_type = stream + wait = no + user = root + server = /usr/sbin/pure-config.pl + server_args = /etc/pure-ftpd/pure-ftpd.conf + log_on_success += DURATION USERID + log_on_failure += USERID + nice = 10 +} diff --git a/sources b/sources index e69de29..b2e6338 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +e928e9e15adf6b52bfe6183fdad20144 pure-ftpd-1.0.20.tar.bz2