diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index ffe99da86922..780717db56b8 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -487,7 +487,7 @@ rec { nghttp2.lib coreutils gnugrep - pcre.out + gnugrep.pcre2.out gmp libiconv brotli.lib @@ -563,7 +563,7 @@ rec { nghttp2.lib coreutils gnugrep - pcre.out + gnugrep.pcre2.out gmp libiconv brotli.lib @@ -587,8 +587,9 @@ rec { persistent = self: super: with prevStage; { inherit gnumake gzip gnused bzip2 ed xz patch bash python3 - ncurses libffi zlib gmp pcre gnugrep cmake + ncurses libffi zlib gmp gnugrep cmake coreutils findutils diffutils patchutils ninja libxml2; + inherit (gnugrep) pcre2; # Hack to make sure we don't link ncurses in bootstrap tools. The proper # solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib, @@ -643,8 +644,9 @@ rec { persistent = self: super: with prevStage; { inherit gnumake gzip gnused bzip2 gawk ed xz patch bash - ncurses libffi zlib gmp pcre gnugrep + ncurses libffi zlib gmp gnugrep coreutils findutils diffutils patchutils pbzx; + inherit (gnugrep) pcre2; darwin = super.darwin.overrideScope (_: _: { inherit (darwin) dyld ICU Libsystem Csu libiconv rewrite-tbd; @@ -734,7 +736,7 @@ rec { gawk gnugrep patch - pcre.out + gnugrep.pcre2.out gettext binutils.bintools binutils.bintools.lib diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix index 5433e7afecf9..9c580447a6f4 100644 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix @@ -54,7 +54,7 @@ in rec { chmod -R u+w $out/include cp -rL ${darwin.ICU}/include* $out/include cp -rL ${libiconv}/include/* $out/include - cp -rL ${lib.getDev gnugrep.pcre}/include/* $out/include + cp -rL ${lib.getDev gnugrep.pcre2}/include/* $out/include mv $out/include $out/include-Libsystem # Copy coreutils, bash, etc. @@ -86,7 +86,7 @@ in rec { cp -d ${libssh2.out}/lib/libssh*.dylib $out/lib cp -d ${lib.getLib openssl}/lib/*.dylib $out/lib - cp -d ${gnugrep.pcre.out}/lib/libpcre*.dylib $out/lib + cp -d ${gnugrep.pcre2.out}/lib/libpcre2*.dylib $out/lib cp -d ${lib.getLib libiconv}/lib/lib*.dylib $out/lib cp -d ${lib.getLib gettext}/lib/libintl*.dylib $out/lib chmod +x $out/lib/libintl*.dylib diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index d327ef8b7fef..9cfe21e3640d 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -637,7 +637,7 @@ in ] # Library dependencies ++ map getLib ( - [ attr acl zlib pcre libidn2 libunistring ] + [ attr acl zlib gnugrep.pcre2 libidn2 libunistring ] ++ lib.optional (gawk.libsigsegv != null) gawk.libsigsegv ) # More complicated cases @@ -656,7 +656,8 @@ in inherit (prevStage) gzip bzip2 xz bash coreutils diffutils findutils gawk gnused gnutar gnugrep gnupatch patchelf - attr acl zlib pcre libunistring; + attr acl zlib libunistring; + inherit (prevStage.gnugrep) pcre2; ${localSystem.libc} = getLibc prevStage; # Hack: avoid libidn2.{bin,dev} referencing bootstrap tools. There's a logical cycle. diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 06750e5c7138..d6c4da0ab2be 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -130,7 +130,7 @@ in with pkgs; rec { cp -d ${patch}/bin/* $out/bin cp ${patchelf}/bin/* $out/bin - cp -d ${gnugrep.pcre.out}/lib/libpcre*.so* $out/lib # needed by grep + cp -d ${gnugrep.pcre2.out}/lib/libpcre2*.so* $out/lib # needed by grep # Copy what we need of GCC. cp -d ${bootGCC.out}/bin/gcc $out/bin diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix index fc285bb4c4de..a4ee316937af 100644 --- a/pkgs/tools/text/gnugrep/default.nix +++ b/pkgs/tools/text/gnugrep/default.nix @@ -1,11 +1,11 @@ -{ lib, stdenv, fetchurl, pcre, libiconv, perl, autoreconfHook }: +{ lib, stdenv, glibcLocales, fetchurl, pcre2, libiconv, perl, autoreconfHook }: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or # cgit) that are needed here should be included directly in Nixpkgs as # files. -let version = "3.7"; in +let version = "3.11"; in stdenv.mkDerivation { pname = "gnugrep"; @@ -13,23 +13,17 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://gnu/grep/grep-${version}.tar.xz"; - sha256 = "0g42svbc1nq5bamxfj6x7320wli4dlj86padk0hwgbk04hqxl42w"; + hash = "sha256-HbKu3eidDepCsW2VKPiUyNFdrk4ZC1muzHj1qVEnbqs="; }; - # https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=b50c6442e43d79471a31a2a202d3e50c0557446f - patches = lib.optional stdenv.hostPlatform.isLoongArch64 ./sigsegv-loongarch.patch; - - # Perl is needed for testing - nativeBuildInputs = [ perl ] ++ lib.optional stdenv.hostPlatform.isLoongArch64 autoreconfHook; + nativeCheckInputs = [ perl glibcLocales ]; outputs = [ "out" "info" ]; # the man pages are rather small - buildInputs = [ pcre libiconv ]; + buildInputs = [ pcre2 libiconv ]; # cygwin: FAIL: multibyte-white-space # freebsd: FAIL mb-non-UTF8-performance - # all platforms: timing sensitivity in long-pattern-perf - #doCheck = !stdenv.isDarwin && !stdenv.isSunOS && !stdenv.isCygwin && !stdenv.isFreeBSD; - doCheck = false; + doCheck = !stdenv.isCygwin && !stdenv.isFreeBSD; # On macOS, force use of mkdir -p, since Grep's fallback # (./install-sh) is broken. @@ -62,12 +56,14 @@ stdenv.mkDerivation { license = licenses.gpl3Plus; maintainers = [ - maintainers.eelco + maintainers.das_j maintainers.m00wl ]; platforms = platforms.all; mainProgram = "grep"; }; - passthru = {inherit pcre;}; + passthru = { + inherit pcre2; + }; } diff --git a/pkgs/tools/text/gnugrep/sigsegv-loongarch.patch b/pkgs/tools/text/gnugrep/sigsegv-loongarch.patch deleted file mode 100644 index 19bb2c1d70ca..000000000000 --- a/pkgs/tools/text/gnugrep/sigsegv-loongarch.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b50c6442e43d79471a31a2a202d3e50c0557446f Mon Sep 17 00:00:00 2001 -From: Sun Haiyong -Date: Sat, 4 Sep 2021 15:06:43 +0200 -Subject: sigsegv: Improve cross-compilation support for LoongArch CPU. - -* m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume the stack grows -down on LoongArch. ---- - m4/stack-direction.m4 | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/m4/stack-direction.m4 b/m4/stack-direction.m4 -index 9328725..e682be9 100644 ---- a/m4/stack-direction.m4 -+++ b/m4/stack-direction.m4 -@@ -1,4 +1,4 @@ --# stack-direction.m4 serial 7 -+# stack-direction.m4 serial 8 - dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. - dnl This file is free software, distributed under the terms of the GNU - dnl General Public License. As a special exception to the GNU General -@@ -32,6 +32,7 @@ AC_DEFUN([SV_STACK_DIRECTION], - i?86 | x86_64 | \ - i860 | \ - ia64 | \ -+ loongarch* | \ - m32r | \ - m68* | \ - m88k | \ --- -cgit v1.1