summary refs log tree commit diff
path: root/pkgs/misc/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/emulators')
-rw-r--r--pkgs/misc/emulators/cdemu/libmirage.nix4
-rw-r--r--pkgs/misc/emulators/qmc2/default.nix4
-rw-r--r--pkgs/misc/emulators/ryujinx/default.nix6
-rw-r--r--pkgs/misc/emulators/ryujinx/deps.nix14
-rw-r--r--pkgs/misc/emulators/ryujinx/log.patch4
-rw-r--r--pkgs/misc/emulators/wine/base.nix7
-rw-r--r--pkgs/misc/emulators/wine/cert-path-stable.patch24
-rw-r--r--pkgs/misc/emulators/wine/cert-path.patch41
-rw-r--r--pkgs/misc/emulators/wine/packages.nix6
-rw-r--r--pkgs/misc/emulators/wine/sources.nix36
-rw-r--r--pkgs/misc/emulators/wine/staging.nix2
11 files changed, 99 insertions, 49 deletions
diff --git a/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
index cc3118ace15..e824e19347a 100644
--- a/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -1,6 +1,6 @@
 { callPackage, gobject-introspection, cmake, pkgconfig
 , glib, libsndfile, zlib, bzip2, lzma, libsamplerate, intltool
-, pcre, utillinux, libselinux, libsepol }:
+, pcre, util-linux, libselinux, libsepol }:
 
 let pkg = import ./base.nix {
   version = "3.2.3";
@@ -13,6 +13,6 @@ in callPackage pkg {
     PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "out"}/share/gir-1.0";
     PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
     nativeBuildInputs = [ cmake gobject-introspection pkgconfig ];
-    propagatedBuildInputs = [ pcre utillinux libselinux libsepol ];
+    propagatedBuildInputs = [ pcre util-linux libselinux libsepol ];
   };
 }
diff --git a/pkgs/misc/emulators/qmc2/default.nix b/pkgs/misc/emulators/qmc2/default.nix
index d089ddf2695..5a813c5d2ef 100644
--- a/pkgs/misc/emulators/qmc2/default.nix
+++ b/pkgs/misc/emulators/qmc2/default.nix
@@ -3,7 +3,7 @@
 , minizip, zlib
 , qtbase, qtsvg, qtmultimedia, qtwebkit, qttranslations, qtxmlpatterns
 , rsync, SDL2, xwininfo
-, utillinux
+, util-linux
 , xorg
 }:
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ qttools pkgconfig ];
   buildInputs = [ minizip qtbase qtsvg qtmultimedia qtwebkit
                   qttranslations qtxmlpatterns rsync SDL2
-                  xwininfo zlib utillinux xorg.libxcb ];
+                  xwininfo zlib util-linux xorg.libxcb ];
 
   makeFlags = [ "DESTDIR=$(out)"
                 "PREFIX=/"
diff --git a/pkgs/misc/emulators/ryujinx/default.nix b/pkgs/misc/emulators/ryujinx/default.nix
index d1fa0389823..0e6784e69ea 100644
--- a/pkgs/misc/emulators/ryujinx/default.nix
+++ b/pkgs/misc/emulators/ryujinx/default.nix
@@ -13,13 +13,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "ryujinx";
-  version = "1.0.5346";
+  version = "1.0.5551"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "2ce59c44bcb2d789f4d6312b26cf41f36915d73c";
-    sha256 = "0hk8jdacg8ryhh0mpnfjbzrrpy8gv87f4hp0hybyypglmaxz8grm";
+    rev = "2dcc6333f8cbb959293832f52857bdaeab1918bf";
+    sha256 = "1hfa498fr9mdxas9s02y25ncb982wa1sqhl06jpnkhqsiicbkgcf";
   };
 
   nativeBuildInputs = [ dotnet-sdk_3 dotnetPackages.Nuget makeWrapper wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/misc/emulators/ryujinx/deps.nix b/pkgs/misc/emulators/ryujinx/deps.nix
index 94093e1e29c..4f30b159a28 100644
--- a/pkgs/misc/emulators/ryujinx/deps.nix
+++ b/pkgs/misc/emulators/ryujinx/deps.nix
@@ -15,6 +15,11 @@
     sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0";
   })
   (fetchNuGet {
+    name = "Crc32.NET";
+    version = "1.2.0";
+    sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h";
+  })
+  (fetchNuGet {
     name = "DiscordRichPresence";
     version = "1.0.150";
     sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79";
@@ -236,8 +241,8 @@
   })
   (fetchNuGet {
     name = "OpenTK.NetStandard";
-    version = "1.0.5.12";
-    sha256 = "1n8j6k47189l5b6rnhyq391d84v6zkpiiqq41cccb6qizvrcgl69";
+    version = "1.0.5.22";
+    sha256 = "10bdhc4qbffac862zg03ab5j3iqrr33bydxmnmrxn82brldahm23";
   })
   (fetchNuGet {
     name = "PangoSharp";
@@ -490,6 +495,11 @@
     sha256 = "0szgbdhyhvzpw8nb9k2ww37p5qipab1pdll8idkk57y5xnl2f7ll";
   })
   (fetchNuGet {
+    name = "SharpZipLib";
+    version = "1.2.0";
+    sha256 = "0ynhx1qkjm723bwjwsrdviw1d2s9azndpa12dagrjshhma3igqm5";
+  })
+  (fetchNuGet {
     name = "System.AppContext";
     version = "4.1.0";
     sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
diff --git a/pkgs/misc/emulators/ryujinx/log.patch b/pkgs/misc/emulators/ryujinx/log.patch
index d25e22fbd37..7283ef9e7d5 100644
--- a/pkgs/misc/emulators/ryujinx/log.patch
+++ b/pkgs/misc/emulators/ryujinx/log.patch
@@ -1,5 +1,5 @@
 diff --git a/Ryujinx.Common/Configuration/LoggerModule.cs b/Ryujinx.Common/Configuration/LoggerModule.cs
-index 20c0fb46..ce933730 100644
+index 20c0fb46..534576bc 100644
 --- a/Ryujinx.Common/Configuration/LoggerModule.cs
 +++ b/Ryujinx.Common/Configuration/LoggerModule.cs
 @@ -75,7 +75,7 @@ namespace Ryujinx.Configuration
@@ -7,7 +7,7 @@ index 20c0fb46..ce933730 100644
              {
                  Logger.AddTarget(new AsyncLogTargetWrapper(
 -                    new FileLogTarget(AppDomain.CurrentDomain.BaseDirectory, "file"),
-+		      new FileLogTarget(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx"), "file"),
++                    new FileLogTarget(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx"), "file"),
                      1000,
                      AsyncLogTargetOverflowAction.Block
                  ));
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index c4858c6c579..0be36daac9f 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -2,6 +2,7 @@
   name, version, src, mingwGccs, monos, geckos, platforms,
   pkgconfig, fontforge, makeWrapper, flex, bison,
   supportFlags,
+  patches,
   buildScript ? null, configureFlags ? []
 }:
 
@@ -9,6 +10,7 @@ with import ./util.nix { inherit lib; };
 
 let
   vkd3d = callPackage ./vkd3d.nix {};
+  patches' = patches;
 in
 stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   builder = buildScript;
@@ -73,10 +75,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   ])
   ++ [ pkgs.xorg.libX11 pkgs.perl ]));
 
-  patches = [
-    # Also look for root certificates at $NIX_SSL_CERT_FILE
-    ./cert-path.patch
-  ];
+  patches = [ ] ++ patches';
 
   # 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
diff --git a/pkgs/misc/emulators/wine/cert-path-stable.patch b/pkgs/misc/emulators/wine/cert-path-stable.patch
new file mode 100644
index 00000000000..da01a477810
--- /dev/null
+++ b/pkgs/misc/emulators/wine/cert-path-stable.patch
@@ -0,0 +1,24 @@
+diff --git a/dlls/crypt32/rootstore.c b/dlls/crypt32/rootstore.c
+index f795181..fb4926a 100644
+--- a/dlls/crypt32/rootstore.c
++++ b/dlls/crypt32/rootstore.c
+@@ -18,6 +18,7 @@
+ #include "config.h"
+ #include <stdarg.h>
+ #include <stdio.h>
++#include <stdlib.h> /* getenv */
+ #include <sys/types.h>
+ #ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+@@ -916,6 +917,11 @@ static void read_trusted_roots_from_known_locations(HCERTSTORE store)
+ 
+         for (i = 0; !ret && i < ARRAY_SIZE(CRYPT_knownLocations); i++)
+             ret = import_certs_from_path(CRYPT_knownLocations[i], from, TRUE);
++
++        char *nix_cert_file = getenv("NIX_SSL_CERT_FILE");
++        if (nix_cert_file != NULL)
++            ret = import_certs_from_path(nix_cert_file, from, TRUE);
++
+         check_and_store_certs(from, store);
+     }
+     CertCloseStore(from, 0);
diff --git a/pkgs/misc/emulators/wine/cert-path.patch b/pkgs/misc/emulators/wine/cert-path.patch
index da01a477810..18a90e1a9af 100644
--- a/pkgs/misc/emulators/wine/cert-path.patch
+++ b/pkgs/misc/emulators/wine/cert-path.patch
@@ -1,24 +1,23 @@
-diff --git a/dlls/crypt32/rootstore.c b/dlls/crypt32/rootstore.c
-index f795181..fb4926a 100644
---- a/dlls/crypt32/rootstore.c
-+++ b/dlls/crypt32/rootstore.c
-@@ -18,6 +18,7 @@
- #include "config.h"
+diff --git a/dlls/crypt32/unixlib.c b/dlls/crypt32/unixlib.c
+index 035f2d936bb..959716d727a 100644
+--- a/dlls/crypt32/unixlib.c
++++ b/dlls/crypt32/unixlib.c
+@@ -24,6 +24,7 @@
+ #include "wine/port.h"
+ 
  #include <stdarg.h>
- #include <stdio.h>
-+#include <stdlib.h> /* getenv */
- #include <sys/types.h>
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
-@@ -916,6 +917,11 @@ static void read_trusted_roots_from_known_locations(HCERTSTORE store)
++#include <stdlib.h>
+ #include <dirent.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -605,6 +606,10 @@ static void load_root_certs(void)
  
-         for (i = 0; !ret && i < ARRAY_SIZE(CRYPT_knownLocations); i++)
-             ret = import_certs_from_path(CRYPT_knownLocations[i], from, TRUE);
-+
-+        char *nix_cert_file = getenv("NIX_SSL_CERT_FILE");
-+        if (nix_cert_file != NULL)
-+            ret = import_certs_from_path(nix_cert_file, from, TRUE);
+     for (i = 0; i < ARRAY_SIZE(CRYPT_knownLocations) && list_empty(&root_cert_list); i++)
+         import_certs_from_path( CRYPT_knownLocations[i], TRUE );
 +
-         check_and_store_certs(from, store);
-     }
-     CertCloseStore(from, 0);
++    char *nix_cert_file = getenv("NIX_SSL_CERT_FILE");
++    if (nix_cert_file != NULL)
++        import_certs_from_path(nix_cert_file, TRUE);
+ }
+ 
+ static BOOL WINAPI enum_root_certs( void *buffer, SIZE_T size, SIZE_T *needed )
diff --git a/pkgs/misc/emulators/wine/packages.nix b/pkgs/misc/emulators/wine/packages.nix
index 31d21058e3a..c4fec3360e1 100644
--- a/pkgs/misc/emulators/wine/packages.nix
+++ b/pkgs/misc/emulators/wine/packages.nix
@@ -7,7 +7,7 @@ let src = lib.getAttr wineRelease (callPackage ./sources.nix {});
 in with src; {
   wine32 = pkgsi686Linux.callPackage ./base.nix {
     name = "wine-${version}";
-    inherit src version supportFlags;
+    inherit src version supportFlags patches;
     pkgArches = [ pkgsi686Linux ];
     geckos = [ gecko32 ];
     mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc ];
@@ -16,7 +16,7 @@ in with src; {
   };
   wine64 = callPackage ./base.nix {
     name = "wine64-${version}";
-    inherit src version supportFlags;
+    inherit src version supportFlags patches;
     pkgArches = [ pkgs ];
     mingwGccs = with pkgsCross; [ mingwW64.buildPackages.gcc ];
     geckos = [ gecko64 ];
@@ -26,7 +26,7 @@ in with src; {
   };
   wineWow = callPackage ./base.nix {
     name = "wine-wow-${version}";
-    inherit src version supportFlags;
+    inherit src version supportFlags patches;
     stdenv = stdenv_32bit;
     pkgArches = [ pkgs pkgsi686Linux ];
     geckos = [ gecko32 gecko64 ];
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index c26b84ffa0a..4b16e78cd73 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
 in rec {
 
   stable = fetchurl rec {
-    version = "5.0.2";
+    version = "5.0.3";
     url = "https://dl.winehq.org/wine/source/5.0/wine-${version}.tar.xz";
-    sha256 = "1g7c5djbi262h6zivmxbk26rsflwq8mrghr7hci3ajw7f3s89hn2";
+    sha256 = "sha256-nBo1Ni/VE9/1yEW/dtpj6hBaeUrHFEqlA/cTYa820i8=";
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
@@ -31,27 +31,45 @@ in rec {
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "4.9.4";
-      url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
-      sha256 = "1p8g45xphxnns7dkg9rbaknarbjy5cjhrngaf0fsgk9z68wgz9ji";
+      version = "5.1.1";
+      url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
+      sha256 = "09wjrfxbw0072iv6d2vqnkc3y7dzj15vp8mv4ay44n1qp5ji4m3l";
     };
+
+    patches = [
+      # Also look for root certificates at $NIX_SSL_CERT_FILE
+      ./cert-path-stable.patch
+    ];
   };
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "5.20";
+    version = "5.22";
     url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz";
-    sha256 = "sha256-j1Ui+M6+vbqhL1jhumcaEfZjcuCu33T7kyz1qJOQhhw=";
+    sha256 = "sha256-Cb0GyHyMl05q00UHzsh11yF+tW/Anfg41UU+DrvOTSE=";
     inherit (stable) mono gecko32 gecko64;
+
+    patches = [
+      # Also look for root certificates at $NIX_SSL_CERT_FILE
+      ./cert-path.patch
+
+      # Hotfix picked from master for https://bugs.winehq.org/show_bug.cgi?id=50163
+      (pkgs.fetchpatch {
+        url = "https://bugs.winehq.org/attachment.cgi?id=68680";
+        sha256 = "sha256-GTPQhRWeu6DPadqgFiuVUjI6MzJPaTN4l//8DSG6hpo=";
+      })
+     ];
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-1oWoLb5w9g3wDghpvHpNsJCws7QoZ/E2dqxLuaIgi6o=";
+    sha256 = "sha256-HzAKLPlybO1lrkHo4Q1Y9H0vmjiqo9HiT05TcX08Ubk=";
     owner = "wine-staging";
     repo = "wine-staging";
-    rev = "v${version}";
+    #rev = "v${version}"; # revert back to this statement on next release
+    # Include hotfix for https://bugs.winehq.org/show_bug.cgi?id=50162
+    rev = "f257f37b92041fc718de04aa83ec3139b748ffa2";
 
     # Just keep list empty, if current release haven't broken patchsets
     disabledPatchsets = [ ];
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index f3b9fa30420..a628f5ded58 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/pkgs/misc/emulators/wine/staging.nix
@@ -8,7 +8,7 @@ let patch = (callPackage ./sources.nix {}).staging;
 in assert stdenv.lib.getVersion wineUnstable == patch.version;
 
 (stdenv.lib.overrideDerivation wineUnstable (self: {
-  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" "gitMinimal" ] self.buildInputs;
+  buildInputs = build-inputs [ "perl" "util-linux" "autoconf" "gitMinimal" ] self.buildInputs;
 
   name = "${self.name}-staging";