From 344dd8d19399a24b665b1240c280dd55a36c8cee Mon Sep 17 00:00:00 2001 From: SCOTT-HAMILTON Date: Wed, 24 Jun 2020 19:34:02 +0200 Subject: [PATCH 1/2] WiiUse: Init at 0.15.5 --- pkgs/development/libraries/wiiuse/default.nix | 33 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/libraries/wiiuse/default.nix diff --git a/pkgs/development/libraries/wiiuse/default.nix b/pkgs/development/libraries/wiiuse/default.nix new file mode 100644 index 00000000000..4dcc8a47105 --- /dev/null +++ b/pkgs/development/libraries/wiiuse/default.nix @@ -0,0 +1,33 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, bluez +}: +stdenv.mkDerivation rec { + + pname = "WiiUse"; + version = "0.15.5"; + + src = fetchFromGitHub { + owner = "wiiuse"; + repo = "wiiuse"; + rev = "${version}"; + sha256 = "05gc3s0wxx7ga4g32yyibyxdh46rm9bbslblrc72ynrjxq98sg13"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ (lib.getDev bluez) ]; + + cmakeFlags = [ "-DBUILD_EXAMPLE_SDL=NO" ]; + + meta = with lib; { + description = "Feature complete cross-platform Wii Remote access library"; + license = licenses.gpl3; + homepage = "https://github.com/wiiuse/wiiuse"; + maintainers = with maintainers; [ shamilton ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 413bc6de348..4455f1cbfbf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7691,6 +7691,8 @@ in whsniff = callPackage ../applications/networking/sniffers/whsniff { }; + wiiuse = callPackage ../development/libraries/wiiuse { }; + woeusb = callPackage ../tools/misc/woeusb { }; chase = callPackage ../tools/system/chase { }; From b2b28fcad3d80bb27f2e0dc8790197f072a17508 Mon Sep 17 00:00:00 2001 From: SCOTT-HAMILTON Date: Wed, 24 Jun 2020 18:54:22 +0200 Subject: [PATCH 2/2] SuperTuxKart: Replaced some bundled libraries with system ones --- pkgs/games/super-tux-kart/default.nix | 67 +++++++++++++++++++-------- 1 file 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,