diff options
author | SCOTT-HAMILTON <sgn.hamilton@protonmail.com> | 2020-06-24 18:54:22 +0200 |
---|---|---|
committer | SCOTT-HAMILTON <sgn.hamilton@protonmail.com> | 2020-06-27 18:45:18 +0200 |
commit | b2b28fcad3d80bb27f2e0dc8790197f072a17508 (patch) | |
tree | a866cf0791c3552ea1a5a639da4997c5fdc2cd9a /pkgs/games/super-tux-kart | |
parent | 344dd8d19399a24b665b1240c280dd55a36c8cee (diff) | |
download | nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar.gz nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar.bz2 nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar.lz nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar.xz nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.tar.zst nixpkgs-b2b28fcad3d80bb27f2e0dc8790197f072a17508.zip |
SuperTuxKart: Replaced some bundled libraries with system ones
Diffstat (limited to 'pkgs/games/super-tux-kart')
-rw-r--r-- | pkgs/games/super-tux-kart/default.nix | 67 |
1 files changed, 48 insertions, 19 deletions
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix index 70c5657508b..b3a7966071a 100644 --- a/pkgs/games/super-tux-kart/default.nix +++ b/pkgs/games/super-tux-kart/default.nix @@ -1,7 +1,8 @@ -{ 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 }: - +{ lib, stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper +, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype, glew +, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, harfbuzz +, mcpp, wiiuse, angelscript +}: let dir = "stk-code"; assets = fetchsvn { @@ -11,34 +12,62 @@ let name = "stk-assets"; }; + # List of bundled libraries in stk-code/lib to keep + # Those are the libraries that cannot be replaced + # with system packages. + bundledLibraries = [ + # Bullet 2.87 is incompatible (bullet 2.79 needed whereas 2.87 is packaged) + # The api changed in a lot of classes, too much work to adapt + "bullet" + # Upstream Libenet doesn't yet support IPv6, + # So we will use the bundled libenet which + # has been fixed to support it. + "enet" + # Internal library of STK, nothing to do about it + "graphics_utils" + # This irrlicht is bundled with cmake + # whereas upstream irrlicht still uses + # archaic Makefiles, too complicated to switch to. + "irrlicht" + # Not packaged to this date + "libraqm" + # Not packaged to this date + "libsquish" + ]; in stdenv.mkDerivation rec { + pname = "supertuxkart"; version = "1.1"; - srcs = [ - (fetchFromGitHub { - owner = "supertuxkart"; - repo = "stk-code"; - rev = version; - sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; - name = dir; - }) - ]; + src = fetchFromGitHub { + owner = "supertuxkart"; + repo = "stk-code"; + rev = version; + sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; + name = dir; + }; + + # Deletes all bundled libs in stk-code/lib except those + # That couldn't be replaced with system packages + postPatch = '' + find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {} + ''; nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ]; buildInputs = [ libX11 libXrandr - openal freealut libGLU libGL libvorbis libogg zlib freetype - curl fribidi bluez libjpeg libpng enet harfbuzz + openal freealut libGLU libGL libvorbis libogg zlib freetype glew + curl fribidi bluez libjpeg libpng harfbuzz + mcpp wiiuse angelscript ]; - enableParallelBuilding = true; - 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" + "-DUSE_SYSTEM_WIIUSE=ON" + "-DUSE_SYSTEM_ANGELSCRIPT=ON" ]; # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds @@ -46,9 +75,9 @@ in stdenv.mkDerivation rec { wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}" ''; - sourceRoot = dir; + enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A Free 3D kart racing game"; longDescription = '' SuperTuxKart is a Free 3D kart racing game, with many tracks, |