Merge pull request #78406 from helsinki-systems/wine-certs

wine: Look for root certs at $NIX_SSL_CERT_FILE
This commit is contained in:
Michael Raskin 2020-01-30 20:19:56 +00:00 committed by GitHub
commit ae929e63b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 0 deletions

View File

@ -68,6 +68,11 @@ 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
];
# 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.

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