diff --git a/net-ftp/proftpd/Manifest b/net-ftp/proftpd/Manifest index c046a78a2835b..1ae42b349b45b 100644 --- a/net-ftp/proftpd/Manifest +++ b/net-ftp/proftpd/Manifest @@ -3,13 +3,7 @@ DIST mod_diskuse-0.9.1.tar.gz 72314 BLAKE2B e80d196cd1d7ca2defed7baf9bc2d31ac85b DIST mod_gss-1.3.9.tar.gz 117158 BLAKE2B f957fa465f9a9b06ceb9c190ab60c7f67fdeeef79dce7f51bcfed8dc726cb01a231232c65821ca3a240b77a5019fa22f31b45496c128a06627bd24dc960b566f SHA512 44615983b0f67939b110e54c4a83b3056263bad72ba78de1b16f9f8590f5504c60e679f55484708d49e694c528d4715d9abd0cb75cfe439982ea9e02e0c18891 DIST mod_msg-0.5.1.tar.gz 9689 BLAKE2B fc0cbcfa341c6339be4b064db9ea8860da91c22eeee91c77fd03581e49ebbce3fcd3a27a17da85d782286c6d329e12e7237ee7cbfb70ecc1d4d32bb21f0f74e2 SHA512 729261b151a98bc971c825e88131026725aa4f4fc161adc162af8c4c3c8a457bd981308aea20fe6a1b8711b26c63a17b8d40434ef00bc45504a7c9c2a9cbe4bf DIST mod_vroot-0.9.12.tar.gz 112717 BLAKE2B 60a59539ff9db190432a807f88236e37ab42aea0510903586ff19a00ba9d2e118b58460bdef271f6de8f2b022411484d5fe6610d66552948a9ff459ddda45343 SHA512 a84c14b9d05c4890abe50c86f832c91fa4d0971bc2b1866a3a34d73ff85acd1e902fc0cae739e22ea46e530c73230fb005ea9edeb68fd6cfb963e0c5ca9655ec -DIST mod_vroot-0.9.4.tar.gz 29461 BLAKE2B eb4d3f6425ab0a1a61ca607e4655b5f8ff6ea342ca49d49598e7a4c5596382aa2c1d4e8228a1cdcfff324feb92dac80fcc58e35bbb77155069749afdd7cc41fb SHA512 f5de392c9fe39f0a03b0783a7092bbfe17ea6db991f4b4e4a2d8f092f073d27ef2c64dd6484d5665b5abc808c0caba016d4fc3fab3da3810f5ebe5249bb4cbce -DIST proftpd-1.3.8b.tar.gz 19752808 BLAKE2B 3e8fdf5e0a27dd2284514a446496715e90c15d7be17824cceb4159e930d64705680320b33769f68ab6f3ce152322363aca6301190eea234de0bf4bb0cc6557e1 SHA512 291a91f220d711fefdbff18ef4e056080ad99c94dc4c71d0651f725932e1f2d9438fb75fbc2017e0f30a9a18a354b2d515788fbd538a80414f8c2d4eaaace396 DIST proftpd-1.3.9.tar.gz 19837398 BLAKE2B 30ad60148de79cd4198791ce89dc6c2204c75cb0966f7f17a0fefe25bf4678dd8ea7d373469fbf02f670ae0ca6879f4371ef97a65f4875ad131930d49d800b6f SHA512 5cc53d7909f8b45718509b547aeffaf027cec66b1c34ed9f3a7de1ba561f9ca3d51bb991edb24c8f833bb47e0131619850a4bfd4fec509505769d123e78dc8b3 -DIST proftpd-1.3.9.tar.gz.asc 195 BLAKE2B 521cf7ce628e73e1f25f6673f0c1ae9a17b29990c1c7f04193ba904f401ff30fc19472cc9e41069c537844bc32dae813f8397660a67f37d71e26fd15e2229b25 SHA512 4633b34400e3499d406a0f774904727b9b8fdebf4c6628c164820e3375f3bf7a66bcd88460ffab4e61e54d25d1c28aae676385cf279e2fab90714a819e2727ae DIST proftpd-1.3.9a.tar.gz 19850748 BLAKE2B f024e1f112f326ebe11d1d478af258e43e4d506a01a025b6f6fa4096a19ac44f1913154489c9cd203e906ac9091806e2f2b3869c0db6b094fb960b6e6d3b4092 SHA512 217780522a9366dd16c678ab4ca3de8a6079482a0d68d2f0ab7869d0f8aba4982d0cb0105821f52c8d2fca6f76b3156da70bdbb7d01ac96ad5c16f99f33fdd76 DIST proftpd-1.3.9a.tar.gz.asc 195 BLAKE2B 8b3f7f2fe2cc906d2804247de0b33ace669f6e0d43a99de592aaf82358c322bd42db95c23ae9bb8096702916bc42e639b6a9e8a99f7a1652731889f5a8cb5927 SHA512 6c8c872dea409745b89c5e225a421c67c3f655629d4432d03e7a55c9d4ee7921e43e8cc982743a1b32b5f3ee5e2b04467ea01237005e95cdd7add18749a9c2e4 -DIST proftpd-mod-case-0.7.tar.gz 13184 BLAKE2B bf2118d9b8ed97a5b192b92b515d17ac7a0d75e154288e5afb3a1c3d686e635093df9501cc1c9b077f87c14326e31e8b9f751803dfca1eae9643f12333eb633f SHA512 c08d13ef82fec36ae75aa3213dd02e0ce4045904849f422e152f039a9da66a45e4423751074b8bcf8ce347a40ce0e7bde798a85cbadc962fd872aeaa898261fc -DIST proftpd-mod-diskuse-0.9.tar.gz 18596 BLAKE2B 38c704c8607f0f93b080e77fe793cfe0125c88acc6f818ecb059c6c21a983e040ff5f2c1b91e34ef4ba2666a808d896018c364d1f12ea38f0c477e79bdaa2120 SHA512 d41976bf2810e4b783e775e8c767ca2030c3b5df116219fd31cbbac7feaf9922c315bf4ea092881b0d6cf43f2f4c5dbcae61be3c3a833058d12f962a3024b975 -DIST proftpd-mod-msg-0.4.1.tar.gz 8082 BLAKE2B 970b46b19d25bac22ecb01495270a523997a0b7d5b53b9470b4744b919adcf03d5bcee2df85ba88c4a4c20a9fc30dc01459ffb58c5dae8e78a52a7379bf36f11 SHA512 38ea63b1d355e1e10a6a4477596bf3fa28529a871c9fb8dbf093b5317f0743ef9cb59b986d0b8c1c7ed932dad5d5d571883d596fad2d3b793431824db4487012 DIST proftpd-mod_clamav-0.14rc2.tar.gz 19710 BLAKE2B 3435e198cf029337904d4666910414124a3b7e1529d4b12f7acd8a9be563009fff4d9a30eb132a2d7361d2c830e5601c4a00a8814282585b6915e991cc29bc13 SHA512 b8e56880fadf36513215fa4c20be6db7cdf1274337072a9b29c3c3477b3de4743ebcdb1179572ec4cb1501fac0064330c855b1f818bf0cc52f0e91170f059772 diff --git a/net-ftp/proftpd/files/proftpd-1.3.6_rc4-msg-refresh-api.patch b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-msg-refresh-api.patch deleted file mode 100644 index 2e90be254cb6d..0000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.6_rc4-msg-refresh-api.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/mod_msg.c b/mod_msg.c -index 70bce69..4ce6bd7 100644 ---- a/mod_msg.c -+++ b/mod_msg.c -@@ -52,10 +52,14 @@ extern pid_t mpid; - - module msg_module; - --#ifndef USE_CTRLS -+#ifndef PR_USE_CTRLS - # error "mod_msg requires Controls support (--enable-ctrls)" - #endif /* USE_CTRLS */ - -+#define pr_scoreboard_read_entry pr_scoreboard_entry_read -+#define DECLINED PR_DECLINED -+#define HANDLED PR_HANDLED -+ - static ctrls_acttab_t msg_acttab[]; - - static int msg_engine = FALSE; -@@ -709,7 +713,7 @@ static int msg_handle_msg(pr_ctrls_t *ctrl, int reqargc, char **reqargv) { - if (msg_send_msg(score->sce_pid, msgstr) < 0) { - msg_errno = errno; - (void) pr_log_writefile(msg_logfd, MOD_MSG_VERSION, -- "error sending message to all (pid %u): %s", reqargv[1], -+ "error sending message to all (pid %u): %s", - score->sce_pid, strerror(errno)); - - } else diff --git a/net-ftp/proftpd/files/proftpd-1.3.6_rc4-vroot-refresh-api.patch b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-vroot-refresh-api.patch deleted file mode 100644 index 59b96ce90027c..0000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.6_rc4-vroot-refresh-api.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/mod_vroot.c b/mod_vroot.c -index b0ce59a..db0df35 100644 ---- a/mod_vroot.c -+++ b/mod_vroot.c -@@ -1515,7 +1515,7 @@ MODRET set_vrootserverroot(cmd_rec *cmd) { - */ - - pathlen = strlen(cmd->argv[1]); -- if (cmd->argv[1][pathlen - 1] != '/') { -+ if (((char*)cmd->argv[1])[pathlen - 1] != '/') { - c->argv[0] = pstrcat(c->pool, cmd->argv[1], "/", NULL); - - } else { -@@ -1648,7 +1648,9 @@ MODRET vroot_pre_pass(cmd_rec *cmd) { - fs->rename = vroot_rename; - fs->unlink = vroot_unlink; - fs->open = vroot_open; -+#if ! PROFTPD_VERSION_NUMBER >= 0x0001030604 - fs->creat = vroot_creat; -+#endif /* before ProFTPD 1.3.6_rc4 */ - fs->link = vroot_link; - fs->readlink = vroot_readlink; - fs->symlink = vroot_symlink; diff --git a/net-ftp/proftpd/files/proftpd-1.3.8-configure-clang16.patch b/net-ftp/proftpd/files/proftpd-1.3.8-configure-clang16.patch deleted file mode 100644 index c44fd72262d22..0000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.8-configure-clang16.patch +++ /dev/null @@ -1,255 +0,0 @@ -https://bugs.gentoo.org/881709 (and dupe https://bugs.gentoo.org/900066) -https://github.com/proftpd/proftpd/pull/1667 - -From 98e46de3093da71121362d5be4c445a3ef227010 Mon Sep 17 00:00:00 2001 -From: Arjun Shankar -Date: Fri, 5 May 2023 15:35:56 +0200 -Subject: [PATCH] configure: Remove several implicit function declarations - -During configure, some checks omit the corresponding include. A compiler -defaulting to C99 mode could cause those checks to fail since C99 does -not allow implicit function declarations. This commit fixes the same. -The configure script is re-generated. - -Signed-off-by: Arjun Shankar ---- a/configure -+++ b/configure -@@ -18305,6 +18305,20 @@ _ACEOF - fi - - -+for ac_header in stddef.h crypt.h netdb.h arpa/inet.h sys/socket.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standalone crypt" >&5 - $as_echo_n "checking for standalone crypt... " >&6; } - if ${pr_cv_lib_standalone_crypt+:} false; then : -@@ -18313,10 +18327,19 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_CRYPT_H -+ # include -+ #endif -+ - int - main () - { --crypt(); -+ -+ crypt(NULL, NULL); -+ - ; - return 0; - } -@@ -18388,10 +18411,19 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_NETDB_H -+ # include -+ #endif -+ - int - main () - { --gethostbyname(); -+ -+ gethostbyname(NULL); -+ - ; - return 0; - } -@@ -18508,10 +18540,19 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_ARPA_INET_H -+ # include -+ #endif -+ - int - main () - { --inet_aton(); -+ -+ inet_aton(NULL, NULL); -+ - ; - return 0; - } -@@ -18584,10 +18625,16 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #if HAVE_NETDB_H -+ # include -+ #endif -+ - int - main () - { --gethostent(); -+ -+ gethostent(); -+ - ; - return 0; - } -@@ -18659,10 +18706,19 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_SYS_SOCKET_H -+ # include -+ #endif -+ - int - main () - { --bind(); -+ -+ bind(0, NULL, 0); -+ - ; - return 0; - } ---- a/configure.in -+++ b/configure.in -@@ -1476,18 +1476,42 @@ AC_ARG_ENABLE(transfer-buffer-size, - ]) - - dnl Checks for libraries. Yes, this is the hard way, but it's necessary. -+AC_CHECK_HEADERS(stddef.h crypt.h netdb.h arpa/inet.h sys/socket.h) -+ - AC_CACHE_CHECK(for standalone crypt,pr_cv_lib_standalone_crypt, -- AC_TRY_LINK(,[crypt();], -- pr_cv_lib_standalone_crypt="yes", pr_cv_lib_standalone_crypt="no" )) -+ AC_TRY_LINK( -+ [ -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_CRYPT_H -+ # include -+ #endif -+ ], -+ [ -+ crypt(NULL, NULL); -+ ], -+ pr_cv_lib_standalone_crypt="yes", pr_cv_lib_standalone_crypt="no" )) - - if test "$pr_cv_lib_standalone_crypt" = "no"; then - AC_CHECK_LIB(crypt, crypt) - fi - - AC_CACHE_CHECK(for standalone gethostbyname,pr_cv_lib_standalone_gethost, -- AC_TRY_LINK(,[gethostbyname();], -- pr_cv_lib_standalone_gethost="yes", -- pr_cv_lib_standalone_gethost="no" )) -+ AC_TRY_LINK( -+ [ -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_NETDB_H -+ # include -+ #endif -+ ], -+ [ -+ gethostbyname(NULL); -+ ], -+ pr_cv_lib_standalone_gethost="yes", -+ pr_cv_lib_standalone_gethost="no" )) - - if test "$pr_cv_lib_standalone_gethost" = "no"; then - AC_CHECK_LIB(resolv, gethostbyname) -@@ -1495,25 +1519,57 @@ if test "$pr_cv_lib_standalone_gethost" = "no"; then - fi - - AC_CACHE_CHECK(for standalone inet_aton,pr_cv_lib_standalone_aton, -- AC_TRY_LINK(,[inet_aton();], -- pr_cv_lib_standalone_aton="yes", -- pr_cv_lib_standalone_aton="no" )) -+ AC_TRY_LINK( -+ [ -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_ARPA_INET_H -+ # include -+ #endif -+ ], -+ [ -+ inet_aton(NULL, NULL); -+ ], -+ pr_cv_lib_standalone_aton="yes", -+ pr_cv_lib_standalone_aton="no" )) - - if test "$pr_cv_lib_standalone_aton" = "no"; then - AC_CHECK_LIB(bind, inet_aton) - fi - - AC_CACHE_CHECK(for standalone nsl functions,pr_cv_lib_standalone_nsl,[ -- AC_TRY_LINK(,[gethostent();], -- pr_cv_lib_standalone_nsl="yes", pr_cv_lib_standalone_nsl="no") ]) -+ AC_TRY_LINK( -+ [ -+ #if HAVE_NETDB_H -+ # include -+ #endif -+ ], -+ [ -+ gethostent(); -+ ], -+ pr_cv_lib_standalone_nsl="yes", -+ pr_cv_lib_standalone_nsl="no") ]) - - if test "$pr_cv_lib_standalone_nsl" = "no"; then - AC_CHECK_LIB(nsl, gethostent) - fi - - AC_CACHE_CHECK(for standalone socket functions,pr_cv_lib_standalone_sockets, -- AC_TRY_LINK(,[bind();], -- pr_cv_lib_standalone_sockets="yes", pr_cv_lib_standalone_sockets="no")) -+ AC_TRY_LINK( -+ [ -+ #if HAVE_STDDEF_H -+ # include -+ #endif -+ #if HAVE_SYS_SOCKET_H -+ # include -+ #endif -+ ], -+ [ -+ bind(0, NULL, 0); -+ ], -+ pr_cv_lib_standalone_sockets="yes", -+ pr_cv_lib_standalone_sockets="no")) - - if test "$pr_cv_lib_standalone_sockets" = "no"; then - AC_CHECK_LIB(socket, bind) - diff --git a/net-ftp/proftpd/files/proftpd-1.3.8a-configure-c99.patch b/net-ftp/proftpd/files/proftpd-1.3.8a-configure-c99.patch deleted file mode 100644 index 9364b23f0daa1..0000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.8a-configure-c99.patch +++ /dev/null @@ -1,34 +0,0 @@ -https://github.com/proftpd/proftpd/pull/1754 - -From 020192499202f268e6d96339597921aec01ec737 Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Fri, 8 Dec 2023 19:58:51 +0100 -Subject: [PATCH] configure: Use char ** for the iconv input argument - -The standard iconv function uses char ** even for the input buffer. -Using the incompatible const char ** type causes the check to fail if -the compiler treats such type errors as errors, instead of merely -warning about it. ---- a/configure -+++ b/configure -@@ -21475,7 +21475,7 @@ main () - { - - size_t res, in_len = 0, out_len = 0; -- const char *in = NULL; -+ char *in = NULL; - char *out = NULL; - res = iconv((iconv_t)-1, &in, &in_len, &out, &out_len); - ---- a/configure.in -+++ b/configure.in -@@ -2100,7 +2100,7 @@ AC_TRY_LINK( - ], - [ - size_t res, in_len = 0, out_len = 0; -- const char *in = NULL; -+ char *in = NULL; - char *out = NULL; - res = iconv((iconv_t)-1, &in, &in_len, &out, &out_len); - ], - diff --git a/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf b/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf deleted file mode 100644 index 26ad04256b43d..0000000000000 --- a/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf +++ /dev/null @@ -1 +0,0 @@ -d /var/run/proftpd 0755 root root diff --git a/net-ftp/proftpd/files/proftpd.initd b/net-ftp/proftpd/files/proftpd.initd deleted file mode 100644 index a7ab650e11056..0000000000000 --- a/net-ftp/proftpd/files/proftpd.initd +++ /dev/null @@ -1,51 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -extra_started_commands="reload" - -depend() { - need net - use logger dns mysql postgresql antivirus -} - -check_configuration() { - if [ ! -e /etc/proftpd/proftpd.conf ] ; then - eerror "To execute the ProFTPD server you need a /etc/proftpd/proftpd.conf configuration" - eerror "file. In /etc/proftpd you can find a sample configuration." - return 1 - fi - /usr/sbin/proftpd -t &>/dev/null - if [ $? -ne 0 ] ; then - eerror "The ProFTPD configuration file /etc/proftpd/proftpd.conf is invalid! You have to" - eerror "fix your configuration in order to run the ProFTPD server. For more information" - eerror "you may execute the ProFTPD configuration check '/usr/sbin/proftpd -t'." - return 2 - fi -} - -start() { - checkpath -d /var/run/proftpd - [ "${RC_CMD}" = "restart" ] || check_configuration || return 1 - ebegin "Starting ProFTPD" - start-stop-daemon --start --quiet \ - --exec /usr/sbin/proftpd \ - --pidfile /var/run/proftpd/proftpd.pid - eend $? -} - -stop() { - [ "${RC_CMD}" != "restart" ] || check_configuration || return 1 - ebegin "Stopping ProFTPD" - start-stop-daemon --stop --quiet --retry 20 \ - --pidfile /var/run/proftpd/proftpd.pid - eend $? -} - -reload() { - check_configuration || return 1 - ebegin "Reloading ProFTPD" - start-stop-daemon --quiet --signal HUP \ - --pidfile /var/run/proftpd/proftpd.pid - eend $? -} diff --git a/net-ftp/proftpd/proftpd-1.3.8b-r1.ebuild b/net-ftp/proftpd/proftpd-1.3.8b-r1.ebuild deleted file mode 100644 index f7e76387eb165..0000000000000 --- a/net-ftp/proftpd/proftpd-1.3.8b-r1.ebuild +++ /dev/null @@ -1,305 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib systemd tmpfiles toolchain-funcs - -MOD_CASE="0.7" -MOD_CLAMAV="0.14rc2" -MOD_DISKUSE="0.9" -MOD_GSS="1.3.9" -MOD_MSG="0.4.1" -MOD_VROOT="0.9.4" - -DESCRIPTION="An advanced and very configurable FTP server" -HOMEPAGE=" - http://www.proftpd.org/ - http://www.castaglia.org/proftpd/ - https://github.com/jbenden/mod_clamav - http://gssmod.sourceforge.net/ -" -SRC_URI=" - ftp://ftp.proftpd.org/distrib/source/${P/_/}.tar.gz - case? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-case-${MOD_CASE}.tar.gz ) - clamav? ( https://github.com/jbenden/mod_clamav/archive/v${MOD_CLAMAV}.tar.gz -> ${PN}-mod_clamav-${MOD_CLAMAV}.tar.gz ) - diskuse? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-diskuse-${MOD_DISKUSE}.tar.gz ) - kerberos? ( https://downloads.sourceforge.net/gssmod/mod_gss-${MOD_GSS}.tar.gz ) - msg? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-msg-${MOD_MSG}.tar.gz ) - vroot? ( https://github.com/Castaglia/${PN}-mod_vroot/archive/v${MOD_VROOT}.tar.gz -> mod_vroot-${MOD_VROOT}.tar.gz ) -" -S="${WORKDIR}/${P/_/}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" -IUSE="acl authfile ban +caps case clamav copy ctrls deflate diskuse dso dynmasq exec ifsession ifversion ident ipv6 - kerberos ldap log-forensic memcache msg mysql ncurses nls pam +pcre postgres qos radius - ratio readme rewrite selinux sftp shaper sitemisc snmp sodium softquota sqlite ssl tcpd test unique-id vroot" -# Some tests are ran in chroot. Confuses sandbox. -RESTRICT="test" -# TODO: geoip -REQUIRED_USE=" - ban? ( ctrls ) - msg? ( ctrls ) - sftp? ( ssl ) - shaper? ( ctrls ) - - mysql? ( ssl ) - postgres? ( ssl ) - sqlite? ( ssl ) -" - -COMMON_DEPEND=" - virtual/libcrypt:= - net-dns/libidn:0= - acl? ( virtual/acl ) - caps? ( sys-libs/libcap ) - clamav? ( app-antivirus/clamav ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - memcache? ( >=dev-libs/libmemcached-0.41 ) - mysql? ( dev-db/mysql-connector-c:0= ) - nls? ( virtual/libiconv ) - ncurses? ( sys-libs/ncurses:0= ) - ssl? ( dev-libs/openssl:0= ) - pam? ( sys-libs/pam ) - pcre? ( dev-libs/libpcre ) - postgres? ( dev-db/postgresql:= ) - sodium? ( dev-libs/libsodium:0= ) - sqlite? ( dev-db/sqlite:3 ) -" -DEPEND=" - ${COMMON_DEPEND} - test? ( dev-libs/check ) -" -RDEPEND=" - ${COMMON_DEPEND} - net-ftp/ftpbase - selinux? ( sec-policy/selinux-ftp ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.3.6-use-trace.patch - "${FILESDIR}"/${PN}-1.3.8-configure-clang16.patch - "${FILESDIR}"/${PN}-1.3.8a-configure-c99.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # AIX only - authenticate - loginfailed - loginsuccess - - # Deprecated/removed functions, not actually checking for this anyway - SSLeay_add_all_algorithms - # Test isn't actually checking for BIO_f_zlib - BIO_f_zlib -) - -in_dir() { - pushd "${WORKDIR}/${1}" || die - shift - "$@" - popd -} - -src_prepare() { - # Skip 'install-conf' / Support LINGUAS - sed -i -e "/install-all/s/ install-conf//" Makefile.in || die - sed -i -e "s/^LANGS=.*$/LANGS=${LINGUAS}/" locale/Makefile.in || die - - # Prepare external modules - if use case; then - cp -v "${WORKDIR}"/mod_case/mod_case.c contrib || die - cp -v "${WORKDIR}"/mod_case/mod_case.html doc/contrib || die - fi - - if use clamav ; then - cp -v "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/mod_clamav.{c,h} contrib || die - eapply -p0 "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/001-add-mod_clamav-to-tests.patch - fi - - if use diskuse; then - in_dir mod_diskuse eapply "${FILESDIR}"/${PN}-1.3.6_rc4-diskuse-refresh-api.patch - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/mod_diskuse/mod_diskuse.h "${S}"/contrib || die - - cp -v "${WORKDIR}"/mod_diskuse/mod_diskuse.c "${S}"/contrib || die - cp -v "${WORKDIR}"/mod_diskuse/mod_diskuse.html "${S}"/doc/contrib || die - fi - - if use msg; then - in_dir mod_msg eapply "${FILESDIR}"/${PN}-1.3.6_rc4-msg-refresh-api.patch - - cp -v "${WORKDIR}"/mod_msg/mod_msg.c contrib || die - cp -v "${WORKDIR}"/mod_msg/mod_msg.html doc/contrib || die - fi - - if use vroot; then - in_dir ${PN}-mod_vroot-${MOD_VROOT} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-vroot-refresh-api.patch - - cp -v "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT}/mod_vroot.c contrib || die - cp -v "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT}/mod_vroot.html doc/contrib || die - fi - - if use kerberos ; then - # in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-gss-refresh-api.patch - - # Support app-crypt/heimdal / Gentoo Bug #284853 - sed -i -e "s/krb5_principal2principalname/_\0/" "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c.in || die - - # Remove obsolete DES / Gentoo Bug #324903 - # Replace 'rpm' lookups / Gentoo Bug #391021 - sed -i -e "/ac_gss_libs/s/ -ldes425//" \ - -e "s/ac_libdir=\`rpm -q -l.*$/ac_libdir=\/usr\/$(get_libdir)\//" \ - -e "s/ac_includedir=\`rpm -q -l.*$/ac_includedir=\/usr\/include\//" "${WORKDIR}"/mod_gss-${MOD_GSS}/configure{,.ac} || die - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.h "${S}"/include || die - - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/README.mod_{auth_gss,gss} "${S}" || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.html "${S}"/doc/contrib || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/rfc{1509,2228}.txt "${S}"/doc/rfc || die - fi - - default - - tc-export CC -} - -src_configure() { - local c m - - use acl && m="${m}:mod_facl" - use ban && m="${m}:mod_ban" - use case && m="${m}:mod_case" - use clamav && m="${m}:mod_clamav" - use copy && m="${m}:mod_copy" - use ctrls && m="${m}:mod_ctrls_admin" - use deflate && m="${m}:mod_deflate" - if use diskuse ; then - in_dir mod_diskuse econf - m="${m}:mod_diskuse" - fi - use dynmasq && m="${m}:mod_dynmasq" - use exec && m="${m}:mod_exec" - use ifsession && m="${m}:mod_ifsession" - use ifversion && m="${m}:mod_ifversion" - if use kerberos ; then - in_dir mod_gss-${MOD_GSS} econf - m="${m}:mod_gss:mod_auth_gss" - fi - use ldap && m="${m}:mod_ldap" - use log-forensic && m="${m}:mod_log_forensic" - use msg && m="${m}:mod_msg" - if use mysql || use postgres || use sqlite ; then - m="${m}:mod_sql:mod_sql_passwd" - use mysql && m="${m}:mod_sql_mysql" - use postgres && m="${m}:mod_sql_postgres" - use sqlite && m="${m}:mod_sql_sqlite" - fi - use qos && m="${m}:mod_qos" - use radius && m="${m}:mod_radius" - use ratio && m="${m}:mod_ratio" - use readme && m="${m}:mod_readme" - use rewrite && m="${m}:mod_rewrite" - if use sftp ; then - m="${m}:mod_sftp" - use pam && m="${m}:mod_sftp_pam" - use mysql || use postgres || use sqlite && m="${m}:mod_sftp_sql" - fi - use shaper && m="${m}:mod_shaper" - use sitemisc && m="${m}:mod_site_misc" - use snmp && m="${m}:mod_snmp" - if use softquota ; then - m="${m}:mod_quotatab:mod_quotatab_file" - use ldap && m="${m}:mod_quotatab_ldap" - use radius && m="${m}:mod_quotatab_radius" - use mysql || use postgres || use sqlite && m="${m}:mod_quotatab_sql" - fi - if use ssl ; then - m="${m}:mod_tls:mod_tls_shmcache" - use memcache && m="${m}:mod_tls_memcache" - fi - if use tcpd ; then - m="${m}:mod_wrap2:mod_wrap2_file" - use mysql || use postgres || use sqlite && m="${m}:mod_wrap2_sql" - fi - use unique-id && m="${m}:mod_unique_id" - use vroot && m="${m}:mod_vroot" - - if [[ -n ${PROFTP_CUSTOM_MODULES} ]]; then - einfo "Adding user-specified extra modules: '${PROFTP_CUSTOM_MODULES}'" - m="${m}:${PROFTP_CUSTOM_MODULES}" - fi - - [[ -z ${m} ]] || c="${c} --with-modules=${m:1}" - - local myeconfargs=( - --cache-file="${S}"/config.cache - --localstatedir=/run/proftpd - --sysconfdir=/etc/proftpd - --disable-strip - $(use_enable acl facl) - $(use_enable authfile auth-file) - $(use_enable caps cap) - $(use_enable ctrls) - $(use_enable dso) - $(use_enable ident) - $(use_enable ipv6) - $(use_enable memcache) - $(use_enable ncurses) - $(use_enable nls) - $(use_enable ssl openssl) - $(use_enable pam auth-pam) - $(use_enable pcre) - $(use_enable sodium) - $(use_enable test tests) - --enable-trace - --enable-shadow - --enable-autoshadow - ${c:1} - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - emake api-tests -C tests -} - -src_install() { - default - [[ -z ${LINGUAS-set} ]] && rm -r "${ED}"/usr/share/locale - rm -rf "${ED}"/run "${ED}"/var/run - - newinitd "${FILESDIR}"/proftpd.initd-r1 proftpd - insinto /etc/proftpd - doins "${FILESDIR}"/proftpd.conf.sample - - insinto /etc/xinetd.d - newins "${FILESDIR}"/proftpd.xinetd proftpd - - insinto /etc/logrotate.d - newins "${FILESDIR}"/${PN}.logrotate ${PN} - - dodoc ChangeLog CREDITS INSTALL NEWS README* RELEASE_NOTES - - docinto html - dodoc doc/*.html doc/contrib/*.html doc/howto/*.html doc/modules/*.html - - docinto rfc - dodoc doc/rfc/*.txt - - systemd_dounit "${FILESDIR}"/${PN}.service - newtmpfiles "${FILESDIR}"/${PN}-tmpfiles.d.conf-r1 ${PN}.conf -} - -pkg_postinst() { - # Create /var/run files at package merge time: bug #650000 - tmpfiles_process ${PN}.conf -} diff --git a/net-ftp/proftpd/proftpd-1.3.9-r1.ebuild b/net-ftp/proftpd/proftpd-1.3.9-r1.ebuild deleted file mode 100644 index 646823db4d88b..0000000000000 --- a/net-ftp/proftpd/proftpd-1.3.9-r1.ebuild +++ /dev/null @@ -1,302 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd tmpfiles toolchain-funcs - -MOD_CASE="0.9.1" -MOD_CLAMAV="0.14rc2" -MOD_DISKUSE="0.9.1" -MOD_GSS="1.3.9" -MOD_MSG="0.5.1" -MOD_VROOT="0.9.12" - -DESCRIPTION="An advanced and very configurable FTP server" -HOMEPAGE=" - http://www.proftpd.org/ - http://www.castaglia.org/proftpd/ - https://github.com/jbenden/mod_clamav - https://gssmod.sourceforge.net/ -" -SRC_URI=" - ftp://ftp.proftpd.org/distrib/source/${P/_/}.tar.gz - case? ( https://github.com/Castaglia/${PN}-mod_case/archive/v${MOD_CASE}.tar.gz -> mod_case-${MOD_CASE}.tar.gz ) - clamav? ( https://github.com/jbenden/mod_clamav/archive/v${MOD_CLAMAV}.tar.gz -> ${PN}-mod_clamav-${MOD_CLAMAV}.tar.gz ) - diskuse? ( https://github.com/Castaglia/${PN}-mod_diskuse/archive/v${MOD_DISKUSE}.tar.gz -> mod_diskuse-${MOD_DISKUSE}.tar.gz ) - kerberos? ( https://downloads.sourceforge.net/gssmod/mod_gss-${MOD_GSS}.tar.gz ) - msg? ( https://github.com/Castaglia/${PN}-mod_msg/archive/v${MOD_MSG}.tar.gz -> mod_msg-${MOD_MSG}.tar.gz ) - vroot? ( https://github.com/Castaglia/${PN}-mod_vroot/archive/v${MOD_VROOT}.tar.gz -> mod_vroot-${MOD_VROOT}.tar.gz ) -" -S="${WORKDIR}/${P/_/}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" -IUSE="acl authfile ban +caps case clamav copy ctrls deflate diskuse dso dynmasq exec ifsession ifversion ident - kerberos ldap log-forensic memcache msg mysql ncurses nls pam +pcre postgres qos radius - ratio readme rewrite selinux sftp shaper sitemisc snmp sodium softquota sqlite ssl tcpd test unique-id vroot" -# Some tests are ran in chroot. Confuses sandbox. -RESTRICT="test" -# TODO: geoip -REQUIRED_USE=" - ban? ( ctrls ) - msg? ( ctrls ) - sftp? ( ssl ) - shaper? ( ctrls ) - - mysql? ( ssl ) - postgres? ( ssl ) - sqlite? ( ssl ) -" - -COMMON_DEPEND=" - virtual/libcrypt:= - net-dns/libidn:0= - acl? ( virtual/acl ) - caps? ( sys-libs/libcap ) - clamav? ( app-antivirus/clamav ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - memcache? ( >=dev-libs/libmemcached-0.41 ) - mysql? ( dev-db/mysql-connector-c:0= ) - nls? ( virtual/libiconv ) - ncurses? ( sys-libs/ncurses:0= ) - ssl? ( dev-libs/openssl:0= ) - pam? ( sys-libs/pam ) - pcre? ( dev-libs/libpcre ) - postgres? ( dev-db/postgresql:= ) - sodium? ( dev-libs/libsodium:0= ) - sqlite? ( dev-db/sqlite:3 ) -" -DEPEND=" - ${COMMON_DEPEND} - test? ( dev-libs/check ) -" -RDEPEND=" - ${COMMON_DEPEND} - net-ftp/ftpbase - selinux? ( sec-policy/selinux-ftp ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.3.6-use-trace.patch - # https://bugs.gentoo.org/953968 - "${FILESDIR}"/${PN}-1.3.9-slibtool.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # AIX only - authenticate - loginfailed - loginsuccess - - # Deprecated/removed functions, not actually checking for this anyway - SSLeay_add_all_algorithms - # Test isn't actually checking for BIO_f_zlib - BIO_f_zlib -) - -in_dir() { - pushd "${WORKDIR}/${1}" || die - shift - "$@" - popd -} - -src_prepare() { - # Skip 'install-conf' / Support LINGUAS - sed -i -e "/install-all/s/ install-conf//" Makefile.in || die - sed -i -e "s/^LANGS=.*$/LANGS=${LINGUAS}/" locale/Makefile.in || die - - # Prepare external modules - if use case; then - cp -v "${WORKDIR}"/${PN}-mod_case-${MOD_CASE}/mod_case.c contrib || die - cp -v "${WORKDIR}"/${PN}-mod_case-${MOD_CASE}/mod_case.html doc/contrib || die - fi - - if use clamav ; then - in_dir mod_clamav-${MOD_CLAMAV} eapply "${FILESDIR}"/"${PN}"-1.3.9-clamav-refresh-api.patch - in_dir mod_clamav-${MOD_CLAMAV} eapply "${FILESDIR}"/"${PN}"-1.3.9-clamav-debool.patch - cp -v "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/mod_clamav.{c,h} contrib || die - eapply -p0 "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/001-add-mod_clamav-to-tests.patch - fi - - if use diskuse; then - in_dir ${PN}-mod_diskuse-${MOD_DISKUSE} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-diskuse-refresh-api.patch - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.h "${S}"/contrib || die - - cp -v "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.c "${S}"/contrib || die - cp -v "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.html "${S}"/doc/contrib || die - fi - - if use msg; then - cp -v "${WORKDIR}"/${PN}-mod_msg-${MOD_MSG}/mod_msg.c contrib || die - cp -v "${WORKDIR}"/${PN}-mod_msg-${MOD_MSG}/mod_msg.html doc/contrib || die - fi - - if use vroot; then - cp -rv "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT} contrib/mod_vroot || die - fi - - if use kerberos ; then - # in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-gss-refresh-api.patch - in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.9-gss-refresh-api.patch - - # Support app-crypt/heimdal / Gentoo Bug #284853 - sed -i -e "s/krb5_principal2principalname/_\0/" "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c.in || die - - # Remove obsolete DES / Gentoo Bug #324903 - # Replace 'rpm' lookups / Gentoo Bug #391021 - sed -i -e "/ac_gss_libs/s/ -ldes425//" \ - -e "s/ac_libdir=\`rpm -q -l.*$/ac_libdir=\/usr\/$(get_libdir)\//" \ - -e "s/ac_includedir=\`rpm -q -l.*$/ac_includedir=\/usr\/include\//" "${WORKDIR}"/mod_gss-${MOD_GSS}/configure{,.ac} || die - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.h "${S}"/include || die - - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/README.mod_{auth_gss,gss} "${S}" || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.html "${S}"/doc/contrib || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/rfc{1509,2228}.txt "${S}"/doc/rfc || die - fi - - default - - tc-export CC -} - -src_configure() { - local c m - - use acl && m="${m}:mod_facl" - use ban && m="${m}:mod_ban" - use case && m="${m}:mod_case" - use clamav && m="${m}:mod_clamav" - use copy && m="${m}:mod_copy" - use ctrls && m="${m}:mod_ctrls_admin" - use deflate && m="${m}:mod_deflate" - if use diskuse ; then - in_dir ${PN}-mod_diskuse-${MOD_DISKUSE} econf - m="${m}:mod_diskuse" - fi - use dynmasq && m="${m}:mod_dynmasq" - use exec && m="${m}:mod_exec" - use ifsession && m="${m}:mod_ifsession" - use ifversion && m="${m}:mod_ifversion" - if use kerberos ; then - in_dir mod_gss-${MOD_GSS} econf - m="${m}:mod_gss:mod_auth_gss" - fi - use ldap && m="${m}:mod_ldap" - use log-forensic && m="${m}:mod_log_forensic" - use msg && m="${m}:mod_msg" - if use mysql || use postgres || use sqlite ; then - m="${m}:mod_sql:mod_sql_passwd" - use mysql && m="${m}:mod_sql_mysql" - use postgres && m="${m}:mod_sql_postgres" - use sqlite && m="${m}:mod_sql_sqlite" - fi - use qos && m="${m}:mod_qos" - use radius && m="${m}:mod_radius" - use ratio && m="${m}:mod_ratio" - use readme && m="${m}:mod_readme" - use rewrite && m="${m}:mod_rewrite" - if use sftp ; then - m="${m}:mod_sftp" - use pam && m="${m}:mod_sftp_pam" - use mysql || use postgres || use sqlite && m="${m}:mod_sftp_sql" - fi - use shaper && m="${m}:mod_shaper" - use sitemisc && m="${m}:mod_site_misc" - use snmp && m="${m}:mod_snmp" - if use softquota ; then - m="${m}:mod_quotatab:mod_quotatab_file" - use ldap && m="${m}:mod_quotatab_ldap" - use radius && m="${m}:mod_quotatab_radius" - use mysql || use postgres || use sqlite && m="${m}:mod_quotatab_sql" - fi - if use ssl ; then - m="${m}:mod_tls:mod_tls_shmcache" - use memcache && m="${m}:mod_tls_memcache" - fi - if use tcpd ; then - m="${m}:mod_wrap2:mod_wrap2_file" - use mysql || use postgres || use sqlite && m="${m}:mod_wrap2_sql" - fi - use unique-id && m="${m}:mod_unique_id" - use vroot && m="${m}:mod_vroot" - - if [[ -n ${PROFTP_CUSTOM_MODULES} ]]; then - einfo "Adding user-specified extra modules: '${PROFTP_CUSTOM_MODULES}'" - m="${m}:${PROFTP_CUSTOM_MODULES}" - fi - - [[ -z ${m} ]] || c="${c} --with-modules=${m:1}" - - local myeconfargs=( - --cache-file="${S}"/config.cache - --localstatedir=/run/proftpd - --sysconfdir=/etc/proftpd - --disable-strip - $(use_enable acl facl) - $(use_enable authfile auth-file) - $(use_enable caps cap) - $(use_enable ctrls) - $(use_enable dso) - $(use_enable ident) - $(use_enable memcache) - $(use_enable ncurses) - $(use_enable nls) - $(use_enable ssl openssl) - $(use_enable pam auth-pam) - $(use_enable pcre) - $(use_enable sodium) - $(use_enable test tests) - --enable-trace - --enable-shadow - --enable-autoshadow - ${c:1} - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - emake api-tests -C tests -} - -src_install() { - default - [[ -z ${LINGUAS-set} ]] && rm -r "${ED}"/usr/share/locale - rm -rf "${ED}"/run "${ED}"/var/run - - newinitd "${FILESDIR}"/proftpd.initd-r1 proftpd - insinto /etc/proftpd - doins "${FILESDIR}"/proftpd.conf.sample - - insinto /etc/xinetd.d - newins "${FILESDIR}"/proftpd.xinetd proftpd - - insinto /etc/logrotate.d - newins "${FILESDIR}"/${PN}.logrotate ${PN} - - dodoc ChangeLog CREDITS INSTALL NEWS README* RELEASE_NOTES - - docinto html - dodoc doc/*.html doc/contrib/*.html doc/howto/*.html doc/modules/*.html - - docinto rfc - dodoc doc/rfc/*.txt - - systemd_dounit "${FILESDIR}"/${PN}.service - newtmpfiles "${FILESDIR}"/${PN}-tmpfiles.d.conf-r1 ${PN}.conf -} - -pkg_postinst() { - # Create /var/run files at package merge time: bug #650000 - tmpfiles_process ${PN}.conf -} diff --git a/net-ftp/proftpd/proftpd-1.3.9-r2.ebuild b/net-ftp/proftpd/proftpd-1.3.9-r2.ebuild deleted file mode 100644 index b5aac9e0fc223..0000000000000 --- a/net-ftp/proftpd/proftpd-1.3.9-r2.ebuild +++ /dev/null @@ -1,317 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/proftpd.asc -inherit systemd tmpfiles toolchain-funcs verify-sig - -MOD_CASE="0.9.1" -MOD_CLAMAV="0.14rc2" -MOD_DISKUSE="0.9.1" -MOD_GSS="1.3.9" -MOD_MSG="0.5.1" -MOD_VROOT="0.9.12" - -DESCRIPTION="An advanced and very configurable FTP server" -HOMEPAGE=" - http://www.proftpd.org/ - http://www.castaglia.org/proftpd/ - https://github.com/jbenden/mod_clamav - https://gssmod.sourceforge.net/ -" -SRC_URI=" - ftp://ftp.proftpd.org/distrib/source/${P/_/}.tar.gz - case? ( https://github.com/Castaglia/${PN}-mod_case/archive/v${MOD_CASE}.tar.gz -> mod_case-${MOD_CASE}.tar.gz ) - clamav? ( https://github.com/jbenden/mod_clamav/archive/v${MOD_CLAMAV}.tar.gz -> ${PN}-mod_clamav-${MOD_CLAMAV}.tar.gz ) - diskuse? ( https://github.com/Castaglia/${PN}-mod_diskuse/archive/v${MOD_DISKUSE}.tar.gz -> mod_diskuse-${MOD_DISKUSE}.tar.gz ) - kerberos? ( https://downloads.sourceforge.net/gssmod/mod_gss-${MOD_GSS}.tar.gz ) - msg? ( https://github.com/Castaglia/${PN}-mod_msg/archive/v${MOD_MSG}.tar.gz -> mod_msg-${MOD_MSG}.tar.gz ) - vroot? ( https://github.com/Castaglia/${PN}-mod_vroot/archive/v${MOD_VROOT}.tar.gz -> mod_vroot-${MOD_VROOT}.tar.gz ) - verify-sig? ( ftp://ftp.proftpd.org/distrib/source/${P/_/}.tar.gz.asc ) -" -S="${WORKDIR}/${P/_/}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" -IUSE="acl authfile ban +caps case clamav copy ctrls deflate diskuse dso dynmasq exec ifsession ifversion ident - kerberos ldap log-forensic memcache msg mysql ncurses nls pam +pcre postgres qos radius - ratio readme rewrite selinux sftp shaper sitemisc snmp sodium softquota sqlite ssl tcpd test unique-id vroot" -# Some tests are ran in chroot. Confuses sandbox. -RESTRICT="test" -# TODO: geoip -REQUIRED_USE=" - ban? ( ctrls ) - msg? ( ctrls ) - sftp? ( ssl ) - shaper? ( ctrls ) - - mysql? ( ssl ) - postgres? ( ssl ) - sqlite? ( ssl ) -" - -COMMON_DEPEND=" - virtual/libcrypt:= - net-dns/libidn:0= - acl? ( virtual/acl ) - caps? ( sys-libs/libcap ) - clamav? ( app-antivirus/clamav ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - memcache? ( - || ( - dev-libs/libmemcached-awesome - >=dev-libs/libmemcached-0.41 - ) - ) - mysql? ( dev-db/mysql-connector-c:0= ) - nls? ( virtual/libiconv ) - ncurses? ( sys-libs/ncurses:0= ) - ssl? ( dev-libs/openssl:0= ) - pam? ( sys-libs/pam ) - pcre? ( dev-libs/libpcre ) - postgres? ( dev-db/postgresql:= ) - sodium? ( dev-libs/libsodium:0= ) - sqlite? ( dev-db/sqlite:3 ) -" -DEPEND=" - ${COMMON_DEPEND} - test? ( dev-libs/check ) -" -RDEPEND=" - ${COMMON_DEPEND} - net-ftp/ftpbase - selinux? ( sec-policy/selinux-ftp ) -" -BDEPEND=" - verify-sig? ( sec-keys/openpgp-keys-proftpd ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.3.6-use-trace.patch - # https://bugs.gentoo.org/953968 - "${FILESDIR}"/${PN}-1.3.9-slibtool.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # AIX only - authenticate - loginfailed - loginsuccess - - # Deprecated/removed functions, not actually checking for this anyway - SSLeay_add_all_algorithms - # Test isn't actually checking for BIO_f_zlib - BIO_f_zlib -) - -in_dir() { - pushd "${WORKDIR}/${1}" || die - shift - "$@" - popd -} - -src_unpack() { - use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P/_/}.tar.gz{,.asc} - default -} - -src_prepare() { - # Skip 'install-conf' / Support LINGUAS - sed -i -e "/install-all/s/ install-conf//" Makefile.in || die - sed -i -e "s/^LANGS=.*$/LANGS=${LINGUAS}/" locale/Makefile.in || die - - # Prepare external modules - if use case; then - cp -v "${WORKDIR}"/${PN}-mod_case-${MOD_CASE}/mod_case.c contrib || die - cp -v "${WORKDIR}"/${PN}-mod_case-${MOD_CASE}/mod_case.html doc/contrib || die - fi - - if use clamav ; then - in_dir mod_clamav-${MOD_CLAMAV} eapply "${FILESDIR}"/"${PN}"-1.3.9-clamav-refresh-api.patch - in_dir mod_clamav-${MOD_CLAMAV} eapply "${FILESDIR}"/"${PN}"-1.3.9-clamav-debool.patch - cp -v "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/mod_clamav.{c,h} contrib || die - eapply -p0 "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/001-add-mod_clamav-to-tests.patch - fi - - if use diskuse; then - in_dir ${PN}-mod_diskuse-${MOD_DISKUSE} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-diskuse-refresh-api.patch - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.h "${S}"/contrib || die - - cp -v "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.c "${S}"/contrib || die - cp -v "${WORKDIR}"/${PN}-mod_diskuse-${MOD_DISKUSE}/mod_diskuse.html "${S}"/doc/contrib || die - fi - - if use msg; then - cp -v "${WORKDIR}"/${PN}-mod_msg-${MOD_MSG}/mod_msg.c contrib || die - cp -v "${WORKDIR}"/${PN}-mod_msg-${MOD_MSG}/mod_msg.html doc/contrib || die - fi - - if use vroot; then - cp -rv "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT} contrib/mod_vroot || die - fi - - if use kerberos ; then - # in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-gss-refresh-api.patch - in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.9-gss-refresh-api.patch - - # Support app-crypt/heimdal / Gentoo Bug #284853 - sed -i -e "s/krb5_principal2principalname/_\0/" "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c.in || die - - # Remove obsolete DES / Gentoo Bug #324903 - # Replace 'rpm' lookups / Gentoo Bug #391021 - sed -i -e "/ac_gss_libs/s/ -ldes425//" \ - -e "s/ac_libdir=\`rpm -q -l.*$/ac_libdir=\/usr\/$(get_libdir)\//" \ - -e "s/ac_includedir=\`rpm -q -l.*$/ac_includedir=\/usr\/include\//" "${WORKDIR}"/mod_gss-${MOD_GSS}/configure{,.ac} || die - - # ./configure will modify files. Symlink them instead of copying - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.c "${S}"/contrib || die - ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.h "${S}"/include || die - - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/README.mod_{auth_gss,gss} "${S}" || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.html "${S}"/doc/contrib || die - cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/rfc{1509,2228}.txt "${S}"/doc/rfc || die - fi - - default - - tc-export CC -} - -src_configure() { - local c m - - use acl && m="${m}:mod_facl" - use ban && m="${m}:mod_ban" - use case && m="${m}:mod_case" - use clamav && m="${m}:mod_clamav" - use copy && m="${m}:mod_copy" - use ctrls && m="${m}:mod_ctrls_admin" - use deflate && m="${m}:mod_deflate" - if use diskuse ; then - in_dir ${PN}-mod_diskuse-${MOD_DISKUSE} econf - m="${m}:mod_diskuse" - fi - use dynmasq && m="${m}:mod_dynmasq" - use exec && m="${m}:mod_exec" - use ifsession && m="${m}:mod_ifsession" - use ifversion && m="${m}:mod_ifversion" - if use kerberos ; then - in_dir mod_gss-${MOD_GSS} econf - m="${m}:mod_gss:mod_auth_gss" - fi - use ldap && m="${m}:mod_ldap" - use log-forensic && m="${m}:mod_log_forensic" - use msg && m="${m}:mod_msg" - if use mysql || use postgres || use sqlite ; then - m="${m}:mod_sql:mod_sql_passwd" - use mysql && m="${m}:mod_sql_mysql" - use postgres && m="${m}:mod_sql_postgres" - use sqlite && m="${m}:mod_sql_sqlite" - fi - use qos && m="${m}:mod_qos" - use radius && m="${m}:mod_radius" - use ratio && m="${m}:mod_ratio" - use readme && m="${m}:mod_readme" - use rewrite && m="${m}:mod_rewrite" - if use sftp ; then - m="${m}:mod_sftp" - use pam && m="${m}:mod_sftp_pam" - use mysql || use postgres || use sqlite && m="${m}:mod_sftp_sql" - fi - use shaper && m="${m}:mod_shaper" - use sitemisc && m="${m}:mod_site_misc" - use snmp && m="${m}:mod_snmp" - if use softquota ; then - m="${m}:mod_quotatab:mod_quotatab_file" - use ldap && m="${m}:mod_quotatab_ldap" - use radius && m="${m}:mod_quotatab_radius" - use mysql || use postgres || use sqlite && m="${m}:mod_quotatab_sql" - fi - if use ssl ; then - m="${m}:mod_tls:mod_tls_shmcache" - use memcache && m="${m}:mod_tls_memcache" - fi - if use tcpd ; then - m="${m}:mod_wrap2:mod_wrap2_file" - use mysql || use postgres || use sqlite && m="${m}:mod_wrap2_sql" - fi - use unique-id && m="${m}:mod_unique_id" - use vroot && m="${m}:mod_vroot" - - if [[ -n ${PROFTP_CUSTOM_MODULES} ]]; then - einfo "Adding user-specified extra modules: '${PROFTP_CUSTOM_MODULES}'" - m="${m}:${PROFTP_CUSTOM_MODULES}" - fi - - [[ -z ${m} ]] || c="${c} --with-modules=${m:1}" - - local myeconfargs=( - --cache-file="${S}"/config.cache - --localstatedir=/run/proftpd - --sysconfdir=/etc/proftpd - --disable-strip - $(use_enable acl facl) - $(use_enable authfile auth-file) - $(use_enable caps cap) - $(use_enable ctrls) - $(use_enable dso) - $(use_enable ident) - $(use_enable memcache) - $(use_enable ncurses) - $(use_enable nls) - $(use_enable ssl openssl) - $(use_enable pam auth-pam) - $(use_enable pcre) - $(use_enable sodium) - $(use_enable test tests) - --enable-trace - --enable-shadow - --enable-autoshadow - ${c:1} - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - emake api-tests -C tests -} - -src_install() { - default - [[ -z ${LINGUAS-set} ]] && rm -r "${ED}"/usr/share/locale - rm -rf "${ED}"/run "${ED}"/var/run - - newinitd "${FILESDIR}"/proftpd.initd-r1 proftpd - insinto /etc/proftpd - doins "${FILESDIR}"/proftpd.conf.sample - - insinto /etc/xinetd.d - newins "${FILESDIR}"/proftpd.xinetd proftpd - - insinto /etc/logrotate.d - newins "${FILESDIR}"/${PN}.logrotate ${PN} - - dodoc ChangeLog CREDITS INSTALL NEWS README* RELEASE_NOTES - - docinto html - dodoc doc/*.html doc/contrib/*.html doc/howto/*.html doc/modules/*.html - - docinto rfc - dodoc doc/rfc/*.txt - - systemd_dounit "${FILESDIR}"/${PN}.service - newtmpfiles "${FILESDIR}"/${PN}-tmpfiles.d.conf-r1 ${PN}.conf -} - -pkg_postinst() { - # Create /var/run files at package merge time: bug #650000 - tmpfiles_process ${PN}.conf -}