diff --git a/mingw-w64-glib-networking/0001-hack-path.patch b/mingw-w64-glib-networking/0001-hack-path.patch new file mode 100644 index 0000000000..640f3b64c7 --- /dev/null +++ b/mingw-w64-glib-networking/0001-hack-path.patch @@ -0,0 +1,10 @@ +--- glib-networking-2.42.0/configure.ac.orig 2014-09-23 15:51:38.068600000 +0500 ++++ glib-networking-2.42.0/configure.ac 2014-09-23 15:52:46.084600000 +0500 +@@ -37,6 +37,7 @@ + GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40" + + GIO_MODULE_DIR=$($PKG_CONFIG --variable giomoduledir gio-2.0) ++GIO_MODULE_DIR=`cygpath -u $GIO_MODULE_DIR` + AS_IF([test "$GIO_MODULE_DIR" = ""], + [AC_MSG_FAILURE(GIO_MODULE_DIR is missing from gio-2.0.pc)]) + AC_SUBST(GIO_MODULE_DIR) diff --git a/mingw-w64-glib-networking/0002-relative-system-ca-file.mingw.patch b/mingw-w64-glib-networking/0002-relative-system-ca-file.mingw.patch new file mode 100644 index 0000000000..4f28d8ebff --- /dev/null +++ b/mingw-w64-glib-networking/0002-relative-system-ca-file.mingw.patch @@ -0,0 +1,78 @@ +--- 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 ++#endif ++ + struct _GTlsBackendGnutlsPrivate + { + 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); + } diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index e11aed8826..6b97d0b3eb 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=glib-networking - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.1 +pkgver=2.42.0 pkgrel=1 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) @@ -11,40 +10,47 @@ url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-p11-kit" - "${MINGW_PACKAGE_PREFIX}-xz") + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-p11-kit" + "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" - 0001-dont-overwrite-prefix-remain-relative.mingw.patch) -md5sums=('505f8a40fad96944b292d1c48f4e5569' - '6c55845f6c66fc8401915d1561b6872d') + 0001-dont-overwrite-prefix-remain-relative.mingw.patch + 0001-hack-path.patch + 0002-relative-system-ca-file.mingw.patch) +md5sums=('d1935e6974da7f39d265303c87a8389b' + '6c55845f6c66fc8401915d1561b6872d' + '5b72f575aee2cd8d7b30f580ebca4971' + 'b96895469c4dc36e172056763aa0d014') prepare() { cd "$srcdir/${_realname}-$pkgver" - patch -p1 -i ${srcdir}/0001-dont-overwrite-prefix-remain-relative.mingw.patch - #autoreconf -fi + #patch -p1 -i ${srcdir}/0001-dont-overwrite-prefix-remain-relative.mingw.patch + patch -p1 -i ${srcdir}/0001-hack-path.patch + patch -p1 -i ${srcdir}/0002-relative-system-ca-file.mingw.patch + autoreconf -fi } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --without-libproxy \ - --without-gnome-proxy \ - --without-ca-certificates - make + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-$pkgver/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --without-libproxy \ + --without-gnome-proxy \ + --with-ca-certificates=../ssl/certs/ca-bundle.crt \ + --with-pkcs11 + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - mv ${pkgdir}/lib ${pkgdir}${MINGW_PREFIX}/ - rm -f ${pkgdir}${MINGW_PREFIX}/lib/gio/modules/*.a + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + #mv ${pkgdir}/lib ${pkgdir}${MINGW_PREFIX}/ + rm -f ${pkgdir}${MINGW_PREFIX}/lib/gio/modules/*.a }