nixpkgs/pkgs/applications/misc/st/default.nix
nschoe b584941ab9
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.
2020-04-17 14:52:40 +01:00

35 lines
873 B
Nix

{ stdenv, fetchurl, pkgconfig, writeText, libX11, ncurses
, libXft, conf ? null, patches ? [], extraLibs ? []}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "st-0.8.2";
src = fetchurl {
url = "https://dl.suckless.org/st/${name}.tar.gz";
sha256 = "0ddz2mdp1c7q67rd5vrvws9r0493ln0mlqyc3d73dv8im884xdxf";
};
inherit patches;
prePatch = optionalString (conf != null) ''
cp ${writeText "config.def.h" conf} config.def.h
'';
nativeBuildInputs = [ pkgconfig ncurses ];
buildInputs = [ libX11 libXft ] ++ extraLibs;
installPhase = ''
TERMINFO=$out/share/terminfo make install PREFIX=$out
'';
meta = {
homepage = "https://st.suckless.org/";
description = "Simple Terminal for X from Suckless.org Community";
license = licenses.mit;
maintainers = with maintainers; [andsild];
platforms = platforms.linux;
};
}