guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#47495] [PATCH] gnu: vsftpd: Use CentOS version and patches.


From: david larsson
Subject: [bug#47495] [PATCH] gnu: vsftpd: Use CentOS version and patches.
Date: Tue, 30 Mar 2021 11:20:39 +0200

On 2021-03-30 09:52, david larsson wrote:
Hi,
the attached patch updates vsftpd so it can use tlsv1.2 etc.

//David

Sorry, that was the wrong patch that got attached. I have attached the correct one now, and pasted below:

From 10868d1d6e705abc9e1d5744f6eea321f3dafc64 Mon Sep 17 00:00:00 2001
From: methuselah-0 <david.larsson@selfhosted.xyz>
Date: Tue, 30 Mar 2021 11:18:09 +0200
Subject: [PATCH] gnu: vsftpd: Use CentOS version and patches.

    * gnu/packages/ftp.scm (vftpd): Use CentOS version and patches.
---
 gnu/packages/ftp.scm | 185 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 150 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index b178063556..1c2c8119c7 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))

@@ -251,40 +254,152 @@ directory comparison and more.")
     (properties '((upstream-name . "FileZilla")))))

 (define-public vsftpd
-  (package
-    (name "vsftpd")
-    (version "3.0.3")
-    (source (origin
-              (method url-fetch)
- (uri (string-append "https://security.appspot.com/downloads/";
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
- "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:make-flags '("LDFLAGS=-lcrypt")
-       #: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))))
-    (synopsis "vsftpd FTP daemon")
- (description "@command{vsftpd} is a daemon that listens on a TCP socket
+  (let ((version "3.0.3")
+        (revision "32")
+        (centos-version "8.3.2011"))
+    (package
+      (name "vsftpd")
+      (version version)
+      (source (origin
+                (method url-fetch)
+                (uri (string-append
+                      "https://vault.centos.org/centos/"; centos-version
+                      "/AppStream/Source/SPackages/vsftpd-" version "-"
+                      revision ".el8.src.rpm"))
+                (sha256
+                 (base32
+ "1xl0kqcismf82hl99klqbvvpylpyk1yr1qjy5hd8f80cj4lyl0f4"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#: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))
+           (replace 'unpack
+             (lambda* (#:key source #:allow-other-keys)
+                 (let ((version "3.0.3")
+                       (revision "32")
+                       (centos-version "8.3.2011"))
+
+ (invoke "7z" "e" source (string-append "-o" "./vsftpd-"
+                                                          version "-"
+ revision ".el8.src.cpio"))
+                   (chdir (string-append "./vsftpd-" version "-"
+                                         revision ".el8.src.cpio"))
+ (invoke "cpio" "-idmv" (string-append "--file=./vsftpd-"
+                                                         version "-"
+ revision ".el8.src.cpio")) + (invoke "tar" "xvf" (string-append "./vsftpd-" version ".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) + (string-append "vsftpd-" version "/")))
+                          patches)
+                     (chdir (string-append "./vsftpd-" version))
+                     (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" (string-append "./vsftpd-" version) "../")
+                     (chdir "../")
+ (invoke "rm" "-rf" (string-append "./vsftpd-" version "-" + revision ".el8.src.cpio"))
+                     (chdir (string-append "./vsftpd-" version)))
+                   #t)))
+ (add-before 'install 'mkdirFrom 10868d1d6e705abc9e1d5744f6eea321f3dafc64 Mon Sep 17 00:00:00 2001
From: methuselah-0 <david.larsson@selfhosted.xyz>
Date: Tue, 30 Mar 2021 11:18:09 +0200
Subject: [PATCH] gnu: vsftpd: Use CentOS version and patches.

    * gnu/packages/ftp.scm (vftpd): Use CentOS version and patches.
---
 gnu/packages/ftp.scm | 185 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 150 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index b178063556..1c2c8119c7 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))

@@ -251,40 +254,152 @@ directory comparison and more.")
     (properties '((upstream-name . "FileZilla")))))

 (define-public vsftpd
-  (package
-    (name "vsftpd")
-    (version "3.0.3")
-    (source (origin
-              (method url-fetch)
- (uri (string-append "https://security.appspot.com/downloads/";
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
- "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:make-flags '("LDFLAGS=-lcrypt")
-       #: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))))
-    (synopsis "vsftpd FTP daemon")
- (description "@command{vsftpd} is a daemon that listens on a TCP socket
+  (let ((version "3.0.3")
+        (revision "32")
+        (centos-version "8.3.2011"))
+    (package
+      (name "vsftpd")
+      (version version)
+      (source (origin
+                (method url-fetch)
+                (uri (string-append
+                      "https://vault.centos.org/centos/"; centos-version
+                      "/AppStream/Source/SPackages/vsftpd-" version "-"
+                      revision ".el8.src.rpm"))
+                (sha256
+                 (base32
+ "1xl0kqcismf82hl99klqbvvpylpyk1yr1qjy5hd8f80cj4lyl0f4"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#: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))
+           (replace 'unpack
+             (lambda* (#:key source #:allow-other-keys)
+                 (let ((version "3.0.3")
+                       (revision "32")
+                       (centos-version "8.3.2011"))
+
+ (invoke "7z" "e" source (string-append "-o" "./vsftpd-"
+                                                          version "-"
+ revision ".el8.src.cpio"))
+                   (chdir (string-append "./vsftpd-" version "-"
+                                         revision ".el8.src.cpio"))
+ (invoke "cpio" "-idmv" (string-append "--file=./vsftpd-"
+                                                         version "-"
+ revision ".el8.src.cpio")) + (invoke "tar" "xvf" (string-append "./vsftpd-" version ".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) + (string-append "vsftpd-" version "/")))
+                          patches)
+                     (chdir (string-append "./vsftpd-" version))
+                     (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" (string-append "./vsftpd-" version) "../")
+                     (chdir "../")
+ (invoke "rm" "-rf" (string-append "./vsftpd-" version "-" + revision ".el8.src.cpio"))
+                     (chdir (string-append "./vsftpd-" version)))
+                   #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 "Share files securely over FTP or FTPS")
+ (description "@command{vsftpd} is a daemon that listens on a TCP socket
 for clients and gives them access to local files via File Transfer
 Protocol.")
-    (home-page "https://security.appspot.com/vsftpd.html";)
-    (license gpl2)))
+      (home-page "https://security.appspot.com/vsftpd.html";)
+      (license gpl2))))
--
2.30.2


+             (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 "Share files securely over FTP or FTPS")
+ (description "@command{vsftpd} is a daemon that listens on a TCP socket
 for clients and gives them access to local files via File Transfer
 Protocol.")
-    (home-page "https://security.appspot.com/vsftpd.html";)
-    (license gpl2)))
+      (home-page "https://security.appspot.com/vsftpd.html";)
+      (license gpl2))))
--
2.30.2

Attachment: 0001-gnu-vsftpd-Use-CentOS-version-and-patches.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]