1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-24 22:50:49 +00:00

Merge pull request #91421 from SCOTT-HAMILTON/SuperTuxKart

SuperTuxKart: Replaced some bundled libraries with system ones
This commit is contained in:
Matthieu Coudron 2020-06-27 20:21:11 +02:00 committed by GitHub
commit 91c9127ef9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 19 deletions

View file

@ -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,

View file

@ -7701,6 +7701,8 @@ in
whsniff = callPackage ../applications/networking/sniffers/whsniff { };
wiiuse = callPackage ../development/libraries/wiiuse { };
woeusb = callPackage ../tools/misc/woeusb { };
chase = callPackage ../tools/system/chase { };