summaryrefslogtreecommitdiff
path: root/net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild')
-rw-r--r--net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild116
1 files changed, 116 insertions, 0 deletions
diff --git a/net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild b/net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild
new file mode 100644
index 000000000000..707069d713d6
--- /dev/null
+++ b/net-ftp/vsftpd/vsftpd-3.0.5-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+DESCRIPTION="Very Secure FTP Daemon"
+HOMEPAGE="https://security.appspot.com/vsftpd.html"
+SRC_URI="https://security.appspot.com/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="elibc_musl pam ssl tcpd"
+
+DEPEND="
+ >=sys-libs/libcap-2
+ pam? ( sys-libs/pam )
+ !pam? ( virtual/libcrypt:= )
+ ssl? ( dev-libs/openssl:0= )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+"
+
+RDEPEND="${DEPEND}
+ net-ftp/ftpbase
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}"/vsftpd-2.3.2-kerberos.patch
+ "${FILESDIR}"/vsftpd-3.0.2-alpha.patch
+ "${FILESDIR}"/vsftpd-3.0.3-sparc.patch
+ "${FILESDIR}"/vsftpd-3.0.5-seccomp.patch
+ )
+ default
+}
+
+define() {
+ sed -i -e "/#undef $2/c#define $2${3:+ }$3" "$1" || die
+}
+
+undef() {
+ sed -i -e "/#define $2/c#undef $2" "$1" || die
+}
+
+src_configure() {
+ libs=( -lcap )
+
+ if use pam; then
+ libs+=( -lpam )
+ else
+ undef builddefs.h VSF_BUILD_PAM
+ libs+=( -lcrypt )
+ fi
+
+ if use ssl; then
+ define builddefs.h VSF_BUILD_SSL
+ libs+=( -lcrypto -lssl )
+ fi
+
+ if use tcpd; then
+ define builddefs.h VSF_BUILD_TCPWRAPPERS
+ libs+=( -lwrap )
+ fi
+
+ if use elibc_musl; then
+ # musl does not support utmp/wtmp
+ # https://bugs.gentoo.org/713952
+ undef sysdeputil.c VSF_SYSDEP_HAVE_UTMPX
+ fi
+}
+
+src_compile() {
+ local args=(
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ LIBS="${libs[*]}"
+ LINK=
+ )
+ emake "${args[@]}"
+}
+
+src_install() {
+ into /usr
+ dosbin vsftpd
+
+ doman vsftpd.conf.5 vsftpd.8
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/vsftpd.logrotate vsftpd
+
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/vsftpd.xinetd vsftpd
+
+ newinitd "${FILESDIR}"/vsftpd.init-3.0.5 vsftpd
+
+ systemd_newunit "${FILESDIR}"/vsftpd.service-3.0.5 vsftpd.service
+ systemd_newunit "${FILESDIR}"/vsftpd_at.service-3.0.5 vsftpd@.service
+ systemd_dounit "${FILESDIR}"/vsftpd.socket
+
+ keepdir /usr/share/empty
+
+ dodoc vsftpd.conf
+ dodoc -r EXAMPLE SECURITY
+
+ einstalldocs
+}
+
+pkg_preinst() {
+ if [[ ! -e ${EROOT}/etc/vsftpd.conf && -e ${EROOT}/etc/vsftpd/vsftpd.conf ]]; then
+ elog "Moving ${EROOT}/etc/vsftpd/vsftpd.conf to ${EROOT}/etc/vsftpd.conf"
+ mv "${EROOT}"/etc/{vsftpd/,}vsftpd.conf || die
+ fi
+}