diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-ftp/pure-ftpd | |
download | gentoo-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/Manifest | 3 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/files/pure-ftpd-1.0.28-pam.patch | 20 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/files/pure-ftpd.conf_d-3 | 90 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/files/pure-ftpd.rc11 | 77 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/files/pure-ftpd.xinetd | 13 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/metadata.xml | 26 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/pure-ftpd-1.0.40.ebuild | 141 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/pure-ftpd-1.0.41.ebuild | 141 | ||||
-rw-r--r-- | net-ftp/pure-ftpd/pure-ftpd-1.0.42.ebuild | 141 |
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 000000000000..24b120450ff0 --- /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 000000000000..209cd94dc566 --- /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 000000000000..29b15a5a8928 --- /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 000000000000..fe200cfb0f1a --- /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 000000000000..11022e6fde8d --- /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 000000000000..b4871d977734 --- /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 000000000000..cb050bd820fa --- /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 000000000000..8e0c1a29f1d5 --- /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 000000000000..8e0c1a29f1d5 --- /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 +} |