codesnap: init at 0.8.2 (#364266)
[NixPkgs.git] / pkgs / by-name / wg / wget / package.nix
blob69eebc4f1d41928f9b9bdb77bab17dbea0ef298e
2   lib,
3   stdenv,
4   fetchurl,
6   gettext,
7   pkg-config,
8   perlPackages,
9   libidn2,
10   zlib,
11   pcre2,
12   libuuid,
13   libiconv,
14   libintl,
15   nukeReferences,
16   python3,
17   lzip,
19   withLibpsl ? false,
20   libpsl,
22   withOpenssl ? true,
23   openssl,
26 stdenv.mkDerivation rec {
27   pname = "wget";
28   version = "1.25.0";
30   src = fetchurl {
31     url = "mirror://gnu/wget/wget-${version}.tar.lz";
32     hash = "sha256-GSJcx1awoIj8gRSNxqQKDI8ymvf9hIPxx7L+UPTgih8=";
33   };
35   preConfigure = ''
36     patchShebangs doc
37   '';
39   nativeBuildInputs = [
40     gettext
41     pkg-config
42     perlPackages.perl
43     lzip
44     nukeReferences
45   ];
46   buildInputs =
47     [
48       libidn2
49       zlib
50       pcre2
51       libuuid
52       libiconv
53       libintl
54     ]
55     ++ lib.optional withOpenssl openssl
56     ++ lib.optional withLibpsl libpsl
57     ++ lib.optionals stdenv.hostPlatform.isDarwin [
58       perlPackages.perl
59     ];
61   strictDeps = true;
63   configureFlags =
64     [
65       (lib.withFeatureAs withOpenssl "ssl" "openssl")
66     ]
67     ++ lib.optionals stdenv.hostPlatform.isDarwin [
68       # https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
69       "--without-included-regex"
70     ];
72   preBuild = ''
73     # avoid runtime references to build-only depends
74     make -C src version.c
75     nuke-refs src/version.c
76   '';
78   enableParallelBuilding = true;
80   __darwinAllowLocalNetworking = true;
81   doCheck = true;
82   preCheck =
83     ''
84       patchShebangs tests fuzz
86       # Work around lack of DNS resolution in chroots.
87       for i in "tests/"*.pm "tests/"*.px
88       do
89         sed -i "$i" -e's/localhost/127.0.0.1/g'
90       done
91     ''
92     + lib.optionalString stdenv.hostPlatform.isDarwin ''
93       # depending on the underlying filesystem, some tests
94       # creating exotic file names fail
95       for f in tests/Test-ftp-iri.px \
96         tests/Test-ftp-iri-fallback.px \
97         tests/Test-ftp-iri-recursive.px \
98         tests/Test-ftp-iri-disabled.px \
99         tests/Test-iri-disabled.px \
100         tests/Test-iri-list.px ;
101       do
102         # just return magic "skip" exit code 77
103         sed -i 's/^exit/exit 77 #/' $f
104       done
105     '';
107   nativeCheckInputs =
108     [
109       perlPackages.HTTPDaemon
110       python3
111     ]
112     ++ lib.optionals stdenv.hostPlatform.isDarwin [
113       perlPackages.IOSocketSSL
114     ];
116   meta = {
117     description = "Tool for retrieving files using HTTP, HTTPS, and FTP";
118     homepage = "https://www.gnu.org/software/wget/";
119     license = lib.licenses.gpl3Plus;
120     longDescription = ''
121       GNU Wget is a free software package for retrieving files using HTTP,
122       HTTPS and FTP, the most widely-used Internet protocols.  It is a
123       non-interactive commandline tool, so it may easily be called from
124       scripts, cron jobs, terminals without X-Windows support, etc.
125     '';
126     mainProgram = "wget";
127     maintainers = with lib.maintainers; [ fpletz ];
128     platforms = lib.platforms.all;
129   };