Merge pull request #104719 from avnik/wine-update

Wine update
This commit is contained in:
Michael Raskin 2020-11-27 10:36:47 +00:00 committed by GitHub
commit 9567f6f62f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 78 additions and 38 deletions

View File

@ -2,6 +2,7 @@
name, version, src, mingwGccs, monos, geckos, platforms, name, version, src, mingwGccs, monos, geckos, platforms,
pkgconfig, fontforge, makeWrapper, flex, bison, pkgconfig, fontforge, makeWrapper, flex, bison,
supportFlags, supportFlags,
patches,
buildScript ? null, configureFlags ? [] buildScript ? null, configureFlags ? []
}: }:
@ -9,6 +10,7 @@ with import ./util.nix { inherit lib; };
let let
vkd3d = callPackage ./vkd3d.nix {}; vkd3d = callPackage ./vkd3d.nix {};
patches' = patches;
in in
stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) { stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
builder = buildScript; builder = buildScript;
@ -73,10 +75,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
]) ])
++ [ pkgs.xorg.libX11 pkgs.perl ])); ++ [ pkgs.xorg.libX11 pkgs.perl ]));
patches = [ patches = [ ] ++ patches';
# Also look for root certificates at $NIX_SSL_CERT_FILE
./cert-path.patch
];
# Wine locates a lot of libraries dynamically through dlopen(). Add # 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 # them to the RPATH so that the user doesn't have to set them in

View File

@ -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);

View File

@ -1,24 +1,23 @@
diff --git a/dlls/crypt32/rootstore.c b/dlls/crypt32/rootstore.c diff --git a/dlls/crypt32/unixlib.c b/dlls/crypt32/unixlib.c
index f795181..fb4926a 100644 index 035f2d936bb..959716d727a 100644
--- a/dlls/crypt32/rootstore.c --- a/dlls/crypt32/unixlib.c
+++ b/dlls/crypt32/rootstore.c +++ b/dlls/crypt32/unixlib.c
@@ -18,6 +18,7 @@ @@ -24,6 +24,7 @@
#include "config.h" #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)
for (i = 0; !ret && i < ARRAY_SIZE(CRYPT_knownLocations); i++) #include <stdarg.h>
ret = import_certs_from_path(CRYPT_knownLocations[i], from, TRUE); +#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; i < ARRAY_SIZE(CRYPT_knownLocations) && list_empty(&root_cert_list); i++)
import_certs_from_path( CRYPT_knownLocations[i], TRUE );
+ +
+ char *nix_cert_file = getenv("NIX_SSL_CERT_FILE"); + char *nix_cert_file = getenv("NIX_SSL_CERT_FILE");
+ if (nix_cert_file != NULL) + if (nix_cert_file != NULL)
+ ret = import_certs_from_path(nix_cert_file, from, TRUE); + import_certs_from_path(nix_cert_file, TRUE);
+ }
check_and_store_certs(from, store);
} static BOOL WINAPI enum_root_certs( void *buffer, SIZE_T size, SIZE_T *needed )
CertCloseStore(from, 0);

View File

@ -7,7 +7,7 @@ let src = lib.getAttr wineRelease (callPackage ./sources.nix {});
in with src; { in with src; {
wine32 = pkgsi686Linux.callPackage ./base.nix { wine32 = pkgsi686Linux.callPackage ./base.nix {
name = "wine-${version}"; name = "wine-${version}";
inherit src version supportFlags; inherit src version supportFlags patches;
pkgArches = [ pkgsi686Linux ]; pkgArches = [ pkgsi686Linux ];
geckos = [ gecko32 ]; geckos = [ gecko32 ];
mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc ]; mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc ];
@ -16,7 +16,7 @@ in with src; {
}; };
wine64 = callPackage ./base.nix { wine64 = callPackage ./base.nix {
name = "wine64-${version}"; name = "wine64-${version}";
inherit src version supportFlags; inherit src version supportFlags patches;
pkgArches = [ pkgs ]; pkgArches = [ pkgs ];
mingwGccs = with pkgsCross; [ mingwW64.buildPackages.gcc ]; mingwGccs = with pkgsCross; [ mingwW64.buildPackages.gcc ];
geckos = [ gecko64 ]; geckos = [ gecko64 ];
@ -26,7 +26,7 @@ in with src; {
}; };
wineWow = callPackage ./base.nix { wineWow = callPackage ./base.nix {
name = "wine-wow-${version}"; name = "wine-wow-${version}";
inherit src version supportFlags; inherit src version supportFlags patches;
stdenv = stdenv_32bit; stdenv = stdenv_32bit;
pkgArches = [ pkgs pkgsi686Linux ]; pkgArches = [ pkgs pkgsi686Linux ];
geckos = [ gecko32 gecko64 ]; geckos = [ gecko32 gecko64 ];

View File

@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
in rec { in rec {
stable = fetchurl 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"; 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 ## see http://wiki.winehq.org/Gecko
gecko32 = fetchurl rec { gecko32 = fetchurl rec {
@ -31,27 +31,45 @@ in rec {
## see http://wiki.winehq.org/Mono ## see http://wiki.winehq.org/Mono
mono = fetchurl rec { mono = fetchurl rec {
version = "4.9.4"; version = "5.1.1";
url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi"; url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
sha256 = "1p8g45xphxnns7dkg9rbaknarbjy5cjhrngaf0fsgk9z68wgz9ji"; sha256 = "09wjrfxbw0072iv6d2vqnkc3y7dzj15vp8mv4ay44n1qp5ji4m3l";
}; };
patches = [
# Also look for root certificates at $NIX_SSL_CERT_FILE
./cert-path-stable.patch
];
}; };
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well. # 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"; 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; 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 { staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases # https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version; inherit (unstable) version;
sha256 = "sha256-1oWoLb5w9g3wDghpvHpNsJCws7QoZ/E2dqxLuaIgi6o="; sha256 = "sha256-HzAKLPlybO1lrkHo4Q1Y9H0vmjiqo9HiT05TcX08Ubk=";
owner = "wine-staging"; owner = "wine-staging";
repo = "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 # Just keep list empty, if current release haven't broken patchsets
disabledPatchsets = [ ]; disabledPatchsets = [ ];