593e11fd94
According to https://repology.org/repository/nix_unstable/problems, we have a lot of packages that have http links that redirect to https as their homepage. This commit updates all these packages to use the https links as their homepage. The following script was used to make these updates: ``` curl https://repology.org/api/v1/repository/nix_unstable/problems \ | jq '.[] | .problem' -r \ | rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \ | sort | uniq > script.sed find -name '*.nix' | xargs -P4 -- sed -f script.sed -i ```
103 lines
2.9 KiB
Nix
103 lines
2.9 KiB
Nix
{ stdenv, fetchurl, binutils-unwrapped, scons, gnum4, p7zip, glibc_multi, mesa
|
|
, xorg, libGLU, libGL, openal
|
|
, lib, makeWrapper, makeDesktopItem }:
|
|
|
|
let
|
|
pname = "tdm";
|
|
version = "2.07";
|
|
|
|
desktop = makeDesktopItem {
|
|
desktopName = pname;
|
|
name = pname;
|
|
exec = "@out@/bin/${pname}";
|
|
icon = pname;
|
|
terminal = "False";
|
|
comment = "The Dark Mod - stealth FPS inspired by the Thief series";
|
|
type = "Application";
|
|
categories = "Game;";
|
|
genericName = pname;
|
|
};
|
|
in stdenv.mkDerivation {
|
|
name = "${pname}-${version}";
|
|
src = fetchurl {
|
|
url = "https://www.thedarkmod.com/sources/thedarkmod.${version}.src.7z";
|
|
sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6";
|
|
};
|
|
nativeBuildInputs = [
|
|
p7zip scons gnum4 makeWrapper
|
|
];
|
|
buildInputs = [
|
|
glibc_multi mesa.dev xorg.libX11.dev openal
|
|
xorg.libXext.dev xorg.libXxf86vm.dev
|
|
libGL libGLU
|
|
];
|
|
unpackPhase = ''
|
|
7z x $src
|
|
'';
|
|
|
|
# I'm pretty sure there's a better way to build 2 targets than a random hook
|
|
preBuild = ''
|
|
pushd tdm_update
|
|
scons BUILD=release TARGET_ARCH=x64
|
|
install -Dm755 tdm_update.linux $out/share/libexec/tdm_update.linux
|
|
popd
|
|
'';
|
|
|
|
# why oh why can it find ld but not strip?
|
|
postPatch = ''
|
|
sed -i 's!strip \$!${binutils-unwrapped}/bin/strip $!' SConstruct
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm644 ${desktop}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
|
substituteInPlace $out/share/applications/${pname}.desktop --subst-var out
|
|
install -Dm755 thedarkmod.x64 $out/share/libexec/tdm
|
|
|
|
# The package doesn't install assets, these get installed by running tdm_update.linux
|
|
# Provide a script that runs tdm_update.linux on first launch
|
|
install -Dm755 <(cat <<'EOF'
|
|
#!/bin/sh
|
|
set -e
|
|
DIR="$HOME/.local/share/tdm"
|
|
mkdir -p "$DIR"
|
|
cd "$DIR"
|
|
exec "PKGDIR/share/libexec/tdm_update.linux" --noselfupdate
|
|
EOF
|
|
) $out/bin/tdm_update
|
|
|
|
install -Dm755 <(cat <<'EOF'
|
|
#!/bin/sh
|
|
set -e
|
|
DIR="$HOME/.local/share/tdm"
|
|
if [ ! -d "$DIR" ]; then
|
|
echo "Please run tdm_update to (re)download game data"
|
|
else
|
|
cd "$DIR"
|
|
exec "PKGDIR/share/libexec/tdm"
|
|
fi
|
|
EOF
|
|
) $out/bin/tdm
|
|
sed -i "s!PKGDIR!$out!g" $out/bin/tdm_update
|
|
sed -i "s!PKGDIR!$out!g" $out/bin/tdm
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/tdm --suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libGLU ]}
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
sconsFlags = [ "BUILD=release" "TARGET_ARCH=x64" ];
|
|
NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
|
|
meta = with stdenv.lib; {
|
|
description = "The Dark Mod - stealth FPS inspired by the Thief series";
|
|
homepage = "http://www.thedarkmod.com";
|
|
license = licenses.gpl3;
|
|
maintainers = with maintainers; [ cizra ];
|
|
platforms = with platforms; [ "x86_64-linux" ]; # tdm also supports x86, but I don't have a x86 install at hand to test.
|
|
};
|
|
}
|