From b563d910a099890033b62dfaf269ce85e44b0e4d Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Mon, 14 Aug 2023 02:48:55 -0700 Subject: [PATCH 1/2] gnu-config: use the unpackPhase, so .overrideAttrs(_:{patches=...}) works Prior to this PR, gnu-config did its unpacking in the `buildPhase`, which mean that `.overrideAttrs(_:{ patches = ... })` couldn't be used to test out patches to `gnu-config`. This PR fixes that. --- .../libraries/gnu-config/default.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gnu-config/default.nix b/pkgs/development/libraries/gnu-config/default.nix index 75a20bbbc355a51..4b115d47f98a0d5 100644 --- a/pkgs/development/libraries/gnu-config/default.nix +++ b/pkgs/development/libraries/gnu-config/default.nix @@ -23,9 +23,22 @@ in stdenv.mkDerivation { pname = "gnu-config"; version = "2023-07-31"; - buildCommand = '' - install -Dm755 ${configGuess} $out/config.guess - install -Dm755 ${configSub} $out/config.sub + unpackPhase = '' + runHook preUnpack + cp ${configGuess} ./config.guess + cp ${configSub} ./config.sub + chmod +w ./config.sub ./config.guess + runHook postUnpack + ''; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + install -Dm755 ./config.guess $out/config.guess + install -Dm755 ./config.sub $out/config.sub + runHook postInstall ''; meta = with lib; { From 3ddf69b37d472e6cb548deb9ab0a3004543b4070 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Wed, 16 Aug 2023 05:25:37 -0700 Subject: [PATCH 2/2] gnu-config: set dontUpdateAutotoolsGnuConfigScripts = true --- pkgs/development/libraries/gnu-config/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/libraries/gnu-config/default.nix b/pkgs/development/libraries/gnu-config/default.nix index 4b115d47f98a0d5..2b088eb459ad5e4 100644 --- a/pkgs/development/libraries/gnu-config/default.nix +++ b/pkgs/development/libraries/gnu-config/default.nix @@ -31,6 +31,13 @@ in stdenv.mkDerivation { runHook postUnpack ''; + # If this isn't set, `pkgs.gnu-config.overrideAttrs( _: { patches + # = ...; })` will behave very counterintuitively: the (unpatched) + # gnu-config from the updateAutotoolsGnuConfigScriptsHook stdenv's + # defaultNativeBuildInputs will "update" the patched gnu-config by + # reverting the patch! + dontUpdateAutotoolsGnuConfigScripts = true; + dontConfigure = true; dontBuild = true;