about summary refs log tree commit diff
diff options
context:
space:
mode:
authornschoe <nschoe@protonmail.com>2020-04-17 14:50:08 +0100
committerJörg Thalheim <joerg@thalheim.io>2020-04-17 14:52:40 +0100
commitb584941ab9b5df164adc4584c3ab21da681a01db (patch)
tree431b774772eaf7b11c8edf29d1284faa04e04a4e
parent52c06182eb21c293e7fd3498799da9f7d20b3341 (diff)
downloadnixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar.gz
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar.bz2
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar.lz
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar.xz
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.tar.zst
nixlib-b584941ab9b5df164adc4584c3ab21da681a01db.zip
st: copy config file in 'prePatch' instead of 'preBuild'
The patch phase runs after the build phase. Which means than when
using an override to override both 'conf' and 'patches' to provide
a custom config file and apply some patches, it doesn't work:
- first the patches applied (optionally changing config.def.h)
- then preBuild is run which overrides config.def.h with the user
supplied one (effectively cancelling previously applied patches)

By copying the config file in the prePatch phase instead, changes
are kept and applied in order.
-rw-r--r--pkgs/applications/misc/st/default.nix5
1 files changed, 3 insertions, 2 deletions
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index bc70aad8da92..33924bdb7be5 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
 
   inherit patches;
 
-  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
-  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+  prePatch = optionalString (conf != null) ''
+    cp ${writeText "config.def.h" conf} config.def.h
+  '';
 
   nativeBuildInputs = [ pkgconfig ncurses ];
   buildInputs = [ libX11 libXft ] ++ extraLibs;