# HG changeset patch # User Markus Mützel # Date 1696692431 -7200 # Node ID 9f739a6fed4e663082c3667be3181c7fcd44c9b8 # Parent 68202902c8881fa17b0bece75eab5614dc5a8916 glib: Update to 2.78.0 * src/glib.mk: Update version and checksum. Depend on PCRE2 instead of PCRE. Adapt build rules to new build system using Meson. * src/glib-1-fixes.patch, glib-2-fixes.patch: Remove patches that have been applied upstream. * dist-files.mk: Remove deleted patches from list. diff -r 68202902c888 -r 9f739a6fed4e dist-files.mk --- a/dist-files.mk Sat Oct 07 17:23:58 2023 +0200 +++ b/dist-files.mk Sat Oct 07 17:27:11 2023 +0200 @@ -140,8 +140,6 @@ gl2ps.mk \ glew-test.c \ glew.mk \ - glib-1-fixes.patch \ - glib-2-fixes.patch \ glib.mk \ glibmm.mk \ glpk-1-fixes.patch \ diff -r 68202902c888 -r 9f739a6fed4e src/glib-1-fixes.patch --- a/src/glib-1-fixes.patch Sat Oct 07 17:23:58 2023 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,634 +0,0 @@ -This file is part of MXE. See LICENSE.md for licensing information. - -Contains ad hoc patches for cross building. - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Thu, 23 Sep 2010 21:42:46 +0200 -Subject: [PATCH 1/9] fix tool paths - - -diff --git a/glib-2.0.pc.in b/glib-2.0.pc.in -index 1111111..2222222 100644 ---- a/glib-2.0.pc.in -+++ b/glib-2.0.pc.in -@@ -3,9 +3,9 @@ exec_prefix=@exec_prefix@ - libdir=@libdir@ - includedir=@includedir@ - --glib_genmarshal=glib-genmarshal --gobject_query=gobject-query --glib_mkenums=glib-mkenums -+glib_genmarshal=@bindir@/glib-genmarshal -+gobject_query=@bindir@/gobject-query -+glib_mkenums=@bindir@/glib-mkenums - - Name: GLib - Description: C Utility Library - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Hans Petter Jansson -Date: Fri, 15 Jun 2012 15:25:01 +0200 -Subject: [PATCH 2/9] Avoid DllMain symbol conflict when linking statically - -Adjusted by Boris Nagaev on 29-Jan-2017 to fix -https://gist.github.com/starius/f4fc85939352cb50122ba29e0f5b140d -when updating to glib-2.50.2. - -diff --git a/gio/giomodule.c b/gio/giomodule.c -index 1111111..2222222 100644 ---- a/gio/giomodule.c -+++ b/gio/giomodule.c -@@ -928,14 +928,12 @@ extern GType g_cocoa_notification_backend_get_type (void); - - static HMODULE gio_dll = NULL; - --#ifdef DLL_EXPORT -- --BOOL WINAPI DllMain (HINSTANCE hinstDLL, -+BOOL WINAPI gio_DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved); - - BOOL WINAPI --DllMain (HINSTANCE hinstDLL, -+gio_DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved) - { -@@ -945,8 +943,6 @@ DllMain (HINSTANCE hinstDLL, - return TRUE; - } - --#endif -- - void * - _g_io_win32_get_module (void) - { -diff --git a/glib/glib-init.c b/glib/glib-init.c -index 1111111..2222222 100644 ---- a/glib/glib-init.c -+++ b/glib/glib-init.c -@@ -245,14 +245,14 @@ glib_init (void) - - #if defined (G_OS_WIN32) - --BOOL WINAPI DllMain (HINSTANCE hinstDLL, -+BOOL WINAPI glib_DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved); - - HMODULE glib_dll; - - BOOL WINAPI --DllMain (HINSTANCE hinstDLL, -+glib_DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved) - { -diff --git a/gobject/gtype.c b/gobject/gtype.c -index 1111111..2222222 100644 ---- a/gobject/gtype.c -+++ b/gobject/gtype.c -@@ -4450,7 +4450,7 @@ gobject_init (void) - _g_signal_init (); - } - --#if defined (G_OS_WIN32) -+#if 0 - - BOOL WINAPI DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Hans Petter Jansson -Date: Fri, 15 Jun 2012 15:27:22 +0200 -Subject: [PATCH 3/9] Allow building without inotify support - - -diff --git a/configure.ac b/configure.ac -index 1111111..2222222 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1599,10 +1599,16 @@ dnl ***************************** - dnl ** Check for inotify (GIO) ** - dnl ***************************** - inotify_support=no -+ AC_ARG_ENABLE(inotify, -+ AC_HELP_STRING([--disable-inotify], -+ [build without inotify support])) -+ -+ if test "x$enable_inotify" != "xno"; then - AC_CHECK_HEADERS([sys/inotify.h], - [ - AC_CHECK_FUNCS(inotify_init1, [inotify_support=yes], [inotify_support=no]) - ]) -+fi - - AM_CONDITIONAL(HAVE_INOTIFY, [test "$inotify_support" = "yes"]) - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Hans Petter Jansson -Date: Fri, 15 Jun 2012 15:28:14 +0200 -Subject: [PATCH 4/9] Make sure STDC_HEADERS is set for AC_CHECK_ALIGNOF. - Backported from upstream - - -diff --git a/configure.ac b/configure.ac -index 1111111..2222222 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -511,6 +511,8 @@ LT_INIT([disable-static win32-dll]) - dnl when using libtool 2.x create libtool early, because it's used in configure - m4_ifdef([LT_OUTPUT], [LT_OUTPUT]) - -+# Make sure STDC_HEADERS is set for AC_CHECK_ALIGNOF -+AS_IF([false], [AC_CHECK_HEADER([stdint.h])]) - - AS_IF([test "$glib_native_win32" = "yes"], [ - if test x$enable_static = xyes -a x$enable_shared = xyes; then - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Hans Petter Jansson -Date: Fri, 15 Jun 2012 15:29:06 +0200 -Subject: [PATCH 5/9] Link with dnsapi - - -diff --git a/gio-2.0.pc.in b/gio-2.0.pc.in -index 1111111..2222222 100644 ---- a/gio-2.0.pc.in -+++ b/gio-2.0.pc.in -@@ -13,6 +13,6 @@ Description: glib I/O library - Version: @VERSION@ - Requires: glib-2.0 gobject-2.0 - Requires.private: gmodule-no-export-2.0 --Libs: -L${libdir} -lgio-2.0 -+Libs: -L${libdir} -lgio-2.0 -ldnsapi -liphlpapi - Libs.private: @ZLIB_LIBS@ @NETWORK_LIBS@ @SELINUX_LIBS@ @COCOA_LIBS@ @CARBON_LIBS@ @LIBMOUNT_LIBS@ - Cflags: - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Hans Petter Jansson -Date: Fri, 15 Jun 2012 15:29:38 +0200 -Subject: [PATCH 6/9] Ensure globals are initialized even when DllMain is not - being run - - -diff --git a/glib/gmain.c b/glib/gmain.c -index 1111111..2222222 100644 ---- a/glib/gmain.c -+++ b/glib/gmain.c -@@ -2688,12 +2688,15 @@ g_get_real_time (void) - * So for now we calculate (usec_per_sec / ticks_per_sec) and use floating point - */ - static gdouble g_monotonic_usec_per_tick = 0; -+static gboolean g_win32_clock_is_initialized; - - void - g_clock_win32_init (void) - { - LARGE_INTEGER freq; - -+ g_win32_clock_is_initialized = TRUE; -+ - if (!QueryPerformanceFrequency (&freq) || freq.QuadPart == 0) - { - /* The documentation says that this should never happen */ -@@ -2707,6 +2709,9 @@ g_get_monotonic_time (void) - gint64 - g_get_monotonic_time (void) - { -+ if (!g_win32_clock_is_initialized) -+ g_clock_win32_init (); -+ - if (G_LIKELY (g_monotonic_usec_per_tick != 0)) - { - LARGE_INTEGER ticks; -diff --git a/glib/gthread-win32.c b/glib/gthread-win32.c -index 1111111..2222222 100644 ---- a/glib/gthread-win32.c -+++ b/glib/gthread-win32.c -@@ -60,6 +60,10 @@ g_thread_abort (gint status, - strerror (status), function); - g_abort (); - } -+/* Needed for static builds where DllMain initializer doesn't get called */ -+static gboolean g_threads_is_initialized; -+G_GNUC_INTERNAL void g_thread_win32_init (void); -+ - - /* Starting with Vista and Windows 2008, we have access to the - * CONDITION_VARIABLE and SRWLock primatives on Windows, which are -@@ -79,6 +83,9 @@ g_thread_abort (gint status, - void - g_mutex_init (GMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - InitializeSRWLock ((gpointer) mutex); - } - -@@ -90,18 +97,27 @@ g_mutex_clear (GMutex *mutex) - void - g_mutex_lock (GMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - AcquireSRWLockExclusive ((gpointer) mutex); - } - - gboolean - g_mutex_trylock (GMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - return TryAcquireSRWLockExclusive ((gpointer) mutex); - } - - void - g_mutex_unlock (GMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - ReleaseSRWLockExclusive ((gpointer) mutex); - } - -@@ -112,6 +128,9 @@ g_rec_mutex_impl_new (void) - { - CRITICAL_SECTION *cs; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - cs = g_slice_new (CRITICAL_SECTION); - InitializeCriticalSection (cs); - -@@ -122,6 +141,10 @@ static void - g_rec_mutex_impl_free (CRITICAL_SECTION *cs) - { - DeleteCriticalSection (cs); -+ -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - g_slice_free (CRITICAL_SECTION, cs); - } - -@@ -130,6 +153,9 @@ g_rec_mutex_get_impl (GRecMutex *mutex) - { - CRITICAL_SECTION *impl = mutex->p; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - if G_UNLIKELY (mutex->p == NULL) - { - impl = g_rec_mutex_impl_new (); -@@ -144,30 +170,45 @@ g_rec_mutex_get_impl (GRecMutex *mutex) - void - g_rec_mutex_init (GRecMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - mutex->p = g_rec_mutex_impl_new (); - } - - void - g_rec_mutex_clear (GRecMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - g_rec_mutex_impl_free (mutex->p); - } - - void - g_rec_mutex_lock (GRecMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - EnterCriticalSection (g_rec_mutex_get_impl (mutex)); - } - - void - g_rec_mutex_unlock (GRecMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - LeaveCriticalSection (mutex->p); - } - - gboolean - g_rec_mutex_trylock (GRecMutex *mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - return TryEnterCriticalSection (g_rec_mutex_get_impl (mutex)); - } - -@@ -176,6 +217,9 @@ g_rec_mutex_trylock (GRecMutex *mutex) - void - g_rw_lock_init (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - InitializeSRWLock ((gpointer) lock); - } - -@@ -187,36 +231,54 @@ g_rw_lock_clear (GRWLock *lock) - void - g_rw_lock_writer_lock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - AcquireSRWLockExclusive ((gpointer) lock); - } - - gboolean - g_rw_lock_writer_trylock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - return TryAcquireSRWLockExclusive ((gpointer) lock); - } - - void - g_rw_lock_writer_unlock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - ReleaseSRWLockExclusive ((gpointer) lock); - } - - void - g_rw_lock_reader_lock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - AcquireSRWLockShared ((gpointer) lock); - } - - gboolean - g_rw_lock_reader_trylock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - return TryAcquireSRWLockShared ((gpointer) lock); - } - - void - g_rw_lock_reader_unlock (GRWLock *lock) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - ReleaseSRWLockShared ((gpointer) lock); - } - -@@ -224,6 +286,9 @@ g_rw_lock_reader_unlock (GRWLock *lock) - void - g_cond_init (GCond *cond) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - InitializeConditionVariable ((gpointer) cond); - } - -@@ -235,12 +300,18 @@ g_cond_clear (GCond *cond) - void - g_cond_signal (GCond *cond) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - WakeConditionVariable ((gpointer) cond); - } - - void - g_cond_broadcast (GCond *cond) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - WakeAllConditionVariable ((gpointer) cond); - } - -@@ -248,6 +319,9 @@ void - g_cond_wait (GCond *cond, - GMutex *entered_mutex) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - SleepConditionVariableSRW ((gpointer) cond, (gpointer) entered_mutex, INFINITE, 0); - } - -@@ -260,6 +334,9 @@ g_cond_wait_until (GCond *cond, - DWORD span_millis; - gboolean signalled; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - start_time = g_get_monotonic_time (); - do - { -@@ -311,6 +388,9 @@ g_private_get_impl (GPrivate *key) - - if G_UNLIKELY (impl == 0) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - EnterCriticalSection (&g_private_lock); - impl = (DWORD) key->p; - if (impl == 0) -@@ -404,6 +484,9 @@ g_system_thread_free (GRealThread *thread) - { - GThreadWin32 *wt = (GThreadWin32 *) thread; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - win32_check_for_error (CloseHandle (wt->handle)); - g_slice_free (GThreadWin32, wt); - } -@@ -411,6 +494,9 @@ g_system_thread_free (GRealThread *thread) - void - g_system_thread_exit (void) - { -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - _endthreadex (0); - } - -@@ -419,6 +505,9 @@ g_thread_win32_proxy (gpointer data) - { - GThreadWin32 *self = data; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - self->proxy (self); - - g_system_thread_exit (); -@@ -436,6 +525,9 @@ g_system_thread_new (GThreadFunc func, - GThreadWin32 *thread; - guint ignore; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - thread = g_slice_new0 (GThreadWin32); - thread->proxy = func; - -@@ -465,6 +557,9 @@ g_system_thread_wait (GRealThread *thread) - { - GThreadWin32 *wt = (GThreadWin32 *) thread; - -+ if (!g_threads_is_initialized) -+ g_thread_win32_init (); -+ - win32_check_for_error (WAIT_FAILED != WaitForSingleObject (wt->handle, INFINITE)); - } - -@@ -536,6 +631,8 @@ g_system_thread_set_name (const gchar *name) - void - g_thread_win32_init (void) - { -+ g_threads_is_initialized = TRUE; -+ - InitializeCriticalSection (&g_private_lock); - - #ifndef _MSC_VER - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Gerardo Ballabio -Date: Sun, 16 Aug 2015 13:18:24 +0200 -Subject: [PATCH 7/9] Remove an annoying runtime warning - -that pops up when using GtkApplication in Gtk+ 3 programs. - -diff --git a/gio/gdbusaddress.c b/gio/gdbusaddress.c -index 1111111..2222222 100644 ---- a/gio/gdbusaddress.c -+++ b/gio/gdbusaddress.c -@@ -1387,6 +1387,7 @@ __declspec(dllexport) void CALLBACK g_win32_run_session_bus (HWND hwnd, HINSTANC - __declspec(dllexport) void CALLBACK - g_win32_run_session_bus (HWND hwnd, HINSTANCE hinst, char *cmdline, int nCmdShow) - { -+ /* - GDBusDaemon *daemon; - GMainLoop *loop; - const char *address; -@@ -1418,6 +1419,7 @@ g_win32_run_session_bus (HWND hwnd, HINSTANCE hinst, char *cmdline, int nCmdShow - - g_main_loop_unref (loop); - g_object_unref (daemon); -+ */ - } - - static gchar * - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: aquiles2k -Date: Wed, 6 Apr 2016 22:39:53 +0300 -Subject: [PATCH 8/9] fix error "won't overwrite defined macro" on OSX - -See https://github.com/mxe/mxe/issues/1281 - -diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4 -index 1111111..2222222 100644 ---- a/m4macros/glib-gettext.m4 -+++ b/m4macros/glib-gettext.m4 -@@ -36,8 +36,8 @@ dnl We go to great lengths to make sure that aclocal won't - dnl try to pull in the installed version of these macros - dnl when running aclocal in the glib directory. - dnl --m4_copy([AC_DEFUN],[glib_DEFUN]) --m4_copy([AC_REQUIRE],[glib_REQUIRE]) -+m4_copy_force([AC_DEFUN],[glib_DEFUN]) -+m4_copy_force([AC_REQUIRE],[glib_REQUIRE]) - dnl - dnl At the end, if we're not within glib, we'll define the public - dnl definitions in terms of our private definitions. - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Ernestas Kulik -Date: Tue, 29 Jan 2019 09:50:46 +0100 -Subject: [PATCH 10/10] gdbus: Avoid printing null strings - -This mostly affects the 2.56 branch, but, given that GCC 9 is being -stricter about passing null string pointers to printf-like functions, it -might make sense to proactively fix such calls. - -gdbusauth.c: In function '_g_dbus_auth_run_server': -gdbusauth.c:1302:11: error: '%s' directive argument is null -[-Werror=format-overflow=] - 1302 | debug_print ("SERVER: WaitingForBegin, read '%s'", - line); - | - -gdbusmessage.c: In function ‘g_dbus_message_to_blob’: -gdbusmessage.c:2730:30: error: ‘%s’ directive argument is null [-Werror=format-overflow=] - 2730 | tupled_signature_str = g_strdup_printf ("(%s)", signature_str); - | - -diff --git a/gio/gdbusauth.c b/gio/gdbusauth.c -index 1111111..2222222 100644 ---- a/gio/gdbusauth.c -+++ b/gio/gdbusauth.c -@@ -1295,9 +1295,9 @@ _g_dbus_auth_run_server (GDBusAuth *auth, - &line_length, - cancellable, - error); -- debug_print ("SERVER: WaitingForBegin, read '%s'", line); - if (line == NULL) - goto out; -+ debug_print ("SERVER: WaitingForBegin, read '%s'", line); - if (g_strcmp0 (line, "BEGIN") == 0) - { - /* YAY, done! */ -diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c -index 1111111..2222222 100644 ---- a/gio/gdbusmessage.c -+++ b/gio/gdbusmessage.c -@@ -2695,7 +2695,6 @@ g_dbus_message_to_blob (GDBusMessage *message, - if (message->body != NULL) - { - gchar *tupled_signature_str; -- tupled_signature_str = g_strdup_printf ("(%s)", signature_str); - if (signature == NULL) - { - g_set_error (error, -@@ -2703,10 +2702,10 @@ g_dbus_message_to_blob (GDBusMessage *message, - G_IO_ERROR_INVALID_ARGUMENT, - _("Message body has signature “%s” but there is no signature header"), - signature_str); -- g_free (tupled_signature_str); - goto out; - } -- else if (g_strcmp0 (tupled_signature_str, g_variant_get_type_string (message->body)) != 0) -+ tupled_signature_str = g_strdup_printf ("(%s)", signature_str); -+ if (g_strcmp0 (tupled_signature_str, g_variant_get_type_string (message->body)) != 0) - { - g_set_error (error, - G_IO_ERROR, diff -r 68202902c888 -r 9f739a6fed4e src/glib-2-fixes.patch --- a/src/glib-2-fixes.patch Sat Oct 07 17:23:58 2023 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1428 - ---- a/glib/gtypes.h 2016-10-22 07:21:52.000000000 +0200 -+++ b/glib/gtypes.h 2020-05-17 11:13:49.369639688 +0200 -@@ -522,7 +522,7 @@ - # else /* !GLIB_STATIC_COMPILATION */ - # ifdef GLIB_COMPILATION - # ifdef DLL_EXPORT --# define GLIB_VAR __declspec(dllexport) -+# define GLIB_VAR extern __declspec(dllexport) - # else /* !DLL_EXPORT */ - # define GLIB_VAR extern - # endif /* !DLL_EXPORT */ ---- a/gobject/gparamspecs.h 2016-10-22 07:22:21.000000000 +0200 -+++ b/gobject/gparamspecs.h 2020-05-17 11:16:37.803281391 +0200 -@@ -1144,7 +1144,7 @@ - # else /* !GOBJECT_STATIC_COMPILATION */ - # ifdef GOBJECT_COMPILATION - # ifdef DLL_EXPORT --# define GOBJECT_VAR __declspec(dllexport) -+# define GOBJECT_VAR extern __declspec(dllexport) - # else /* !DLL_EXPORT */ - # define GOBJECT_VAR extern - # endif /* !DLL_EXPORT */ diff -r 68202902c888 -r 9f739a6fed4e src/glib.mk --- a/src/glib.mk Sat Oct 07 17:23:58 2023 +0200 +++ b/src/glib.mk Sat Oct 07 17:27:11 2023 +0200 @@ -3,12 +3,12 @@ PKG := glib $(PKG)_IGNORE := -$(PKG)_VERSION := 2.58.0 -$(PKG)_CHECKSUM := c00e433c56e0ba3541abc5222aeca4136de10fb8 +$(PKG)_VERSION := 2.78.0 +$(PKG)_CHECKSUM := 664e2498cffb55016abfc3a4a0158ee2586d05d1 $(PKG)_SUBDIR := glib-$($(PKG)_VERSION) $(PKG)_FILE := glib-$($(PKG)_VERSION).tar.xz $(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/glib/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE) -$(PKG)_DEPS := gettext pcre libiconv zlib libffi dbus +$(PKG)_DEPS := gettext pcre2 libiconv zlib libffi dbus build-meson define $(PKG)_UPDATE $(WGET) -q -O- 'https://github.com/GNOME/glib/tags' | \ @@ -17,69 +17,37 @@ head -1 endef -define $(PKG)_SYMLINK - $(LN_SF) `which glib-genmarshal` '$(HOST_BINDIR)' - $(LN_SF) `which glib-compile-schemas` '$(HOST_BINDIR)' - $(LN_SF) `which glib-compile-resources` '$(HOST_BINDIR)' +# FIXME: Should this be defined in the top-level Makefile? +ifeq ($(MXE_NATIVE_BUILD),yes) + MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/native/mxe-conf.ini + $(PKG)_MESON_TOOLCHAIN_FILE := --native-file='$(MESON_TOOLCHAIN_FILE)' +else + MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/cross/mxe-conf.ini + $(PKG)_MESON_TOOLCHAIN_FILE := --cross-file='$(MESON_TOOLCHAIN_FILE)' +endif + +ifeq ($(BUILD_SHARED),yes) + $(PKG)_MESON_CONFIG_FLAGS += -Ddefault_library=shared +else + $(PKG)_MESON_CONFIG_FLAGS += -Ddefault_library=static +endif + +define $(PKG)_BUILD + rm -f '$(HOST_BINDIR)/glib-*' + + PKG_CONFIG='$(MXE_PKG_CONFIG)' \ + PKG_CONFIG_PATH='$(PKG_CONFIG_PATH)' \ + meson setup --errorlogs \ + $($(PKG)_MESON_TOOLCHAIN_FILE) \ + --wrap-mode=nodownload \ + --prefix='$(HOST_PREFIX)' \ + -Dlibelf=disabled \ + -Dtests=false \ + -Dforce_posix_threads=true \ + $($(PKG)_MESON_CONFIG_FLAGS) \ + $(1)/.build $(1) + + ninja -C '$(1)/.build' -j '$(JOBS)' + ninja -C '$(1)/.build' -j '$(JOBS)' install endef -ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) -define $(PKG)_BUILD - cd $(1) && NOCONFIGURE=true ./autogen.sh - cd '$(1)' && PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' ./configure \ - $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ - $(ENABLE_SHARED_OR_STATIC) \ - --prefix='$(HOST_PREFIX)' \ - --with-threads=win32 \ - --enable-regex \ - --disable-threads \ - --disable-selinux \ - --disable-inotify \ - --disable-fam \ - --disable-xattr \ - --disable-dtrace \ - --disable-libmount \ - --with-libiconv=gnu \ - --with-pcre=internal \ - --disable-compile-warnings \ - && $(CONFIGURE_POST_HOOK) - - $(SED) -i 's,#define G_ATOMIC.*,,' '$(1)/config.h' - $(MAKE) -C '$(1)/glib' -j '$(JOBS)' - $(MAKE) -C '$(1)/gthread' -j '$(JOBS)' - $(MAKE) -C '$(1)/gmodule' -j '$(JOBS)' - $(MAKE) -C '$(1)/gobject' -j '$(JOBS)' lib_LTLIBRARIES= install-exec - $(MAKE) -C '$(1)/gio/xdgmime' -j '$(JOBS)' - $(MAKE) -C '$(1)/gio' -j '$(JOBS)' glib-compile-schemas - $(MAKE) -C '$(1)/gio' -j '$(JOBS)' glib-compile-resources - $(INSTALL) -m755 '$(1)/gio/glib-compile-schemas' '$(HOST_BINDIR)/' - $(INSTALL) -m755 '$(1)/gio/glib-compile-resources' '$(HOST_BINDIR)/' -endef -else -define $(PKG)_BUILD - cd '$(1)' && NOCONFIGURE=true ./autogen.sh - rm -f '$(HOST_BINDIR)/glib-*' - # cross build - cd '$(1)' && ./configure \ - $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ - $(ENABLE_SHARED_OR_STATIC) \ - $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \ - --prefix='$(HOST_PREFIX)' \ - --with-threads=win32 \ - --with-pcre=system \ - --with-libiconv=gnu \ - --disable-inotify \ - --disable-compile-warnings \ - PKG_CONFIG='$(MXE_PKG_CONFIG)' \ - PKG_CONFIG_PATH='$(PKG_CONFIG_PATH)' - - $(MAKE) -C '$(1)/glib' -j '$(JOBS)' install sbin_PROGRAMS= noinst_PROGRAMS= - $(MAKE) -C '$(1)/gmodule' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= - $(MAKE) -C '$(1)/gthread' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= - $(MAKE) -C '$(1)/gobject' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= - $(MAKE) -C '$(1)/gio' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= MISC_STUFF= - $(MAKE) -C '$(1)' -j '$(JOBS)' install-pkgconfigDATA - $(MAKE) -C '$(1)/m4macros' install -endef - -endif