wget: modernize and use PCRE2 instead of PCRE1
This commit is contained in:
@@ -1,8 +1,26 @@
|
||||
{ lib, stdenv, fetchurl, gettext, pkg-config, perlPackages
|
||||
, libidn2, zlib, pcre, libuuid, libiconv, libintl
|
||||
, nukeReferences, python3, lzip, darwin
|
||||
, withLibpsl ? false, libpsl
|
||||
, withOpenssl ? true, openssl
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
|
||||
gettext,
|
||||
pkg-config,
|
||||
perlPackages,
|
||||
libidn2,
|
||||
zlib,
|
||||
pcre2,
|
||||
libuuid,
|
||||
libiconv,
|
||||
libintl,
|
||||
nukeReferences,
|
||||
python3,
|
||||
lzip,
|
||||
|
||||
withLibpsl ? false,
|
||||
libpsl,
|
||||
|
||||
withOpenssl ? true,
|
||||
openssl,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -18,18 +36,36 @@ stdenv.mkDerivation rec {
|
||||
patchShebangs doc
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ gettext pkg-config perlPackages.perl lzip libiconv libintl nukeReferences ];
|
||||
buildInputs = [ libidn2 zlib pcre libuuid ]
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
pkg-config
|
||||
perlPackages.perl
|
||||
lzip
|
||||
nukeReferences
|
||||
];
|
||||
buildInputs =
|
||||
[
|
||||
libidn2
|
||||
zlib
|
||||
pcre2
|
||||
libuuid
|
||||
libiconv
|
||||
libintl
|
||||
]
|
||||
++ lib.optional withOpenssl openssl
|
||||
++ lib.optional withLibpsl libpsl
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.CoreServices perlPackages.perl ];
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
perlPackages.perl
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
(lib.withFeatureAs withOpenssl "ssl" "openssl")
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
|
||||
"--without-included-regex"
|
||||
];
|
||||
configureFlags =
|
||||
[
|
||||
(lib.withFeatureAs withOpenssl "ssl" "openssl")
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
|
||||
"--without-included-regex"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
# avoid runtime references to build-only depends
|
||||
@@ -41,47 +77,51 @@ stdenv.mkDerivation rec {
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
doCheck = true;
|
||||
preCheck = ''
|
||||
patchShebangs tests fuzz
|
||||
preCheck =
|
||||
''
|
||||
patchShebangs tests fuzz
|
||||
|
||||
# Work around lack of DNS resolution in chroots.
|
||||
for i in "tests/"*.pm "tests/"*.px
|
||||
do
|
||||
sed -i "$i" -e's/localhost/127.0.0.1/g'
|
||||
done
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
# depending on the underlying filesystem, some tests
|
||||
# creating exotic file names fail
|
||||
for f in tests/Test-ftp-iri.px \
|
||||
tests/Test-ftp-iri-fallback.px \
|
||||
tests/Test-ftp-iri-recursive.px \
|
||||
tests/Test-ftp-iri-disabled.px \
|
||||
tests/Test-iri-disabled.px \
|
||||
tests/Test-iri-list.px ;
|
||||
do
|
||||
# just return magic "skip" exit code 77
|
||||
sed -i 's/^exit/exit 77 #/' $f
|
||||
done
|
||||
'';
|
||||
checkInputs = [
|
||||
perlPackages.HTTPDaemon
|
||||
python3
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
perlPackages.IOSocketSSL
|
||||
];
|
||||
# Work around lack of DNS resolution in chroots.
|
||||
for i in "tests/"*.pm "tests/"*.px
|
||||
do
|
||||
sed -i "$i" -e's/localhost/127.0.0.1/g'
|
||||
done
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
# depending on the underlying filesystem, some tests
|
||||
# creating exotic file names fail
|
||||
for f in tests/Test-ftp-iri.px \
|
||||
tests/Test-ftp-iri-fallback.px \
|
||||
tests/Test-ftp-iri-recursive.px \
|
||||
tests/Test-ftp-iri-disabled.px \
|
||||
tests/Test-iri-disabled.px \
|
||||
tests/Test-iri-list.px ;
|
||||
do
|
||||
# just return magic "skip" exit code 77
|
||||
sed -i 's/^exit/exit 77 #/' $f
|
||||
done
|
||||
'';
|
||||
checkInputs =
|
||||
[
|
||||
perlPackages.HTTPDaemon
|
||||
python3
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
perlPackages.IOSocketSSL
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tool for retrieving files using HTTP, HTTPS, and FTP";
|
||||
homepage = "https://www.gnu.org/software/wget/";
|
||||
license = licenses.gpl3Plus;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
longDescription = ''
|
||||
GNU Wget is a free software package for retrieving files using HTTP,
|
||||
GNU Wget is a free software package for retrieving files using HTTP,
|
||||
HTTPS and FTP, the most widely-used Internet protocols. It is a
|
||||
non-interactive commandline tool, so it may easily be called from
|
||||
scripts, cron jobs, terminals without X-Windows support, etc.
|
||||
'';
|
||||
mainProgram = "wget";
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
platforms = platforms.all;
|
||||
maintainers = with lib.maintainers; [ fpletz ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user