diff options
author | Robin Gloster <mail@glob.in> | 2016-07-15 14:41:01 +0000 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2016-07-15 14:41:01 +0000 |
commit | 5185bc177309c62e53dad1ad346d1220f0e77bd4 (patch) | |
tree | 52f5878b394abf2ef326765d46880ccbabd84903 /pkgs/misc/emulators | |
parent | 07615735077db344539eb9131823600593f0eddf (diff) | |
parent | f402c6321aa3c6e56f5e1f1e36c4ad459c881309 (diff) | |
download | nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.gz nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.bz2 nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.lz nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.xz nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.zst nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.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 | 23 | ||||
-rw-r--r-- | pkgs/misc/emulators/dolphin-emu/master.nix | 4 | ||||
-rw-r--r-- | pkgs/misc/emulators/higan/default.nix | 5 | ||||
-rw-r--r-- | pkgs/misc/emulators/pcsx2/default.nix | 4 | ||||
-rw-r--r-- | pkgs/misc/emulators/retroarch/default.nix | 39 | ||||
-rw-r--r-- | pkgs/misc/emulators/snes9x-gtk/default.nix | 2 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/base.nix | 51 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/default.nix | 40 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/packages.nix | 10 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/sources.nix | 14 | ||||
-rw-r--r-- | pkgs/misc/emulators/wine/staging.nix | 3 |
11 files changed, 140 insertions, 55 deletions
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix index 749573f474a2..bbd25f2b3ded 100644 --- a/pkgs/misc/emulators/dolphin-emu/default.nix +++ b/pkgs/misc/emulators/dolphin-emu/default.nix @@ -1,13 +1,17 @@ { stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib -, gettext, libpthreadstubs, libXrandr, libXext, readline -, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchurl +, gettext, libpthreadstubs, libXrandr, libXext, readline, openal +, libXdmcp, portaudio, fetchFromGitHub, libusb, libevdev , libpulseaudio ? null }: stdenv.mkDerivation rec { - name = "dolphin-emu-4.0.2"; - src = fetchurl { - url = https://github.com/dolphin-emu/dolphin/archive/4.0.2.tar.gz; - sha256 = "0a8ikcxdify9d7lqz8fn2axk2hq4q1nvbcsi1b8vb9z0mdrhzw89"; + name = "dolphin-emu-${version}"; + version = "5.0"; + + src = fetchFromGitHub { + owner = "dolphin-emu"; + repo = "dolphin"; + rev = version; + sha256 = "07mlfnh0hwvk6xarcg315x7z2j0qbg9g7cm040df9c8psiahc3g6"; }; cmakeFlags = '' @@ -22,14 +26,15 @@ stdenv.mkDerivation rec { buildInputs = [ pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib gettext libpthreadstubs libXrandr libXext readline openal - libXdmcp portaudio SDL wxGTK30 libpulseaudio ]; + libevdev libXdmcp portaudio libusb libpulseaudio ]; meta = { homepage = http://dolphin-emu.org/; description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM"; license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; maintainers = with stdenv.lib.maintainers; [ MP2E ]; - broken = true; + # x86_32 is an unsupported platform. + # Enable generic build if you really want a JIT-less binary. + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix index 9743261c6b2b..4d8b8ac0eb60 100644 --- a/pkgs/misc/emulators/dolphin-emu/master.nix +++ b/pkgs/misc/emulators/dolphin-emu/master.nix @@ -1,4 +1,4 @@ -{ stdenv, gcc5, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib +{ stdenv, gcc, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib , gettext, git, libpthreadstubs, libXrandr, libXext, readline , openal, libXdmcp, portaudio, fetchgit, libusb, libevdev , libpulseaudio ? null }: @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ gcc5 pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib + buildInputs = [ gcc pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib gettext libpthreadstubs libXrandr libXext readline openal libevdev git libXdmcp portaudio libusb libpulseaudio ]; diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix index 1395e3ac3efe..f180a446d055 100644 --- a/pkgs/misc/emulators/higan/default.nix +++ b/pkgs/misc/emulators/higan/default.nix @@ -11,16 +11,17 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "higan-${version}"; - version = "098"; + version = "099"; sourceName = "higan_v${version}-source"; src = fetchurl { urls = [ "http://download.byuu.org/${sourceName}.7z" ]; - sha256 = "0qphvjfv17dbmzgb4pny2q6ln0lsgzyhalq6qyqxc3qwm4fzdjv1"; + sha256 = "11lfsas1ym3xwb1rc27z1skvb4m176swix9dih4rvnlqxkqz4qhw"; curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick... }; patches = [ ./0001-change-flags.diff ]; + postPatch = "sed '1i#include <cmath>' -i higan/fc/ppu/ppu.cpp"; buildInputs = [ p7zip pkgconfig libX11 libXv udev mesa SDL libao openal libpulseaudio gtk gtksourceview ]; diff --git a/pkgs/misc/emulators/pcsx2/default.nix b/pkgs/misc/emulators/pcsx2/default.nix index 1b95bca643c7..673e4c3ed087 100644 --- a/pkgs/misc/emulators/pcsx2/default.nix +++ b/pkgs/misc/emulators/pcsx2/default.nix @@ -15,6 +15,8 @@ stdenv.mkDerivation rec { sha256 = "0s7mxq2cgzwjfsq0vhpz6ljk7wr725nxg48128iyirf85585l691"; }; + postPatch = "sed '1i#include \"x86intrin.h\"' -i common/src/x86emitter/cpudetect.cpp"; + configurePhase = '' mkdir -p build cd build @@ -50,6 +52,8 @@ stdenv.mkDerivation rec { soundtouch wxGTK30 zlib ]; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "Playstation 2 emulator"; longDescription= '' diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix index 0ab4698c196e..ac8e1e46112f 100644 --- a/pkgs/misc/emulators/retroarch/default.nix +++ b/pkgs/misc/emulators/retroarch/default.nix @@ -1,6 +1,12 @@ -{ stdenv, fetchgit, makeDesktopItem, pkgconfig, ffmpeg, mesa, nvidia_cg_toolkit -, freetype, libxml2, libv4l, coreutils, python34, which, udev, alsaLib -, libX11, libXext, libXxf86vm, libXdmcp, SDL, libpulseaudio ? null }: +{ stdenv, fetchFromGitHub, makeDesktopItem, coreutils, which, pkgconfig +, ffmpeg, mesa, freetype, libxml2, python34 +, enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null +, alsaLib ? null, libv4l ? null +, udev ? null, libX11 ? null, libXext ? null, libXxf86vm ? null +, libXdmcp ? null, SDL ? null, libpulseaudio ? null +}: + +with stdenv.lib; let desktopItem = makeDesktopItem { @@ -9,25 +15,28 @@ let icon = "retroarch"; comment = "Multi-Engine Platform"; desktopName = "RetroArch"; - genericName = "Libretro Frontend"; + genericName = "Libretro Frontend"; categories = "Game;Emulator;"; #keywords = "multi;engine;emulator;xmb;"; }; - in stdenv.mkDerivation rec { name = "retroarch-bare-${version}"; - version = "2015-11-20"; + version = "1.3.4"; - src = fetchgit { - url = https://github.com/libretro/RetroArch.git; - rev = "09dda14549fc13231311fd522a07a75e923889aa"; - sha256 = "0yrisl61iaa70ahswzgb505bvm5cxq8ndnv2bw7gqrlm5qrh54qy"; + src = fetchFromGitHub { + owner = "libretro"; + repo = "RetroArch"; + sha256 = "0ccp17580w0884baxj5kcynlm03jgd7i62dprz1ajxbi2s7b3mi3"; + rev = "v${version}"; }; - buildInputs = [ pkgconfig ffmpeg mesa nvidia_cg_toolkit freetype libxml2 libv4l coreutils - python34 which udev alsaLib libX11 libXext libXxf86vm libXdmcp SDL libpulseaudio ]; + buildInputs = [ pkgconfig ffmpeg mesa freetype libxml2 coreutils python34 which SDL ] + ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit + ++ optionals stdenv.isLinux [ udev alsaLib libX11 libXext libXxf86vm libXdmcp libv4l libpulseaudio ]; + + configureScript = "sh configure"; patchPhase = '' export GLOBAL_CONFIG_DIR=$out/etc @@ -44,11 +53,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = { homepage = http://libretro.org/; description = "Multi-platform emulator frontend for libretro cores"; license = licenses.gpl3; - platforms = stdenv.lib.platforms.linux; - maintainers = with maintainers; [ MP2E edwtjo ]; + platforms = platforms.all; + maintainers = with maintainers; [ MP2E edwtjo matthewbauer ]; }; } diff --git a/pkgs/misc/emulators/snes9x-gtk/default.nix b/pkgs/misc/emulators/snes9x-gtk/default.nix index c1ff6cb94934..e5cd08b7f9de 100644 --- a/pkgs/misc/emulators/snes9x-gtk/default.nix +++ b/pkgs/misc/emulators/snes9x-gtk/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "a portable, freeware Super Nintendo Entertainment System (SNES) emulator"; + description = "A portable, freeware Super Nintendo Entertainment System (SNES) emulator"; longDescription = "Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES) emulator. It basically allows you to play most games designed for the SNES and Super Famicom Nintendo game systems on your PC or Workstation; which includes some real gems that were only ever released in Japan."; license = stdenv.lib.licenses.lgpl2; maintainers = [ stdenv.lib.maintainers.qknight ]; diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix index 0398ed57a702..e35e319a57f0 100644 --- a/pkgs/misc/emulators/wine/base.nix +++ b/pkgs/misc/emulators/wine/base.nix @@ -1,7 +1,7 @@ { stdenv, lib, pkgArches, name, version, src, monos, geckos, platforms, pkgconfig, fontforge, makeWrapper, flex, bison, - pulseaudioSupport, + supportFlags, buildScript ? null, configureFlags ? "" }: @@ -19,14 +19,41 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { pkgconfig fontforge makeWrapper flex bison ]; - 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 + buildInputs = toBuildInputs pkgArches (with supportFlags; (pkgs: + [ pkgs.freetype ] + ++ lib.optional pngSupport pkgs.libpng + ++ lib.optional jpegSupport pkgs.libjpeg + ++ lib.optional cupsSupport pkgs.cups + ++ lib.optional colorManagementSupport pkgs.lcms2 + ++ lib.optional gettextSupport pkgs.gettext + ++ lib.optional dbusSupport pkgs.dbus + ++ lib.optional mpg123Support pkgs.mpg123 + ++ lib.optional openalSupport pkgs.openal + ++ lib.optional cairoSupport pkgs.cairo + ++ lib.optional tiffSupport pkgs.libtiff + ++ lib.optional odbcSupport pkgs.unixODBC + ++ lib.optional netapiSupport pkgs.samba3_light + ++ lib.optional cursesSupport pkgs.ncurses + ++ lib.optional vaSupport pkgs.libva + ++ lib.optional pcapSupport pkgs.libpcap + ++ lib.optional v4lSupport pkgs.libv4l + ++ lib.optional saneSupport pkgs.saneBackends + ++ lib.optional gsmSupport pkgs.gsm + ++ lib.optional gphoto2Support pkgs.libgphoto2 + ++ lib.optional ldapSupport pkgs.openldap + ++ lib.optional fontconfigSupport pkgs.fontconfig + ++ lib.optional alsaSupport pkgs.alsaLib + ++ lib.optional pulseaudioSupport pkgs.libpulseaudio + ++ lib.optional xineramaSupport pkgs.xorg.libXinerama + ++ lib.optionals gstreamerSupport (with pkgs.gst_all; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ]) + ++ lib.optionals gtkSupport [ pkgs.gtk3 pkgs.gnome.glib ] + ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.opencl-icd ] + ++ lib.optionals xmlSupport [ pkgs.libxml2 pkgs.libxslt ] + ++ lib.optionals tlsSupport [ pkgs.openssl pkgs.gnutls ] + ++ lib.optionals openglSupport [ pkgs.mesa pkgs.mesa_noglu.osmesa pkgs.libdrm ] ++ (with pkgs.xorg; [ - libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite libXext - ])); + libX11 libXi libXcursor 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 @@ -34,7 +61,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { NIX_LDFLAGS = map (path: "-rpath " + path) ( map (x: "${lib.getLib x}/lib") ([ stdenv.cc.cc ] ++ buildInputs) # libpulsecommon.so is linked but not found otherwise - ++ lib.optionals pulseaudioSupport (map (x: "${lib.getLib x}/lib/pulseaudio") + ++ lib.optionals supportFlags.pulseaudioSupport (map (x: "${lib.getLib x}/lib/pulseaudio") (toBuildInputs pkgArches (pkgs: [ pkgs.libpulseaudio ]))) ); @@ -61,6 +88,10 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { ${lib.strings.concatStringsSep "\n" ((map (links "share/wine/gecko") geckos) ++ (map (links "share/wine/mono") monos))} + '' + lib.optionalString supportFlags.gstreamerSupport '' + wrapProgram "$out/bin/wine" \ + --argv0 "" \ + --prefix GST_PLUGIN_SYSTEM_PATH ":" "$GST_PLUGIN_SYSTEM_PATH" ''; enableParallelBuilding = true; @@ -71,6 +102,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { homepage = "http://www.winehq.org/"; license = "LGPL"; description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix"; - maintainers = [stdenv.lib.maintainers.raskin]; + maintainers = with stdenv.lib.maintainers; [ avnik raskin ]; }; }) diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix index a402fba69f67..deeff3c73437 100644 --- a/pkgs/misc/emulators/wine/default.nix +++ b/pkgs/misc/emulators/wine/default.nix @@ -9,13 +9,49 @@ { lib, pkgs, system, callPackage, wineRelease ? "stable", wineBuild ? (if system == "x86_64-linux" then "wineWow" else "wine32"), + libtxc_dxtn_Name ? "libtxc_dxtn_s2tc", + pngSupport ? false, + jpegSupport ? false, + tiffSupport ? false, + gettextSupport ? false, + fontconfigSupport ? false, + alsaSupport ? false, + gtkSupport ? false, + openglSupport ? false, + tlsSupport ? false, + gstreamerSupport ? false, + cupsSupport ? false, + colorManagementSupport ? false, + dbusSupport ? false, + mpg123Support ? false, + openalSupport ? false, + openclSupport ? false, + cairoSupport ? false, + odbcSupport ? false, + netapiSupport ? false, + cursesSupport ? false, + vaSupport ? false, + pcapSupport ? false, + v4lSupport ? false, + saneSupport ? false, + gsmSupport ? false, + gphoto2Support ? false, + ldapSupport ? false, pulseaudioSupport ? false, - libtxc_dxtn_Name ? "libtxc_dxtn_s2tc" }: + xineramaSupport ? false, + xmlSupport ? false }: let wine-build = build: release: lib.getAttr build (callPackage ./packages.nix { wineRelease = release; - inherit pulseaudioSupport; + supportFlags = { + inherit pngSupport jpegSupport cupsSupport colorManagementSupport gettextSupport + dbusSupport mpg123Support openalSupport cairoSupport tiffSupport odbcSupport + netapiSupport cursesSupport vaSupport pcapSupport v4lSupport saneSupport + gsmSupport gphoto2Support ldapSupport fontconfigSupport alsaSupport + pulseaudioSupport xineramaSupport gtkSupport openclSupport xmlSupport tlsSupport + openglSupport gstreamerSupport; + }; }); in if wineRelease == "staging" then diff --git a/pkgs/misc/emulators/wine/packages.nix b/pkgs/misc/emulators/wine/packages.nix index 206deb01b8bb..6c06bcb0949b 100644 --- a/pkgs/misc/emulators/wine/packages.nix +++ b/pkgs/misc/emulators/wine/packages.nix @@ -1,14 +1,14 @@ { system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, callPackage, callPackage_i686, overrideCC, wrapCCMulti, gcc49, - pulseaudioSupport, - wineRelease ? "stable" + wineRelease ? "stable", + supportFlags }: let src = lib.getAttr wineRelease (callPackage ./sources.nix {}); in with src; { wine32 = callPackage_i686 ./base.nix { name = "wine-${version}"; - inherit src version pulseaudioSupport; + inherit src version supportFlags; pkgArches = [ pkgsi686Linux ]; geckos = [ gecko32 ]; monos = [ mono ]; @@ -16,7 +16,7 @@ in with src; { }; wine64 = callPackage ./base.nix { name = "wine64-${version}"; - inherit src version pulseaudioSupport; + inherit src version supportFlags; # 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; @@ -28,7 +28,7 @@ in with src; { }; wineWow = callPackage ./base.nix { name = "wine-wow-${version}"; - inherit src version pulseaudioSupport; + inherit src version supportFlags; # FIXME: see above. stdenv = overrideCC stdenv_32bit (wrapCCMulti gcc49); pkgArches = [ pkgs pkgsi686Linux ]; diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix index 9ad09ed5dfe1..9a437971e426 100644 --- a/pkgs/misc/emulators/wine/sources.nix +++ b/pkgs/misc/emulators/wine/sources.nix @@ -6,9 +6,9 @@ let fetchurl = args@{url, sha256, ...}: in rec { stable = fetchurl rec { - version = "1.8.1"; + version = "1.8.3"; url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; - sha256 = "15ya496qq24ipqii7ij8x8h5x8n21vgqa4h6binb74w5mzdd76hl"; + sha256 = "0v3sq5zzj3z5pw1aicn7i03pgf41cr9fr0vg1sazwfxrmbvwvknp"; ## see http://wiki.winehq.org/Gecko gecko32 = fetchurl rec { @@ -30,9 +30,9 @@ in rec { }; unstable = fetchurl rec { - version = "1.9.7"; + version = "1.9.14"; url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; - sha256 = "1v47i0pxqcixnh06x23kzp2dbz1cf3d2sric0bw6xqh54ph5yw29"; + sha256 = "0b65j8lc2axyc7lpa5rjr7vbjz4y78gkd7hhmvhra78pmwf9dgkz"; inherit (stable) mono; gecko32 = fetchurl rec { version = "2.44"; @@ -48,15 +48,15 @@ in rec { staging = fetchFromGitHub rec { inherit (unstable) version; - sha256 = "1h5hwd07qyx0qw5whf6lcp7v57kqd6mrrcvwwg1bydir68b0zp16"; + sha256 = "0582ylrvl7racpb0il3wmbivb2d7lh6n3mymh19yw94qzgifwqrw"; owner = "wine-compholio"; repo = "wine-staging"; rev = "v${version}"; }; winetricks = fetchFromGitHub rec { - version = "20160219"; - sha256 = "1wqsbdh2qa5xxswilniki9wzbhlmkl6jqmryjd9f5smirr7ryy2r"; + version = "20160622"; + sha256 = "0xh7mc5xby0zxx2g3q1ky18s20y6s7wp3vzvgxydwzhhwf32189q"; owner = "Winetricks"; repo = "winetricks"; rev = version; diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix index 9419aff1a39c..51af13b8a157 100644 --- a/pkgs/misc/emulators/wine/staging.nix +++ b/pkgs/misc/emulators/wine/staging.nix @@ -8,8 +8,7 @@ let patch = (callPackage ./sources.nix {}).staging; in assert (builtins.parseDrvName wineUnstable.name).version == patch.version; stdenv.lib.overrideDerivation wineUnstable (self: { - nativeBuildInputs = build-inputs [ libtxc_dxtn_Name ] self.nativeBuildInputs; - buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs; + buildInputs = build-inputs [ "perl" "utillinux" "autoconf" libtxc_dxtn_Name ] self.buildInputs; name = "${self.name}-staging"; |