From 4f11b0960610e2afe670630bb1b93150714ce516 Mon Sep 17 00:00:00 2001 From: methuselah-0 Date: Tue, 30 Mar 2021 09:45:41 +0200 Subject: [PATCH] gnu: vsftpd: Use CentOS version and patches. * gnu/packages/ftp.scm (vftpd): Use CentOS version and patches. --- gnu/packages/ftp.scm | 138 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 118 insertions(+), 20 deletions(-) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index b178063556..9d704aaa3f 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -28,18 +28,21 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages check) + #:use-module (gnu packages cpio) #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages libidn) + #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml)) @@ -256,32 +259,127 @@ directory comparison and more.") (version "3.0.3") (source (origin (method url-fetch) - (uri (string-append "https://security.appspot.com/downloads/" - name "-" version ".tar.gz")) + (uri "https://vault.centos.org/centos/8.3.2011/AppStream/Source/SPackages/vsftpd-3.0.3-32.el8.src.rpm") (sha256 (base32 - "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx")))) + "1xl0kqcismf82hl99klqbvvpylpyk1yr1qjy5hd8f80cj4lyl0f4")))) (build-system gnu-build-system) (arguments - `(#:make-flags '("LDFLAGS=-lcrypt") - #:tests? #f ; No tests exist. + `(#:make-flags '("LDFLAGS=-lcrypt -lssl -pie") + #:tests? #f ; No tests exist. #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-installation-directory - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("/usr") (assoc-ref outputs "out"))) - #t)) - (add-before 'install 'mkdir - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p out) - (mkdir (string-append out "/sbin")) - (mkdir (string-append out "/man")) - (mkdir (string-append out "/man/man5")) - (mkdir (string-append out "/man/man8")) - #t))) - (delete 'configure)))) + (add-after 'unpack 'patch-installation-directory + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("/usr") (assoc-ref outputs "out"))) + #t)) + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (invoke "7z" "e" source (string-append "-o" "./" "vsftpd-3.0.3-32.el8.src.cpio")) + (chdir "./vsftpd-3.0.3-32.el8.src.cpio") + (invoke "cpio" "-idmv" (string-append "--file=./vsftpd-3.0.3-32.el8.src.cpio")) + (invoke "tar" "xvf" "./vsftpd-3.0.3.tar.gz") + (let ((patches '("0001-Don-t-use-the-provided-script-to-locate-libraries.patch" + "0002-Enable-build-with-SSL.patch" + "0003-Enable-build-with-TCP-Wrapper.patch" + "0004-Use-etc-vsftpd-dir-for-config-files-instead-of-etc.patch" + "0005-Use-hostname-when-calling-PAM-authentication-module.patch" + "0006-Close-stdin-out-err-before-listening-for-incoming-co.patch" + "0007-Make-filename-filters-smarter.patch" + "0008-Write-denied-logins-into-the-log.patch" + "0009-Trim-whitespaces-when-reading-configuration.patch" + "0010-Improve-daemonizing.patch" + "0011-Fix-listing-with-more-than-one-star.patch" + "0012-Replace-syscall-__NR_clone-.-with-clone.patch" + "0013-Extend-man-pages-with-systemd-info.patch" + "0014-Add-support-for-square-brackets-in-ls.patch" + "0015-Listen-on-IPv6-by-default.patch" + "0016-Increase-VSFTP_AS_LIMIT-from-200UL-to-400UL.patch" + "0017-Fix-an-issue-with-timestamps-during-DST.patch" + "0018-Change-the-default-log-file-in-configuration.patch" + "0019-Introduce-reverse_lookup_enable-option.patch" + "0020-Use-unsigned-int-for-uid-and-gid-representation.patch" + "0021-Introduce-support-for-DHE-based-cipher-suites.patch" + "0022-Introduce-support-for-EDDHE-based-cipher-suites.patch" + "0023-Add-documentation-for-isolate_-options.-Correct-defa.patch" + "0024-Introduce-new-return-value-450.patch" + "0025-Improve-local_max_rate-option.patch" + "0026-Prevent-hanging-in-SIGCHLD-handler.patch" + "0027-Delete-files-when-upload-fails.patch" + "0028-Fix-man-page-rendering.patch" + "0029-Fix-segfault-in-config-file-parser.patch" + "0030-Fix-logging-into-syslog-when-enabled-in-config.patch" + "0031-Fix-question-mark-wildcard-withing-a-file-name.patch" + "0032-Propagate-errors-from-nfs-with-quota-to-client.patch" + "0033-Introduce-TLSv1.1-and-TLSv1.2-options.patch" + "0034-Turn-off-seccomp-sandbox-because-it-is-too-strict.patch" + "0035-Modify-DH-enablement-patch-to-build-with-OpenSSL-1.1.patch" + "0036-Redefine-VSFTP_COMMAND_FD-to-1.patch" + "0037-Document-the-relationship-of-text_userdb_names-and-c.patch" + "0038-Document-allow_writeable_chroot-in-the-man-page.patch" + "0039-Improve-documentation-of-ASCII-mode-in-the-man-page.patch" + "0040-Use-system-wide-crypto-policy.patch" + "0041-Document-the-new-default-for-ssl_ciphers-in-the-man-.patch" + "0042-When-handling-FEAT-command-check-ssl_tlsv1_1-and-ssl.patch" + "0043-Enable-only-TLSv1.2-by-default.patch" + "0044-Disable-anonymous_enable-in-default-config-file.patch" + "0045-Expand-explanation-of-ascii_-options-behaviour-in-ma.patch" + "0046-vsftpd.conf-Refer-to-the-man-page-regarding-the-asci.patch" + "0047-Disable-tcp_wrappers-support.patch" + "0048-Fix-default-value-of-strict_ssl_read_eof-in-man-page.patch" + "0049-Add-new-filename-generation-algorithm-for-STOU-comma.patch" + "0050-Don-t-link-with-libnsl.patch" + "0051-Improve-documentation-of-better_stou-in-the-man-page.patch" + "0052-Fix-rDNS-with-IPv6.patch" + "0053-Always-do-chdir-after-chroot.patch" + "0054-vsf_sysutil_rcvtimeo-Check-return-value-of-setsockop.patch" + "0055-vsf_sysutil_get_tz-Check-the-return-value-of-syscall.patch" + "0056-Log-die-calls-to-syslog.patch" + "0057-Improve-error-message-when-max-number-of-bind-attemp.patch" + "0058-Make-the-max-number-of-bind-retries-tunable.patch" + "0059-Fix-SEGFAULT-when-running-in-a-container-as-PID-1.patch" + "0001-Move-closing-standard-FDs-after-listen.patch" + "0002-Prevent-recursion-in-bug.patch" + "0001-Set-s_uwtmp_inserted-only-after-record-insertion-rem.patch" + "0002-Repeat-pututxline-if-it-fails-with-EINTR.patch" + "0003-Repeat-pututxline-until-it-succeeds-if-it-fails-with.patch" + "0001-Fix-timestamp-handling-in-MDTM.patch" + "0001-Remove-a-hint-about-the-ftp_home_dir-SELinux-boolean.patch" + ))) + (map (lambda (x) (invoke "mv" (string-append "./" x) "vsftpd-3.0.3/")) patches) + (chdir "./vsftpd-3.0.3") + (invoke "git" "init" ".") + (invoke "git" "config" "user.email" "you@example.com") + (invoke "git" "config" "user.name" "Your Name" ) + (invoke "git" "add" ".") + (invoke "git" "commit" "-m" "first") + (map (lambda (x) (invoke "git" "am" (string-append "./" x))) patches) + (map (lambda (x) (invoke "rm" (string-append "./" x))) patches) + (invoke "rm" "-rf" "./.git") + (chdir "../") + (invoke "mv" "./vsftpd-3.0.3" "../") + (chdir "../") + (invoke "rm" "-rf" "./vsftpd-3.0.3-32.el8.src.cpio") + (chdir "./vsftpd-3.0.3") + ) + #t)) + (add-before 'install 'mkdir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p out) + (mkdir (string-append out "/sbin")) + (mkdir (string-append out "/man")) + (mkdir (string-append out "/man/man5")) + (mkdir (string-append out "/man/man8")) + #t))) + (delete 'configure)))) + (native-inputs `(("openssl" ,openssl) + ("linux-pam" ,linux-pam) + ("p7zip" ,p7zip) + ("cpio" ,cpio) + ("git" ,git-minimal) + ("libcap" ,libcap))) (synopsis "vsftpd FTP daemon") (description "@command{vsftpd} is a daemon that listens on a TCP socket for clients and gives them access to local files via File Transfer -- 2.30.2