diff options
author | Robin Gloster <mail@glob.in> | 2016-04-18 13:00:40 +0000 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2016-04-18 13:49:22 +0000 |
commit | d020caa5b2eca90ea051403fbb4c52b99ee071b9 (patch) | |
tree | ba44ef1e784bca89e0df6b249956fd035b1d86e3 /pkgs/misc/emulators | |
parent | 3e68106afd95df012ddb548575f0133681687a90 (diff) | |
parent | 0729f606973870c03d21bb2f21b70d91216943ca (diff) | |
download | nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.gz nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.bz2 nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.lz nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.xz nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.zst nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.zip |
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/misc/emulators')
-rw-r--r-- | pkgs/misc/emulators/dolphin-emu/default.nix | 4 | ||||
-rw-r--r-- | pkgs/misc/emulators/dolphin-emu/master.nix | 4 | ||||
-rw-r--r-- | pkgs/misc/emulators/higan/0001-change-flags.diff | 49 | ||||
-rw-r--r-- | pkgs/misc/emulators/higan/default.nix | 33 | ||||
-rw-r--r-- | pkgs/misc/emulators/mgba/default.nix | 20 | ||||
-rw-r--r-- | pkgs/misc/emulators/pcsx2/default.nix | 5 | ||||
-rw-r--r-- | pkgs/misc/emulators/retroarch/cores.nix | 2 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/base.nix | 27 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/packages.nix | 22 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/sources.nix | 6 |
10 files changed, 92 insertions, 80 deletions
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix index ea32287da744..f264b311dadc 100644 --- a/pkgs/misc/emulators/dolphin-emu/default.nix +++ b/pkgs/misc/emulators/dolphin-emu/default.nix @@ -11,8 +11,8 @@ stdenv.mkDerivation rec { }; cmakeFlags = '' - -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include - -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include + -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include + -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0 -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix index 06734d24c8a6..2a9d923f3e8e 100644 --- a/pkgs/misc/emulators/dolphin-emu/master.nix +++ b/pkgs/misc/emulators/dolphin-emu/master.nix @@ -13,8 +13,8 @@ stdenv.mkDerivation rec { }; cmakeFlags = '' - -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include - -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include + -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include + -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0 -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True diff --git a/pkgs/misc/emulators/higan/0001-change-flags.diff b/pkgs/misc/emulators/higan/0001-change-flags.diff index 9d7608b93281..1ac1b1360b2a 100644 --- a/pkgs/misc/emulators/higan/0001-change-flags.diff +++ b/pkgs/misc/emulators/higan/0001-change-flags.diff @@ -1,26 +1,23 @@ -diff -rupN higan_v095-source.orig/GNUmakefile higan_v095-source/GNUmakefile ---- higan_v095-source.orig/GNUmakefile 2015-11-04 10:28:26.173428178 +0100 -+++ higan_v095-source/GNUmakefile 2015-11-04 10:28:31.752231593 +0100 -@@ -12,7 +12,8 @@ target := tomoko - # console := true - - # compiler --flags += -I. -O3 -+flags += -I. $(CXXFLAGS) -+link += $(LDFLAGS) - objects := libco - - # profile-guided optimization mode -diff -rupN higan_v095-source.orig/icarus/GNUmakefile higan_v095-source/icarus/GNUmakefile ---- higan_v095-source.orig/icarus/GNUmakefile 2015-11-04 10:28:26.186486119 +0100 -+++ higan_v095-source/icarus/GNUmakefile 2015-11-04 10:28:48.755059317 +0100 -@@ -1,8 +1,8 @@ - include ../nall/GNUmakefile - include ../hiro/GNUmakefile - --flags += -I.. -O3 --link += -+flags += -I.. $(CXXFLAGS) -+link += $(LDFLAGS) - objects := obj/hiro.o obj/icarus.o - objects += $(if $(call streq,$(platform),windows),obj/resource.o) +diff -rupN higan_v097-source.old/higan/GNUmakefile higan_v097-source/higan/GNUmakefile +--- higan_v097-source.old/higan/GNUmakefile 2016-01-24 09:21:45.822940200 +0100 ++++ higan_v097-source/higan/GNUmakefile 2016-01-24 09:24:03.028722500 +0100 +@@ -36,7 +36,7 @@ ifeq ($(platform),windows) + else ifeq ($(platform),macosx) + flags += -march=native + else ifneq ($(filter $(platform),linux bsd),) +- flags += -march=native -fopenmp ++ flags += -fopenmp + link += -fopenmp + link += -Wl,-export-dynamic + link += -lX11 -lXext +diff -rupN higan_v097-source.old/nall/GNUmakefile higan_v097-source/nall/GNUmakefile +--- higan_v097-source.old/nall/GNUmakefile 2016-01-24 09:21:46.021749600 +0100 ++++ higan_v097-source/nall/GNUmakefile 2016-01-24 09:25:06.347100800 +0100 +@@ -40,8 +40,8 @@ cflags := -x c -std=c99 + objcflags := -x objective-c -std=c99 + cppflags := -x c++ -std=c++14 + objcppflags := -x objective-c++ -std=c++14 +-flags := +-link := ++flags := $(CXXFLAGS) ++link := $(LDFLAGS) diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix index 5d48f38abd82..1395e3ac3efe 100644 --- a/pkgs/misc/emulators/higan/default.nix +++ b/pkgs/misc/emulators/higan/default.nix @@ -5,18 +5,18 @@ , mesa, SDL , libao, openal, libpulseaudio , gtk, gtksourceview -, profile ? "balanced" # Options: accuracy, balanced, performance }: with stdenv.lib; stdenv.mkDerivation rec { - name = "higan-${meta.version}"; - sourceName = "higan_v${meta.version}-source"; + name = "higan-${version}"; + version = "098"; + sourceName = "higan_v${version}-source"; src = fetchurl { urls = [ "http://download.byuu.org/${sourceName}.7z" ]; - sha256 = "0yc5gwg6dq9iwi2qk3g66wn8j2l55nhdb0311jzmdsh86zcrpvqh"; + sha256 = "0qphvjfv17dbmzgb4pny2q6ln0lsgzyhalq6qyqxc3qwm4fzdjv1"; curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick... }; @@ -31,18 +31,17 @@ stdenv.mkDerivation rec { ''; buildPhase = '' - make compiler=c++ profile=${profile} -C icarus - make compiler=c++ profile=${profile} + make compiler=c++ -C icarus + make compiler=c++ -C higan ''; installPhase = '' install -dm 755 $out/bin $out/share/applications $out/share/higan $out/share/pixmaps - install -m 755 icarus/icarus $out/bin/ - install -m 755 out/tomoko $out/bin/ - (cd $out/bin; ln -Ts tomoko higan) #backwards compatibility - install -m 644 data/higan.desktop $out/share/applications/ - install -m 644 data/higan.png $out/share/pixmaps/ - cp -dr --no-preserve='ownership' profile/* data/cheats.bml $out/share/higan/ + install -m 755 icarus/out/icarus $out/bin/ + install -m 755 higan/out/higan $out/bin/ + install -m 644 higan/data/higan.desktop $out/share/applications/ + install -m 644 higan/data/higan.png $out/share/pixmaps/ + cp --recursive --no-dereference --preserve='links' --no-preserve='ownership' higan/data/cheats.bml higan/profile/* $out/share/higan/ ''; fixupPhase = '' @@ -54,21 +53,22 @@ stdenv.mkDerivation rec { cat <<EOF > $out/bin/higan-init.sh #!${stdenv.shell} - cp --update --recursive $out/share/higan \$HOME/.config - chmod --recursive u+w \$HOME/.config/higan + cp --update $out/share/higan/cheats.bml \$HOME/.config/ + cp --recursive --update $out/share/higan/*.sys \$HOME/.local/share/higan/ + EOF chmod +x $out/bin/higan-init.sh ''; meta = { - version = "096"; description = "An open-source, cycle-accurate Nintendo multi-system emulator"; longDescription = '' Higan (formerly bsnes) is a Nintendo multi-system emulator. It currently supports the following systems: Famicom; Super Famicom; Game Boy; Game Boy Color; Game Boy Advance + WonderSwan; WonderSwan Color higan also supports the following subsystems: Super Game Boy; BS-X Satellaview; Sufami Turbo ''; @@ -82,5 +82,4 @@ stdenv.mkDerivation rec { # # TODO: # - fix the BML and BIOS paths - maybe submitting -# a custom patch to Higan project would not be a bad idea... -# - Qt support +# a custom patch to upstream would not be a bad idea... diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix index ea11e3a33e2b..07470fa54ab4 100644 --- a/pkgs/misc/emulators/mgba/default.nix +++ b/pkgs/misc/emulators/mgba/default.nix @@ -1,22 +1,23 @@ -{ stdenv, fetchurl, pkgconfig, cmake, ffmpeg, imagemagick, libzip, SDL2 +{ stdenv, fetchgit +, pkgconfig, cmake, libzip, epoxy, ffmpeg, imagemagick, SDL2 , qtbase, qtmultimedia }: stdenv.mkDerivation rec { - name = "mgba-${meta.version}"; - src = fetchurl { - url = "https://github.com/mgba-emu/mgba/archive/${meta.version}.tar.gz"; - sha256 = "0z52w4dkgjjviwi6w13gls082zclljgx1sa8nlyb1xcnnrn6980l"; + name = "mgba-git-${version}"; + version = "20160325"; + + src = fetchgit { + url = "https://github.com/mgba-emu/mgba.git"; + rev = "be2641c77b4a438e0db487bc82b43bc27a26e0c2"; + sha256 = "0ygsmmp24w14x5fm2qz2v68p59bs2ravn22axrg2ipn5skkgrvxz"; }; buildInputs = [ - pkgconfig cmake ffmpeg imagemagick libzip SDL2 + pkgconfig cmake libzip epoxy ffmpeg imagemagick SDL2 qtbase qtmultimedia ]; - enableParallelBuilding = true; - meta = with stdenv.lib; { - version = "0.3.1"; homepage = https://mgba.io; description = "A modern GBA emulator with a focus on accuracy"; longDescription = '' @@ -38,4 +39,3 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ MP2E AndersonTorres ]; }; } - diff --git a/pkgs/misc/emulators/pcsx2/default.nix b/pkgs/misc/emulators/pcsx2/default.nix index 63b221c9a3dc..e6a7b9800d31 100644 --- a/pkgs/misc/emulators/pcsx2/default.nix +++ b/pkgs/misc/emulators/pcsx2/default.nix @@ -24,12 +24,13 @@ stdenv.mkDerivation rec { -DCMAKE_BUILD_PO=TRUE \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="$out" \ + -DDISABLE_ADVANCE_SIMD=TRUE \ -DDISABLE_PCSX2_WRAPPER=TRUE \ -DDOC_DIR="$out/share/doc/pcsx2" \ -DGAMEINDEX_DIR="$out/share/pcsx2" \ -DGLSL_SHADER_DIR="$out/share/pcsx2" \ - -DGTK2_GLIBCONFIG_INCLUDE_DIR='${glib}/lib/glib-2.0/include' \ - -DGTK2_GDKCONFIG_INCLUDE_DIR='${gtk2}/lib/gtk-2.0/include' \ + -DGTK2_GLIBCONFIG_INCLUDE_DIR='${glib.out}/lib/glib-2.0/include' \ + -DGTK2_GDKCONFIG_INCLUDE_DIR='${gtk2.out}/lib/gtk-2.0/include' \ -DGTK2_INCLUDE_DIRS='${gtk2}/include/gtk-2.0' \ -DPACKAGE_MODE=TRUE \ -DPLUGIN_DIR="$out/lib/pcsx2" \ diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix index 35a55a8933ad..07783d016183 100644 --- a/pkgs/misc/emulators/retroarch/cores.nix +++ b/pkgs/misc/emulators/retroarch/cores.nix @@ -207,7 +207,7 @@ in extraBuildInputs = [ libpng SDL ]; }).override { - patchPhase = "sed -i -e 's,SDL_CONFIG=\".*\",SDL_CONFIG=\"${SDL}/bin/sdl-config\",' configure"; + patchPhase = "sed -i -e 's,SDL_CONFIG=\".*\",SDL_CONFIG=\"${SDL.dev}/bin/sdl-config\",' configure"; configurePhase = "./configure"; }; diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix index e031627a032d..804eb0bb304c 100644 --- a/pkgs/misc/emulators/wine/base.nix +++ b/pkgs/misc/emulators/wine/base.nix @@ -1,5 +1,6 @@ { stdenv, lib, pkgArches, name, version, src, monos, geckos, platforms, + pkgconfig, fontforge, makeWrapper, flex, bison, pulseaudioSupport, buildScript ? null, configureFlags ? "" }: @@ -14,29 +15,39 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { }) // rec { inherit name src configureFlags; - buildInputs = toBuildInputs pkgArches (pkgs: with pkgs; [ - pkgconfig alsaLib lcms2 fontforge libxml2 libxslt makeWrapper flex bison - ]); + nativeBuildInputs = [ + pkgconfig fontforge makeWrapper flex bison + ]; - nativeBuildInputs = toBuildInputs pkgArches (pkgs: (with pkgs; [ + buildInputs = toBuildInputs pkgArches (pkgs: (with pkgs; [ freetype fontconfig mesa mesa_noglu.osmesa libdrm libpng libjpeg openssl gnutls cups ncurses + alsaLib libxml2 libxslt lcms2 gettext dbus mpg123 openal ]) ++ lib.optional pulseaudioSupport pkgs.libpulseaudio ++ (with pkgs.xorg; [ - xlibsWrapper libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite + libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite libXext ])); # Wine locates a lot of libraries dynamically through dlopen(). Add # them to the RPATH so that the user doesn't have to set them in # LD_LIBRARY_PATH. - NIX_LDFLAGS = map - (path: "-rpath ${path}/lib") - ([ stdenv.cc.cc ] ++ nativeBuildInputs); + NIX_LDFLAGS = map (path: "-rpath " + path) ( + map (x: "${x}/lib") ([ stdenv.cc.cc ] ++ (map (x: x.lib or x.out) buildInputs)) + # libpulsecommon.so is linked but not found otherwise + ++ lib.optionals pulseaudioSupport (map (x: "${x}/lib/pulseaudio") (toBuildInputs pkgArches (pkgs: [ pkgs.libpulseaudio ]))) + ); # Don't shrink the ELF RPATHs in order to keep the extra RPATH # elements specified above. dontPatchELF = true; + # Disable stripping to avoid breaking placeholder DLLs/EXEs. + # Symptoms of broken placeholders are: when the wineprefix is created + # drive_c/windows/system32 will only contain a few files instead of + # hundreds, there will be an error about winemenubuilder and MountMgr + # on startup of Wine, and the Drives tab in winecfg will show an error. + dontStrip = true; + ## FIXME # Add capability to ignore known failing tests # and enable doCheck diff --git a/pkgs/misc/emulators/wine/packages.nix b/pkgs/misc/emulators/wine/packages.nix index 69275a74b356..206deb01b8bb 100644 --- a/pkgs/misc/emulators/wine/packages.nix +++ b/pkgs/misc/emulators/wine/packages.nix @@ -1,32 +1,36 @@ -{ system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, callPackage, +{ system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, callPackage, callPackage_i686, + overrideCC, wrapCCMulti, gcc49, pulseaudioSupport, wineRelease ? "stable" }: let src = lib.getAttr wineRelease (callPackage ./sources.nix {}); in with src; { - wine32 = import ./base.nix { + wine32 = callPackage_i686 ./base.nix { name = "wine-${version}"; inherit src version pulseaudioSupport; - inherit (pkgsi686Linux) lib stdenv; pkgArches = [ pkgsi686Linux ]; geckos = [ gecko32 ]; monos = [ mono ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; - wine64 = import ./base.nix { + wine64 = callPackage ./base.nix { name = "wine64-${version}"; - inherit src version pulseaudioSupport lib stdenv; + inherit src version pulseaudioSupport; + # FIXME: drop this when GCC is updated to >5.3. + # Corresponding bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69140 + stdenv = overrideCC stdenv gcc49; pkgArches = [ pkgs ]; geckos = [ gecko64 ]; monos = [ mono ]; - configureFlags = "--enable-win64"; + configureFlags = [ "--enable-win64" ]; platforms = [ "x86_64-linux" ]; }; - wineWow = import ./base.nix { + wineWow = callPackage ./base.nix { name = "wine-wow-${version}"; - inherit src version pulseaudioSupport lib; - stdenv = stdenv_32bit; + inherit src version pulseaudioSupport; + # FIXME: see above. + stdenv = overrideCC stdenv_32bit (wrapCCMulti gcc49); pkgArches = [ pkgs pkgsi686Linux ]; geckos = [ gecko32 gecko64 ]; monos = [ mono ]; diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix index cd877403d3a0..9ad09ed5dfe1 100644 --- a/pkgs/misc/emulators/wine/sources.nix +++ b/pkgs/misc/emulators/wine/sources.nix @@ -30,9 +30,9 @@ in rec { }; unstable = fetchurl rec { - version = "1.9.4"; + version = "1.9.7"; url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; - sha256 = "1f5v1gns0xs512a6ym785cn29j8dxdbnxnvkg8v0p1w0p6vfmhbm"; + sha256 = "1v47i0pxqcixnh06x23kzp2dbz1cf3d2sric0bw6xqh54ph5yw29"; inherit (stable) mono; gecko32 = fetchurl rec { version = "2.44"; @@ -48,7 +48,7 @@ in rec { staging = fetchFromGitHub rec { inherit (unstable) version; - sha256 = "0xjxbip0ab1lqgxrww08082ndsb8b5wjfwlf51zlr3f59c9bx9y5"; + sha256 = "1h5hwd07qyx0qw5whf6lcp7v57kqd6mrrcvwwg1bydir68b0zp16"; owner = "wine-compholio"; repo = "wine-staging"; rev = "v${version}"; |