diff options
author | Nicola Murino | 2018-09-24 18:51:19 +0200 |
---|---|---|
committer | Nicola Murino | 2018-09-24 18:51:19 +0200 |
commit | 08a0cec7e21313ea10ad353356b8939314057172 (patch) | |
tree | b5995d9185f5bdf8c2234469425bf45170d094a9 | |
parent | 85cf6881bd36198f10d26b336c72cca393625913 (diff) | |
download | aur-08a0cec7e21313ea10ad353356b8939314057172.tar.gz |
Update to 2.58.1-2
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | 0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch | 108 | ||||
-rw-r--r-- | 0001-gsocket-fix-cross-compilation.patch | 26 | ||||
-rw-r--r-- | 0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch | 84 | ||||
-rw-r--r-- | PKGBUILD | 36 | ||||
-rw-r--r-- | glib-formaterror.patch | 13 | ||||
-rw-r--r-- | glib-include-time-h-for-localtime_r.patch | 10 | ||||
-rw-r--r-- | glib-prefer-constructors-over-DllMain.patch | 76 |
8 files changed, 152 insertions, 219 deletions
@@ -1,7 +1,7 @@ pkgbase = mingw-w64-glib2 pkgdesc = Low level core library (mingw-w64) - pkgver = 2.58.0 - pkgrel = 4 + pkgver = 2.58.1 + pkgrel = 2 url = https://wiki.gnome.org/Projects/GLib arch = any license = LGPL2.1 @@ -15,18 +15,12 @@ pkgbase = mingw-w64-glib2 options = !buildflags options = staticlibs options = !emptydirs - source = git+https://gitlab.gnome.org/GNOME/glib.git#commit=c138b98e363df8b95c2ee3eac214649b2908ad68 - source = 0001-gsocket-fix-cross-compilation.patch + source = git+https://gitlab.gnome.org/GNOME/glib.git#commit=a9f5a6fa2fdd6eb2f754709d7e790d24e3ceaa18 source = 0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch - source = glib-formaterror.patch - source = glib-include-time-h-for-localtime_r.patch - source = glib-prefer-constructors-over-DllMain.patch + source = 0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch sha256sums = SKIP - sha256sums = 44c8c6b4ca376177a8c333a00c3485d638f8641967503e15364606d4c4292ff3 - sha256sums = afd62a852a0b6aed4ce86eb97297e5080b26055cc878413b89d482c184b826b3 - sha256sums = ea529d5cbf8cf7ca66467664a3ead37473a1c009ac973d5694b06cc9d0b23df3 - sha256sums = ac567f7a9cad51ab97dba70bcdd6c0c16f93d2451c43fde380e4fdb20b2d4b31 - sha256sums = 8a02502069fa88c667a4fd1599280f927cb1bcf61e9fcd369fec5bdb5440d480 + sha256sums = ff0d3df5d57cf621cac79f5bea8bd175e6c18b3fbf7cdd02df38c1eab9f40ac3 + sha256sums = 838abaeab8ca4978770222ef5f88c4b464545dd591b2d532c698caa875b46931 pkgname = mingw-w64-glib2 diff --git a/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch b/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch index c3c4c756638b..17f9895eadda 100644 --- a/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch +++ b/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch @@ -1,27 +1,5 @@ -From 7f4f4354540440c0a8a37beaccbec8bc7fc15ec7 Mon Sep 17 00:00:00 2001 -From: Erik van Pienbroek <epienbro@fedoraproject.org> -Date: Mon, 27 Aug 2012 23:28:54 +0200 -Subject: [PATCH] Use CreateFile on Win32 to make sure g_unlink always works - -The functions g_open(), g_creat() and g_fopen() defer to _wopen(), -_wcreat() and _wfopen() respectively. This is very similar to -the corresponding arrangement for Linux. However, those Windows -functions do not support renaming a file whilst it's open. As a -result, g_rename() behaves differently on the Windows platform -compared to its Linux behaviour, where files can be renamed even -while there are file handles still open. Resolved this by using -the Win32 API function CreateFile() instead of _wopen(), _wcreat() -and _wfopen() - -Patch initially created by John Emmas ---- - glib/gstdio.c | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 233 insertions(+), 26 deletions(-) - -diff --git a/glib/gstdio.c b/glib/gstdio.c -index 6d763e1..c1d072f 100644 ---- a/glib/gstdio.c -+++ b/glib/gstdio.c +--- glib-2.57.2/glib/gstdio.c.orig 2018-07-31 20:31:07.000000000 +0200 ++++ glib-2.57.2/glib/gstdio.c 2018-08-03 16:32:42.447575300 +0200 @@ -758,6 +758,11 @@ int mode) { @@ -30,7 +8,7 @@ index 6d763e1..c1d072f 100644 + DWORD dwDesiredAccess = 0; + DWORD dwFlagsAndAttributes = 0; + DWORD dwDisposition = OPEN_EXISTING; -+ DWORD dwSharedAccess = FILE_SHARE_READ | FILE_SHARE_DELETE; ++ DWORD dwSharedAccess = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); int retval; int save_errno; @@ -50,45 +28,45 @@ index 6d763e1..c1d072f 100644 + { + /* Equates to _O_RDONLY */ + if (flags & _O_TRUNC) -+ { -+ errno = EINVAL; -+ g_free (wfilename); -+ return -1; -+ } ++ { ++ errno = EINVAL; ++ g_free (wfilename); ++ return -1; ++ } - g_free (wfilename); -+ dwDesiredAccess |= GENERIC_READ; -+ dwSharedAccess |= FILE_SHARE_WRITE; ++ dwDesiredAccess |= GENERIC_READ; ++ dwSharedAccess |= FILE_SHARE_WRITE; + } + if (flags & _O_WRONLY) + { + if (flags & _O_RDWR) -+ { -+ errno = EINVAL; -+ g_free (wfilename); -+ return -1; -+ } -+ -+ dwDesiredAccess |= GENERIC_WRITE; ++ { ++ errno = EINVAL; ++ g_free (wfilename); ++ return -1; ++ } + ++ dwDesiredAccess |= GENERIC_WRITE; + } + if (flags & _O_RDWR) + { -+ dwDesiredAccess |= GENERIC_READ; -+ dwDesiredAccess |= GENERIC_WRITE; ++ dwDesiredAccess |= GENERIC_READ; ++ dwDesiredAccess |= GENERIC_WRITE; + } + if (flags & _O_TRUNC) + { + if (flags & _O_CREAT) -+ dwDisposition = CREATE_ALWAYS; -+ else -+ dwDisposition = TRUNCATE_EXISTING; ++ dwDisposition = CREATE_ALWAYS; ++ else ++ dwDisposition = TRUNCATE_EXISTING; + } + if ((flags & _O_CREAT) && !(flags & _O_TRUNC)) + { + if (flags & _O_EXCL) -+ dwDisposition = CREATE_NEW; -+ else -+ dwDisposition = OPEN_ALWAYS; ++ dwDisposition = CREATE_NEW; ++ else ++ dwDisposition = OPEN_ALWAYS; + } + if (flags & _O_CREAT) + { @@ -133,7 +111,7 @@ index 6d763e1..c1d072f 100644 + } + else + retval = _open_osfhandle((long)hFile, flags); - ++ + if ((-1) != retval) + { + /* We have a valid file handle. Set its translation mode to text or binary, as appropriate */ @@ -232,6 +210,12 @@ index 6d763e1..c1d072f 100644 - errno = EINVAL; - return NULL; - } +- +- retval = _wfopen (wfilename, wmode); +- save_errno = errno; +- +- g_free (wfilename); +- g_free (wmode); + int hFile; + int flags = 0; + gchar priv_mode[4]; @@ -244,7 +228,7 @@ index 6d763e1..c1d072f 100644 + } + if ((strlen(mode) < 1) || (strlen(mode) > 3)) + { -+ errno - EINVAL; ++ errno = EINVAL; + goto out; + } + @@ -271,10 +255,10 @@ index 6d763e1..c1d072f 100644 + else if (0 == strcmp(priv_mode, "w+t")) + flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_TEXT; + else -+ { -+ errno = EINVAL; ++ { ++ errno = EINVAL; + goto out; -+ } ++ } + } + } + if (2 == strlen(priv_mode)) @@ -298,10 +282,10 @@ index 6d763e1..c1d072f 100644 + else if (0 == strcmp(priv_mode, "wt")) + flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_TEXT; + else -+ { -+ errno = EINVAL; ++ { ++ errno = EINVAL; + goto out; -+ } ++ } + } + } + if (1 == strlen(priv_mode)) @@ -313,18 +297,14 @@ index 6d763e1..c1d072f 100644 + else if (0 == strcmp(priv_mode, "w")) + flags = _O_WRONLY | _O_CREAT | _O_TRUNC; + else if ( !((0 == strcmp(priv_mode, "c")) || (0 == strcmp(priv_mode, "n")))) -+ { -+ errno = EINVAL; ++ { ++ errno = EINVAL; + goto out; -+ } ++ } + } - -- retval = _wfopen (wfilename, wmode); -- save_errno = errno; ++ + hFile = g_open (filename, flags, (_S_IREAD | _S_IWRITE)); - -- g_free (wfilename); -- g_free (wmode); ++ + if (INVALID_HANDLE_VALUE == (HANDLE)hFile) + /* 'errno' will have already been set by 'g_open()' */ + retval = NULL; diff --git a/0001-gsocket-fix-cross-compilation.patch b/0001-gsocket-fix-cross-compilation.patch deleted file mode 100644 index 5ad7ed78ec87..000000000000 --- a/0001-gsocket-fix-cross-compilation.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b7789bb144ff4545021fbd95ee93c98ec706891a Mon Sep 17 00:00:00 2001 -From: Nicola Murino <nicola.murino@gmail.com> -Date: Fri, 17 Aug 2018 17:04:07 +0200 -Subject: [PATCH] gsocket: fix cross compilation - -for some reason when cross compiling for windows BROKEN_IP_MREQ_SOURCE_STRUCT is defined but should not ---- - gio/gsocket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gio/gsocket.c b/gio/gsocket.c -index 859e807cb..71a97b8cf 100644 ---- a/gio/gsocket.c -+++ b/gio/gsocket.c -@@ -2404,7 +2404,7 @@ g_socket_multicast_group_operation_ssm (GSocket *socket, - memset (&mc_req_src, 0, sizeof (mc_req_src)); - - /* By default use the default IPv4 multicast interface. */ -- S_ADDR_FIELD(mc_req_src) = g_htonl (INADDR_ANY); -+ mc_req_src.imr_interface.s_addr = g_htonl (INADDR_ANY); - - if (iface) - { --- -2.18.0 - diff --git a/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch b/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch new file mode 100644 index 000000000000..cfe978ba8851 --- /dev/null +++ b/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch @@ -0,0 +1,84 @@ +From cf8d0b69566b5b3bab9aacaeecd9ce465cc33413 Mon Sep 17 00:00:00 2001 +From: Christoph Reiter <reiter.christoph@gmail.com> +Date: Sat, 6 Jan 2018 22:04:23 +0100 +Subject: [PATCH] win32: Make the static build work with MinGW when posix + threads are used + +MinGW does not support the use of DllMain() for static builds, but that +is currently always used on Windows, partly because it is needed for +handling win32 threads and because there are problems with MSVC +optimizing constructors away (see 7a29771a743a8b5337). + +To make the static build at least work in case mingw+posix threads are used, +switch to using constructors for that. The g_clock_win32_init() call is +moved into glib_init(), so it's also called in that case. + +If mingw+static+win32 threads are used abort the build early and print +an error message. + +https://bugzilla.gnome.org/show_bug.cgi?id=792297 +--- + glib/glib-init.c | 15 ++++++++++++--- + gobject/gtype.c | 2 +- + 2 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/glib/glib-init.c b/glib/glib-init.c +index 5f312113a..cd32e25a5 100644 +--- a/glib/glib-init.c ++++ b/glib/glib-init.c +@@ -268,19 +268,29 @@ glib_init (void) + + glib_inited = TRUE; + ++#ifdef G_OS_WIN32 ++ g_clock_win32_init (); ++#endif + g_messages_prefixed_init (); + g_debug_init (); + g_quark_init (); + } + + #if defined (G_OS_WIN32) ++HMODULE glib_dll; ++#endif ++ ++#if defined(__MINGW32__) && defined(GLIB_STATIC_COMPILATION) && !defined(THREADS_POSIX) ++/* MinGW static builds do not work with DllMain, but win32 threads need it atm */ ++#error "Static build under MinGW only supported when build with posix threads" ++#endif ++ ++#if defined (G_OS_WIN32) && (!defined(__MINGW32__) || defined(DLL_EXPORT)) + + BOOL WINAPI DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved); + +-HMODULE glib_dll; +- + BOOL WINAPI + DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, +@@ -290,7 +300,6 @@ DllMain (HINSTANCE hinstDLL, + { + case DLL_PROCESS_ATTACH: + glib_dll = hinstDLL; +- g_clock_win32_init (); + #ifdef THREADS_WIN32 + g_thread_win32_init (); + #endif +diff --git a/gobject/gtype.c b/gobject/gtype.c +index 275a8b60b..222b0a2f0 100644 +--- a/gobject/gtype.c ++++ b/gobject/gtype.c +@@ -4451,7 +4451,7 @@ gobject_init (void) + _g_signal_init (); + } + +-#if defined (G_OS_WIN32) ++#if defined (G_OS_WIN32) && (!defined(__MINGW32__) || defined(DLL_EXPORT)) + + BOOL WINAPI DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, +-- +2.15.1 + @@ -2,10 +2,11 @@ # Contributor: Filip Brcic <brcha@gna.org> # Contributor: ant32 <antreimer@gmail.com> # Contributor: Renato Silva <br.renatosilva@gmail.com> +# Contributor: Martchus <martchus@gmx.net> pkgname=mingw-w64-glib2 -pkgver=2.58.0 -pkgrel=4 -_commit=c138b98e363df8b95c2ee3eac214649b2908ad68 # tags/2.58.0^0 +pkgver=2.58.1 +pkgrel=2 +_commit=a9f5a6fa2fdd6eb2f754709d7e790d24e3ceaa18 # tags/2.58.1^0 arch=(any) pkgdesc="Low level core library (mingw-w64)" depends=(mingw-w64-libffi mingw-w64-pcre mingw-w64-gettext mingw-w64-zlib) @@ -14,17 +15,11 @@ license=("LGPL2.1") options=(!strip !buildflags staticlibs !emptydirs) url="https://wiki.gnome.org/Projects/GLib" source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit" - "0001-gsocket-fix-cross-compilation.patch" "0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" - "glib-formaterror.patch" - "glib-include-time-h-for-localtime_r.patch" - "glib-prefer-constructors-over-DllMain.patch") + "0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch") sha256sums=('SKIP' - '44c8c6b4ca376177a8c333a00c3485d638f8641967503e15364606d4c4292ff3' - 'afd62a852a0b6aed4ce86eb97297e5080b26055cc878413b89d482c184b826b3' - 'ea529d5cbf8cf7ca66467664a3ead37473a1c009ac973d5694b06cc9d0b23df3' - 'ac567f7a9cad51ab97dba70bcdd6c0c16f93d2451c43fde380e4fdb20b2d4b31' - '8a02502069fa88c667a4fd1599280f927cb1bcf61e9fcd369fec5bdb5440d480') + 'ff0d3df5d57cf621cac79f5bea8bd175e6c18b3fbf7cdd02df38c1eab9f40ac3' + '838abaeab8ca4978770222ef5f88c4b464545dd591b2d532c698caa875b46931') _architectures="i686-w64-mingw32 x86_64-w64-mingw32" @@ -35,11 +30,10 @@ pkgver() { prepare() { cd glib + # https://gitlab.gnome.org/GNOME/glib/issues/539 patch -Np1 -i ../0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch - patch -Np1 -i ../glib-prefer-constructors-over-DllMain.patch - patch -Np1 -i ../glib-formaterror.patch - patch -Np1 -i ../glib-include-time-h-for-localtime_r.patch - patch -Np1 -i ../0001-gsocket-fix-cross-compilation.patch + # https://gitlab.gnome.org/GNOME/glib/issues/692 + patch -Np1 -i ../0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch } @@ -56,10 +50,16 @@ build() { package() { for _arch in ${_architectures}; do - sed -i "s/-lgnulib//g" ${srcdir}/glib/build-${_arch}/meson-private/glib-2.0.pc + # fix pkg-config files (see https://github.com/mesonbuild/meson/pull/3939) + for pc_file in ${srcdir}/glib/build-${_arch}/meson-private/*.pc; do + sed -i 's/-lgnulib//g' "$pc_file" + sed -i 's/-lcharset//g' "$pc_file" + sed -i 's/-lgiowin32//g' "$pc_file" + done + DESTDIR="${pkgdir}" ninja -C "${srcdir}/glib/build-${_arch}" install - #FIXME: Ranlib (isn't meson supposed to do this?) + # see https://github.com/mesonbuild/meson/issues/4138 ${_arch}-gcc-ranlib ${pkgdir}/usr/${_arch}/lib/*.a done diff --git a/glib-formaterror.patch b/glib-formaterror.patch deleted file mode 100644 index 535906675b91..000000000000 --- a/glib-formaterror.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- glib-2.57.2/configure.ac 2018-07-31 20:31:07.000000000 +0200 -+++ glib-2.57.2/configure.ac 2018-08-02 19:09:02.569368144 +0200 -@@ -3398,8 +3398,8 @@ - -Wno-bad-function-cast \ - -Werror=declaration-after-statement \ - -Werror=missing-prototypes -Werror=implicit-function-declaration \ -- -Werror=pointer-arith -Werror=init-self -Werror=format-security \ -- -Werror=format=2 -Werror=missing-include-dirs]) -+ -Werror=pointer-arith -Werror=init-self -Wno-error=format-security \ -+ -Wno-error=format=2 -Werror=missing-include-dirs]) - ]) - AC_SUBST(GLIB_WARN_CFLAGS) - diff --git a/glib-include-time-h-for-localtime_r.patch b/glib-include-time-h-for-localtime_r.patch deleted file mode 100644 index c23d26a06331..000000000000 --- a/glib-include-time-h-for-localtime_r.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- glib-2.43.2/glib/gdate.c.orig 2015-01-01 23:50:04.203252143 +0100 -+++ glib-2.43.2/glib/gdate.c 2015-01-01 23:50:28.329647373 +0100 -@@ -41,6 +41,7 @@ - - #ifdef G_OS_WIN32 - #include <windows.h> -+#include <time.h> - #endif - - #include "gdate.h" diff --git a/glib-prefer-constructors-over-DllMain.patch b/glib-prefer-constructors-over-DllMain.patch deleted file mode 100644 index 2edec2b1ff5c..000000000000 --- a/glib-prefer-constructors-over-DllMain.patch +++ /dev/null @@ -1,76 +0,0 @@ -From bc90511c1eb333e26e0bc0eaee62375d0e788db6 Mon Sep 17 00:00:00 2001 -From: Erik van Pienbroek <epienbro@fedoraproject.org> -Date: Tue, 16 Apr 2013 11:42:11 +0200 -Subject: [PATCH] win32: Prefer the use of constructors over DllMain - -This prevents having to depend on DllMain in static libraries - -Constructors are available in both the GCC build (GCC 2.7 and later) -and the MSVC build (MSVC 2008 and later using _Pragma, earlier -versions using #pragma) ---- - glib/glib-init.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git a/glib/glib-init.c b/glib/glib-init.c ---- a/glib/glib-init.c 2018-08-02 16:09:46.277047195 +0200 -+++ b/glib/glib-init.c 2018-08-02 16:10:23.617387056 +0200 -@@ -272,12 +272,14 @@ - - #if defined (G_OS_WIN32) - -+HMODULE glib_dll = NULL; -+ -+#if defined (DLL_EXPORT) -+ - BOOL WINAPI DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved); - --HMODULE glib_dll; -- - BOOL WINAPI - DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, -@@ -287,13 +289,6 @@ - { - case DLL_PROCESS_ATTACH: - glib_dll = hinstDLL; -- g_clock_win32_init (); --#ifdef THREADS_WIN32 -- g_thread_win32_init (); --#endif -- glib_init (); -- /* must go after glib_init */ -- g_console_win32_init (); - break; - - case DLL_THREAD_DETACH: -@@ -317,7 +312,10 @@ - return TRUE; - } - --#elif defined (G_HAS_CONSTRUCTORS) -+#endif /* defined (DLL_EXPORT) */ -+#endif /* defined (G_OS_WIN32) */ -+ -+#if defined (G_HAS_CONSTRUCTORS) - - #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA - #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(glib_init_ctor) -@@ -327,7 +325,15 @@ - static void - glib_init_ctor (void) - { -+#if defined (G_OS_WIN32) -+ g_clock_win32_init (); -+#ifdef THREADS_WIN32 -+ g_thread_win32_init (); -+#endif /* defined (THREADS_WIN32) */ -+#endif /* defined (G_OS_WIN32) */ - glib_init (); -+ /* must go after glib_init */ -+ g_console_win32_init (); - } - - #else |