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 © 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 © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; 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 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")
-   (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
-              "0y3qbjjcxhcvm1yawp3spfssjbskv0g6gyzld6ckif5pf8ygvxpm"))))
+              "1i38v49233jirzlfqd8fy6jyf80assa953hk7w6qmysbg562604n"))))
    (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)
+             ("nghttp2" ,nghttp2 "lib")
              ("zlib" ,zlib)))
    (native-inputs
      `(("perl" ,perl)
            (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
              (("/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:
            ;;
            ;; 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,
@@ -139,10 +164,10 @@ tunneling, and so on.")
                                   "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)
-    (version "7.59.0")
+    (version "7.64.0")
     (source
       (origin
         (method url-fetch)
@@ -150,24 +175,24 @@ tunneling, and so on.")
                             version ".tar.xz"))
         (sha256
          (base32
-          "1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4"))))))
+          "00b0mw4fc1pbmbh55maab24x3ijdvkbpl1s4njfa4jnl6kx16brg"))))))
 
 (define-public kurly
   (package
     (name "kurly")
-    (version "1.2.1")
+    (version "1.2.2")
     (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
-                "01kp33gvzxmk6ipz7323wqwmbc90q2mwzsjig8rzpqsm4kji5hi6"))))
+                "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm"))))
     (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
@@ -180,34 +205,33 @@ tunneling, and so on.")
                (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)
-       ("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.")
-    (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")
-   (version "0.5")
+   (version "0.6")
    (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
-              "1846rxgc0ylh8768lr79irc7nwjichzb7qb7lzs2k42m0i53sc46"))))
+              "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (string-append