glib-networking: Update to 2.58.0 (#4515)
It now uses gnutls to get the certificates (which uses the system store):f1c8feee01Drop pkcs#11 backend, considered for removal upstream and not enabled by default at runtime:9cc21bef31
This commit is contained in:
committed by
Алексей
parent
09ff3fcbb1
commit
e84ce2b6c0
@@ -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')
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user