Package: guix-patches;
Reported by: Grigory Shepelev <shegeley <at> gmail.com>
Date: Sat, 19 Apr 2025 18:26:01 UTC
Severity: normal
Tags: moreinfo, patch
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Grigory Shepelev <shegeley <at> gmail.com> To: guix-patches <at> gnu.org Subject: [PATCH] gnu: Add proftpd Date: Mon, 14 Apr 2025 21:00:11 +0300
Notes: 1. "no-install-user.patch" is stolen from nixpkgs 2. By default it looks for ScoreboardFile file in $output/var/<scoreboard-file> and won't find it 3. By default tries to setup PidFile in $CWD/var/proftpd.pid 4. By default mod_delay.c is on and proftpd looks for DelayTable file in $output/var/share Example configuration that disables all of that above: #+begin_src conf ServerName "Secure FTP Server" ServerType standalone DefaultServer on ScoreboardFile off # won't find $output/var/<scoreboard-file> PidFile /var/proftpd.pid # will try to launch in $CWD/var/proftpd.pid # http://proftpd.org/docs/modules/mod_delay.html#DelayTable <IfModule mod_delay.c> # won't find delaytable in $output/var/share DelayEngine off # very minor security consern </IfModule> #+end_src Change-Id: Ic96745df7ef23664099f73d7130688151c5fc128 --- gnu/packages/ftp.scm | 31 ++++ gnu/packages/patches/no-install-user.patch | 189 +++++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 gnu/packages/patches/no-install-user.patch diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 2df6797c42..0027e3dfbc 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -25,6 +25,7 @@ (define-module (gnu packages ftp) #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ clarified-artistic)) + #:use-module (gnu packages perl) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix gexp) @@ -334,3 +335,33 @@ (define-public vsftpd guarantee.") (home-page "https://security.appspot.com/vsftpd.html") (license gpl2))) ; with OpenSSL exception + +(define-public proftpd + (package + (name "proftpd") + (version "1.3.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/proftpd/proftpd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "no-install-user.patch")) + (sha256 + (base32 + "0zgx652qdwj2xkc7218v74x919dxmcs3q5s61v1kpdcw8f9v7370")))) + (build-system gnu-build-system) + (inputs (list libcap linux-pam openssl perl + libxcrypt ncurses zlib libsodium)) + (arguments + (list + #:configure-flags #~(list "--enable-openssl" + "--with-modules=mod_sftp"))) + (synopsis "Highly configurable GPL-licensed FTP server software") + (description + "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. + +ProFTPD is not a hack based on any other server, it's an independent source tree from the ground up. A number of well known and high traffic sites use ProFTPD.") + (home-page "http://www.proftpd.org/") + (license gpl2+))) diff --git a/gnu/packages/patches/no-install-user.patch b/gnu/packages/patches/no-install-user.patch new file mode 100644 index 0000000000..9a8e8edd04 --- /dev/null +++ b/gnu/packages/patches/no-install-user.patch @@ -0,0 +1,189 @@ +diff --git a/Make.rules.in b/Make.rules.in +index 2666b2c..bce4b2b 100644 +--- a/Make.rules.in ++++ b/Make.rules.in +@@ -30,9 +30,9 @@ INSTALL=@INSTALL@ + INSTALL_STRIP=@INSTALL_STRIP@ + INSTALL_USER=@install_user@ + INSTALL_GROUP=@install_group@ +-INSTALL_BIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_SBIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_MAN=$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 ++INSTALL_BIN=$(INSTALL) $(INSTALL_STRIP) -m 0755 ++INSTALL_SBIN=$(INSTALL) $(INSTALL_STRIP) -m 0755 ++INSTALL_MAN=$(INSTALL) -m 0644 + + RM=rm -f + SHELL=@CONFIG_SHELL@ +diff --git a/Makefile.in b/Makefile.in +index 32fd5f3..37c8907 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -129,7 +129,6 @@ check: proftpd$(EXEEXT) + $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -139,7 +138,6 @@ install-proftpd: $(DESTDIR)$(includedir) $(DESTDIR)$(localstatedir) $(DESTDIR)$( + rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \ + fi + ln -s $(top_builddir)/proftpd $(DESTDIR)$(sbindir)/in.proftpd +- -chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd + + install-libs: $(DESTDIR)$(libdir)/proftpd + cd lib/ && $(MAKE) install +@@ -177,11 +175,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir) + $(INSTALL_SBIN) $(top_builddir)/ftpshut $(DESTDIR)$(sbindir)/ftpshut + $(INSTALL_BIN) $(top_builddir)/ftptop $(DESTDIR)$(bindir)/ftptop + $(INSTALL_BIN) $(top_builddir)/ftpwho $(DESTDIR)$(bindir)/ftpwho +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs ++ $(INSTALL) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs + + install-conf: $(DESTDIR)$(sysconfdir) + if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \ +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 \ ++ $(INSTALL) -m 0644 \ + $(top_srcdir)/sample-configurations/basic.conf \ + $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ + fi +diff --git a/contrib/Makefile.in b/contrib/Makefile.in +index d1a31af..65d2abc 100644 +--- a/contrib/Makefile.in ++++ b/contrib/Makefile.in +@@ -17,6 +17,6 @@ Makefile: Makefile.in ../config.status + cd ../ && ./config.status + + install-utils: +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota ++ $(INSTALL) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd ++ $(INSTALL) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail ++ $(INSTALL) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota +diff --git a/contrib/mod_auth_otp/Makefile.in b/contrib/mod_auth_otp/Makefile.in +index 4026969..f07914c 100644 +--- a/contrib/mod_auth_otp/Makefile.in ++++ b/contrib/mod_auth_otp/Makefile.in +@@ -52,7 +52,6 @@ install: install-headers install-man install-utils + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +diff --git a/contrib/mod_dnsbl/Makefile.in b/contrib/mod_dnsbl/Makefile.in +index 4bb54c4..7d70972 100644 +--- a/contrib/mod_dnsbl/Makefile.in ++++ b/contrib/mod_dnsbl/Makefile.in +@@ -46,7 +46,6 @@ install: install-headers + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +diff --git a/contrib/mod_load/Makefile.in b/contrib/mod_load/Makefile.in +index 5ec575e..e7e41cc 100644 +--- a/contrib/mod_load/Makefile.in ++++ b/contrib/mod_load/Makefile.in +@@ -47,7 +47,6 @@ install: install-headers + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +diff --git a/contrib/mod_sftp/Makefile.in b/contrib/mod_sftp/Makefile.in +index 4b8df1f..f7526b9 100644 +--- a/contrib/mod_sftp/Makefile.in ++++ b/contrib/mod_sftp/Makefile.in +@@ -65,7 +65,6 @@ install: install-headers install-misc + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -73,7 +72,6 @@ $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + $(DESTDIR)$(includedir)/proftpd/$(MODULE_NAME): + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -83,8 +81,8 @@ install-headers: $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(includedir)/proftpd + $(RM) $(DESTDIR)$(includedir)/proftpd/$(MODULE_NAME)/$(MODULE_NAME).h + + install-misc: +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 $(top_srcdir)/dhparams.pem $(DESTDIR)$(sysconfdir)/dhparams.pem +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 $(top_srcdir)/blacklist.dat $(DESTDIR)$(sysconfdir)/blacklist.dat ++ $(INSTALL) -m 0644 $(top_srcdir)/dhparams.pem $(DESTDIR)$(sysconfdir)/dhparams.pem ++ $(INSTALL) -m 0644 $(top_srcdir)/blacklist.dat $(DESTDIR)$(sysconfdir)/blacklist.dat + + clean: + $(LIBTOOL) --mode=clean $(RM) $(MODULE_NAME).a $(MODULE_NAME).la *.o *.lo .libs/*.o +diff --git a/contrib/mod_snmp/Makefile.in b/contrib/mod_snmp/Makefile.in +index 7de4c1c..5987896 100644 +--- a/contrib/mod_snmp/Makefile.in ++++ b/contrib/mod_snmp/Makefile.in +@@ -45,7 +45,6 @@ install: install-headers install-misc + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -53,7 +52,7 @@ install-headers: $(DESTDIR)$(includedir)/proftpd + $(INSTALL_MAN) $(MODULE_NAME).h $(DESTDIR)$(includedir)/proftpd/$(MODULE_NAME).h + + install-misc: +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 $(top_srcdir)/PROFTPD-MIB.txt $(DESTDIR)$(sysconfdir)/PROFTPD-MIB.txt ++ $(INSTALL) -m 0644 $(top_srcdir)/PROFTPD-MIB.txt $(DESTDIR)$(sysconfdir)/PROFTPD-MIB.txt + + clean: + $(LIBTOOL) --mode=clean $(RM) $(MODULE_NAME).a $(MODULE_NAME).la *.o *.lo .libs/*.o +diff --git a/contrib/mod_wrap2/Makefile.in b/contrib/mod_wrap2/Makefile.in +index 7da015f..d912d23 100644 +--- a/contrib/mod_wrap2/Makefile.in ++++ b/contrib/mod_wrap2/Makefile.in +@@ -46,7 +46,6 @@ install: install-headers + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +diff --git a/include/Makefile.in b/include/Makefile.in +index 1b69d93..b7e8f5a 100644 +--- a/include/Makefile.in ++++ b/include/Makefile.in +@@ -24,7 +24,6 @@ Makefile: Makefile.in ../config.status + $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +diff --git a/locale/Makefile.in b/locale/Makefile.in +index 77fd787..1c41c0e 100644 +--- a/locale/Makefile.in ++++ b/locale/Makefile.in +@@ -52,7 +52,6 @@ install: $(LANGS) + if [ -f $(top_builddir)/locale/$$lang.mo ]; then \ + if [ ! -d $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES ]; then \ + mkdir -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + chmod 0755 $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + fi; \ + $(INSTALL_MAN) $$lang.mo $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ -- 2.49.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.