mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
net-ftp/pure-ftpd: drop 1.0.49-r6, 1.0.50-r1
Signed-off-by: Conrad Kostecki <conikost@gentoo.org>
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST pure-ftpd-1.0.49.tar.bz2 487958 BLAKE2B bd5f10a49b533eb6c257032659e97aa7ae16ec9402704d8ee06c92938e217b748b390ccf0e31b3640f41cb7a93f85b29c8ddcdc296f214391b1d92da9d701a7c SHA512 b44896d6fe2cda9169b1db93c5260bb892af14a173f2d25e60dd6530afe85d8e9156985609e35da7e5550dc123afb42bc5012beb9fca9011054cf0ed8b2eddef
|
||||
DIST pure-ftpd-1.0.50.tar.bz2 520167 BLAKE2B 0c694ed48e896be13d907a71a24357f8676daf2c66bdaac41d31b162741164fe5ab1560499acc08b11e4fdb2a678c81c81c03e65a8181fcfd960ffbfe4b731d4 SHA512 8fbd24fb0450b9ed8e47335c97c3bc1cbcd0ee2ac7ebea95721b9dbddb7f61d8bedaa1710ba94213d96c79e12ec9b2b555ddb5f494c8961ca2339b176a52fe12
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa Mon Sep 17 00:00:00 2001
|
||||
From: Frank Denis <github@pureftpd.org>
|
||||
Date: Tue, 18 Feb 2020 18:36:58 +0100
|
||||
Subject: [PATCH] diraliases: always set the tail of the list to NULL
|
||||
|
||||
Spotted and reported by Antonio Norales from GitHub Security Labs.
|
||||
Thanks!
|
||||
---
|
||||
src/diraliases.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/diraliases.c b/src/diraliases.c
|
||||
index 4002a36..fb70273 100644
|
||||
--- a/src/diraliases.c
|
||||
+++ b/src/diraliases.c
|
||||
@@ -93,7 +93,6 @@ int init_aliases(void)
|
||||
(tail->dir = strdup(dir)) == NULL) {
|
||||
die_mem();
|
||||
}
|
||||
- tail->next = NULL;
|
||||
} else {
|
||||
DirAlias *curr;
|
||||
|
||||
@@ -105,6 +104,7 @@ int init_aliases(void)
|
||||
tail->next = curr;
|
||||
tail = curr;
|
||||
}
|
||||
+ tail->next = NULL;
|
||||
}
|
||||
fclose(fp);
|
||||
aliases_up++;
|
||||
@@ -1,23 +0,0 @@
|
||||
https://bugs.gentoo.org/721242
|
||||
Backport of https://github.com/jedisct1/pure-ftpd/pull/148
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -7,7 +7,7 @@ AC_INIT([pure-ftpd],[1.0.49],
|
||||
[https://www.pureftpd.org])
|
||||
AC_CONFIG_SRCDIR(src/ftpd.c)
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
-AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar])
|
||||
+AM_INIT_AUTOMAKE([1.11.2 dist-bzip2 tar-ustar])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
AM_MAINTAINER_MODE
|
||||
AM_DEP_TRACK
|
||||
@@ -17,6 +17,7 @@ AC_SUBST(VERSION)
|
||||
|
||||
dnl Checks for programs.
|
||||
LX_CFLAGS=${CFLAGS-NONE}
|
||||
+AM_PROG_AR
|
||||
AC_PROG_CC
|
||||
AC_PROG_RANLIB
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 36c6d268cb190282a2c17106acfd31863121b58e Mon Sep 17 00:00:00 2001
|
||||
From: Frank Denis <github@pureftpd.org>
|
||||
Date: Mon, 24 Feb 2020 15:19:43 +0100
|
||||
Subject: [PATCH] pure_strcmp(): len(s2) can be > len(s1)
|
||||
|
||||
Reported by Antonio Morales from GitHub Security Labs, thanks!
|
||||
---
|
||||
src/utils.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/utils.c b/src/utils.c
|
||||
index f41492d..a7f0381 100644
|
||||
--- a/src/utils.c
|
||||
+++ b/src/utils.c
|
||||
@@ -45,5 +45,11 @@ int pure_memcmp(const void * const b1_, const void * const b2_, size_t len)
|
||||
|
||||
int pure_strcmp(const char * const s1, const char * const s2)
|
||||
{
|
||||
- return pure_memcmp(s1, s2, strlen(s1) + 1U);
|
||||
+ const size_t s1_len = strlen(s1);
|
||||
+ const size_t s2_len = strlen(s2);
|
||||
+
|
||||
+ if (s1_len != s2_len) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+ return pure_memcmp(s1, s2, s1_len);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
From fb93975777a1cffba80544e08ca81606532395d6 Mon Sep 17 00:00:00 2001
|
||||
From: DroidTest <53651584+DroidTest@users.noreply.github.com>
|
||||
Date: Thu, 29 Jul 2021 11:36:26 +0800
|
||||
Subject: [PATCH] fix the maxfile_size checking bug
|
||||
|
||||
Fix the predicate that never evaluates true
|
||||
---
|
||||
src/ftpd.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/ftpd.c b/src/ftpd.c
|
||||
index d856839..61275de 100644
|
||||
--- a/src/ftpd.c
|
||||
+++ b/src/ftpd.c
|
||||
@@ -4247,8 +4247,8 @@ void dostor(char *name, const int append, const int autorename)
|
||||
if (quota_update("a, 0LL, 0LL, &overflow) == 0 &&
|
||||
(overflow > 0 || quota.files >= user_quota_files ||
|
||||
quota.size > user_quota_size ||
|
||||
- (max_filesize >= (off_t) 0 &&
|
||||
- (max_filesize = user_quota_size - quota.size) < (off_t) 0))) {
|
||||
+ ((max_filesize = user_quota_size - quota.size) < (off_t) 0 &&
|
||||
+ max_filesize >= (off_t) 0))) {
|
||||
overflow = 1;
|
||||
(void) close(f);
|
||||
goto afterquota;
|
||||
@@ -1,90 +0,0 @@
|
||||
# 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=""
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
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 localmount
|
||||
use netmount
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
if [ -z "${IS_CONFIGURED}" ] ; then
|
||||
eerror "You need to setup /etc/conf.d/pure-ftpd first!"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
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
|
||||
}
|
||||
@@ -1,160 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit autotools flag-o-matic
|
||||
|
||||
DESCRIPTION="Fast, production-quality, standard-conformant FTP server"
|
||||
HOMEPAGE="http://www.pureftpd.org/"
|
||||
if [[ "${PV}" == 9999 ]] ; then
|
||||
inherit autotools git-r3
|
||||
EGIT_REPO_URI="https://github.com/jedisct1/pure-ftpd.git"
|
||||
else
|
||||
SRC_URI="ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2
|
||||
http://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86"
|
||||
fi
|
||||
|
||||
LICENSE="BSD GPL-2"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="anondel anonperm anonren anonres caps implicittls ldap mysql noiplog pam paranoidmsg postgres resolveids selinux ssl sysquota vchroot xinetd"
|
||||
|
||||
REQUIRED_USE="implicittls? ( ssl )"
|
||||
|
||||
BDEPEND="sys-devel/autoconf-archive"
|
||||
|
||||
DEPEND="dev-libs/libsodium:=
|
||||
virtual/libcrypt:=
|
||||
caps? ( sys-libs/libcap )
|
||||
ldap? ( >=net-nds/openldap-2.0.25:= )
|
||||
mysql? ( || (
|
||||
dev-db/mariadb-connector-c
|
||||
dev-db/mysql-connector-c
|
||||
) )
|
||||
pam? ( sys-libs/pam )
|
||||
postgres? ( dev-db/postgresql:= )
|
||||
ssl? (
|
||||
>=dev-libs/openssl-0.9.6g:0=[-bindist(-)]
|
||||
)
|
||||
sysquota? ( sys-fs/quota[-rpc] )
|
||||
xinetd? ( virtual/inetd )"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
net-ftp/ftpbase
|
||||
selinux? ( sec-policy/selinux-ftp )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.0.28-pam.patch"
|
||||
|
||||
# https://bugs.gentoo.org/711124
|
||||
"${FILESDIR}/${P}-diraliases_uninitialized_pointer.patch"
|
||||
"${FILESDIR}/${P}-pure_strcmp_OOB_read.patch"
|
||||
|
||||
# https://bugs.gentoo.org/721242
|
||||
"${FILESDIR}/${P}-do-not-call-ar-directly.patch"
|
||||
|
||||
# https://bugs.gentoo.org/811786
|
||||
"${FILESDIR}/${P}-quota_maxfile_size_check.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
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"
|
||||
|
||||
# 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
|
||||
|
||||
local myeconfargs=(
|
||||
--enable-largefile
|
||||
# Required for correct pid file location.
|
||||
# pure-ftpd appends "/run/pure-ftpd.pid" to the localstatedir
|
||||
# path, and tries to write to that file even when being
|
||||
# started in foreground. So we need to pin this to /
|
||||
--localstatedir="${EPREFIX}"/
|
||||
--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
|
||||
$(use_with ldap)
|
||||
$(use_with mysql)
|
||||
$(use_with pam)
|
||||
$(use_with paranoidmsg)
|
||||
$(use_with postgres pgsql)
|
||||
$(use_with ssl tls)
|
||||
$(use_with implicittls)
|
||||
$(use_with vchroot virtualchroot)
|
||||
$(use_with sysquota sysquotas)
|
||||
$(usex caps '' '--without-capabilities')
|
||||
$(usex noiplog '--without-iplogging' '')
|
||||
$(usex xinetd '' '--without-inetd')
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local DOCS=( AUTHORS ChangeLog FAQ HISTORY README* NEWS )
|
||||
|
||||
default
|
||||
|
||||
newinitd "${FILESDIR}/pure-ftpd.rc11" ${PN}
|
||||
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
|
||||
|
||||
keepdir /var/lib/run/${PN}
|
||||
|
||||
if use xinetd ; then
|
||||
insinto /etc/xinetd.d
|
||||
newins "${FILESDIR}/pure-ftpd.xinetd" ${PN}
|
||||
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
|
||||
fi
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic
|
||||
|
||||
DESCRIPTION="Fast, production-quality, standard-conformant FTP server"
|
||||
HOMEPAGE="http://www.pureftpd.org/"
|
||||
if [[ "${PV}" == 9999 ]] ; then
|
||||
inherit autotools git-r3
|
||||
EGIT_REPO_URI="https://github.com/jedisct1/pure-ftpd.git"
|
||||
else
|
||||
SRC_URI="ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2
|
||||
http://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="BSD GPL-2"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="anondel anonperm anonren anonres caps implicittls ldap mysql noiplog pam paranoidmsg postgres resolveids selinux ssl sysquota vchroot xinetd"
|
||||
|
||||
REQUIRED_USE="implicittls? ( ssl )"
|
||||
|
||||
BDEPEND="sys-devel/autoconf-archive"
|
||||
|
||||
DEPEND="dev-libs/libsodium:=
|
||||
virtual/libcrypt:=
|
||||
caps? ( sys-libs/libcap )
|
||||
ldap? ( >=net-nds/openldap-2.0.25:= )
|
||||
mysql? ( || (
|
||||
dev-db/mariadb-connector-c
|
||||
dev-db/mysql-connector-c
|
||||
) )
|
||||
pam? ( sys-libs/pam )
|
||||
postgres? ( dev-db/postgresql:= )
|
||||
ssl? (
|
||||
>=dev-libs/openssl-0.9.6g:0=[-bindist(-)]
|
||||
)
|
||||
sysquota? ( sys-fs/quota[-rpc] )
|
||||
xinetd? ( virtual/inetd )"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
net-ftp/ftpbase
|
||||
selinux? ( sec-policy/selinux-ftp )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.0.28-pam.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
[[ "${PV}" == 9999 ]] && eautoreconf
|
||||
}
|
||||
|
||||
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"
|
||||
|
||||
# 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
|
||||
|
||||
local myeconfargs=(
|
||||
--enable-largefile
|
||||
# Required for correct pid file location.
|
||||
# pure-ftpd appends "/run/pure-ftpd.pid" to the localstatedir
|
||||
# path, and tries to write to that file even when being
|
||||
# started in foreground. So we need to pin this to /
|
||||
--localstatedir="${EPREFIX}"/
|
||||
--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
|
||||
$(use_with ldap)
|
||||
$(use_with mysql)
|
||||
$(use_with pam)
|
||||
$(use_with paranoidmsg)
|
||||
$(use_with postgres pgsql)
|
||||
$(use_with ssl tls)
|
||||
$(use_with implicittls)
|
||||
$(use_with vchroot virtualchroot)
|
||||
$(use_with sysquota sysquotas)
|
||||
$(usex caps '' '--without-capabilities')
|
||||
$(usex noiplog '--without-iplogging' '')
|
||||
$(usex xinetd '' '--without-inetd')
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local DOCS=( AUTHORS ChangeLog FAQ HISTORY README* NEWS )
|
||||
|
||||
default
|
||||
|
||||
newinitd "${FILESDIR}/pure-ftpd.rc11" ${PN}
|
||||
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
|
||||
|
||||
keepdir /var/lib/run/${PN}
|
||||
|
||||
if use xinetd ; then
|
||||
insinto /etc/xinetd.d
|
||||
newins "${FILESDIR}/pure-ftpd.xinetd" ${PN}
|
||||
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
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user