summaryrefslogtreecommitdiff
path: root/pkgs/games
diff options
context:
space:
mode:
authorMio <mio@mio19.uk>2026-01-14 16:13:52 +1100
committerMio <mio@mio19.uk>2026-01-14 16:13:52 +1100
commitf1a4cca7745bd513576f553314e8d37ccf3caa27 (patch)
treef2c25702a735654b6b6e2b70084b2d4cfe43c7a2 /pkgs/games
parentlockbook-desktop: 25.12.15 -> 26.1.13 (#479900) (diff)
downloadnixpkgs-f1a4cca7745bd513576f553314e8d37ccf3caa27.tar.gz
speed-dreams: 2.3.0-r8786 -> 2.4.2
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/speed-dreams/default.nix131
1 files changed, 67 insertions, 64 deletions
diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix
index 520439b2321b..b257e77934fd 100644
--- a/pkgs/games/speed-dreams/default.nix
+++ b/pkgs/games/speed-dreams/default.nix
@@ -1,5 +1,4 @@
{
- fetchurl,
lib,
stdenv,
libGLU,
@@ -32,83 +31,83 @@
libvorbis,
runtimeShell,
curl,
+ fetchgit,
+ cjson,
+ minizip,
+ rhash,
copyDesktopItems,
- makeDesktopItem,
}:
-let
- version = "2.3.0-r8786";
- shortVersion = builtins.substring 0 5 version;
-in
stdenv.mkDerivation rec {
- inherit version;
+ version = "2.4.2";
pname = "speed-dreams";
- src = fetchurl {
- url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-base-${version}.tar.xz";
- sha256 = "sha256-DUyMs9Hr1PYgmNVwBY/e6snVeGl9GX0AnZ7S+TFABKQ=";
+ src = fetchgit {
+ url = "https://forge.a-lec.org/speed-dreams/speed-dreams-code.git";
+ rev = "v${version}";
+ sha256 = "sha256-ZY/0tf0wFbepEUNqpaBA4qgkWDij/joqPtbiF/48oN4=";
+ fetchSubmodules = true;
};
-
- cars-and-tracks = fetchurl {
- url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-hq-cars-and-tracks-${version}.tar.xz";
- sha256 = "sha256-WT+W6uuw4BRSbF1Cw123q3v9qSCvBQ7TcQ/Y0RV/7Js=";
- };
-
- more-cars-and-tracks = fetchurl {
- url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-more-hq-cars-and-tracks-${version}.tar.xz";
- sha256 = "sha256-psApv+Z1HDFvh5bzt125mo/ZvO5rjee/KhOf45iKnKk=";
- };
-
- wip-cars-and-tracks = fetchurl {
- url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-wip-cars-and-tracks-${version}.tar.xz";
- sha256 = "sha256-OEAbqFfO2PzHP7+eAtPNn3Ql6fYNTKzzQW8lHe9KDXM=";
- };
-
- sourceRoot = ".";
-
- postUnpack = ''
- echo Unpacking data
- tar -xf ${cars-and-tracks}
- tar -xf ${more-cars-and-tracks}
- tar -xf ${wip-cars-and-tracks}
- '';
-
- preBuild = ''
- make -C src/libs/portability
- make -C src/libs/portability portability.o
- ar -rv "$(echo lib*/games/speed-dreams*/lib)"/libportability_static.a src/libs/portability/CMakeFiles/portability.dir/portability.cpp.o
- export NIX_LDFLAGS="$NIX_LDFLAGS -L$(echo $PWD/lib*/games/speed-dreams*/lib) -lexpat"
- echo "libportability_static.a built"
- '';
+ NIX_CFLAGS_COMPILE = "-I${src}/src/libs/tgf -I${src}/src/libs/tgfdata -I${src}/src/interfaces -I${src}/src/libs/math -I${src}/src/libs/portability";
postInstall = ''
- mkdir "$out/bin"
- for i in "$out"/games/*; do
- echo '#!${runtimeShell}' >> "$out/bin/$(basename "$i")"
- echo "$i"' "$@"' >> "$out/bin/$(basename "$i")"
- chmod a+x "$out/bin/$(basename "$i")"
- done
+ mkdir -p "$out/bin"
+ # Wrapper for main executable
+ cat > "$out/bin/speed-dreams" <<EOF
+ #!${runtimeShell}
+ export LD_LIBRARY_PATH="$out/lib/games/speed-dreams-2/lib:$out/lib:${
+ lib.makeLibraryPath [
+ libGL
+ libGLU
+ libglut
+ libX11
+ plib
+ openal
+ freealut
+ libXrandr
+ libXext
+ libSM
+ libICE
+ libXi
+ libXt
+ libXrender
+ libXxf86vm
+ openscenegraph
+ expat
+ libpng
+ zlib
+ SDL2
+ SDL2_mixer
+ enet
+ libjpeg
+ libvorbis
+ curl
+ cjson
+ minizip
+ rhash
+ stdenv.cc.cc.lib
+ ]
+ }"
+ if [ -e "${libGL}/lib/libGL.so.1" ]; then
+ export LD_PRELOAD="${libGL}/lib/libGL.so.1''${LD_PRELOAD:+:$LD_PRELOAD}"
+ fi
+ export SDL_VIDEODRIVER="x11"
+ exec "$out/games/speed-dreams-2" "$@"
+ EOF
+ chmod a+x "$out/bin/speed-dreams"
+ # Symlink for desktop icon
mkdir -p $out/share/pixmaps/
ln -s "$out/share/games/speed-dreams-2/data/icons/icon.png" "$out/share/pixmaps/speed-dreams-2.png"
+ substituteInPlace "$out/share/applications/speed-dreams.desktop" \
+ --replace-fail "Exec=$out/games/speed-dreams-2" "Exec=$out/bin/speed-dreams" \
+ --replace-fail "Icon=/build/speed-dreams-code/speed-dreams-data/data/data/icons/icon.png" "Icon=$out/share/pixmaps/speed-dreams-2.png"
'';
- desktopItems = [
- (makeDesktopItem {
- name = "Speed Dreams 2";
- exec = "speed-dreams-2";
- icon = "speed-dreams-2.png";
- desktopName = "speed-dreams-2";
- comment = "The Open Racing Car Simulator Fork";
- categories = [
- "Application"
- "Game"
- ];
- })
- ];
-
# RPATH of binary /nix/store/.../lib64/games/speed-dreams-2/drivers/shadow_sc/shadow_sc.so contains a forbidden reference to /build/
- cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=ON" ];
+ cmakeFlags = [
+ "-DCMAKE_SKIP_BUILD_RPATH=ON"
+ ];
nativeBuildInputs = [
pkg-config
@@ -144,14 +143,18 @@ stdenv.mkDerivation rec {
openscenegraph
libvorbis
curl
+ cjson
+ minizip
+ rhash
];
meta = {
description = "Car racing game - TORCS fork with more experimental approach";
- homepage = "https://speed-dreams.sourceforge.net/";
+ homepage = "https://www.speed-dreams.net/";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.linux;
hydraPlatforms = [ ];
+ mainProgram = "speed-dreams";
};
}