glib-networking: Update to 2.58.0 (#4515)

It now uses gnutls to get the certificates (which uses the system store):
f1c8feee01

Drop pkcs#11 backend, considered for removal upstream and not enabled by default at runtime:
9cc21bef31
This commit is contained in:
Christoph Reiter
2018-10-07 10:58:02 +02:00
committed by Алексей
parent 09ff3fcbb1
commit e84ce2b6c0
2 changed files with 5 additions and 107 deletions

View File

@@ -1,91 +0,0 @@
--- glib-networking-2.41.4/tls/gnutls/gtlsbackend-gnutls.c.orig 2014-02-01 14:46:53.000000000 +0000
+++ glib-networking-2.41.4/tls/gnutls/gtlsbackend-gnutls.c 2014-08-01 15:33:08.627929900 +0000
@@ -31,6 +31,10 @@
#include "gtlsfiledatabase-gnutls.h"
#include "gtlsserverconnection-gnutls.h"
+#if defined(G_OS_WIN32)
+#include <windows.h>
+#endif
+
typedef struct
{
GMutex mutex;
@@ -37,6 +37,30 @@
GTlsDatabase *default_database;
};
+#if defined(G_OS_WIN32)
+static HMODULE backend_dll = NULL;
+
+BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved);
+
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpReserved)
+{
+ switch (fdwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ backend_dll = (HMODULE) hinstDLL;
+ break;
+ case DLL_THREAD_ATTACH:
+ case DLL_THREAD_DETACH:
+ case DLL_PROCESS_DETACH:
+ break;
+ }
+ return TRUE;
+}
+#endif
+
static void g_tls_backend_gnutls_interface_init (GTlsBackendInterface *iface);
G_DEFINE_DYNAMIC_TYPE_EXTENDED (GTlsBackendGnutls, g_tls_backend_gnutls, G_TYPE_OBJECT, 0,
@@ -102,7 +124,32 @@
{
const gchar *anchor_file = NULL;
#ifdef GTLS_SYSTEM_CA_FILE
- anchor_file = GTLS_SYSTEM_CA_FILE;
+ if (!g_path_is_absolute (GTLS_SYSTEM_CA_FILE)
+#ifdef G_OS_WIN32
+ || strlen (GTLS_SYSTEM_CA_FILE) < 3
+ || (GTLS_SYSTEM_CA_FILE)[1] != ':')
+#endif
+ {
+ gchar *root;
+ gchar *anchor;
+ GTlsDatabase *tls_database;
+
+ root = g_win32_get_package_installation_directory_of_module (backend_dll);
+
+ if (root)
+ {
+ anchor = g_build_path ("/", root, GTLS_SYSTEM_CA_FILE, NULL);
+ g_free (root);
+ }
+ else
+ anchor = NULL;
+
+ tls_database = g_tls_file_database_new (anchor, error);
+ g_free (anchor);
+ return tls_database;
+ }
+ else
+ anchor_file = GTLS_SYSTEM_CA_FILE;
#endif
return g_tls_file_database_new (anchor_file, error);
}
--- ./meson.build
+++ ./meson.build
@@ -65,9 +65,7 @@
gnutls_dep = dependency('gnutls', version: '>= 3.3.5', required: true)
msg = 'location of system Certificate Authority list: '
-res = run_command(join_paths(meson.source_root(), 'find-ca-certificates'), get_option('ca_certificates_path'))
-assert(res.returncode() == 0, msg + ' could not find any CA certificate store. Use -Dca_certificates_path=PATH to set')
-ca_certificates_path = res.stdout().strip()
+ca_certificates_path = get_option('ca_certificates_path')
message(msg + ca_certificates_path)
config_h.set_quoted('GTLS_SYSTEM_CA_FILE', ca_certificates_path, description: 'The system CA list')

View File

@@ -3,7 +3,7 @@
_realname=glib-networking
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.56.1
pkgver=2.58.0
pkgrel=1
pkgdesc="Network-related GIO modules for glib (mingw-w64)"
arch=(any)
@@ -11,26 +11,17 @@ url="https://download.gnome.org/sources/libsoup"
license=("LGPL")
makedepends=("${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
"${MINGW_PACKAGE_PREFIX}-pkg-config"
"intltool")
"${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gettext"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-gnutls"
"${MINGW_PACKAGE_PREFIX}-libgcrypt"
"${MINGW_PACKAGE_PREFIX}-p11-kit"
"${MINGW_PACKAGE_PREFIX}-xz")
"${MINGW_PACKAGE_PREFIX}-gnutls")
options=('staticlibs' 'strip')
source=("https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz"
0002-relative-system-ca-file.mingw.patch)
sha256sums=('df47b0e0a037d2dcf6b1846cbdf68dd4b3cc055e026bb40c4a55f19f29f635c8'
'adb974f425095b82bcc1436405833c187e406a7dec2fee474b53b702bbea49fd')
source=("https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz")
sha256sums=('bdfa0255e031b8ee003cc283002536b77ee76450105f1dc6ab066b9bf4330068')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -p1 -i ${srcdir}/0002-relative-system-ca-file.mingw.patch
}
build() {
@@ -40,8 +31,6 @@ build() {
meson \
--buildtype plain \
-Dca_certificates_path=ssl/certs/ca-bundle.crt \
-Dpkcs11_support=true \
-Dlibproxy_support=false \
-Dgnome_proxy_support=false \
../${_realname}-${pkgver}