From 2827e49596af06d0de9adab2245e995a6c9b5336 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Wed, 3 Apr 2019 21:15:50 +0800 Subject: eduke32: 20150420 -> 20190330 Also: - use makeWrapper instead of a custom binary wrapper - general minor cleanups --- pkgs/games/eduke32/default.nix | 98 +++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 48 deletions(-) (limited to 'pkgs/games/eduke32/default.nix') diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix index c51f014b179d..3407659d977b 100644 --- a/pkgs/games/eduke32/default.nix +++ b/pkgs/games/eduke32/default.nix @@ -1,76 +1,78 @@ -{ stdenv, fetchurl, flac, gtk2, libvorbis, libvpx, makeDesktopItem, libGLU_combined, nasm -, pkgconfig, SDL2, SDL2_mixer, runtimeShell }: +{ stdenv, fetchurl, makeWrapper, pkgconfig, nasm, makeDesktopItem +, flac, gtk2, libvorbis, libvpx, libGLU_combined +, SDL2, SDL2_mixer }: let - year = "2015"; - date = "20150420"; - rev = "5160"; -in stdenv.mkDerivation rec { + version = "20190330"; + rev = "7470"; + + desktopItem = makeDesktopItem { + name = "eduke32"; + exec = "@out@/bin/${wrapper}"; + comment = "Duke Nukem 3D port"; + desktopName = "Enhanced Duke Nukem 3D"; + genericName = "Duke Nukem 3D port"; + categories = "Application;Game;"; + }; + + wrapper = "eduke32-wrapper"; + +in stdenv.mkDerivation { name = "eduke32-${version}"; - version = "${date}-${rev}"; src = fetchurl { - url = "http://dukeworld.duke4.net/eduke32/synthesis/old/${year}/${version}/eduke32_src_${version}.tar.xz"; - sha256 = "1nlq5jbglg00c1z1vsyl627fh0mqfxvk5qyxav5vzla2b4svik2v"; + url = "http://dukeworld.duke4.net/eduke32/synthesis/latest/eduke32_src_${version}-${rev}.tar.xz"; + sha256 = "09a7l23i6sygicc82w1in9hjw0jvivlf7q0vw8kcx9j98lm23mkn"; }; - buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ] + buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ]; + + nativeBuildInputs = [ makeWrapper pkgconfig ] ++ stdenv.lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm; - nativeBuildInputs = [ pkgconfig ]; postPatch = '' - substituteInPlace build/src/glbuild.c \ - --replace libGL.so ${libGLU_combined}/lib/libGL.so \ - --replace libGLU.so ${libGLU_combined}/lib/libGLU.so + substituteInPlace source/build/src/glbuild.cpp \ + --replace libGLU.so ${libGLU_combined}/lib/libGLU.so + + for f in glad.c glad_wgl.c ; do + substituteInPlace source/glad/src/$f \ + --replace libGL.so ${libGLU_combined}/lib/libGL.so + done ''; - NIX_CFLAGS_COMPILE = "-I${SDL2.dev}/include/SDL2 -I${SDL2_mixer}/include/SDL2"; - NIX_LDFLAGS = "-L${SDL2}/lib"; + NIX_CFLAGS_COMPILE = [ + "-I${SDL2.dev}/include/SDL2" + "-I${SDL2_mixer}/include/SDL2" + ]; makeFlags = [ - "LINKED_GTK=1" "SDLCONFIG=${SDL2}/bin/sdl2-config" - "VC_REV=${rev}" ]; - desktopItem = makeDesktopItem { - name = "eduke32"; - exec = "eduke32-wrapper"; - comment = "Duke Nukem 3D port"; - desktopName = "Enhanced Duke Nukem 3D"; - genericName = "Duke Nukem 3D port"; - categories = "Application;Game;"; - }; + enableParallelBuilding = true; installPhase = '' - # Make wrapper script - cat > eduke32-wrapper <