gnu: curl: Restore derivation.
[jackhill/guix/guix.git] / gnu / packages / curl.scm
index ae8b960..041853c 100644 (file)
@@ -3,11 +3,12 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
-  #:use-module (gnu packages tls))
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages web))
+
+;; XXX A hidden special obsolete libssh2 for temporary use in the curl package.
+;; <https://bugs.gnu.org/34927>
+(define libssh2-1.8.0
+  (package
+    (inherit libssh2)
+    (version "1.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.libssh2.org/download/libssh2-"
+                    version ".tar.gz"))
+               (sha256
+                (base32
+                 "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr"))
+               (patches
+                (search-patches "libssh2-fix-build-failure-with-gcrypt.patch"))))))
 
 (define-public curl
   (package
    (name "curl")
 
 (define-public curl
   (package
    (name "curl")
-   (version "7.57.0")
-   (replacement curl-7.59.0)
+   (replacement curl-7.64.0)
+   (version "7.63.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://curl.haxx.se/download/curl-"
                                 version ".tar.xz"))
             (sha256
              (base32
    (source (origin
             (method url-fetch)
             (uri (string-append "https://curl.haxx.se/download/curl-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0y3qbjjcxhcvm1yawp3spfssjbskv0g6gyzld6ckif5pf8ygvxpm"))))
+              "1i38v49233jirzlfqd8fy6jyf80assa953hk7w6qmysbg562604n"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "doc"))                             ;1.2 MiB of man3 pages
    (inputs `(("gnutls" ,gnutls)
              ("gss" ,gss)
              ("libidn" ,libidn)
    (build-system gnu-build-system)
    (outputs '("out"
               "doc"))                             ;1.2 MiB of man3 pages
    (inputs `(("gnutls" ,gnutls)
              ("gss" ,gss)
              ("libidn" ,libidn)
-             ("libssh2" ,libssh2)
+             ;; TODO XXX <https://bugs.gnu.org/34927>
+             ;; Curl doesn't actually use or refer to libssh2 because the build
+             ;; is not configured with '--with-libssh2'.  Remove this input when
+             ;; a mass rebuild is appropriate (e.g. core-updates).
+             ("libssh2" ,libssh2-1.8.0)
              ("openldap" ,openldap)
              ("openldap" ,openldap)
+             ("nghttp2" ,nghttp2 "lib")
              ("zlib" ,zlib)))
    (native-inputs
      `(("perl" ,perl)
              ("zlib" ,zlib)))
    (native-inputs
      `(("perl" ,perl)
            (separator #f)                         ;single entry
            (files '("etc/ssl/certs/ca-certificates.crt")))))
    (arguments
            (separator #f)                         ;single entry
            (files '("etc/ssl/certs/ca-certificates.crt")))))
    (arguments
-    `(#:configure-flags '("--with-gnutls" "--with-gssapi")
+    `(#:configure-flags '("--with-gnutls" "--with-gssapi"
+                          "--disable-static")
       ;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
       #:phases
       (modify-phases %standard-phases
       ;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
       #:phases
       (modify-phases %standard-phases
              (("/bin/sh") (which "sh")))
 
            ;; XXX FIXME: Test #1510 seems to work on some machines and not
              (("/bin/sh") (which "sh")))
 
            ;; XXX FIXME: Test #1510 seems to work on some machines and not
-           ;; others, possibly based on the kernel version.  It works on GuixSD
+           ;; others, possibly based on the kernel version.  It works on Guix System
            ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686
            ;; and x86_64 with the following error:
            ;;
            ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686
            ;; and x86_64 with the following error:
            ;;
            ;; The top-level "make check" does "make -C tests quiet-test", which
            ;; is too quiet.  Use the "test" target instead, which is more
            ;; verbose.
            ;; The top-level "make check" does "make -C tests quiet-test", which
            ;; is too quiet.  Use the "test" target instead, which is more
            ;; verbose.
-           (zero? (system* "make" "-C" "tests" "test")))))))
+           (invoke "make" "-C" "tests" "test"))))))
    (synopsis "Command line tool for transferring data with URL syntax")
    (description
     "curl is a command line tool for transferring data with URL syntax,
    (synopsis "Command line tool for transferring data with URL syntax")
    (description
     "curl is a command line tool for transferring data with URL syntax,
@@ -139,10 +164,10 @@ tunneling, and so on.")
                                   "See COPYING in the distribution."))
    (home-page "https://curl.haxx.se/")))
 
                                   "See COPYING in the distribution."))
    (home-page "https://curl.haxx.se/")))
 
-(define-public curl-7.59.0
+(define-public curl-7.64.0
   (package
     (inherit curl)
   (package
     (inherit curl)
-    (version "7.59.0")
+    (version "7.64.0")
     (source
       (origin
         (method url-fetch)
     (source
       (origin
         (method url-fetch)
@@ -150,24 +175,24 @@ tunneling, and so on.")
                             version ".tar.xz"))
         (sha256
          (base32
                             version ".tar.xz"))
         (sha256
          (base32
-          "1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4"))))))
+          "00b0mw4fc1pbmbh55maab24x3ijdvkbpl1s4njfa4jnl6kx16brg"))))))
 
 (define-public kurly
   (package
     (name "kurly")
 
 (define-public kurly
   (package
     (name "kurly")
-    (version "1.2.1")
+    (version "1.2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/davidjpeacock/kurly.git")
+                     (url "https://gitlab.com/davidjpeacock/kurly.git")
                      (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
                      (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01kp33gvzxmk6ipz7323wqwmbc90q2mwzsjig8rzpqsm4kji5hi6"))))
+                "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm"))))
     (build-system go-build-system)
     (arguments
     (build-system go-build-system)
     (arguments
-     `(#:import-path "github.com/davidjpeacock/kurly"
+     `(#:import-path "gitlab.com/davidjpeacock/kurly"
        #:install-source? #f
        #:phases
        (modify-phases %standard-phases
        #:install-source? #f
        #:phases
        (modify-phases %standard-phases
@@ -180,34 +205,33 @@ tunneling, and so on.")
                (with-directory-excursion source
                  (install-file "README.md" doc)
                  (mkdir-p man)
                (with-directory-excursion source
                  (install-file "README.md" doc)
                  (mkdir-p man)
-                 (copy-file "meta/kurly.man"
+                 (copy-file "doc/kurly.man"
                             (string-append man "/kurly.1")))
                #t))))))
     (inputs
      `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress)
        ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar)
                             (string-append man "/kurly.1")))
                #t))))))
     (inputs
      `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress)
        ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar)
-       ("go-github-com-davidjpeacock-cli" ,go-github-com-davidjpeacock-cli)))
+       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)))
     (synopsis "Command-line HTTP client")
     (description "kurly is an alternative to the @code{curl} program written in
 Go.  kurly is designed to operate in a similar manner to curl, with select
 features.  Notably, kurly is not aiming for feature parity, but common flags and
 mechanisms particularly within the HTTP(S) realm are to be expected.  kurly does
 not offer a replacement for libcurl.")
     (synopsis "Command-line HTTP client")
     (description "kurly is an alternative to the @code{curl} program written in
 Go.  kurly is designed to operate in a similar manner to curl, with select
 features.  Notably, kurly is not aiming for feature parity, but common flags and
 mechanisms particularly within the HTTP(S) realm are to be expected.  kurly does
 not offer a replacement for libcurl.")
-    (home-page "https://github.com/davidjpeacock/kurly")
+    (home-page "https://gitlab.com/davidjpeacock/kurly")
     (license license:asl2.0)))
 
 (define-public guile-curl
   (package
    (name "guile-curl")
     (license license:asl2.0)))
 
 (define-public guile-curl
   (package
    (name "guile-curl")
-   (version "0.5")
+   (version "0.6")
    (source (origin
             (method url-fetch)
    (source (origin
             (method url-fetch)
-            (uri (string-append
-                  "http://www.lonelycactus.com/tarball/guile-curl-"
-                  version ".tar.gz"))
+            (uri (string-append "http://www.lonelycactus.com/tarball/"
+                                "guile_curl-" version ".tar.gz"))
             (sha256
              (base32
             (sha256
              (base32
-              "1846rxgc0ylh8768lr79irc7nwjichzb7qb7lzs2k42m0i53sc46"))))
+              "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (string-append
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (string-append