Name:pure-ftpd
version:1.0.36
Release:1%{?dist}
Summary:pure-ftpd
Group:system environment/daemons
License:bsd
url:http://www.pureftpd.org
source0:ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.bz2
Source1:http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz
BuildRoot:% (Mktemp-ud%{_tmppath}/%{name}-%{version}-%{release}-xxxxxx)
Vendor:itnihao@qq.com
buildrequires:gcc
Requires:shadow-utils
%description
PURE-FTPD is a free (BSD), secure, production-quality and standard-conformant FTP server. It doesn ' t provide useless bells and whistles, but focuses on efficiency and ease by use. IT provides simple answers to common needs, plus the unique useful features for personal users as as as the hosting providers.
%prep
%setup-q
%build
./configure--prefix=/usr/local/pureftpd \
--with-mysql \
--with-pam \
--with-shadow \
--WITH-WELCOMEMSG \
--with-uploadscript \
--with-cookie \
--with-virtualchroot \
--with-virtualhosts \
--with-diraliases \
--with-quotas \
--with-puredb \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling \
--with-language=simplified-chinese
Make%{?_smp_mflags}
%install
RM-RF%{buildroot}
Make install Destdir=%{buildroot}
%{__install}-D%{buildroot}%{_sysconfdir}/pureftpd
%{__install}-D%{_datadir}
%{__install}-D%{buildroot}%{_initrddir}
#%{__install}-D%{buildroot}%{_sbindir}
%{__install}-D%{buildroot}%{_mandir}/man8/
%{__install}-M 755 configuration-file/pure-config.pl%{buildroot}/usr/local/pureftpd/sbin/pure-config.pl
%{__install}-M 755 configuration-file/pure-ftpd.conf%{buildroot}%{_sysconfdir}/default.pure-ftpd.conf
%{__install}-M 755 configuration-file/pure-ftpd.conf%{buildroot}%{_sysconfdir}/pure-ftpd.conf
%{__install}-M 755 pureftpd-mysql.conf%{buildroot}%{_sysconfdir}/default.pureftpd-mysql.conf
Cat >>%{buildroot}%{_sysconfdir}/pureftpd/pureftpd-mysql.conf << EOF
Mysqlsocket/var/lib/mysql/mysql.sock
MySQLServer 127.0.0.1
Mysqlport 3306
Mysqluser Pureftpuser
Mysqlpassword Pureftpuser
Mysqldatabase pureftp
Mysqlcrypt MD5
MYSQLGETPW SELECT Password from users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ r")
Mysqlgetuid SELECT Uid from the users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ r")
Mysqlgetgid SELECT Gid from the users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ r")
Mysqlgetdir SELECT Dir from the users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ r")
Mysqlgetbandwidthul SELECT ulbandwidth from the users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ R ")
MYSQLGETBANDWIDTHDL SELECT dlbandwidth from the users WHERE user= "\l" and status= "1" and (IPAddress = "*" OR ipaddress like "\ R ")
Eof
%{__install}-M 755 contrib/redhat.init%{buildroot}%{_initrddir}/pureftpd
Sed-i\
-e "S|usr/local|usr/local/pureftpd|g" \
-e "S|etc/pure-ftpd.conf|etc/pureftpd/pure-ftpd.conf|g" \
%{buildroot}%{_initrddir}/pureftpd
Sed-i \
-E "s| Noanonymous no| Noanonymous yes|g "\
-E "s|# mysqlconfigfile/etc/pureftpd-mysql.conf| Mysqlconfigfile/etc/pureftpd/pureftpd-mysql.conf|g "\
-E "s|# Bind 127.0.0.1,21| Bind 127.0.0.1,21|g "\
-E "s| ALLOWUSERFXP no| ALLOWUSERFXP yes|g "\
-E "s| Anonymouscantupload no| Anonymouscantupload yes|g "\
-E "s| #CreateHomeDir yes| Createhomedir yes|g "\
%{buildroot}%{_sysconfdir}/pure-ftpd.conf
#cp conf/pureftpd-mysql.conf%{buildroot}%{_sysconfdir}/pureftpd
#cp conf/pure-ftpd.conf%{buildroot}%{_sysconfdir}/pureftpd
Install-m 0644-p Man/pure-authd.8 $RPM _build_root%{_mandir}/man8/pure-authd.8
Install-m 0644-p Man/pure-ftpd.8 $RPM _build_root%{_mandir}/man8/pure-ftpd.8
Install-m 0644-p man/pure-ftpwho.8 $RPM _build_root%{_mandir}/man8/pure-ftpwho.8
Install-m 0644-p man/pure-mrtginfo.8 $RPM _build_root%{_mandir}/man8/pure-mrtginfo.8
Install-m 0644-p man/pure-pw.8 $RPM _build_root%{_mandir}/man8/pure-pw.8
Install-m 0644-p man/pure-pwconvert.8 $RPM _build_root%{_mandir}/man8/pure-pwconvert.8
Install-m 0644-p man/pure-quotacheck.8 $RPM _build_root%{_mandir}/man8/pure-quotacheck.8
Install-m 0644-p man/pure-statsdecode.8 $RPM _build_root%{_mandir}/man8/pure-statsdecode.8
Install-m 0644-p man/pure-uploadscript.8 $RPM _build_root%{_mandir}/man8/pure-uploadscript.8
%{__tar} XF%{source1}-c $RPM _build_root/%{_datadir}
%clean
RM-RF%{buildroot}
%files
%defattr (-,root,root,-)
%doc
/usr/local/pureftpd/bin/pure-pw
/usr/local/pureftpd/bin/pure-pwconvert
/usr/local/pureftpd/bin/pure-statsdecode
/usr/local/pureftpd/sbin/pure-authd
/usr/local/pureftpd/sbin/pure-config.pl
/usr/local/pureftpd/sbin/pure-ftpd
/usr/local/pureftpd/sbin/pure-ftpwho
/usr/local/pureftpd/sbin/pure-mrtginfo
/usr/local/pureftpd/sbin/pure-quotacheck
/usr/local/pureftpd/sbin/pure-uploadscript
%{_initrddir}/pureftpd
%{_sysconfdir}/pureftpd/*
%{_mandir}/man8/pure*
%{_datadir}/ftp
%post
Getent Group Pureftpuser >/dev/null | | Groupadd-r Pureftpuser
Getent passwd Pureftpuser >/dev/null | | Useradd-r-G pureftpuser-s/sbin/nologin-c "Pureftp user" Pureftpuser
Sed-i \
-E "s| dblogin = "ftp"; |dblogin = "Pureftpuser"; |g "\
-E "s| Dbpassword = "TMPPASSWD"; |dbpassword = "Pureftpuser"; |g "\
-E "s| FTPAddress = "myipaddress.com:21"; |ftpaddress = "127.0.0.1:21"; |g "\
-E "s| Dbdatabase = "Ftpusers" | Dbdatabase = "pureftp" |g "\
-E "s| Defuserid = "65534" | Defuserid = "$ftpuid" |g "\
-E "s| Defgroupid = "31" | Defgroupid = "$ftpgid" |g "/usr/share/ftp/config.php
/sbin/chkconfig pureftpd on
Cat <<eof
Create PUREFTP database like this:
====================================================================================
Mysql>create database pureftp;
Mysql>grant all on pureftp.* to pureftpuser@ ' 127.0.0.1 ' identified by ' pureftpuser ';
Mysql>grant privileges;
====================================================================================
If you are want to the use PDB to store password:
You should change/etc/pureftpd/pure-ftpd.conf
Sed-i "s| mysqlconfigfile/etc/pureftpd-mysql.conf|# Mysqlconfigfile/etc/pureftpd/pureftpd-mysql.conf|g "/etc/pureftpd/pure-ftpd.conf
Sed-i "s|# puredb/etc/pureftpd.pdb| Puredb/etc/pureftpd/pureftpd.pdb|g "/etc/pureftpd/pure-ftpd.conf
#adduser
/USR/LOCAL/PUREFTPD/BIN/PURE-PW useradd virtualftp-f/usr/local/pureftpd/etc/pureftpd.passwd-u 500-g 500-d
#make it into effect
/USR/LOCAL/PUREFTPD/BIN/PURE-PW mkdb/usr/local/pureftpd/etc/pureftpd.pdb-f/usr/local/pureftpd/etc/ pureftpd.passwd
#modify User Password
/USR/LOCAL/PUREFTPD/BIN/PURE-PW passwd virtualftp-f/usr/local/pureftpd/etc/pureftpd.passwd-m
Eof
%changelog
This article comes from "Itnihao Technology blog" blog, please be sure to keep this source http://itnihao.blog.51cto.com/1741976/1148570