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.
This commit is contained in:
nschoe 2020-04-17 14:50:08 +01:00 committed by Jörg Thalheim
parent 52c06182eb
commit b584941ab9
No known key found for this signature in database
GPG Key ID: 003F2096411B5F92

View File

@ -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;