gnu: r-opencyto: Update to 2.8.4.
[jackhill/guix/guix.git] / gnu / packages / ftp.scm
index f014629..7a69e3b 100644 (file)
@@ -1,9 +1,12 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2018, 2021, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
+;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +28,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
@@ -34,6 +38,7 @@
   #: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)
                 "03b7y0h3mf4jfq5y8zw6hv9v44z3n6i8hc1iswax96y3z7sc85y5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("zlib" ,zlib)
-       ("readline" ,readline)
-       ("gnutls" ,gnutls)))
+     (list zlib readline gnutls))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -100,6 +103,9 @@ reliability in mind.")
               (sha256
                (base32
                 "1389657cwgw5a3kljnqmhvfh4vr2gcr71dwz1mlhf22xq23hc82z"))
+              (patches
+               (search-patches
+                "ncftp-reproducible.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -115,6 +121,8 @@ reliability in mind.")
                     (("a freeware program")
                      "free software"))
                   #t))))
+    (properties
+     `((release-monitoring-url . "https://www.ncftp.com/download/")))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -126,10 +134,11 @@ reliability in mind.")
                     (let ((out (assoc-ref outputs "out")))
                       (setenv "CONFIG_SHELL" (which "sh"))
                       (setenv "SHELL" (which "sh"))
+                      (setenv "CFLAGS" "-fcommon")
                       (invoke "./configure"
                               (string-append "--prefix=" out))))))
        #:tests? #f)) ;there are no tests
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://www.ncftp.com/ncftp/")
     (synopsis "Command-line File Transfer Protocol (FTP) client")
     (description
@@ -155,9 +164,7 @@ FTP browser, as well as non-interactive commands such as @code{ncftpput} and
             "1ir761hjncr1bamaqcw9j7x57xi3s9jax3223bxwbq30a0vsw1pd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("gettext" ,gettext-minimal)))
+     (list automake autoconf gettext-minimal))
     (home-page "http://weex.sourceforge.net/")
     (synopsis "Non-interactive client for FTP synchronization")
     (description
@@ -170,25 +177,22 @@ as required.")
 (define-public libfilezilla
   (package
     (name "libfilezilla")
-    (version "0.24.1")
+    (version "0.37.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/"
                            "libfilezilla/libfilezilla-" version ".tar.bz2"))
        (sha256
-        (base32 "1zfnqbn14dx0fl45mfaznr5n5xsxy1kx8z9f80fppbqn37pb9mgx"))))
+        (base32 "1mg2zqmpkkcimx6kq3a1ab26v515zzxw2s8rwhmajsv4cgp404g5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--disable-static")))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit gettext-minimal pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("nettle" ,nettle)))
+     (list gnutls nettle))
     (home-page "https://lib.filezilla-project.org")
     (synopsis "Cross-platform C++ library used by Filezilla client")
     (description
@@ -213,32 +217,30 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.50.0")
+    (version "3.60.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "042w2f5cf8g9cr7d3m6294ygx7jggcria9502jnql855khk8gnz0"))))
+        (base32 "1bv643abf8jai552j9fqcl4i54h1yrs5hgn6w0w1ibwccdinryc1"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
      '(#:configure-flags '("--disable-autoupdatecheck")))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("xdg-utils" ,xdg-utils)))
+     (list cppunit gettext-minimal pkg-config xdg-utils))
     (inputs
-     `(("dbus" ,dbus)
-       ("gnutls" ,gnutls)
-       ("gtk+" ,gtk+)
-       ("libfilezilla" ,libfilezilla)
-       ("libidn" ,libidn)
-       ("nettle" ,nettle)
-       ("pugixml" ,pugixml)
-       ("sqlite" ,sqlite)
-       ("wxwidgets" ,wxwidgets)))
+     (list dbus
+           gnutls
+           gtk+
+           libfilezilla
+           libidn
+           nettle
+           pugixml
+           sqlite
+           wxwidgets))
     (home-page "https://filezilla-project.org")
     (synopsis "Full-featured graphical FTP/FTPS/SFTP client")
     (description
@@ -252,38 +254,49 @@ directory comparison and more.")
 (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"))))
+    (version "3.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://security.appspot.com/downloads/"
+                           "vsftpd-" version ".tar.gz"))
+       (sha256
+        (base32 "1lwipiq8q9qzvwv6f418fbvagpz0p6v0jjplkvcsc2sb8np05di6"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags '("LDFLAGS=-lcrypt")
-       #:tests? #f                      ; No tests exist.
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             ;; vsf_findlibs.sh looks only for hard-coded {/usr,}/lib file names
+             ;; that will never exist on Guix.  Manage libraries ourselves.
+             "LDFLAGS=-lcap -lpam"
+             "INSTALL=install -D")
+       #:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'build-SSL
+           (lambda _
+             (substitute* "builddefs.h"
+               (("#undef (VSF_BUILD_SSL)" _ symbol)
+                (string-append "#define " symbol)))))
+         (add-after 'unpack 'append-make-flags
+           (lambda _
+             (substitute* "Makefile"
+               (("(CFLAGS|LDFLAGS)[[:blank:]]*=" _ variable)
+                (format #f "UPSTREAM_~a +=" variable))
+               (("\\$\\((CFLAGS|LDFLAGS)\\)" _ variable)
+                (format #f "$(UPSTREAM_~a) $(~@*~a)" variable)))))
          (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
-for clients and gives them access to local files via File Transfer
-Protocol.")
+               (("/usr") (assoc-ref outputs "out")))))
+         (delete 'configure))))         ; no configure script
+    (inputs
+     (list libcap linux-pam openssl))
+    (synopsis "Small FTP server with a focus on security")
+    (description
+     "The Very Secure File Transfer Protocol Daemon or @command{vsftpd} is a
+server that listens on a TCP socket for clients and gives them access to local
+files via @acronym{FTP, the File Transfer Protocol}.  Security is a goal; not a
+guarantee.")
     (home-page "https://security.appspot.com/vsftpd.html")
-    (license gpl2)))
+    (license gpl2)))                    ; with OpenSSL exception