From f62e2b24c32bf9de26ea96a4891ab0cbe6b392f9 Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Mon, 4 May 2020 22:56:39 +0200 Subject: [PATCH] superTuxKart: use assets directly from download This saves ~600MiB per STK build, as long as the assets remain the same. --- pkgs/games/super-tux-kart/default.nix | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix index dcf1081e4d0ba5..70c5657508bd34 100644 --- a/pkgs/games/super-tux-kart/default.nix +++ b/pkgs/games/super-tux-kart/default.nix @@ -1,9 +1,15 @@ -{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig +{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper , openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype , fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, enet, harfbuzz }: let dir = "stk-code"; + assets = fetchsvn { + url = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets"; + rev = "18212"; + sha256 = "1dyj8r5rfifhnhayga8w8irkpa99vw57xjmy74cp8xz8g7zvdzqf"; + name = "stk-assets"; + }; in stdenv.mkDerivation rec { pname = "supertuxkart"; @@ -17,15 +23,9 @@ in stdenv.mkDerivation rec { sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; name = dir; }) - (fetchsvn { - url = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets"; - rev = "18212"; - sha256 = "1dyj8r5rfifhnhayga8w8irkpa99vw57xjmy74cp8xz8g7zvdzqf"; - name = "stk-assets"; - }) ]; - nativeBuildInputs = [ cmake gettext libtool pkgconfig ]; + nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ]; buildInputs = [ libX11 libXrandr @@ -38,8 +38,14 @@ in stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_RECORDER=OFF" # libopenglrecorder is not in nixpkgs "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0 + "-DCHECK_ASSETS=OFF" ]; + # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds + preFixup = '' + wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}" + ''; + sourceRoot = dir; meta = with stdenv.lib; {