Files
nixpkgs/pkgs/by-name/oi/oilrush/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

139 lines
3.5 KiB
Nix

{
lib,
stdenv,
config,
fetchurl,
libX11,
libXext,
libXinerama,
libXrandr,
libXrender,
fontconfig,
freetype,
openal,
runtimeShell,
}:
let
inherit (lib) makeLibraryPath;
in
stdenv.mkDerivation {
name = "oilrush";
src =
let
url = config.oilrush.url or null;
sha256 = config.oilrush.sha256 or null;
in
assert url != null && sha256 != null;
fetchurl { inherit url sha256; };
shell = stdenv.shell;
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then
"x64"
else
lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "x86";
unpackPhase = ''
mkdir oilrush
cd oilrush
"$shell" "$src" --tar xf
'';
patchPhase = ''
cd bin
for f in launcher_$arch libQtCoreUnigine_$arch.so.4 OilRush_$arch
do
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
done
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${
makeLibraryPath [
stdenv.cc.cc
libX11
libXext
libXrender
fontconfig
freetype
]
}\
launcher_$arch
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${lib.getLib stdenv.cc.cc}/lib\
libNetwork_$arch.so
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${lib.getLib stdenv.cc.cc}/lib\
libQtCoreUnigine_$arch.so.4
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${
makeLibraryPath [
stdenv.cc.cc
libX11
libXext
libXrender
fontconfig
freetype
]
}\
libQtGuiUnigine_$arch.so.4
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${lib.getLib stdenv.cc.cc}/lib\
libQtNetworkUnigine_$arch.so.4
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${
makeLibraryPath [
stdenv.cc.cc
libX11
libXext
libXrender
fontconfig
freetype
]
}\
libQtWebKitUnigine_$arch.so.4
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${lib.getLib stdenv.cc.cc}/lib\
libQtXmlUnigine_$arch.so.4
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${lib.getLib stdenv.cc.cc}/lib\
libRakNet_$arch.so
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${
makeLibraryPath [
stdenv.cc.cc
libX11
libXext
libXinerama
libXrandr
]
}\
libUnigine_$arch.so
patchelf --set-rpath ${lib.getLib stdenv.cc.cc}/lib64:${
makeLibraryPath [
stdenv.cc.cc
libX11
libXext
libXinerama
libXrandr
]
}\
OilRush_$arch
'';
installPhase = ''
cd ..
mkdir -p "$out/opt/oilrush"
cp -r * "$out/opt/oilrush"
mkdir -p "$out/bin"
cat << EOF > "$out/bin/oilrush"
#!${runtimeShell}
LD_LIBRARY_PATH=.:${makeLibraryPath [ openal ]}:\$LD_LIBRARY_PATH
cd "$out/opt/oilrush"
exec ./launcher_$arch.sh "\$@"
EOF
chmod +x "$out/bin/oilrush"
'';
meta = {
description = "Naval strategy game";
longDescription = ''
Oil Rush is a real-time naval strategy game based on group control. It
combines the strategic challenge of a classical RTS with the sheer fun
of Tower Defense.
'';
homepage = "http://oilrush-game.com/";
license = lib.licenses.unfree;
platforms = lib.platforms.linux;
hydraPlatforms = [ ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
}