diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-13 22:21:26 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-13 22:21:26 -0500 |
| commit | f997c3ee588099e4f43e9ec845935868e3e60b8e (patch) | |
| tree | 07f0967cda575ee2edf2d62ed8c0f67855ae6bd3 /net-ftp | |
| parent | b589bc93e15b300c3e5318fe97241d57e464bea1 (diff) | |
| download | baldeagleos-repo-f997c3ee588099e4f43e9ec845935868e3e60b8e.tar.gz baldeagleos-repo-f997c3ee588099e4f43e9ec845935868e3e60b8e.tar.xz baldeagleos-repo-f997c3ee588099e4f43e9ec845935868e3e60b8e.zip | |
Adding metadata
Diffstat (limited to 'net-ftp')
39 files changed, 1763 insertions, 747 deletions
diff --git a/net-ftp/frox/frox-0.7.18-r9.ebuild b/net-ftp/frox/frox-0.7.18-r7.ebuild index 3600629b54f9..3cee46075dea 100644 --- a/net-ftp/frox/frox-0.7.18-r9.ebuild +++ b/net-ftp/frox/frox-0.7.18-r7.ebuild @@ -1,29 +1,26 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 2022 Liguros Authors # Distributed under the terms of the GNU General Public License v2 - EAPI=8 +inherit autotools -inherit autotools toolchain-funcs - -DESCRIPTION="Transparent ftp proxy" -HOMEPAGE="https://frox.sourceforge.net/" -SRC_URI="https://frox.sourceforge.net/download/${P}.tar.bz2" +DESCRIPTION="A transparent ftp proxy" +SRC_URI="http://frox.sourceforge.net/download/${P}.tar.bz2" +HOMEPAGE="https://sourceforge.net/projects/frox/" -LICENSE="GPL-2+" +LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 ~ppc x86" IUSE="clamav ssl transparent" DEPEND=" - acct-group/ftpproxy - acct-user/ftpproxy clamav? ( >=app-antivirus/clamav-0.80 ) - kernel_linux? ( >=sys-kernel/linux-headers-2.6 ) ssl? ( - dev-libs/openssl:0= - ) + dev-libs/openssl:0 + ) + kernel_linux? ( >=sys-kernel/linux-headers-2.6 ) + acct-group/ftpproxy + acct-user/ftpproxy " - RDEPEND="${DEPEND}" # INSTALL has useful filewall rules @@ -49,8 +46,8 @@ src_prepare() { eapply "${FILESDIR}/${P}-no-common.patch" if use clamav ; then - sed -e "s:^# VirusScanner.*:# VirusScanner '\"/usr/bin/clamscan\" \"%s\"':" \ - -i "src/${PN}.conf" || die + sed -i -e "s:^# VirusScanner.*:# VirusScanner '\"/usr/bin/clamscan\" \"%s\"':" \ + "src/${PN}.conf" || die fi mv configure.in configure.ac || die @@ -58,30 +55,24 @@ src_prepare() { } src_configure() { - local myeconfargs=( - --enable-http-cache --enable-local-cache - --enable-procname - --enable-configfile=/etc/frox.conf - $(use_enable !kernel_linux libiptc) - $(use_enable clamav virus-scan) - $(use_enable ssl) - $(use_enable transparent transparent-data) + econf \ + --enable-http-cache --enable-local-cache \ + --enable-procname \ + --enable-configfile=/etc/frox.conf \ + $(use_enable !kernel_linux libiptc) \ + $(use_enable clamav virus-scan) \ + $(use_enable ssl) \ + $(use_enable transparent transparent-data) \ $(use_enable !transparent ntp) - ) - - econf "${myeconfargs[@]}" -} - -src_compile() { - emake AR="$(tc-getAR)" } src_install() { default - keepdir /var/log/"${PN}" + keepdir /var/{log,spool}/"${PN}" - fowners ftpproxy:ftpproxy /var/log/frox + fperms 700 /var/spool/frox + fowners ftpproxy:ftpproxy /var/{log,spool}/frox newman "doc/${PN}.man" "${PN}.man.8" newman "doc/${PN}.conf.man" "${PN}.conf.man.5" diff --git a/net-ftp/frox/metadata.xml b/net-ftp/frox/metadata.xml index 00586fe62ae1..e5caa5583183 100644 --- a/net-ftp/frox/metadata.xml +++ b/net-ftp/frox/metadata.xml @@ -1,11 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person" proxied="yes"> - <email>kabel@kernel.org</email> - <name>Marek BehĂșn</name> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> </maintainer> - <maintainer type="project" proxied="proxy"> + <maintainer type="person"> + <email>kabel@blackhole.sk</email> + <name>Marek Behun</name> + </maintainer> + <maintainer type="project"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> diff --git a/net-ftp/ftp/files/netkit-ftp-0.17-gcc15.patch b/net-ftp/ftp/files/netkit-ftp-0.17-gcc15.patch new file mode 100644 index 000000000000..90f4565920e4 --- /dev/null +++ b/net-ftp/ftp/files/netkit-ftp-0.17-gcc15.patch @@ -0,0 +1,16 @@ +diff --git a/ftp/cmds.c b/ftp/cmds.c +index f0478fd..9622779 100644 +--- a/ftp/cmds.c ++++ b/ftp/cmds.c +@@ -1052,9 +1052,9 @@ checkglob(int fd, const char *pattern) + } + + static const char * +-onoff(int bool) ++onoff(int opt) + { +- return (bool ? "on" : "off"); ++ return (opt ? "on" : "off"); + } + + /* diff --git a/net-ftp/ftp/ftp-0.17.34.0.2.5.1-r1.ebuild b/net-ftp/ftp/ftp-0.17.34.0.2.5.1-r1.ebuild new file mode 100644 index 000000000000..673fe0236c59 --- /dev/null +++ b/net-ftp/ftp/ftp-0.17.34.0.2.5.1-r1.ebuild @@ -0,0 +1,74 @@ +# Copyright 2021-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +PATCH_VER="3" +MY_PN="netkit-ftp" +MY_PV="$(ver_cut 1-2)" +MY_P="netkit-${PN}-${MY_PV}" +DEB_PN="${MY_PN}-ssl" +DEB_PV="$(ver_cut 1-3)+$(ver_cut 4-5)-$(ver_cut 6-7)" +DESCRIPTION="Standard Linux FTP client" +HOMEPAGE="https://wiki.linuxfoundation.org/networking/netkit" +SRC_URI="ftp://sunsite.unc.edu/pub/Linux/system/network/netkit/${MY_P}.tar.gz + mirror://debian/pool/main/n/${DEB_PN}/${DEB_PN}_${DEB_PV}.debian.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_P}-patches-${PATCH_VER}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="ipv6 readline ssl" + +RDEPEND=" + >=sys-libs/ncurses-5.2:= + readline? ( sys-libs/readline:0= ) + ssl? ( + dev-libs/openssl:0= + ) +" +DEPEND="${RDEPEND}" +BDEPEND="sys-apps/grep" + +S=${WORKDIR}/${MY_P} + +PATCHES=( $FILESDIR/netkit-ftp-0.17-gcc15.patch ) + +src_prepare() { + local p + for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series || die); do + eapply "${WORKDIR}/debian/patches/${p}" + done + + eapply "${WORKDIR}"/patch + eapply "${FILESDIR}"/${PN}-0.17.34.0.2.5.1-musl-glob-brace.patch + + sed -i \ + -e 's:echo -n:printf %s :' \ + configure || die + + default +} + +src_configure() { + append-lfs-flags #101038 + tc-export CC + # not an autoconf script + ./configure \ + --prefix=/usr \ + $(use_enable ipv6) \ + $(use_enable readline) \ + $(use_enable ssl) \ + || die + + if use elibc_musl ; then + sed -i -e '/^LIBS=/ s/$/ -lobstack/' MCONFIG || die + fi +} + +src_install() { + dobin ftp/ftp + doman ftp/ftp.1 ftp/netrc.5 + dodoc ChangeLog README BUGS +} diff --git a/net-ftp/ftp/ftp-0.17.34.0.2.5.1.ebuild b/net-ftp/ftp/ftp-0.17.34.0.2.5.1-r2.ebuild index ca63630adac2..ae15ec038419 100644 --- a/net-ftp/ftp/ftp-0.17.34.0.2.5.1.ebuild +++ b/net-ftp/ftp/ftp-0.17.34.0.2.5.1-r2.ebuild @@ -1,9 +1,8 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 2021-2025 Liguros Authors # Distributed under the terms of the GNU General Public License v2 +EAPI=8 -EAPI=7 - -inherit edo flag-o-matic toolchain-funcs +inherit flag-o-matic toolchain-funcs PATCH_VER="3" MY_PN="netkit-ftp" @@ -11,39 +10,40 @@ MY_PV="$(ver_cut 1-2)" MY_P="netkit-${PN}-${MY_PV}" DEB_PN="${MY_PN}-ssl" DEB_PV="$(ver_cut 1-3)+$(ver_cut 4-5)-$(ver_cut 6-7)" - DESCRIPTION="Standard Linux FTP client" HOMEPAGE="https://wiki.linuxfoundation.org/networking/netkit" -SRC_URI="http://ftp.linux.org.uk/pub/linux/Networking/netkit/${MY_P}.tar.gz - ftp://sunsite.unc.edu/pub/Linux/system/network/netkit/${MY_P}.tar.gz +SRC_URI="ftp://sunsite.unc.edu/pub/Linux/system/network/netkit/${MY_P}.tar.gz mirror://debian/pool/main/n/${DEB_PN}/${DEB_PN}_${DEB_PV}.debian.tar.xz https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_P}-patches-${PATCH_VER}.tar.bz2" -S="${WORKDIR}"/${MY_P} LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" IUSE="ipv6 readline ssl" RDEPEND=" >=sys-libs/ncurses-5.2:= - elibc_musl? ( sys-libs/obstack-standalone ) - readline? ( sys-libs/readline:= ) - ssl? ( dev-libs/openssl:= ) + readline? ( sys-libs/readline:0= ) + ssl? ( + dev-libs/openssl:0= + ) " DEPEND="${RDEPEND}" BDEPEND="sys-apps/grep" +S=${WORKDIR}/${MY_P} + +PATCHES=( $FILESDIR/netkit-ftp-0.17-gcc15.patch ) + src_prepare() { local p for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series || die); do - eapply "${WORKDIR}"/debian/patches/${p} + eapply "${WORKDIR}/debian/patches/${p}" done eapply "${WORKDIR}"/patch eapply "${FILESDIR}"/${PN}-0.17.34.0.2.5.1-musl-glob-brace.patch - # Drop bashism from configure sed -i \ -e 's:echo -n:printf %s :' \ configure || die @@ -52,19 +52,19 @@ src_prepare() { } src_configure() { - # bug #101038 - append-lfs-flags + append-lfs-flags #101038 tc-export CC # bug #943875 append-cflags "-std=gnu17" - # Not an autoconf script - edo ./configure \ + # not an autoconf script + ./configure \ --prefix=/usr \ $(use_enable ipv6) \ $(use_enable readline) \ - $(use_enable ssl) + $(use_enable ssl) \ + || die if use elibc_musl ; then sed -i -e '/^LIBS=/ s/$/ -lobstack/' MCONFIG || die diff --git a/net-ftp/ftp/metadata.xml b/net-ftp/ftp/metadata.xml index f308c62eb267..cbc880a592a8 100644 --- a/net-ftp/ftp/metadata.xml +++ b/net-ftp/ftp/metadata.xml @@ -2,6 +2,10 @@ <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="project"> <email>base-system@gentoo.org</email> <name>Gentoo Base System</name> </maintainer> diff --git a/net-ftp/gftp/Manifest b/net-ftp/gftp/Manifest index d3f87b51fe19..446c2a6eda2b 100644 --- a/net-ftp/gftp/Manifest +++ b/net-ftp/gftp/Manifest @@ -1 +1 @@ -DIST gftp-2.9.1b.tar.xz 872308 BLAKE2B 3588321689a1c6d8e0585e0439507f774b30e05630f774d7909f32fd66c289a961602b84cde97377de47d0c63fe4cf5452ec1e0b986c578958a6080cf5814fc8 SHA512 31d0aa4d3c5adf3d9ac2c2517402f9bdcab5fb1187df521a978acf41c1997a120797056dd1ca7bedc32e0dec0ac7c06c1790e47821660277fb6572205ce0fe93 +DIST gftp-a7265eb958437fafc8b4d4e8f4fe960371723237.tar.gz 1548646 BLAKE2B 318485d949c66c21ad96977a9e2bbfa5e4cc0517635d5ec4c2c1995058913a59466ed22fe8380e6313900c8473c6874b1f1b182ca3cb8304c588805122609019 SHA512 5d3d940f99d580922d62906c9a64aa4be1c36de0f85697cbfc93454a3c21e6ce55599ea270a309a9b879f08a33a210f114a1cf0635b920a55a2cc37d389be612 diff --git a/net-ftp/gftp/files/patch-lib-pty.c b/net-ftp/gftp/files/patch-lib-pty.c new file mode 100644 index 000000000000..9b0e8224fcc7 --- /dev/null +++ b/net-ftp/gftp/files/patch-lib-pty.c @@ -0,0 +1,25 @@ +--- lib/pty.c.orig 2022-02-15 06:31:19 UTC ++++ lib/pty.c +@@ -91,7 +91,9 @@ _gftp_ptys_open (int fdm, int fds, char *pts_name) + #include <utmp.h> /* for login_tty */ + #elif HAVE_LIBUTIL_H + #include <libutil.h> +-#include <utmp.h> /* for login_tty */ ++#else ++extern int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize * winp); ++extern int login_tty(int fd); + #endif + + char * +@@ -118,8 +120,10 @@ _gftp_ptys_open (int fdm, int fds, char *pts_name) + static int + _gftp_ptys_open (int fdm, int fds, char *pts_name) + { +- if (login_tty (fds) < 0) ++ if (login_tty (fds) < 0) { ++ close(fds); + return (GFTP_EFATAL); ++ } + + return (fds); + } diff --git a/net-ftp/gftp/files/signal.patch b/net-ftp/gftp/files/signal.patch new file mode 100644 index 000000000000..fe5d2ff4bf51 --- /dev/null +++ b/net-ftp/gftp/files/signal.patch @@ -0,0 +1,22 @@ +From ab50ec131840339983ba152363323d7de15ecbaa Mon Sep 17 00:00:00 2001 +From: Adrian Bunk <bunk@debian.org> +Date: Fri, 26 Sep 2025 22:17:20 +0300 +Subject: [PATCH] Fix building with GCC 15 + +--- + lib/pty.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/pty.c b/lib/pty.c +index 9c8494b..d87f428 100644 +--- a/lib/pty.c ++++ b/lib/pty.c +@@ -36,7 +36,7 @@ static int + _gftp_ptym_open (char *pts_name, size_t len, int *fds) + { + char *new_pts_name; +- void (*savesig)(); ++ void (*savesig)(int); + int fdm; + + if ((fdm = open ("/dev/ptmx", O_RDWR)) < 0) diff --git a/net-ftp/gftp/gftp-2.9.1b-r1.ebuild b/net-ftp/gftp/gftp-2.9.1b-r1.ebuild deleted file mode 100644 index ca2ceb50197b..000000000000 --- a/net-ftp/gftp/gftp-2.9.1b-r1.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -inherit gnome2 - -DESCRIPTION="a free multithreaded file transfer client" -HOMEPAGE="https://github.com/masneyb/gftp" -SRC_URI="https://github.com/masneyb/gftp/releases/download/${PV}/${P}.tar.xz" - -# Override gnome.org.eclass's S= (bug #904064) -S="${WORKDIR}/${P}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm64 ppc ppc64 ~riscv ~sparc x86" -IUSE="gtk ssl" - -RDEPEND=" - dev-libs/glib:2 - sys-libs/ncurses:0= - sys-libs/readline:0 - gtk? ( x11-libs/gtk+:2 ) - ssl? ( dev-libs/openssl:0= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - sys-devel/gettext - virtual/pkgconfig -" - -PATCHES=( - # https://github.com/masneyb/gftp/issues/178 - "${FILESDIR}"/"${P}"-fix-socklen-type.patch -) - -src_prepare() { - gnome2_src_prepare - # https://github.com/masneyb/gftp/issues/181 - sed -i -e 's/Icon=gftp.png/Icon=gftp/' docs/gftp.desktop || die -} - -src_configure() { - gnome2_src_configure \ - $(use_enable gtk gtkport) \ - $(use_enable ssl) -} - -src_install() { - gnome2_src_install - dodoc docs/USERS-GUIDE -} diff --git a/net-ftp/gftp/gftp-2.9.1b-r4.ebuild b/net-ftp/gftp/gftp-2.9.1b-r4.ebuild new file mode 100644 index 000000000000..d387339dec1c --- /dev/null +++ b/net-ftp/gftp/gftp-2.9.1b-r4.ebuild @@ -0,0 +1,89 @@ +# Copyright 2021-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 +inherit flag-o-matic gnome2 meson + +DESCRIPTION="a free multithreaded file transfer client" +HOMEPAGE="https://github.com/masneyb/gftp" +GIT_COMMIT="a7265eb958437fafc8b4d4e8f4fe960371723237" +SRC_URI="https://github.com/masneyb/gftp/archive/${GIT_COMMIT}.tar.gz -> ${PN}-${GIT_COMMIT}.tar.gz" + +# Override gnome.org.eclass's S= (bug #904064) +S="${WORKDIR}/${PN}-${GIT_COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm64 ppc ppc64 ~riscv sparc x86" +IUSE="gtk gtk2 gtk3 ssl" +REQUIRED_USE="gtk? ( || ( gtk2 gtk3 ) )" + +RDEPEND=" + dev-libs/glib:2 + sys-libs/ncurses:0= + sys-libs/readline:0 + gtk? ( + gtk2? ( x11-libs/gtk+:2 ) + gtk3? ( x11-libs/gtk+:3 ) + ) + ssl? ( + dev-libs/openssl:0= + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + # https://github.com/masneyb/gftp/issues/178 + "${FILESDIR}"/"${P}"-fix-socklen-type.patch +) + +src_prepare() { + gnome2_src_prepare + # https://github.com/masneyb/gftp/issues/181 + sed -i -e 's/Icon=gftp.png/Icon=gftp/' docs/gftp.desktop || die + eapply -p0 ${FILESDIR}/patch-lib-pty.c +} + +src_configure() { + local emesonargs=( + $(meson_use ssl) + ) + + if use gtk; then + local emesonargs+=( + $(meson_use gtk2) + $(meson_use gtk3) + -Dgtkport=true + -Dtextport=false + -Dgtkwarnings=true + ) + else + local emesonargs+=( + $(meson_use gtk2) + -Dgtkport=false + -Dtextport=true + -Dgtkwarnings=false + ) + fi + + meson_src_configure +# gnome2_src_configure \ +# $(use_enable gtk gtkport) \ +# $(use_enable ssl) +} + +src_compile() { + append-cxxflags -Wno-error=incompatible-pointer-types + append-cflags -Wno-error=incompatible-pointer-types +# default + meson_src_compile +} + +src_install() { + meson_src_install + #gnome2_src_install + dodoc docs/USERS-GUIDE +} diff --git a/net-ftp/gftp/gftp-2.9.1b.ebuild b/net-ftp/gftp/gftp-2.9.1b.ebuild deleted file mode 100644 index 0166dd9a66ae..000000000000 --- a/net-ftp/gftp/gftp-2.9.1b.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -inherit gnome2 - -DESCRIPTION="a free multithreaded file transfer client" -SRC_URI="https://github.com/masneyb/gftp/releases/download/${PV}/${P}.tar.xz" -HOMEPAGE="https://github.com/masneyb/gftp" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm64 ppc ppc64 ~riscv ~sparc x86" -IUSE="gtk ssl" - -RDEPEND=" - dev-libs/glib:2 - sys-libs/ncurses:0= - sys-libs/readline:0 - gtk? ( x11-libs/gtk+:2 ) - ssl? ( dev-libs/openssl:0= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - sys-devel/gettext - virtual/pkgconfig -" - -# Override gnome.org.eclass's S= (bug #904064) -S="${WORKDIR}/${P}" - -src_configure() { - gnome2_src_configure \ - $(use_enable gtk gtkport) \ - $(use_enable ssl) -} - -src_install() { - gnome2_src_install - dodoc docs/USERS-GUIDE -} diff --git a/net-ftp/gftp/metadata.xml b/net-ftp/gftp/metadata.xml index f6b6cde5f785..df791650e113 100644 --- a/net-ftp/gftp/metadata.xml +++ b/net-ftp/gftp/metadata.xml @@ -2,6 +2,10 @@ <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="project"> <email>gnome@gentoo.org</email> <name>Gentoo GNOME Desktop</name> </maintainer> diff --git a/net-ftp/proftpd/Manifest b/net-ftp/proftpd/Manifest index 1ae42b349b45..f295dc0e8e04 100644 --- a/net-ftp/proftpd/Manifest +++ b/net-ftp/proftpd/Manifest @@ -3,7 +3,11 @@ 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.8c.tar.gz 19751847 BLAKE2B 6a39eb50c921a68cdf73fae444e7d7850a22a76ce771702b617810e7ff6ae451f52521f5ff01fb9c2d91304e34c0e6dbb07fda6a07f0af477fe2ca0babb8bee7 SHA512 fccf8577afc748e8416feb3879616f0f829ef777b7a8effabc18a6810213241d370a0e64dfbc754728c21ddd07c072f7f3a05dcebc517a4ba6790638091007fb DIST proftpd-1.3.9.tar.gz 19837398 BLAKE2B 30ad60148de79cd4198791ce89dc6c2204c75cb0966f7f17a0fefe25bf4678dd8ea7d373469fbf02f670ae0ca6879f4371ef97a65f4875ad131930d49d800b6f SHA512 5cc53d7909f8b45718509b547aeffaf027cec66b1c34ed9f3a7de1ba561f9ca3d51bb991edb24c8f833bb47e0131619850a4bfd4fec509505769d123e78dc8b3 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/contrib_mod_tlc_c.patch b/net-ftp/proftpd/files/contrib_mod_tlc_c.patch new file mode 100644 index 000000000000..599bc4a30082 --- /dev/null +++ b/net-ftp/proftpd/files/contrib_mod_tlc_c.patch @@ -0,0 +1,13 @@ +diff '--color=auto' -urN proftpd-1.3.8b.orig/contrib/mod_tls.c proftpd-1.3.8b/contrib/mod_tls.c +--- proftpd-1.3.8b.orig/contrib/mod_tls.c 2024-10-16 18:27:10.953120250 +0200 ++++ proftpd-1.3.8b/contrib/mod_tls.c 2024-10-16 18:27:46.126564089 +0200 +@@ -1157,8 +1157,7 @@ + !defined(HAVE_LIBRESSL) + if (ssl_state == TLS_ST_SR_CLNT_HELLO) { + #else +- if (ssl_state == SSL3_ST_SR_CLNT_HELLO_A || +- ssl_state == SSL23_ST_SR_CLNT_HELLO_A) { ++ if (ssl_state == SSL3_ST_SR_CLNT_HELLO_A ) { + #endif /* OpenSSL-1.1.x and later */ + + if (tls_opts & TLS_OPT_ENABLE_DIAGS) { diff --git a/net-ftp/proftpd/files/mod_tls-1.3.8.patch b/net-ftp/proftpd/files/mod_tls-1.3.8.patch new file mode 100644 index 000000000000..4061d9a26d58 --- /dev/null +++ b/net-ftp/proftpd/files/mod_tls-1.3.8.patch @@ -0,0 +1,171 @@ +diff -urN proftpd-1.3.8.orig/contrib/mod_tls.c proftpd-1.3.8/contrib/mod_tls.c +--- proftpd-1.3.8.orig/contrib/mod_tls.c 2023-06-26 19:07:39.590914202 +0200 ++++ proftpd-1.3.8/contrib/mod_tls.c 2023-06-26 19:15:52.147881331 +0200 +@@ -45,6 +45,9 @@ + /* Define if you have the LibreSSL library. */ + #if defined(LIBRESSL_VERSION_NUMBER) + # define HAVE_LIBRESSL 1 ++#define SSL_KEY_UPDATE_NONE -1 ++#define SSL_KEY_UPDATE_NOT_REQUESTED 0 ++#define SSL_KEY_UPDATE_REQUESTED 1 + #endif + + /* Note that the openssl/ssl.h header is already included in mod_tls.h, so +@@ -100,8 +103,7 @@ + return NULL; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (DH_set0_pqg(dh, p, NULL, g) != 1) { + pr_trace_msg(trace_channel, 3, "error setting DH p/q parameters: %s", + ERR_error_string(ERR_get_error(), NULL)); +@@ -120,8 +122,7 @@ + pem_password_cb *cb; + void *cb_data; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + cb = SSL_CTX_get_default_passwd_cb(ctx); + cb_data = SSL_CTX_get_default_passwd_cb_userdata(ctx); + #else +@@ -4030,7 +4031,7 @@ + int ctrl_renegotiated = FALSE; + + switch (SSL_version(ctrl_ssl)) { +-# if defined(TLS1_3_VERSION) ++# if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER) + case TLS1_3_VERSION: + if (SSL_get_key_update_type(ctrl_ssl) == SSL_KEY_UPDATE_NONE) { + ctrl_renegotiated = TRUE; +@@ -4066,7 +4067,7 @@ + + ssl = (SSL *) pr_table_get(tls_data_wr_nstrm->notes, TLS_NETIO_NOTE, NULL); + switch (SSL_version(ssl)) { +-# if defined(TLS1_3_VERSION) ++# if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER) + case TLS1_3_VERSION: + if (SSL_get_key_update_type(ssl) == SSL_KEY_UPDATE_NONE) { + data_renegotiated = TRUE; +@@ -4106,7 +4107,7 @@ + + if (tls_flags & TLS_SESS_ON_CTRL) { + switch (SSL_version(ctrl_ssl)) { +-#if defined(TLS1_3_VERSION) ++#if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER) + /* If we're a TLSv1.3 session, use SSL_key_update() to request new + * session keys; TLSv1.3 does not support renegotiations. + */ +@@ -4533,8 +4534,7 @@ + ctx = SSL_get_SSL_CTX(ssl); + ctx_options = SSL_CTX_get_options(ctx); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + sess_version = SSL_SESSION_get_protocol_version(sess); + #else + sess_version = sess->ssl_version; +@@ -5716,8 +5716,7 @@ + return resp; + } + +-#if OPENSSL_VERSION_NUMBER < 0x10002000L || \ +- defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10002000L + /* We need to provide our own backport of the ASN1_TIME_diff() function. */ + static time_t ASN1_TIME_seconds(const ASN1_TIME *a) { + static const int min[9] = { 0, 0, 1, 1, 0, 0, 0, 0, 0 }; +@@ -6188,8 +6187,7 @@ + register int i; + int ext_count = 0, must_staple = FALSE; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + ext_count = X509_get_ext_count(cert); + #else + X509_CINF *ci; +@@ -6209,8 +6207,7 @@ + X509_EXTENSION *ext; + ASN1_OBJECT *obj; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + ext = X509_get_ext(cert, i); + #else + ext = sk_X509_EXTENSION_value(exts, i); +@@ -6225,8 +6222,7 @@ + char status_request[] = TLS_X509V3_TLS_FEAT_STATUS_REQUEST; + ASN1_OCTET_STRING *value; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + value = X509_EXTENSION_get_data(ext); + #else + value = ext->value; +@@ -7893,7 +7889,11 @@ + case SSL_R_VERSION_TOO_LOW: { + int client_version; + ++#if defined(HAVE_LIBRESSL) ++ client_version = SSL_get_version(ssl); ++#else + client_version = SSL_client_version(ssl); ++#endif + switch (client_version) { + # if defined(SSL3_VERSION) && defined(OPENSSL_NO_SSL3) + case SSL3_VERSION: +@@ -9305,8 +9305,7 @@ + + pr_signals_handle(); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + X509_get0_signature(&client_sig, NULL, client_cert); + X509_get0_signature(&file_sig, NULL, file_cert); + #else +@@ -10019,8 +10018,7 @@ + BIO_free(bio); + + bio = BIO_new(BIO_s_mem()); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + X509_get0_signature(NULL, &algo, cert); + #else + algo = cert->cert_info->signature; +@@ -10606,8 +10604,7 @@ + if (revoked == NULL) { + continue; + } +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + sn = X509_REVOKED_get0_serialNumber(revoked); + #else + sn = revoked->serialNumber; +@@ -10872,8 +10869,7 @@ + return FALSE; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + store = X509_STORE_CTX_get0_store(ctx); + #else + store = ctx->ctx; +@@ -12345,7 +12341,7 @@ + tls_data_renegotiate_current >= tls_data_renegotiate_limit) { + + switch (SSL_version(ssl)) { +-# if defined(TLS1_3_VERSION) ++# if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER) + /* If we're a TLSv1.3 session, use SSL_key_update() to request new + * session keys; TLSv1.3 does not support renegotiations. + */ diff --git a/net-ftp/proftpd/files/mod_tls.patch b/net-ftp/proftpd/files/mod_tls.patch new file mode 100644 index 000000000000..e63858292df8 --- /dev/null +++ b/net-ftp/proftpd/files/mod_tls.patch @@ -0,0 +1,113 @@ +diff -urN proftpd-1.3.7c.orig/contrib/mod_tls.c proftpd-1.3.7c/contrib/mod_tls.c +--- proftpd-1.3.7c.orig/contrib/mod_tls.c 2022-04-03 23:58:29.354937570 +0200 ++++ proftpd-1.3.7c/contrib/mod_tls.c 2022-04-03 23:59:14.142934581 +0200 +@@ -97,8 +97,7 @@ + return NULL; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (DH_set0_pqg(dh, p, NULL, g) != 1) { + pr_trace_msg(trace_channel, 3, "error setting DH p/q parameters: %s", + ERR_error_string(ERR_get_error(), NULL)); +@@ -117,8 +116,7 @@ + pem_password_cb *cb; + void *cb_data; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + cb = SSL_CTX_get_default_passwd_cb(ctx); + cb_data = SSL_CTX_get_default_passwd_cb_userdata(ctx); + #else +@@ -4308,8 +4306,7 @@ + ctx = SSL_get_SSL_CTX(ssl); + ctx_options = SSL_CTX_get_options(ctx); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + sess_version = SSL_SESSION_get_protocol_version(sess); + #else + sess_version = sess->ssl_version; +@@ -5487,8 +5484,7 @@ + return resp; + } + +-#if OPENSSL_VERSION_NUMBER < 0x10002000L || \ +- defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10002000L + /* We need to provide our own backport of the ASN1_TIME_diff() function. */ + static time_t ASN1_TIME_seconds(const ASN1_TIME *a) { + static const int min[9] = { 0, 0, 1, 1, 0, 0, 0, 0, 0 }; +@@ -5959,8 +5955,7 @@ + register int i; + int ext_count = 0, must_staple = FALSE; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + ext_count = X509_get_ext_count(cert); + #else + X509_CINF *ci; +@@ -5980,8 +5975,7 @@ + X509_EXTENSION *ext; + ASN1_OBJECT *obj; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + ext = X509_get_ext(cert, i); + #else + ext = sk_X509_EXTENSION_value(exts, i); +@@ -5996,8 +5990,7 @@ + char status_request[] = TLS_X509V3_TLS_FEAT_STATUS_REQUEST; + ASN1_OCTET_STRING *value; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + value = X509_EXTENSION_get_data(ext); + #else + value = ext->value; +@@ -9065,8 +9058,7 @@ + + pr_signals_handle(); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + X509_get0_signature(&client_sig, NULL, client_cert); + X509_get0_signature(&file_sig, NULL, file_cert); + #else +@@ -9722,8 +9714,7 @@ + BIO_free(bio); + + bio = BIO_new(BIO_s_mem()); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + X509_get0_signature(NULL, &algo, cert); + #else + algo = cert->cert_info->signature; +@@ -10258,8 +10249,7 @@ + if (revoked == NULL) { + continue; + } +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + sn = X509_REVOKED_get0_serialNumber(revoked); + #else + sn = revoked->serialNumber; +@@ -10524,8 +10514,7 @@ + return FALSE; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ +- !defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + store = X509_STORE_CTX_get0_store(ctx); + #else + store = ctx->ctx; diff --git a/net-ftp/proftpd/files/proftpd-1.3.6_rc4-gss-refresh-api.patch b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-gss-refresh-api.patch new file mode 100644 index 000000000000..43cc659e47dc --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-gss-refresh-api.patch @@ -0,0 +1,60 @@ +diff --git a/mod_auth_gss.c.in b/mod_auth_gss.c.in +index 6228b4d..3569ebb 100644 +--- a/mod_auth_gss.c.in ++++ b/mod_auth_gss.c.in +@@ -38,6 +38,10 @@ + */ + + #include "mod_gss.h" ++ ++#define DECLINED PR_DECLINED ++#define ERROR_INT PR_ERROR_INT ++ + extern unsigned char gss_engine; + extern unsigned long gss_flags; + extern int gss_logfd; +diff --git a/mod_gss.c.in b/mod_gss.c.in +index 9d2d4c8..83a4019 100644 +--- a/mod_gss.c.in ++++ b/mod_gss.c.in +@@ -57,6 +57,13 @@ + + #include "mod_gss.h" + ++#define LOG_SYMLINK PR_LOG_SYMLINK ++#define LOG_WRITEABLE_DIR PR_LOG_WRITABLE_DIR ++#define HANDLED PR_HANDLED ++#define ERROR PR_ERROR ++#define DECLINED PR_DECLINED ++#define ERROR_INT PR_ERROR_INT ++ + module gss_module; + + /* Module variables maybe used externaly */ +@@ -1395,7 +1402,7 @@ MODRET gss_auth(cmd_rec *cmd) { + + /* Convert the parameter to upper case */ + for (i = 0; i < strlen(cmd->argv[1]); i++) +- (cmd->argv[1])[i] = toupper((cmd->argv[1])[i]); ++ ((char*)cmd->argv[1])[i] = toupper(((char*)cmd->argv[1])[i]); + + if (!strcmp(cmd->argv[1], "GSSAPI")) { + pr_response_send(R_334, "Using authentication type %s; ADAT must follow", cmd->argv[1]); +@@ -2014,7 +2021,7 @@ MODRET gss_prot(cmd_rec *cmd) { + + /* Convert the parameter to upper case */ + for (i = 0; i < strlen(cmd->argv[1]); i++) +- (cmd->argv[1])[i] = toupper((cmd->argv[1])[i]); ++ ((char*)cmd->argv[1])[i] = toupper(((char*)cmd->argv[1])[i]); + + /* Only PROT S , PROT C or PROT P is valid with respect to GSS. */ + if (!strcmp(cmd->argv[1], "C")) { +@@ -2098,7 +2105,7 @@ MODRET set_gsskeytab(cmd_rec *cmd) { + if (!file_exists(cmd->argv[1])) + CONF_ERROR(cmd, "file does not exist"); + +- if (*cmd->argv[1] != '/') ++ if (((char*)(*cmd->argv))[1] != '/') + CONF_ERROR(cmd, "parameter must be an absolute path"); + + add_config_param_str(cmd->argv[0], 1, cmd->argv[1]); 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 new file mode 100644 index 000000000000..2e90be254cb6 --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-msg-refresh-api.patch @@ -0,0 +1,29 @@ +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 new file mode 100644 index 000000000000..59b96ce90027 --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-1.3.6_rc4-vroot-refresh-api.patch @@ -0,0 +1,23 @@ +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.7a-tinfow-segv.patch b/net-ftp/proftpd/files/proftpd-1.3.7a-tinfow-segv.patch new file mode 100644 index 000000000000..b904c5dbe5ae --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-1.3.7a-tinfow-segv.patch @@ -0,0 +1,197 @@ +https://github.com/proftpd/proftpd/commit/ff413723328da726d1042c7d2067d088765eca57 +https://bugs.gentoo.org/777432 + +From ff413723328da726d1042c7d2067d088765eca57 Mon Sep 17 00:00:00 2001 +From: TJ Saunders <tj@castaglia.org> +Date: Sun, 14 Mar 2021 10:08:02 -0700 +Subject: [PATCH] Issue #1174: Check for the libtinfow library when ncursesw is + being used. + +On some systems, such as Gentoo, linking against libtinfo with libncursesw, +rather than libtinfow, leads to segfaults. +--- + config.h.in | 3 ++ + configure | 98 +++++++++++++++++++++++++++++++++++++++++++++++++--- + configure.in | 24 +++++++++---- + 3 files changed, 114 insertions(+), 11 deletions(-) + +diff --git a/config.h.in b/config.h.in +index 1ba33caf9..775b7a294 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -966,6 +966,9 @@ + /* Define if you have the libtinfo library (-ltinfo). */ + #undef HAVE_LIBTINFO + ++/* Define if you have the libtinfow library (-ltinfow). */ ++#undef HAVE_LIBTINFOW ++ + /* Define if you have the addrinfo struct. */ + #undef HAVE_STRUCT_ADDRINFO + +diff --git a/configure b/configure +index 64080483f..86cf1360e 100755 +--- a/configure ++++ b/configure +@@ -23169,18 +23169,106 @@ $as_echo "#define PR_USE_CURSES 1" >>confdefs.h + fi + + if test x"$enable_ncurses" != xno ; then ++ + if test x"$pr_have_ncursesw" = xyes ; then + + $as_echo "#define PR_USE_NCURSESW 1" >>confdefs.h + +- else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfow" >&5 ++$as_echo_n "checking for halfdelay in -ltinfow... " >&6; } ++if ${ac_cv_lib_tinfow_halfdelay+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ltinfow $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + +-$as_echo "#define PR_USE_NCURSES 1" >>confdefs.h ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char halfdelay (); ++int ++main () ++{ ++return halfdelay (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_tinfow_halfdelay=yes ++else ++ ac_cv_lib_tinfow_halfdelay=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfow_halfdelay" >&5 ++$as_echo "$ac_cv_lib_tinfow_halfdelay" >&6; } ++if test "x$ac_cv_lib_tinfow_halfdelay" = xyes; then : ++ UTILS_LIBS="$UTILS_LIBS -ltinfow" + +- fi ++$as_echo "#define HAVE_LIBTINFOW 1" >>confdefs.h ++ ++ ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfo" >&5 ++$as_echo_n "checking for halfdelay in -ltinfo... " >&6; } ++if ${ac_cv_lib_tinfo_halfdelay+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ltinfo $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char halfdelay (); ++int ++main () ++{ ++return halfdelay (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_tinfo_halfdelay=yes ++else ++ ac_cv_lib_tinfo_halfdelay=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_halfdelay" >&5 ++$as_echo "$ac_cv_lib_tinfo_halfdelay" >&6; } ++if test "x$ac_cv_lib_tinfo_halfdelay" = xyes; then : ++ UTILS_LIBS="$UTILS_LIBS -ltinfo" ++ ++$as_echo "#define HAVE_LIBTINFO 1" >>confdefs.h + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfo" >&5 ++ ++fi ++ ++ ++fi ++ ++ else ++ ++$as_echo "#define PR_USE_NCURSES 1" >>confdefs.h ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfo" >&5 + $as_echo_n "checking for halfdelay in -ltinfo... " >&6; } + if ${ac_cv_lib_tinfo_halfdelay+:} false; then : + $as_echo_n "(cached) " >&6 +@@ -23224,6 +23312,8 @@ $as_echo "#define HAVE_LIBTINFO 1" >>confdefs.h + + fi + ++ fi ++fi + + if test x"$enable_nonblocking_log_open" != xno; then + +diff --git a/configure.in b/configure.in +index 59793a00c..4bd0f7c19 100644 +--- a/configure.in ++++ b/configure.in +@@ -2789,20 +2789,30 @@ if test x"$enable_curses" != xno ; then + fi + + if test x"$enable_ncurses" != xno ; then ++ dnl Check for the libtinfo library, which contains the halfdelay() curses ++ dnl function on some systems (e.g. OpenSuSE); see Bug#3718. Note that on ++ dnl some systems, this may need to be libtinfow instead; see Issue #1174. ++ + if test x"$pr_have_ncursesw" = xyes ; then + AC_DEFINE(PR_USE_NCURSESW, 1, [Define if using ncursesw support]) ++ AC_CHECK_LIB(tinfow, halfdelay, ++ [ UTILS_LIBS="$UTILS_LIBS -ltinfow" ++ AC_DEFINE(HAVE_LIBTINFOW, 1, [Define if you have libtinfow]) ++ ], ++ [ AC_CHECK_LIB(tinfo, halfdelay, ++ [ UTILS_LIBS="$UTILS_LIBS -ltinfo" ++ AC_DEFINE(HAVE_LIBTINFO, 1, [Define if you have libtinfo]) ++ ]) ++ ]) + else + AC_DEFINE(PR_USE_NCURSES, 1, [Define if using ncurses support]) ++ AC_CHECK_LIB(tinfo, halfdelay, ++ [ UTILS_LIBS="$UTILS_LIBS -ltinfo" ++ AC_DEFINE(HAVE_LIBTINFO, 1, [Define if you have libtinfo]) ++ ]) + fi + fi + +-dnl Check for the libtinfo library, which contains the halfdelay() curses +-dnl function on some systems (e.g. OpenSuSE); see Bug#3718. +-AC_CHECK_LIB(tinfo, halfdelay, +- [ UTILS_LIBS="$UTILS_LIBS -ltinfo" +- AC_DEFINE(HAVE_LIBTINFO, 1, [Define if you have libtinfo]) +- ]) +- + if test x"$enable_nonblocking_log_open" != xno; then + AC_DEFINE(PR_USE_NONBLOCKING_LOG_OPEN, 1, [Define if using nonblocking open of log files]) + fi 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 new file mode 100644 index 000000000000..c44fd72262d2 --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-1.3.8-configure-clang16.patch @@ -0,0 +1,255 @@ +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 <arjun@redhat.com> +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 <arjun@redhat.com> +--- 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 <stddef.h> ++ #endif ++ #if HAVE_CRYPT_H ++ # include <crypt.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_NETDB_H ++ # include <netdb.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_ARPA_INET_H ++ # include <arpa/inet.h> ++ #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 <netdb.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_SYS_SOCKET_H ++ # include <sys/socket.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_CRYPT_H ++ # include <crypt.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_NETDB_H ++ # include <netdb.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_ARPA_INET_H ++ # include <arpa/inet.h> ++ #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 <netdb.h> ++ #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 <stddef.h> ++ #endif ++ #if HAVE_SYS_SOCKET_H ++ # include <sys/socket.h> ++ #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.9-clamav-debool.patch b/net-ftp/proftpd/files/proftpd-1.3.9-clamav-debool.patch deleted file mode 100644 index 3753d3ee937d..000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.9-clamav-debool.patch +++ /dev/null @@ -1,82 +0,0 @@ -https://bugs.gentoo.org/953810 -https://github.com/jbenden/mod_clamav/pull/24/commits -From ea822d6aa428b47aa9681d60af8d3c3d9eae0600 Mon Sep 17 00:00:00 2001 -From: TJ Saunders <tj@castaglia.org> -Date: Sat, 12 Apr 2025 09:02:45 -0700 -Subject: [PATCH] Issue #23: Fix compilation with newer GCC versions, which -complain of variables named `bool`. - ---- - mod_clamav.c | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/mod_clamav.c b/mod_clamav.c -index e25e99d..3be0ca6 100644 ---- a/mod_clamav.c -+++ b/mod_clamav.c -@@ -667,18 +667,18 @@ static unsigned long parse_nbytes(char *nbytes_str, char *units_str) { - * Configuration setter: ClamAV - */ - MODRET set_clamav(cmd_rec *cmd) { -- int bool = -1; -+ int engine = -1; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_LIMIT|CONF_VIRTUAL|CONF_GLOBAL|CONF_DIR); - -- if ((bool = get_boolean(cmd,1)) == -1) -+ if ((engine = get_boolean(cmd,1)) == -1) - CONF_ERROR(cmd, "expected Boolean parameter"); - - c = add_config_param(cmd->argv[0], 1, NULL); - c->argv[0] = pcalloc(c->pool, sizeof(unsigned char)); -- *((unsigned char *) c->argv[0]) = bool; -+ *((unsigned char *) c->argv[0]) = engine; - c->flags |= CF_MERGEDOWN; - - return PR_HANDLED(cmd); -@@ -688,18 +688,18 @@ MODRET set_clamav(cmd_rec *cmd) { - * Configuration setter: ClamStream - */ - MODRET set_clamstream(cmd_rec *cmd) { -- int bool = -1; -+ int use_stream = -1; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_LIMIT|CONF_VIRTUAL|CONF_GLOBAL|CONF_DIR); - -- if ((bool = get_boolean(cmd,1)) == -1) -+ if ((use_stream = get_boolean(cmd,1)) == -1) - CONF_ERROR(cmd, "expected Boolean parameter"); - - c = add_config_param(cmd->argv[0], 1, NULL); - c->argv[0] = pcalloc(c->pool, sizeof(unsigned char)); -- *((unsigned char *) c->argv[0]) = bool; -+ *((unsigned char *) c->argv[0]) = use_stream; - c->flags |= CF_MERGEDOWN; - - return PR_HANDLED(cmd); -@@ -709,18 +709,18 @@ MODRET set_clamstream(cmd_rec *cmd) { - * Configuration setter: ClamFailsafe - */ - MODRET set_clamfailsafe(cmd_rec *cmd) { -- int bool = -1; -+ int use_failsafe = -1; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_LIMIT|CONF_VIRTUAL|CONF_GLOBAL|CONF_DIR); - -- if ((bool = get_boolean(cmd, 1)) == -1) -+ if ((use_failsafe = get_boolean(cmd, 1)) == -1) - CONF_ERROR(cmd, "expected Boolean parameter"); - - c = add_config_param(cmd->argv[0], 1, NULL); - c->argv[0] = pcalloc(c->pool, sizeof(unsigned char)); -- *((unsigned char *) c->argv[0]) = bool; -+ *((unsigned char *) c->argv[0]) = use_failsafe; - c->flags |= CF_MERGEDOWN; - - return PR_HANDLED(cmd); diff --git a/net-ftp/proftpd/files/proftpd-1.3.9-clamav-refresh-api.patch b/net-ftp/proftpd/files/proftpd-1.3.9-clamav-refresh-api.patch deleted file mode 100644 index f21cf4d49244..000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.9-clamav-refresh-api.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://github.com/jbenden/mod_clamav/commit/509be57280634453be338b52d1bd0af212356587 -From 509be57280634453be338b52d1bd0af212356587 Mon Sep 17 00:00:00 2001 -From: offsides <josh@honorablemenschen.com> -Date: Tue, 2 Jan 2024 17:21:37 -0500 -Subject: [PATCH] Update mod_clamav.c (#19) - -end_login is no longer defined in compat.h as of 1.3.9rc2, so the call needs to be replaced with pr_session_end ---- - mod_clamav.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mod_clamav.c b/mod_clamav.c -index dcc4929..d39e347 100644 ---- a/mod_clamav.c -+++ b/mod_clamav.c -@@ -239,7 +239,7 @@ static int clamavd_scan_stream(int sockd, const char *abs_filename, - buf = malloc(bufsz); - if (!buf) { - pr_log_pri(PR_LOG_CRIT, "Out of memory!"); -- end_login(1); -+ pr_session_end(1); - } - - /* send file contents using protocol defined by Clamd */ diff --git a/net-ftp/proftpd/files/proftpd-1.3.9-fix_heimdal.patch b/net-ftp/proftpd/files/proftpd-1.3.9-fix_heimdal.patch deleted file mode 100644 index 8c20d075bf2b..000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.9-fix_heimdal.patch +++ /dev/null @@ -1,151 +0,0 @@ -fix compatiblity with heimdal : -* fix bashism '==' -* test libkrb5 instead of krb5-private.h for _krb5_principal2principalname -* include <gssapi/gssapi_krb5.h> even if HAVE_HEIMDAL_KERBEROS for krb5_gss_register_acceptor_identity -* initialize PrincipalName *pn ---- a/configure -+++ b/configure -@@ -2963,7 +2963,7 @@ - fi - ac_krb5_solaris="`$krb5confpath --version 2>/dev/null | grep -i solaris`" - ac_krb5_heimdal="`$krb5confpath --version 2>/dev/null | grep -i heimdal`" -- if test "x$ac_krb5_solaris" == x ; then -+ if test "x$ac_krb5_solaris" = x ; then - ac_krb5_cflags=`$krb5confpath --cflags krb5 2> /dev/null ` - if test $? != 0; then - krb5fail=t -@@ -3455,29 +3455,6 @@ - - done - -- --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _krb5_principal2principalname in krb5-private.h" >&5 --$as_echo_n "checking for _krb5_principal2principalname in krb5-private.h... " >&6; } --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <krb5-private.h> -- --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "_krb5_principal2principalname" >/dev/null 2>&1; then : -- --$as_echo "#define HAVE_KRB5_PRINCIPAL2PRINCIPAL 1" >>confdefs.h -- --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi --rm -f conftest* -- -- --ac_com_error_message=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include <krb5.h> -@@ -4118,6 +4095,57 @@ - fi - - fi -+if test "x$ac_krb5_heimdal" != x ; then -+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _krb5_principal2principalname in -lkrb5" >&5 -+printf %s "checking for _krb5_principal2principalname in -lkrb5... " >&6; } -+if test ${ac_cv_lib_krb5__krb5_principal2principalname+y} -+then : -+ printf %s "(cached) " >&6 -+else case e in #( -+ e) ac_check_lib_save_LIBS=$LIBS -+LIBS="-lkrb5 $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. -+ The 'extern "C"' is for builds by C++ compilers; -+ although this is not generally supported in C code supporting it here -+ has little cost and some practical benefit (sr 110532). */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char _krb5_principal2principalname (void); -+int -+main (void) -+{ -+return _krb5_principal2principalname (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO" -+then : -+ ac_cv_lib_krb5__krb5_principal2principalname=yes -+else case e in #( -+ e) ac_cv_lib_krb5__krb5_principal2principalname=no ;; -+esac -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.beam \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS ;; -+esac -+fi -+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5__krb5_principal2principalname" >&5 -+printf "%s\n" "$ac_cv_lib_krb5__krb5_principal2principalname" >&6; } -+if test "x$ac_cv_lib_krb5__krb5_principal2principalname" = xyes -+then : -+ -+printf "%s\n" "#define HAVE_KRB5_PRINCIPAL2PRINCIPAL 1" >>confdefs.h -+ -+fi -+fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_err_text in -lkrb5" >&5 - $as_echo_n "checking for krb5_get_err_text in -lkrb5... " >&6; } - if ${ac_cv_lib_krb5_krb5_get_err_text+:} false; then : ---- a/mod_gss.h.in -+++ b/mod_gss.h.in -@@ -204,7 +204,6 @@ - #include <gssapi/gssapi.h> - #endif /* HAVE_GSSAPI_H */ - --#ifndef HAVE_HEIMDAL_KERBEROS - #ifdef HAVE_GSSAPI_GSSAPI_EXT_H - #include <gssapi/gssapi_ext.h> - #endif /* HAVE_GSSAPI_GSSAPI_EXT_H */ -@@ -214,7 +213,6 @@ - #ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H - #include <gssapi/gssapi_generic.h> - #endif /* HAVE_GSSAPI_GSSAPI_GENERIC_H */ --#endif /* HAVE_HEIMDAL_KERBEROS */ - - #ifndef HAVE_GSS_INT32 - #define gss_int32 int32_t ---- a/mod_auth_gss.c.in -+++ b/mod_auth_gss.c.in -@@ -109,7 +109,7 @@ - krb5_principal p; - krb5_error_code kerr; - #ifdef HAVE_HEIMDAL_KERBEROS -- PrincipalName *pn; -+ PrincipalName *pn = NULL; - #endif - char *princ_name; - -@@ -179,7 +179,7 @@ - krb5_principal p; - krb5_error_code kerr; - #ifdef HAVE_HEIMDAL_KERBEROS -- PrincipalName *pn; -+ PrincipalName *pn = NULL; - #endif - char *princ_name; - -@@ -251,7 +251,7 @@ - krb5_principal p; - krb5_error_code kerr; - #ifdef HAVE_HEIMDAL_KERBEROS -- PrincipalName *pn; -+ PrincipalName *pn = NULL; - #endif - char *princ_name; - diff --git a/net-ftp/proftpd/files/proftpd-1.3.9-gss-refresh-api.patch b/net-ftp/proftpd/files/proftpd-1.3.9-gss-refresh-api.patch deleted file mode 100644 index ac05bb5bc8fb..000000000000 --- a/net-ftp/proftpd/files/proftpd-1.3.9-gss-refresh-api.patch +++ /dev/null @@ -1,87 +0,0 @@ -Fixes for old API, rename of bool for C23 -https://bugs.gentoo.org/953866 ---- a/mod_gss.c.in -+++ b/mod_gss.c.in -@@ -1412,7 +1412,7 @@ - } - /* If session.user is set, we had a valid login reinforce USER,PASS,ACCT*/ - if (session.user) { -- end_login(0); -+ pr_session_end(0);; - } - - /* Convert the parameter to upper case */ -@@ -2126,18 +2126,18 @@ - - /* usage: GSSEngine on|off */ - MODRET set_gssengine(cmd_rec *cmd) { -- int bool = -1; -+ int Bool = -1; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); - -- if ((bool = get_boolean(cmd, 1)) == -1) -+ if ((Bool = get_boolean(cmd, 1)) == -1) - CONF_ERROR(cmd, "expected Boolean parameter"); - - c = add_config_param(cmd->argv[0], 1, NULL); - c->argv[0] = pcalloc(c->pool, sizeof(unsigned char)); -- *((unsigned char *) c->argv[0]) = bool; -+ *((unsigned char *) c->argv[0]) = Bool; - - return PR_HANDLED(cmd); - } -@@ -2217,14 +2217,14 @@ - - /* usage: GSSRequired on|off|both|ctrl|control|data */ - MODRET set_gssrequired(cmd_rec *cmd) { -- int bool = -1; -+ int Bool = -1; - unsigned char on_ctrl = FALSE, on_data = FALSE; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); - -- if ((bool = get_boolean(cmd, 1)) == -1) { -+ if ((Bool = get_boolean(cmd, 1)) == -1) { - - if (!strcmp(cmd->argv[1], "control") || !strcmp(cmd->argv[1], "ctrl")) - on_ctrl = TRUE; -@@ -2240,7 +2240,7 @@ - CONF_ERROR(cmd, "bad parameter"); - - } else { -- if (bool == TRUE) { -+ if (Bool == TRUE) { - on_ctrl = TRUE; - on_data = TRUE; - } -@@ -2259,14 +2259,14 @@ - - /* usage: GSSInet6 on|off|yes|no*/ - MODRET set_gss_af_inet6(cmd_rec *cmd) { -- int bool = -1; -+ int Bool = -1; - unsigned char on_inet6 = FALSE; - config_rec *c = NULL; - - CHECK_ARGS(cmd, 1); - CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); - -- if ((bool = get_boolean(cmd, 1)) == -1) { -+ if ((Bool = get_boolean(cmd, 1)) == -1) { - - if (!strcmp(cmd->argv[1], "on") || !strcmp(cmd->argv[1], "yes")) - on_inet6 = TRUE; -@@ -2278,7 +2278,7 @@ - CONF_ERROR(cmd, "bad parameter"); - - } else { -- if (bool == TRUE) -+ if (Bool == TRUE) - on_inet6 = TRUE; - } - diff --git a/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf b/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf new file mode 100644 index 000000000000..26ad04256b43 --- /dev/null +++ b/net-ftp/proftpd/files/proftpd-tmpfiles.d.conf @@ -0,0 +1 @@ +d /var/run/proftpd 0755 root root diff --git a/net-ftp/proftpd/files/proftpd.initd b/net-ftp/proftpd/files/proftpd.initd new file mode 100644 index 000000000000..a7ab650e1105 --- /dev/null +++ b/net-ftp/proftpd/files/proftpd.initd @@ -0,0 +1,51 @@ +#!/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/files/proftpd.initd-r1 b/net-ftp/proftpd/files/proftpd.initd-r1 index 0d59ec5762e8..dcd262bfcbd4 100644 --- a/net-ftp/proftpd/files/proftpd.initd-r1 +++ b/net-ftp/proftpd/files/proftpd.initd-r1 @@ -15,7 +15,7 @@ check_configuration() { eerror "file. In /etc/proftpd you can find a sample configuration." return 1 fi - /usr/sbin/proftpd -t >/dev/null 2>&1 + /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" diff --git a/net-ftp/proftpd/metadata.xml b/net-ftp/proftpd/metadata.xml index 57fdb65e93e2..493485804436 100644 --- a/net-ftp/proftpd/metadata.xml +++ b/net-ftp/proftpd/metadata.xml @@ -1,9 +1,21 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="person"> + <email>slyfox@gentoo.org</email> + <name>Sergei Trofimovich</name> + <description>Mostly user.</description> + </maintainer> <longdescription>ProFTPD grew out of the desire to have a secure and configurable FTP server, and out of a significant admiration of the Apache web server.</longdescription> + <upstream> + <remote-id type="cpe">cpe:/a:proftpd:proftpd</remote-id> + </upstream> <use> <flag name="authfile">Enable support for the auth-file module</flag> <flag name="ban">Enable support for the mod_ban module</flag> diff --git a/net-ftp/proftpd/proftpd-1.3.8c.ebuild b/net-ftp/proftpd/proftpd-1.3.8c.ebuild new file mode 100644 index 000000000000..ef4ab00acb69 --- /dev/null +++ b/net-ftp/proftpd/proftpd-1.3.8c.ebuild @@ -0,0 +1,298 @@ +# Copyright 2021-2023 Liguros 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? ( mirror://sourceforge/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 ~ia64 ~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:= + 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 +) + +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}" + + econf --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} +} + +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-r3.ebuild b/net-ftp/proftpd/proftpd-1.3.9-r3.ebuild index fa8add9b89d8..7a134f665e1c 100644 --- a/net-ftp/proftpd/proftpd-1.3.9-r3.ebuild +++ b/net-ftp/proftpd/proftpd-1.3.9-r3.ebuild @@ -1,6 +1,5 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 2021-2025 Liguros Authors # Distributed under the terms of the GNU General Public License v2 - EAPI=8 inherit systemd tmpfiles toolchain-funcs @@ -39,7 +38,7 @@ 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 + 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" @@ -78,7 +77,10 @@ COMMON_DEPEND=" ) nls? ( virtual/libiconv ) ncurses? ( sys-libs/ncurses:0= ) - ssl? ( dev-libs/openssl:0= ) + ssl? ( + dev-libs/openssl:0= + + ) pam? ( sys-libs/pam ) pcre? ( dev-libs/libpcre ) postgres? ( @@ -147,6 +149,7 @@ src_prepare() { 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 diff --git a/net-ftp/proftpd/proftpd-1.3.9a.ebuild b/net-ftp/proftpd/proftpd-1.3.9a.ebuild index 052e754461f6..7a134f665e1c 100644 --- a/net-ftp/proftpd/proftpd-1.3.9a.ebuild +++ b/net-ftp/proftpd/proftpd-1.3.9a.ebuild @@ -1,10 +1,8 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 2021-2025 Liguros 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 flag-o-matic systemd tmpfiles toolchain-funcs verify-sig +inherit systemd tmpfiles toolchain-funcs MOD_CASE="0.9.1" MOD_CLAMAV="0.14rc2" @@ -33,7 +31,6 @@ SRC_URI=" -> 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/_/}" @@ -41,7 +38,7 @@ 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 + 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" @@ -80,14 +77,22 @@ COMMON_DEPEND=" ) nls? ( virtual/libiconv ) ncurses? ( sys-libs/ncurses:0= ) - ssl? ( dev-libs/openssl:0= ) + ssl? ( + dev-libs/openssl:0= + + ) pam? ( sys-libs/pam ) - pcre? ( dev-libs/libpcre2:= ) + pcre? ( dev-libs/libpcre ) postgres? ( dev-db/postgresql:= sodium? ( dev-libs/libsodium:0= ) ) - rewrite? ( net-dns/libidn2:= ) + rewrite? ( + || ( + net-dns/libidn2 + net-dns/libidn + ) + ) sftp? ( virtual/zlib:= ) sqlite? ( dev-db/sqlite:3 @@ -104,17 +109,14 @@ RDEPEND=" clamav? ( app-antivirus/clamav ) selinux? ( sec-policy/selinux-ftp ) " -BDEPEND=" - verify-sig? ( sec-keys/openpgp-keys-proftpd ) -" PATCHES=( "${FILESDIR}"/${PN}-1.3.6-use-trace.patch - "${FILESDIR}"/${PN}-1.3.9-sftp_ssl-3.0.patch - - # merged in 1.3.10 # https://bugs.gentoo.org/953968 "${FILESDIR}"/${PN}-1.3.9-slibtool.patch + "${FILESDIR}"/${PN}-1.3.9-sftp_ssl-3.0.patch + # PR 1979 merged + "${FILESDIR}"/${PN}-1.3.9-fix_c23.patch ) QA_CONFIG_IMPL_DECL_SKIP=( @@ -136,11 +138,6 @@ in_dir() { 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 @@ -152,6 +149,7 @@ src_prepare() { 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 @@ -198,10 +196,6 @@ src_prepare() { } src_configure() { - # -Werror=lto-type-mismatch #969611 - # https://github.com/proftpd/proftpd/issues/2032 - use dso && filter-lto - local c m use acl && m="${m}:mod_facl" @@ -285,7 +279,7 @@ src_configure() { $(use_enable nls) $(use_enable ssl openssl) $(use_enable pam auth-pam) - $(use_enable pcre pcre2) + $(use_enable pcre) $(use_enable sodium) $(use_enable test tests) --enable-trace 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..35270ff33507 --- /dev/null +++ b/net-ftp/pure-ftpd/files/pure-ftpd.rc11 @@ -0,0 +1,75 @@ +#!/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 +} diff --git a/net-ftp/pure-ftpd/metadata.xml b/net-ftp/pure-ftpd/metadata.xml index 9dc464a49e89..29fa6d6ee239 100644 --- a/net-ftp/pure-ftpd/metadata.xml +++ b/net-ftp/pure-ftpd/metadata.xml @@ -1,15 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> <maintainer type="person"> - <email>conikost@gentoo.org</email> - <name>Conrad Kostecki</name> + <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> + <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> + <upstream> + <remote-id type="cpe">cpe:/a:pureftpd:pure-ftpd</remote-id> + </upstream> <use> <flag name="anondel">Permit anonymous to delete files</flag> <flag name="anonperm">Permit anonymous to change file permissions</flag> @@ -19,7 +22,7 @@ <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 <pkg>sys-fs/quota</pkg>)</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> <origin>baldeagleos-repo</origin> diff --git a/net-ftp/pure-ftpd/pure-ftpd-1.0.53.ebuild b/net-ftp/pure-ftpd/pure-ftpd-1.0.53.ebuild index 4d4f2610f997..05599f035af8 100644 --- a/net-ftp/pure-ftpd/pure-ftpd-1.0.53.ebuild +++ b/net-ftp/pure-ftpd/pure-ftpd-1.0.53.ebuild @@ -1,23 +1,21 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 2021-2026 Liguros Authors # Distributed under the terms of the GNU General Public License v2 - EAPI=8 -inherit eapi9-ver flag-o-matic +inherit flag-o-matic DESCRIPTION="Fast, production-quality, standard-conformant FTP server" HOMEPAGE="https://www.pureftpd.org/project/pure-ftpd/" -if [[ "${PV}" == 9999 ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://github.com/jedisct1/pure-ftpd.git" -else - SRC_URI="https://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" -fi - +SRC_URI=" + ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2 + https://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2 +" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86" 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 )" DEPEND=" @@ -32,7 +30,10 @@ DEPEND=" ) pam? ( sys-libs/pam ) postgres? ( dev-db/postgresql:= ) - ssl? ( dev-libs/openssl:0=[-bindist(-)] ) + ssl? ( + dev-libs/openssl:0=[-bindist(-)] + + ) sysquota? ( sys-fs/quota[-rpc] ) xinetd? ( virtual/inetd ) " @@ -45,20 +46,12 @@ RDEPEND=" BDEPEND="dev-build/autoconf-archive" -QA_CONFIG_IMPL_DECL_SKIP=( - # FP noise (bug #900068) - sendfile sendfilev +PATCHES=( + "${FILESDIR}/${PN}-1.0.28-pam.patch" ) -PATCHES=( "${FILESDIR}/${PN}-1.0.28-pam.patch" ) - src_prepare() { default - - # Don't hardcode FORTIFY_SOURCE - sed -e '/-D_FORTIFY_SOURCE=2/d' -i configure || die - - [[ "${PV}" == 9999 ]] && eautoreconf } src_configure() { @@ -154,9 +147,13 @@ pkg_postinst() { 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 - elif ver_replacing -le "1.0.50" ; then - einfo "Configuration through /etc/conf.d/pure-ftpd is now deprecated!" - einfo "Please migrate your settings to the new configuration file." - einfo "Use /etc/pure-ftpd.conf to adjust your settings." + else + for v in ${REPLACING_VERSIONS} ; do + if ver_test "${v}" -le "1.0.50" ; then + einfo "Configuration through /etc/conf.d/pure-ftpd is now deprecated!" + einfo "Please migrate your settings to the new configuration file." + einfo "Use /etc/pure-ftpd.conf to adjust your settings." + fi + done fi } diff --git a/net-ftp/pure-ftpd/pure-ftpd-1.0.54.ebuild b/net-ftp/pure-ftpd/pure-ftpd-1.0.54.ebuild index 2a2915282e73..05599f035af8 100644 --- a/net-ftp/pure-ftpd/pure-ftpd-1.0.54.ebuild +++ b/net-ftp/pure-ftpd/pure-ftpd-1.0.54.ebuild @@ -1,23 +1,21 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 2021-2026 Liguros Authors # Distributed under the terms of the GNU General Public License v2 - EAPI=8 -inherit eapi9-ver flag-o-matic +inherit flag-o-matic DESCRIPTION="Fast, production-quality, standard-conformant FTP server" HOMEPAGE="https://www.pureftpd.org/project/pure-ftpd/" -if [[ "${PV}" == 9999 ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://github.com/jedisct1/pure-ftpd.git" -else - SRC_URI="https://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - +SRC_URI=" + ftp://ftp.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2 + https://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2 +" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86" 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 )" DEPEND=" @@ -32,7 +30,10 @@ DEPEND=" ) pam? ( sys-libs/pam ) postgres? ( dev-db/postgresql:= ) - ssl? ( dev-libs/openssl:0=[-bindist(-)] ) + ssl? ( + dev-libs/openssl:0=[-bindist(-)] + + ) sysquota? ( sys-fs/quota[-rpc] ) xinetd? ( virtual/inetd ) " @@ -45,20 +46,12 @@ RDEPEND=" BDEPEND="dev-build/autoconf-archive" -QA_CONFIG_IMPL_DECL_SKIP=( - # FP noise (bug #900068) - sendfile sendfilev +PATCHES=( + "${FILESDIR}/${PN}-1.0.28-pam.patch" ) -PATCHES=( "${FILESDIR}/${PN}-1.0.28-pam.patch" ) - src_prepare() { default - - # Don't hardcode FORTIFY_SOURCE - sed -e '/-D_FORTIFY_SOURCE=2/d' -i configure || die - - [[ "${PV}" == 9999 ]] && eautoreconf } src_configure() { @@ -154,9 +147,13 @@ pkg_postinst() { 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 - elif ver_replacing -le "1.0.50" ; then - einfo "Configuration through /etc/conf.d/pure-ftpd is now deprecated!" - einfo "Please migrate your settings to the new configuration file." - einfo "Use /etc/pure-ftpd.conf to adjust your settings." + else + for v in ${REPLACING_VERSIONS} ; do + if ver_test "${v}" -le "1.0.50" ; then + einfo "Configuration through /etc/conf.d/pure-ftpd is now deprecated!" + einfo "Please migrate your settings to the new configuration file." + einfo "Use /etc/pure-ftpd.conf to adjust your settings." + fi + done fi } diff --git a/net-ftp/pure-ftpd/pure-ftpd-9999.ebuild b/net-ftp/pure-ftpd/pure-ftpd-9999.ebuild deleted file mode 100644 index bdada3101f81..000000000000 --- a/net-ftp/pure-ftpd/pure-ftpd-9999.ebuild +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver flag-o-matic - -DESCRIPTION="Fast, production-quality, standard-conformant FTP server" -HOMEPAGE="https://www.pureftpd.org/project/pure-ftpd/" -if [[ "${PV}" == 9999 ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://github.com/jedisct1/pure-ftpd.git" -else - SRC_URI="https://download.pureftpd.org/pub/${PN}/releases/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~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 )" - -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=[-bindist(-)] ) - sysquota? ( sys-fs/quota[-rpc] ) - xinetd? ( virtual/inetd ) -" - -RDEPEND=" - ${DEPEND} - net-ftp/ftpbase - selinux? ( sec-policy/selinux-ftp ) -" - -BDEPEND="dev-build/autoconf-archive" - -QA_CONFIG_IMPL_DECL_SKIP=( - # FP noise (bug #900068) - sendfile sendfilev -) - -PATCHES=( "${FILESDIR}/${PN}-1.0.28-pam.patch" ) - -src_prepare() { - default - - # Don't hardcode FORTIFY_SOURCE - sed -e '/-D_FORTIFY_SOURCE=2/d' -i configure.ac || die - - [[ "${PV}" == 9999 ]] && eautoreconf -} - -src_configure() { - # 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 implicittls) - $(use_with ldap) - $(use_with mysql) - $(use_with pam) - $(use_with paranoidmsg) - $(use_with postgres pgsql) - $(use_with ssl tls) - $(use_with sysquota sysquotas) - $(use_with vchroot virtualchroot) - $(usex caps '' '--without-capabilities') - $(usex noiplog '--without-iplogging' '') - $(usex xinetd '' '--without-inetd') - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - newinitd "${FILESDIR}/pure-ftpd.initd-r12" pure-ftpd - newconfd "${FILESDIR}/pure-ftpd.confd-r4" pure-ftpd - - newinitd "${FILESDIR}/pure-uploadscript.initd-r1" pure-uploadscript - newconfd "${FILESDIR}/pure-uploadscript.confd" pure-uploadscript - - if use implicittls ; then - sed -e '/^# Bind/s@21@990@' -i "${ED}"/etc/pure-ftpd.conf || die - fi - - if use ssl ; then - newinitd "${FILESDIR}/pure-certd.initd" pure-certd - - exeinto /etc - newexe "${FILESDIR}/pure-certd.script" pure-certd.sh - fi - - if use ldap ; then - insinto /etc/openldap/schema - doins pureftpd.schema - insinto /etc/openldap - insopts -m 0600 - doins pureftpd-ldap.conf - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}/pure-ftpd.xinetd" pure-ftpd - 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/pure-ftpd.conf 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 - elif ver_replacing -le "1.0.50" ; then - einfo "Configuration through /etc/conf.d/pure-ftpd is now deprecated!" - einfo "Please migrate your settings to the new configuration file." - einfo "Use /etc/pure-ftpd.conf to adjust your settings." - fi -} |
