Unverified Commit 0b3416b4 authored by Franz Pletz's avatar Franz Pletz Committed by GitHub
Browse files

wget: modernize and use PCRE2 instead of PCRE1 (#360567)

parents 1b9db3aa cfb090f1
Loading
Loading
Loading
Loading
+86 −46
Original line number Diff line number Diff line
{ 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,15 +36,33 @@ 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 = [
  configureFlags =
    [
      (lib.withFeatureAs withOpenssl "ssl" "openssl")
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
    ]
    ++ lib.optionals stdenv.hostPlatform.isDarwin [
      # https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
      "--without-included-regex"
    ];
@@ -41,7 +77,8 @@ stdenv.mkDerivation rec {

  __darwinAllowLocalNetworking = true;
  doCheck = true;
  preCheck = ''
  preCheck =
    ''
      patchShebangs tests fuzz

      # Work around lack of DNS resolution in chroots.
@@ -49,7 +86,8 @@ stdenv.mkDerivation rec {
      do
        sed -i "$i" -e's/localhost/127.0.0.1/g'
      done
  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
    ''
    + 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 \
@@ -63,17 +101,19 @@ stdenv.mkDerivation rec {
        sed -i 's/^exit/exit 77 #/' $f
      done
    '';
  checkInputs = [
  checkInputs =
    [
      perlPackages.HTTPDaemon
      python3
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
    ]
    ++ 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,
      HTTPS and FTP, the most widely-used Internet protocols.  It is a
@@ -81,7 +121,7 @@ stdenv.mkDerivation rec {
      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;
  };
}