summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-ftp/pure-ftpd
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-ftp/pure-ftpd')
-rw-r--r--net-ftp/pure-ftpd/Manifest3
-rw-r--r--net-ftp/pure-ftpd/files/pure-ftpd-1.0.28-pam.patch20
-rw-r--r--net-ftp/pure-ftpd/files/pure-ftpd.conf_d-390
-rw-r--r--net-ftp/pure-ftpd/files/pure-ftpd.rc1177
-rw-r--r--net-ftp/pure-ftpd/files/pure-ftpd.xinetd13
-rw-r--r--net-ftp/pure-ftpd/metadata.xml26
-rw-r--r--net-ftp/pure-ftpd/pure-ftpd-1.0.40.ebuild141
-rw-r--r--net-ftp/pure-ftpd/pure-ftpd-1.0.41.ebuild141
-rw-r--r--net-ftp/pure-ftpd/pure-ftpd-1.0.42.ebuild141
9 files changed, 652 insertions, 0 deletions
diff --git a/net-ftp/pure-ftpd/Manifest b/net-ftp/pure-ftpd/Manifest
new file mode 100644
index 00000000000..24b120450ff
--- /dev/null
+++ b/net-ftp/pure-ftpd/Manifest
@@ -0,0 +1,3 @@
+DIST pure-ftpd-1.0.40.tar.bz2 495141 SHA256 004dd4e991537f100fb6cdcdcd43460ed49847aefb60bc4577466839de95aa20 SHA512 26a9918ddb298a6fd2b684e88173466b351671ad9b5c702796fabd1a7b0abb52fefcd3537b9d17210468d7f2efc80e4c881fc60dd3c9c73dcbed5f46e59e4420 WHIRLPOOL 09d6d5fed066a5c0cfb4801e1827770cd3d909dbf85e627c30c583ca0999dd3ec44a1528004db12ccbb232d22e263a4f742f2785a111d255db0007a097146f7d
+DIST pure-ftpd-1.0.41.tar.bz2 496457 SHA256 1d48f650f366b8151d86b86c79f4bb874e95143bdac0e767038eda832d28a010 SHA512 d63fb4f245dc2f1115447de3861f1a805712fb432c461e21b5739e1bae35da9d1367d5e7f54609f2fd5c3064e8d3853dd513a6684166300f1c72a60a79fddd21 WHIRLPOOL a0ed31b912e83f07c1f3814f47f7514a22db0e5fd699a890a4640fd36b053e491a93a15fe0a8b721ce08389a2727acc0928994c495c341bbfdfc5453d5d4af31
+DIST pure-ftpd-1.0.42.tar.bz2 496652 SHA256 efd11295998453e31dbeef9159624beabbac2643a338134ae8c2ef529aa2ec10 SHA512 730ece22ce9a8562c5da6063de2b99404fbc0d0fa0b591383c319a762ea33cec74239474bcb56606b7af254dd76e31154f27a745df0c619932c9b8b4f150bc9c WHIRLPOOL bcbcd32fcfe10741f214559f7051bca302addc9bdc0a90a24e33a53c8103199a2eb40ea65e314fc66c59a47a479bd6774e332f4898d750c90b6dbf1bee01bcec
diff --git a/net-ftp/pure-ftpd/files/pure-ftpd-1.0.28-pam.patch b/net-ftp/pure-ftpd/files/pure-ftpd-1.0.28-pam.patch
new file mode 100644
index 00000000000..209cd94dc56
--- /dev/null
+++ b/net-ftp/pure-ftpd/files/pure-ftpd-1.0.28-pam.patch
@@ -0,0 +1,20 @@
+--- src/log_pam.c
++++ src/log_pam.c
+@@ -49,7 +49,7 @@
+ # endif
+
+ #ifndef FTPD_PAM_SERVICE_NAME
+-# define FTPD_PAM_SERVICE_NAME "pure-ftpd"
++# define FTPD_PAM_SERVICE_NAME "ftp"
+ #endif
+
+ /* Static variables used to communicate between the conversation function
+@@ -164,7 +164,7 @@
+ &PAM_conversation, &pamh);
+ PAM_BAIL;
+ # ifdef PAM_TTY
+- (void) pam_set_item(pamh, PAM_TTY, "pure-ftpd");
++ (void) pam_set_item(pamh, PAM_TTY, FTPD_PAM_SERVICE_NAME);
+ # endif
+ # ifdef PAM_RUSER
+ (void) pam_set_item(pamh, PAM_RUSER, user);
diff --git a/net-ftp/pure-ftpd/files/pure-ftpd.conf_d-3 b/net-ftp/pure-ftpd/files/pure-ftpd.conf_d-3
new file mode 100644
index 00000000000..29b15a5a892
--- /dev/null
+++ b/net-ftp/pure-ftpd/files/pure-ftpd.conf_d-3
@@ -0,0 +1,90 @@
+# Config file for /etc/init.d/pure-ftpd
+##Comment variables out to disable its features, or change the values in it... ##
+
+## This variable must be uncommented in order for the server to start ##
+#IS_CONFIGURED="yes"
+
+## FTP Server,Port (separated by comma) ##
+## If you prefer host names over IP addresses, it's your choice:
+## SERVER="-S ftp.rtchat.com,21"
+## IPv6 addresses are supported.
+## !!! WARNING !!!
+## Using an invalid IP will result in the server not starting,
+## but reporting a correct start!
+## SERVER="-S 192.168.0.1,21"
+## By default binds to all available IPs.
+SERVER="-S 21"
+
+## Number of simultaneous connections in total, and per IP ##
+MAX_CONN="-c 30"
+MAX_CONN_IP="-C 10"
+
+## Don't allow uploads if the partition is more full then this var ##
+DISK_FULL="-k 90%"
+
+## If your FTP server is behind a NAT box, uncomment this ##
+#USE_NAT="-N"
+
+## Authentication mechanisms (others are 'pam', ...) ##
+## Further infos can be found in the README file.
+AUTH="-l unix"
+
+## Change the maximum idle time (in minutes) ##
+## If this variable is not defined, it will default to 15 minutes.
+#TIMEOUT="-I <timeout>'"
+
+## Facility used for syslog logging ##
+## If this variable is not defined, it will default to the 'ftp' facility.
+## Logging can be disabled with '-f none'.
+#LOG="-f <facility>"
+
+## Charset conversion support *experimental* ##
+## Only works if USE "charconv" is enabled (only Pure-FTPd >=1.0.21).
+## Set the charset of the filesystem.
+# CHARCONV="--fscharset <charset>"
+
+## If you want to process each file uploaded through Pure-FTPd, enter the name
+## of the script that should process the files below.
+## man pure-uploadscript to learn more about how to write this script.
+# UPLOADSCRIPT="/path/to/uploadscript"
+
+## Misc. Others ##
+MISC_OTHER="-A -x -j -R -Z"
+
+#
+# Use these inside $MISC_OTHER
+# More can be found on "http://download.pureftpd.org/pub/pure-ftpd/doc/README"
+#
+# -A [ chroot() everyone, but root ]
+# -e [ Only allow anonymous users ]
+# -E [ Only allow authenticated users. Anonymous logins are prohibited. ]
+# -i [ Disallow upload for anonymous users, whatever directory perms are ]
+# -j [ If the home directory of a user doesn't exist, auto-create it ]
+# -M [ Allow anonymous users to create directories. ]
+# -R [ Disallow users (even non-anonymous ones) usage of the CHMOD command ]
+# -x [ In normal operation mode, authenticated users can read/write
+# files beginning with a dot ('.'). Anonymous users can't, for security reasons
+# (like changing banners or a forgotten .rhosts). When '-x' is used, authenticated
+# users can download dot-files, but not overwrite/create them, even if they own
+# them. ]
+# -X [ This flag is identical to the previous one (writing
+# dot-files is prohibited), but in addition, users can't even *read* files and
+# directories beginning with a dot (like "cd .ssh"). ]
+# -D [ List files beginning with a dot ('.') even when the client doesn't
+# append the '-a' option to the list command. A workaround for badly
+# configured FTP clients. ]
+# -G [ Disallow renaming. ]
+# -d [ Send various debugging messages to the syslog. ONLY for DEBUG ]
+# -F <fortune file> [ Display a fortune cookie on login. Check the README file ]
+# -H [ By default, fully-qualified host names are logged. The '-H' flag avoids host names resolution. ]
+
+
+# Some filesystems don't like accesses being memory mapped. This happens for
+# example with ftpwho on JFFS2 filesystems (bug #330563). If you happen to
+# have such a filesystem on /var set TMPFS_MOUNT to "true".
+TMPFS_MOUNT="false"
+
+# Special mount options (like nosuid or nodev) for the tmpfs mount can be added
+# here. Several options must be separated by comma: "nodev,nosuid"
+#TMPFS_OPTS=""
+
diff --git a/net-ftp/pure-ftpd/files/pure-ftpd.rc11 b/net-ftp/pure-ftpd/files/pure-ftpd.rc11
new file mode 100644
index 00000000000..fe200cfb0f1
--- /dev/null
+++ b/net-ftp/pure-ftpd/files/pure-ftpd.rc11
@@ -0,0 +1,77 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+ftpd_pidfile="/var/run/pure-ftpd.pid"
+script_pidfile="/var/run/pure-uploadscript.pid"
+ftpd_rundir="/var/lib/run/pure-ftpd"
+daemon="/usr/sbin/pure-ftpd"
+script_daemon="/usr/sbin/pure-uploadscript"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ -z "$IS_CONFIGURED" ] ; then
+ eerror "You need to setup /etc/conf.d/pure-ftpd first!"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ UPSCRIPT=""
+ if [ -n "$UPLOADSCRIPT" ] ; then
+ UPSCRIPT="--uploadscript"
+ fi
+
+ FTPD_CONFIG="$SERVER $MAX_CONN $MAX_CONN_IP $DISK_FULL $USE_NAT $AUTH
+ $LOG $TIMEOUT $CHARCONV $MISC_OTHER $UPSCRIPT"
+
+ WAIT="--wait 100"
+
+ if ${TMPFS_MOUNT:-false} && grep -q tmpfs /proc/filesystems ; then
+ [ -n "${TMPFS_OPTS}" ] && MOUNT_OPTS="-o ${TMPFS_OPTS}"
+ einfo "Mounting tmpfs on ${ftpd_rundir}"
+ mount ${MOUNT_OPTS} -t tmpfs tmpfs ${ftpd_rundir} \
+ || eerror "Unable to mount tmpfs"
+ fi
+
+ ebegin "Starting Pure-FTPd"
+ start-stop-daemon --start --quiet --pidfile ${ftpd_pidfile} \
+ --make-pidfile --background --exec /usr/sbin/pure-ftpd ${WAIT} \
+ -- $(echo ${FTPD_CONFIG} | sed 's@\([[:space:]]\+\|^\)-B\([[:space:]]\+\|$\)@\1@g')
+ result=$?
+ if [ $result -ne 0 ] ; then
+ eend 1 "Could not launch Pure-FTPd"
+ else
+ eend $result
+ if [ -n "$UPLOADSCRIPT" ] ; then
+ ebegin "Starting Pure-FTPd upload script"
+ start-stop-daemon --start --quiet --make-pidfile \
+ --pidfile ${script_pidfile} \
+ --exec ${script_daemon} --background ${WAIT} \
+ -- -r $UPLOADSCRIPT
+ eend $?
+ fi
+ fi
+}
+
+stop() {
+ if [ -n "$UPLOADSCRIPT" ] ; then
+ ebegin "Stopping Pure-FTPd upload script"
+ start-stop-daemon --stop --retry 20 --quiet \
+ --pidfile ${script_pidfile}
+ eend $?
+ fi
+ ebegin "Stopping Pure-FTPd"
+ start-stop-daemon --stop --retry 20 --quiet --pidfile ${ftpd_pidfile}
+ eend $?
+
+ if ${TMPFS_MOUNT:-false} && mount | grep -q ${ftpd_rundir} ; then
+ umount ${ftpd_rundir} >/dev/null 2>&1
+ fi
+}
diff --git a/net-ftp/pure-ftpd/files/pure-ftpd.xinetd b/net-ftp/pure-ftpd/files/pure-ftpd.xinetd
new file mode 100644
index 00000000000..11022e6fde8
--- /dev/null
+++ b/net-ftp/pure-ftpd/files/pure-ftpd.xinetd
@@ -0,0 +1,13 @@
+#
+# Pure-FTPd FTP daemon - http://www.pureftpd.org
+#
+service ftp
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/pure-ftpd
+ server_args = -s -a 42
+ protocol = tcp
+ disable = yes
+}
diff --git a/net-ftp/pure-ftpd/metadata.xml b/net-ftp/pure-ftpd/metadata.xml
new file mode 100644
index 00000000000..b4871d97773
--- /dev/null
+++ b/net-ftp/pure-ftpd/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>net-ftp</herd>
+<maintainer>
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+</maintainer>
+<longdescription>Free (BSD), secure, production-quality and standard-conformant FTP server based upon Troll-FTPd. It doesn't provide useless bells and whistles, but focuses on efficiency and ease of use.</longdescription>
+<use>
+ <flag name='anondel'>Permit anonymous to delete files</flag>
+ <flag name='anonperm'>Permit anonymous to change file permissions</flag>
+ <flag name='anonren'>Permit anonymous to rename files</flag>
+ <flag name='anonres'>Permit anonymous to resume file transfers</flag>
+ <flag name='charconv'>Enables charset conversion</flag>
+ <flag name='implicittls'>Enable TLS on Port 990</flag>
+ <flag name='noiplog'>Disables logging of IP addresses</flag>
+ <flag name='paranoidmsg'>Display paranoid messages instead of normal
+ ones</flag>
+ <flag name='resolveids'>Resolve UIDs/GIDs</flag>
+ <flag name='sysquota'>Enables system quota support (needs sys-fs/quota)
+ </flag>
+ <flag name='vchroot'>Enable support for virtual chroot (possible security
+ risk)</flag>
+</use>
+</pkgmetadata>
diff --git a/net-ftp/pure-ftpd/pure-ftpd-1.0.40.ebuild b/net-ftp/pure-ftpd/pure-ftpd-1.0.40.ebuild
new file mode 100644
index 00000000000..cb050bd820f
--- /dev/null
+++ b/net-ftp/pure-ftpd/pure-ftpd-1.0.40.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils confutils flag-o-matic
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86"
+
+DESCRIPTION="Fast, production-quality, standard-conformant FTP server"
+HOMEPAGE="http://www.pureftpd.org/"
+SRC_URI="ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2
+ http://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+
+IUSE="anondel anonperm anonren anonres caps charconv implicittls ldap mysql noiplog pam paranoidmsg postgres resolveids selinux ssl sysquota vchroot xinetd"
+
+REQUIRED_USE="implicittls? ( ssl )"
+
+DEPEND="caps? ( sys-libs/libcap )
+ charconv? ( virtual/libiconv )
+ ldap? ( >=net-nds/openldap-2.0.25 )
+ mysql? ( virtual/mysql )
+ pam? ( virtual/pam )
+ postgres? ( dev-db/postgresql:= )
+ ssl? ( >=dev-libs/openssl-0.9.6g:0=[-bindist] )
+ sysquota? ( sys-fs/quota[-rpc] )
+ xinetd? ( virtual/inetd )"
+
+RDEPEND="${DEPEND}
+ dev-libs/libsodium
+ net-ftp/ftpbase
+ selinux? ( sec-policy/selinux-ftp )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.0.28-pam.patch
+}
+
+src_configure() {
+ # adjust max user length to something more appropriate
+ # for virtual hosts. See bug #62472 for details.
+ sed -e "s:# define MAX_USER_LENGTH 32U:# define MAX_USER_LENGTH 127U:" \
+ -i "${S}/src/ftpd.h" || die "sed failed"
+
+ local my_conf=""
+
+ # Let's configure the USE-enabled stuff
+ enable_extension_without "capabilities" "caps"
+ enable_extension_with "rfc2640" "charconv" 0
+ enable_extension_with "ldap" "ldap" 0
+ enable_extension_with "mysql" "mysql" 0
+ enable_extension_with "pam" "pam" 0
+ enable_extension_with "paranoidmsg" "paranoidmsg" 0
+ enable_extension_with "pgsql" "postgres" 0
+ enable_extension_with "tls" "ssl" 0
+ enable_extension_with "implicittls" "implicittls" 0
+ enable_extension_with "virtualchroot" "vchroot" 0
+ enable_extension_with "sysquotas" "sysquota" 0
+ enable_extension_without "inetd" "xinetd"
+
+ # noiplog is a negative flag, we don't want that enabled by default,
+ # so we handle it manually, as confutils can't do that
+ use noiplog && my_conf="${my_conf} --without-iplogging"
+
+ # Those features are only configurable like this, see bug #179375.
+ use anondel && append-cppflags -DANON_CAN_DELETE
+ use anonperm && append-cppflags -DANON_CAN_CHANGE_PERMS
+ use anonren && append-cppflags -DANON_CAN_RENAME
+ use anonres && append-cppflags -DANON_CAN_RESUME
+ use resolveids && append-cppflags -DALWAYS_RESOLVE_IDS
+
+ # Do not auto-use SSP -- let the user select this.
+ export ax_cv_check_cflags___fstack_protector_all=no
+
+ econf \
+ --with-altlog \
+ --with-cookie \
+ --with-diraliases \
+ --with-extauth \
+ --with-ftpwho \
+ --with-language=${PUREFTPD_LANG:=english} \
+ --with-peruserlimits \
+ --with-privsep \
+ --with-puredb \
+ --with-quotas \
+ --with-ratios \
+ --with-throttling \
+ --with-uploadscript \
+ --with-virtualhosts \
+ --enable-largefile \
+ ${my_conf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS CONTACT ChangeLog FAQ HISTORY INSTALL README* NEWS
+
+ newconfd "${FILESDIR}/pure-ftpd.conf_d-3" ${PN}
+
+ if use implicittls ; then
+ sed -i '/^SERVER/s@21@990@' "${ED}"/etc/conf.d/${PN} \
+ || die "Adjusting default server port for implicittls usage failed!"
+ fi
+
+ newinitd "${FILESDIR}/pure-ftpd.rc11" pure-ftpd
+
+ dodir /var/lib/run/${PN}
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}/pure-ftpd.xinetd" pure-ftpd
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins pureftpd.schema
+ insinto /etc/openldap
+ insopts -m 0600
+ doins pureftpd-ldap.conf
+ fi
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ # This is a new installation
+ elog
+ elog "Before starting Pure-FTPd, you have to edit the /etc/conf.d/pure-ftpd file!"
+ elog
+ ewarn "It's *really* important to read the README provided with Pure-FTPd!"
+ ewarn "Check out http://download.pureftpd.org/pub/pure-ftpd/doc/README for general info"
+ ewarn "and http://download.pureftpd.org/pub/pure-ftpd/doc/README.TLS for SSL/TLS info."
+ ewarn
+ if use charconv ; then
+ ewarn "Charset conversion is an *experimental* feature!"
+ ewarn "Remember to set a valid charset for your filesystem in the configuration!"
+ fi
+ fi
+}
diff --git a/net-ftp/pure-ftpd/pure-ftpd-1.0.41.ebuild b/net-ftp/pure-ftpd/pure-ftpd-1.0.41.ebuild
new file mode 100644
index 00000000000..8e0c1a29f1d
--- /dev/null
+++ b/net-ftp/pure-ftpd/pure-ftpd-1.0.41.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils confutils flag-o-matic
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+DESCRIPTION="Fast, production-quality, standard-conformant FTP server"
+HOMEPAGE="http://www.pureftpd.org/"
+SRC_URI="ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2
+ http://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+
+IUSE="anondel anonperm anonren anonres caps charconv implicittls ldap mysql noiplog pam paranoidmsg postgres resolveids selinux ssl sysquota vchroot xinetd"
+
+REQUIRED_USE="implicittls? ( ssl )"
+
+DEPEND="caps? ( sys-libs/libcap )
+ charconv? ( virtual/libiconv )
+ ldap? ( >=net-nds/openldap-2.0.25 )
+ mysql? ( virtual/mysql )
+ pam? ( virtual/pam )
+ postgres? ( dev-db/postgresql:= )
+ ssl? ( >=dev-libs/openssl-0.9.6g:0=[-bindist] )
+ sysquota? ( sys-fs/quota[-rpc] )
+ xinetd? ( virtual/inetd )"
+
+RDEPEND="${DEPEND}
+ dev-libs/libsodium
+ net-ftp/ftpbase
+ selinux? ( sec-policy/selinux-ftp )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.0.28-pam.patch
+}
+
+src_configure() {
+ # adjust max user length to something more appropriate
+ # for virtual hosts. See bug #62472 for details.
+ sed -e "s:# define MAX_USER_LENGTH 32U:# define MAX_USER_LENGTH 127U:" \
+ -i "${S}/src/ftpd.h" || die "sed failed"
+
+ local my_conf=""
+
+ # Let's configure the USE-enabled stuff
+ enable_extension_without "capabilities" "caps"
+ enable_extension_with "rfc2640" "charconv" 0
+ enable_extension_with "ldap" "ldap" 0
+ enable_extension_with "mysql" "mysql" 0
+ enable_extension_with "pam" "pam" 0
+ enable_extension_with "paranoidmsg" "paranoidmsg" 0
+ enable_extension_with "pgsql" "postgres" 0
+ enable_extension_with "tls" "ssl" 0
+ enable_extension_with "implicittls" "implicittls" 0
+ enable_extension_with "virtualchroot" "vchroot" 0
+ enable_extension_with "sysquotas" "sysquota" 0
+ enable_extension_without "inetd" "xinetd"
+
+ # noiplog is a negative flag, we don't want that enabled by default,
+ # so we handle it manually, as confutils can't do that
+ use noiplog && my_conf="${my_conf} --without-iplogging"
+
+ # Those features are only configurable like this, see bug #179375.
+ use anondel && append-cppflags -DANON_CAN_DELETE
+ use anonperm && append-cppflags -DANON_CAN_CHANGE_PERMS
+ use anonren && append-cppflags -DANON_CAN_RENAME
+ use anonres && append-cppflags -DANON_CAN_RESUME
+ use resolveids && append-cppflags -DALWAYS_RESOLVE_IDS
+
+ # Do not auto-use SSP -- let the user select this.
+ export ax_cv_check_cflags___fstack_protector_all=no
+
+ econf \
+ --with-altlog \
+ --with-cookie \
+ --with-diraliases \
+ --with-extauth \
+ --with-ftpwho \
+ --with-language=${PUREFTPD_LANG:=english} \
+ --with-peruserlimits \
+ --with-privsep \
+ --with-puredb \
+ --with-quotas \
+ --with-ratios \
+ --with-throttling \
+ --with-uploadscript \
+ --with-virtualhosts \
+ --enable-largefile \
+ ${my_conf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS CONTACT ChangeLog FAQ HISTORY INSTALL README* NEWS
+
+ newconfd "${FILESDIR}/pure-ftpd.conf_d-3" ${PN}
+
+ if use implicittls ; then
+ sed -i '/^SERVER/s@21@990@' "${ED}"/etc/conf.d/${PN} \
+ || die "Adjusting default server port for implicittls usage failed!"
+ fi
+
+ newinitd "${FILESDIR}/pure-ftpd.rc11" pure-ftpd
+
+ dodir /var/lib/run/${PN}
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}/pure-ftpd.xinetd" pure-ftpd
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins pureftpd.schema
+ insinto /etc/openldap
+ insopts -m 0600
+ doins pureftpd-ldap.conf
+ fi
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ # This is a new installation
+ elog
+ elog "Before starting Pure-FTPd, you have to edit the /etc/conf.d/pure-ftpd file!"
+ elog
+ ewarn "It's *really* important to read the README provided with Pure-FTPd!"
+ ewarn "Check out http://download.pureftpd.org/pub/pure-ftpd/doc/README for general info"
+ ewarn "and http://download.pureftpd.org/pub/pure-ftpd/doc/README.TLS for SSL/TLS info."
+ ewarn
+ if use charconv ; then
+ ewarn "Charset conversion is an *experimental* feature!"
+ ewarn "Remember to set a valid charset for your filesystem in the configuration!"
+ fi
+ fi
+}
diff --git a/net-ftp/pure-ftpd/pure-ftpd-1.0.42.ebuild b/net-ftp/pure-ftpd/pure-ftpd-1.0.42.ebuild
new file mode 100644
index 00000000000..8e0c1a29f1d
--- /dev/null
+++ b/net-ftp/pure-ftpd/pure-ftpd-1.0.42.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils confutils flag-o-matic
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+DESCRIPTION="Fast, production-quality, standard-conformant FTP server"
+HOMEPAGE="http://www.pureftpd.org/"
+SRC_URI="ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2
+ http://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+
+IUSE="anondel anonperm anonren anonres caps charconv implicittls ldap mysql noiplog pam paranoidmsg postgres resolveids selinux ssl sysquota vchroot xinetd"
+
+REQUIRED_USE="implicittls? ( ssl )"
+
+DEPEND="caps? ( sys-libs/libcap )
+ charconv? ( virtual/libiconv )
+ ldap? ( >=net-nds/openldap-2.0.25 )
+ mysql? ( virtual/mysql )
+ pam? ( virtual/pam )
+ postgres? ( dev-db/postgresql:= )
+ ssl? ( >=dev-libs/openssl-0.9.6g:0=[-bindist] )
+ sysquota? ( sys-fs/quota[-rpc] )
+ xinetd? ( virtual/inetd )"
+
+RDEPEND="${DEPEND}
+ dev-libs/libsodium
+ net-ftp/ftpbase
+ selinux? ( sec-policy/selinux-ftp )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.0.28-pam.patch
+}
+
+src_configure() {
+ # adjust max user length to something more appropriate
+ # for virtual hosts. See bug #62472 for details.
+ sed -e "s:# define MAX_USER_LENGTH 32U:# define MAX_USER_LENGTH 127U:" \
+ -i "${S}/src/ftpd.h" || die "sed failed"
+
+ local my_conf=""
+
+ # Let's configure the USE-enabled stuff
+ enable_extension_without "capabilities" "caps"
+ enable_extension_with "rfc2640" "charconv" 0
+ enable_extension_with "ldap" "ldap" 0
+ enable_extension_with "mysql" "mysql" 0
+ enable_extension_with "pam" "pam" 0
+ enable_extension_with "paranoidmsg" "paranoidmsg" 0
+ enable_extension_with "pgsql" "postgres" 0
+ enable_extension_with "tls" "ssl" 0
+ enable_extension_with "implicittls" "implicittls" 0
+ enable_extension_with "virtualchroot" "vchroot" 0
+ enable_extension_with "sysquotas" "sysquota" 0
+ enable_extension_without "inetd" "xinetd"
+
+ # noiplog is a negative flag, we don't want that enabled by default,
+ # so we handle it manually, as confutils can't do that
+ use noiplog && my_conf="${my_conf} --without-iplogging"
+
+ # Those features are only configurable like this, see bug #179375.
+ use anondel && append-cppflags -DANON_CAN_DELETE
+ use anonperm && append-cppflags -DANON_CAN_CHANGE_PERMS
+ use anonren && append-cppflags -DANON_CAN_RENAME
+ use anonres && append-cppflags -DANON_CAN_RESUME
+ use resolveids && append-cppflags -DALWAYS_RESOLVE_IDS
+
+ # Do not auto-use SSP -- let the user select this.
+ export ax_cv_check_cflags___fstack_protector_all=no
+
+ econf \
+ --with-altlog \
+ --with-cookie \
+ --with-diraliases \
+ --with-extauth \
+ --with-ftpwho \
+ --with-language=${PUREFTPD_LANG:=english} \
+ --with-peruserlimits \
+ --with-privsep \
+ --with-puredb \
+ --with-quotas \
+ --with-ratios \
+ --with-throttling \
+ --with-uploadscript \
+ --with-virtualhosts \
+ --enable-largefile \
+ ${my_conf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS CONTACT ChangeLog FAQ HISTORY INSTALL README* NEWS
+
+ newconfd "${FILESDIR}/pure-ftpd.conf_d-3" ${PN}
+
+ if use implicittls ; then
+ sed -i '/^SERVER/s@21@990@' "${ED}"/etc/conf.d/${PN} \
+ || die "Adjusting default server port for implicittls usage failed!"
+ fi
+
+ newinitd "${FILESDIR}/pure-ftpd.rc11" pure-ftpd
+
+ dodir /var/lib/run/${PN}
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}/pure-ftpd.xinetd" pure-ftpd
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins pureftpd.schema
+ insinto /etc/openldap
+ insopts -m 0600
+ doins pureftpd-ldap.conf
+ fi
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ # This is a new installation
+ elog
+ elog "Before starting Pure-FTPd, you have to edit the /etc/conf.d/pure-ftpd file!"
+ elog
+ ewarn "It's *really* important to read the README provided with Pure-FTPd!"
+ ewarn "Check out http://download.pureftpd.org/pub/pure-ftpd/doc/README for general info"
+ ewarn "and http://download.pureftpd.org/pub/pure-ftpd/doc/README.TLS for SSL/TLS info."
+ ewarn
+ if use charconv ; then
+ ewarn "Charset conversion is an *experimental* feature!"
+ ewarn "Remember to set a valid charset for your filesystem in the configuration!"
+ fi
+ fi
+}