##
## proftpd.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2001 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2001 The OpenPKG Project
## Copyright (c) 2000-2001 Ralf S. Engelschall
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: proftpd
Summary: Professional FTP Daemon
URL: http://www.proftpd.net/
Vendor: The ProFTPD Project
Packager: The OpenPKG Project
Distribution: OpenPKG [REL]
Group: FTP
License: GPL
Version: 1.2.4
Release: 20011201.0
# list of sources
Source0: ftp://ftp.proftpd.net/distrib/proftpd-%{version}.tar.bz2
Source1: proftpd.conf
Source2: proftpd.msg.goaway
Source3: proftpd.msg.login
Source4: rc.proftpd
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20011126.0
PreReq: OpenPKG, openpkg >= 20011126.0
AutoReq: no
AutoReqProv: no
%description
ProFTPD grew out of the desire to have a secure and configurable FTP
server, and out of a significant admiration of the Apache web server.
There are currently a very limited number of FTP servers running on unix
(or unix-like) hosts. The most commonly used server is probably wu-ftpd.
While wu-ftpd provides excellent performance and is generally a good
product, it lacks numerous features found in newer Win32 FTP servers, and
has a poor security history. Many people, including the developers who
work on ProFTPD have spent a great deal of time fixing bugs and hacking
features into wu-ftpd. Unfortunately, it quickly became clear that a
complete redesign was necessary in order to implement the configurability
and features desired. ProFTPD is not a hack based on any other server,
it's an independent source tree from the ground up. Click here for a small
list of some of the sites ProFTPD powers -- many of them handling large
volumes of traffic on a daily basis.
%prep
%setup -q
%build
# make non-standard "rundir" the same as standard "sysconfdir"
%{l_rpmtool} subst \
's;^\(rundir=@localstatedir@\)/proftpd;\1;' \
-- Make.rules.in
# configure the ProFTPd source tree
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
./configure \
--prefix=%{l_prefix} \
--sysconfdir=%{l_prefix}/etc/proftpd \
--localstatedir=%{l_prefix}/var/proftpd \
--with-modules=mod_ratio:mod_readme \
--enable-pam
# build ProFTPd programs
%{l_make} %{l_mflags -O}
%install
rm -rf $RPM_BUILD_ROOT
# make sure the "install" procedure does not try
# to perform explicit ownership assignments
%{l_rpmtool} subst -v \
's;-o $(INSTALL_USER) -g $(INSTALL_GROUP);;g' \
's;chown;true;g' \
-- Makefile
# perform the "install" procedure while redirecting
# it to the temporarily install area
%{l_make} %{l_mflags} \
install-proftpd install-utils install-man \
prefix=$RPM_BUILD_ROOT%{l_prefix} \
sysconfdir=$RPM_BUILD_ROOT%{l_prefix}/etc/proftpd \
localstatedir=$RPM_BUILD_ROOT%{l_prefix}/var/proftpd \
rundir=$RPM_BUILD_ROOT%{l_prefix}/var/proftpd
# strip installation
rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/in.proftpd
# install more stuff manually
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd
%{l_shtool} install -c -m 644 doc/FAQ-config.html \
$RPM_BUILD_ROOT%{l_prefix}/share/proftpd/faq.html
%{l_shtool} install -c -m 644 doc/Configuration.html \
$RPM_BUILD_ROOT%{l_prefix}/share/proftpd/cfg.html
# extended installation with own stuff
%{l_shtool} install -c -m 644 \
-e "s;@l_prefix@;%{l_prefix};g" \
-e "s;@l_npusr@;%{l_npusr};g" \
-e "s;@l_npgrp@;%{l_npgrp};g" \
%{SOURCE proftpd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/proftpd/
%{l_shtool} install -c -m 644 \
%{SOURCE proftpd.msg.goaway} \
%{SOURCE proftpd.msg.login} \
$RPM_BUILD_ROOT%{l_prefix}/etc/proftpd/
%{l_shtool} install -c -m 644 \
%{SOURCE proftpd.msg.login} \
$RPM_BUILD_ROOT%{l_prefix}/share/proftpd/.msg.login
%{l_shtool} install -c -m 644 \
%{SOURCE proftpd.msg.goaway} \
$RPM_BUILD_ROOT%{l_prefix}/share/proftpd/.msg.goaway
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 -e "s;@l_prefix@;%{l_prefix};g" \
%{SOURCE rc.proftpd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# determine the package ingredients
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/proftpd/proftpd.conf'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
# add PAM configuration entry
check=`grep '^#' /etc/pam.conf`
if [ ".$check" = . ]; then
( echo "#"
case "%{l_target}" in
*-freebsd* )
echo "proftpd auth sufficient pam_skey.so"
echo "proftpd auth required pam_unix.so try_first_pass"
echo "proftpd account required pam_unix.so try_first_pass"
echo "proftpd session required pam_permit.so"
;;
*-linux* )
echo "proftpd auth required /lib/security/pam_unix.so shadow nodelay"
echo "proftpd auth required /lib/security/pam_nologin.so"
echo "proftpd account required /lib/security/pam_unix.so"
echo "proftpd session required /lib/security/pam_unix.so"
;;
*-solaris* )
echo "proftpd auth required /usr/lib/security/pam_unix.so try_first_pass"
echo "proftpd account required /usr/lib/security/pam_unix.so try_first_pass"
echo "proftpd session required /usr/lib/security/pam_unix.so"
;;
esac
echo "#"
) >>/etc/pam.conf
fi
%preun
# remove PAM configuration entry
if [ $1 -eq 0 ]; then
check=`grep '^#' /etc/pam.conf`
if [ ".$check" != . ]; then
cp /etc/pam.conf /etc/pam.conf.tmp && \
sed -e '/^#/,/^#<\/OpenPKG>/d' \
/etc/pam.conf && \
rm -f /etc/pam.conf.tmp
fi
$RPM_INSTALL_PREFIX/etc/rc proftpd stop
rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.log
rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.pid
fi