gnu: nnn: Don't use NAME in source URI.
[jackhill/guix/guix.git] / gnu / packages / wget.scm
CommitLineData
233e7676
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
189be331 3;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
80042ae9 4;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
afc43823 5;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
56e59b39 6;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
da7b042d 7;;;
233e7676 8;;; This file is part of GNU Guix.
da7b042d 9;;;
233e7676 10;;; GNU Guix is free software; you can redistribute it and/or modify it
da7b042d
NK
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
233e7676 15;;; GNU Guix is distributed in the hope that it will be useful, but
da7b042d
NK
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
233e7676 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
da7b042d 22
1ffa7090 23(define-module (gnu packages wget)
4a44e743 24 #:use-module (guix licenses)
c84c8f66 25 #:use-module (gnu packages)
afc43823
RH
26 #:use-module (gnu packages autotools)
27 #:use-module (gnu packages base)
6b88912e 28 #:use-module (gnu packages compression)
afc43823
RH
29 #:use-module (gnu packages documentation)
30 #:use-module (gnu packages flex)
31 #:use-module (gnu packages gettext)
32 #:use-module (gnu packages gnunet)
fb7bdb43
EB
33 #:use-module (gnu packages libidn)
34 #:use-module (gnu packages python)
1ffa7090 35 #:use-module (gnu packages perl)
fb7bdb43 36 #:use-module (gnu packages web)
afc43823 37 #:use-module (gnu packages pcre)
6b9540bc 38 #:use-module (gnu packages pkg-config)
a7fd7b68 39 #:use-module (gnu packages tls)
da7b042d
NK
40 #:use-module (guix packages)
41 #:use-module (guix download)
afc43823 42 #:use-module (guix git-download)
da7b042d
NK
43 #:use-module (guix build-system gnu))
44
45(define-public wget
46 (package
47 (name "wget")
54d60962 48 (version "1.20.1")
da7b042d
NK
49 (source
50 (origin
51 (method url-fetch)
52 (uri (string-append "mirror://gnu/wget/wget-"
6b88912e 53 version ".tar.lz"))
da7b042d
NK
54 (sha256
55 (base32
54d60962 56 "0a29qsqxkk8145vkyy35q5a1wc7qzwx3qj3gmfrkmi9xs96yhqqg"))))
da7b042d
NK
57 (build-system gnu-build-system)
58 (inputs
fb7bdb43 59 `(("gnutls" ,gnutls)
dd2c73f6 60 ("libidn2" ,libidn2)
6b88912e
MB
61 ("libpsl" ,libpsl)
62 ("lzip" ,lzip)))
b5d4a811 63 (native-inputs
6b9540bc
LC
64 `(("pkg-config" ,pkg-config)
65 ("perl" ,perl)
fb7bdb43
EB
66 ("python" ,python) ;for testenv suite
67 ("perl-http-daemon" ,perl-http-daemon)
68 ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
38eefbb1 69 (home-page "https://www.gnu.org/software/wget/")
f50d2669 70 (synopsis "Non-interactive command-line utility for downloading files")
da7b042d 71 (description
79c311b8 72 "GNU Wget is a non-interactive tool for fetching files using the HTTP,
e881752c 73HTTPS and FTP protocols. It can resume interrupted downloads, use file name
a22dc0c4
LC
74wild cards, supports proxies and cookies, and it can convert absolute links
75in downloaded documents to relative links.")
4a44e743 76 (license gpl3+))) ; some files are under GPLv2+
22486fbe
EF
77
78(define-public wgetpaste
79 (package
80 (name "wgetpaste")
81 (version "2.28")
82 (source
83 (origin
84 (method url-fetch)
85 (uri (string-append "http://wgetpaste.zlin.dk/wgetpaste-"
86 version ".tar.bz2"))
87 (sha256
88 (base32
89 "1hh9svyypqcvdg5mjxyyfzpdzhylhf7s7xq5dzglnm4injx3i3ak"))))
90 (build-system gnu-build-system)
91 (arguments
92 '(#:phases
93 (modify-phases %standard-phases
94 (delete 'configure)
95 (delete 'build)
96 (replace 'install
97 (lambda* (#:key outputs #:allow-other-keys)
98 (let* ((out (assoc-ref outputs "out"))
99 (bin (string-append out "/bin"))
100 (zsh (string-append out "/share/zsh/site-functions")))
101 (install-file "wgetpaste" bin)
102 (install-file "_wgetpaste" zsh)))))
103 #:tests? #f)) ; no test target
104 (home-page "http://wgetpaste.zlin.dk/")
105 (synopsis "Script that automates pasting to a number of pastebin services")
106 (description
107 "@code{wgetpaste} is an extremely simple command-line interface to various
108online pastebin services.")
109 (license public-domain)))
afc43823
RH
110
111(define-public wget2
112 (package
113 (name "wget2")
114 (version "1.0.0")
115 (source
116 (origin
117 (method git-fetch)
118 (uri (git-reference
4b1ba80c 119 (url "https://gitlab.com/gnuwget/wget2.git")
afc43823
RH
120 (commit "b45709d3d21714135ce79df6abbdcb704684063d")
121 (recursive? #t))) ;; Needed for 'gnulib' git submodule.
122 (file-name (string-append name "-" version "-checkout"))
123 (sha256
124 (base32
125 "0ww84wwzmpyylkz8rnb6nk6f7x040132z81x52w7rjhk68p9mm24"))))
126 (build-system gnu-build-system)
127 (arguments
128 `(#:phases (modify-phases %standard-phases
189be331 129 (replace 'bootstrap
afc43823
RH
130 (lambda _
131 ;; Make sure all the files are writable so that ./bootstrap
132 ;; can proceed.
133 (for-each (lambda (file)
134 (chmod file #o755))
135 (find-files "."))
136 (substitute* "./gnulib/gnulib-tool.py"
137 (("/usr/bin/python") (which "python3")))
56e59b39 138 (invoke "sh" "./bootstrap"
afc43823 139 "--gnulib-srcdir=gnulib"
56e59b39 140 "--no-git"))))))
c695fb76
TGR
141 (inputs `(("autoconf" ,autoconf)
142 ("automake" ,automake)
143 ("doxygen" ,doxygen)
144 ("flex" ,flex)
145 ("gettext" ,gettext-minimal)
146 ("gnutls" ,gnutls/dane)
147 ("libiconv" ,libiconv)
148 ("libidn2" ,libidn2)
149 ("libmicrohttpd" ,libmicrohttpd)
150 ("libpsl" ,libpsl)
151 ("libtool" ,libtool)
152 ("pcre2" ,pcre2)
153 ("python" ,python)))
afc43823 154 ;; TODO: Add libbrotlidec, libnghttp2.
c695fb76 155 (native-inputs `(("pkg-config" ,pkg-config)))
4b1ba80c 156 (home-page "https://gitlab.com/gnuwget/wget2")
afc43823
RH
157 (synopsis "Successor of GNU Wget")
158 (description "GNU Wget2 is the successor of GNU Wget, a file and recursive
159website downloader. Designed and written from scratch it wraps around libwget,
160that provides the basic functions needed by a web client.")
161 (license (list gpl3+ lgpl3+))))