gnu: Rename module gnutls to tls.
[jackhill/guix/guix.git] / gnu / packages / curl.scm
CommitLineData
6b9105e5 1;;; GNU Guix --- Functional package management for GNU
87806dde 2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
74d72608 3;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
a55e2b22 4;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
6b9105e5
AE
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages curl)
b5b73a82 22 #:use-module ((guix licenses) #:prefix license:)
6b9105e5
AE
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu)
b6b29c77 26 #:use-module (gnu packages)
6b9105e5 27 #:use-module (gnu packages compression)
6b9105e5
AE
28 #:use-module (gnu packages groff)
29 #:use-module (gnu packages gsasl)
30 #:use-module (gnu packages libidn)
31 #:use-module (gnu packages openldap)
32 #:use-module (gnu packages perl)
33 #:use-module (gnu packages pkg-config)
c0e57fb8 34 #:use-module (gnu packages python)
a7fd7b68
AE
35 #:use-module (gnu packages ssh)
36 #:use-module (gnu packages tls))
6b9105e5
AE
37
38(define-public curl
39 (package
40 (name "curl")
4617c2e3 41 (version "7.43.0")
6b9105e5
AE
42 (source (origin
43 (method url-fetch)
44 (uri (string-append "http://curl.haxx.se/download/curl-"
45 version ".tar.lzma"))
46 (sha256
47 (base32
4617c2e3 48 "1ykpfsm5ildpcj3vw5m1xh49jk3yfpna6zj7r0fgi1bxki6xif72"))))
6b9105e5
AE
49 (build-system gnu-build-system)
50 (inputs `(("gnutls" ,gnutls)
6b9105e5
AE
51 ("gss" ,gss)
52 ("libidn" ,libidn)
53 ("libssh2" ,libssh2)
54 ("openldap" ,openldap)
6b9105e5 55 ("zlib" ,zlib)))
c4c4cc05
JD
56 (native-inputs
57 `(("perl" ,perl)
58 ;; to enable the --manual option and make test 1026 pass
59 ("groff" ,groff)
c0e57fb8
SHT
60 ("pkg-config" ,pkg-config)
61 ("python" ,python-2)))
6b9105e5 62 (arguments
c0e57fb8
SHT
63 `(#:configure-flags '("--with-gnutls" "--with-gssapi")
64 ;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
65 #:phases
186de634
LC
66 (alist-replace
67 'check
c0e57fb8 68 (lambda _
186de634
LC
69 (substitute* "tests/runtests.pl"
70 (("/bin/sh") (which "sh")))
a55e2b22
71 ;; Test #1135 requires extern-scan.pl, which is not part of the
72 ;; tarball due to a mistake. It has been fixed upstream. We can
73 ;; simply disable the test as it is specific to VMS and OS/400.
74 (delete-file "tests/data/test1135")
186de634 75
d2e3caba
MW
76 ;; XXX FIXME: Test #1510 seems to work on some machines and not
77 ;; others, possibly based on the kernel version. It works on GuixSD
78 ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686
79 ;; and x86_64 with the following error:
80 ;;
81 ;; test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)]
82 ;;
83 ;; 1510: output (log/stderr1510) FAILED:
84 ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000
85 ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000
86 ;; @@ -1,5 +1,5 @@
87 ;; * Connection #0 to host server1.example.com left intact[LF]
88 ;; * Connection #1 to host server2.example.com left intact[LF]
89 ;; * Connection #2 to host server3.example.com left intact[LF]
90 ;; -* Closing connection 0[LF]
91 ;; +* Closing connection 1[LF]
92 ;; * Connection #3 to host server4.example.com left intact[LF]
93 (delete-file "tests/data/test1510")
94
186de634
LC
95 ;; The top-level "make check" does "make -C tests quiet-test", which
96 ;; is too quiet. Use the "test" target instead, which is more
97 ;; verbose.
98 (zero? (system* "make" "-C" "tests" "test")))
c0e57fb8 99 %standard-phases)))
35b9e423 100 (synopsis "Command line tool for transferring data with URL syntax")
6b9105e5
AE
101 (description
102 "curl is a command line tool for transferring data with URL syntax,
103supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
104LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
105curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
106HTTP form based upload, proxies, cookies, user+password authentication
107(Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
108proxy tunneling, and so on")
166191b3 109 (license (license:non-copyleft "file://COPYING"
6b9105e5
AE
110 "See COPYING in the distribution."))
111 (home-page "http://curl.haxx.se/")))