steamtinkerlaunch: don't wrap in order to preserve $0

Fixes https://github.com/NixOS/nixpkgs/issues/295902
This commit is contained in:
Atemu 2024-09-03 01:22:40 +02:00
parent bc947f541a
commit 309fcf6eeb

View File

@ -3,7 +3,6 @@
, gawk
, git
, lib
, makeWrapper
, procps
, stdenvNoCC
, unixtools
@ -12,6 +11,7 @@
, xdotool
, xorg
, yad
, writeShellApplication
}:
stdenvNoCC.mkDerivation {
@ -25,31 +25,39 @@ stdenvNoCC.mkDerivation {
hash = "sha256-CGtSGAm+52t2zFsPJEsm76w+FEHhbOd9NYuerGa31tc=";
};
# hardcode PROGCMD because #150841
postPatch = ''
substituteInPlace steamtinkerlaunch --replace 'PROGCMD="''${0##*/}"' 'PROGCMD="steamtinkerlaunch"'
'';
nativeBuildInputs = [ makeWrapper ];
installFlags = [ "PREFIX=\${out}" ];
postInstall = ''
wrapProgram $out/bin/steamtinkerlaunch --prefix PATH : ${lib.makeBinPath [
bash
gawk
git
procps
unixtools.xxd
unzip
wget
xdotool
xorg.xprop
xorg.xrandr
xorg.xwininfo
yad
]}
'';
postInstall =
let
# We (ab)use writeShellApplication to produce a header for a shell script
# here in order to add the runtimePath to the original script. We cannot
# wrap here as that always corrupts $0 in bash scripts which STL uses to
# install its compat tool.
header = writeShellApplication {
runtimeInputs = [
bash
gawk
git
procps
unixtools.xxd
unzip
wget
xdotool
xorg.xprop
xorg.xrandr
xorg.xwininfo
yad
];
name = "stl-head";
text = "";
bashOptions = [ ];
};
in
''
cp $out/bin/steamtinkerlaunch $TMPDIR/steamtinkerlaunch
install ${lib.getExe header} -T $out/bin/steamtinkerlaunch
tail -n +2 $TMPDIR/steamtinkerlaunch >> $out/bin/steamtinkerlaunch
'';
meta = with lib; {
description = "Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs";