commit
9567f6f62f
@ -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
|
||||||
|
24
pkgs/misc/emulators/wine/cert-path-stable.patch
Normal file
24
pkgs/misc/emulators/wine/cert-path-stable.patch
Normal 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);
|
@ -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);
|
|
||||||
|
@ -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 ];
|
||||||
|
@ -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 = [ ];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user