glib: update to 2.76.1.

This commit is contained in:
oreo639 2023-03-21 19:30:06 -07:00 committed by Michal Vasilek
parent 29a8c5e3ae
commit a20aa0a152
7 changed files with 53 additions and 168 deletions

View File

@ -91,11 +91,11 @@ libmagic.so.1 libmagic-5.12_1
libbluetooth.so.3 libbluetooth-4.58_1
libwmf-0.2.so.7 libwmf-0.2.8.4_1
libwmflite-0.2.so.7 libwmf-0.2.8.4_1
libgthread-2.0.so.0 glib-2.74.0_1
libglib-2.0.so.0 glib-2.74.0_1
libgmodule-2.0.so.0 glib-2.74.0_1
libgio-2.0.so.0 glib-2.74.0_1
libgobject-2.0.so.0 glib-2.74.0_1
libgthread-2.0.so.0 glib-2.76.0_1
libglib-2.0.so.0 glib-2.76.0_1
libgmodule-2.0.so.0 glib-2.76.0_1
libgio-2.0.so.0 glib-2.76.0_1
libgobject-2.0.so.0 glib-2.76.0_1
libatk-1.0.so.0 atk-1.26.0_1
libpangocairo-1.0.so.0 pango-1.24.0_1
libpangoft2-1.0.so.0 pango-1.24.0_1

View File

@ -1,14 +1,14 @@
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -56,7 +56,6 @@ gio_tests = {
@@ -63,7 +63,6 @@ gio_tests = {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392 / https://gitlab.gnome.org/GNOME/glib/-/issues/1251
'should_fail' : host_system == 'darwin',
'can_fail' : host_system == 'darwin',
},
- 'converter-stream' : {},
'credentials' : {},
'data-input-stream' : {},
'data-output-stream' : {},
@@ -198,7 +197,6 @@ endif
@@ -227,7 +226,6 @@ endif
# Test programs buildable on UNIX only
if host_machine.system() != 'windows'
gio_tests += {
@ -16,7 +16,7 @@
'gdbus-peer-object-manager' : {},
'gdbus-sasl' : {},
'live-g-file' : {},
@@ -814,14 +812,6 @@ if meson.can_run_host_binaries()
@@ -951,13 +949,6 @@ if not meson.is_cross_build()
test_resources_binary2,
]
endif
@ -24,18 +24,17 @@
- gio_tests += {
- 'resources' : {
- 'extra_sources' : resources_extra_sources,
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
- 'depends' : resource_plugin,
- },
- }
endif
foreach test_name, extra_args : gio_tests
test_extra_programs_targets = {}
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index d74617823..1de81a825 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -11,22 +11,14 @@ glib_tests = {
@@ -12,22 +12,14 @@ glib_tests = {
'cache' : {},
'charset' : {},
'checksum' : {},
@ -46,19 +45,19 @@ index d74617823..1de81a825 100644
'dataset' : {},
- 'date' : {
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
- 'can_fail' : host_system == 'darwin',
- },
'dir' : {},
'environment' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
'should_fail' : host_system == 'darwin',
'can_fail' : host_system == 'darwin',
},
- 'error' : {},
- 'fileutils' : {},
'gdatetime' : {
'suite' : ['slow'],
},
@@ -65,7 +57,6 @@ glib_tests = {
'can_fail' : host_system == 'windows',
@@ -70,7 +62,6 @@ glib_tests = {
'node' : {},
'once' : {},
'onceinit' : {},

View File

@ -1,35 +0,0 @@
This fixes segfault when editing color of text in gimp.
From ea3f17d598d550345e94e4571130e429443e91cb Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun, 25 Sep 2022 14:20:24 +0100
Subject: [PATCH] Empty values are not valid GParamSpec
The validate() vfunc for GParamSpecParam returns FALSE for empty GValue,
which means the is_valid() vfunc should do the same.
This avoids a segfault when calling g_param_value_is_valid() on a
GParamSpecParam.
Fixes: #2770
---
gobject/gparamspecs.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
index f17b3488b9..17b8606572 100644
--- a/gobject/gparamspecs.c
+++ b/gobject/gparamspecs.c
@@ -894,6 +894,9 @@ param_param_is_valid (GParamSpec *pspec,
{
GParamSpec *param = value->data[0].v_pointer;
+ if (param == NULL)
+ return FALSE;
+
return g_value_type_compatible (G_PARAM_SPEC_TYPE (param), G_PARAM_SPEC_VALUE_TYPE (pspec));
}
--
GitLab

View File

@ -0,0 +1,26 @@
Fails to build on musl.
../glib/tests/cxx.cpp:509:15: error: missing sentinel in function call [-Werror=format=]
g_test_init (&argc, &argv, NULL);
--- a/glib/tests/cxx.cpp
+++ a/glib/tests/cxx.cpp
@@ -505,7 +505,7 @@ test_string_free (void)
int
main (int argc, char *argv[])
{
#if G_CXX_STD_CHECK_VERSION (11)
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, nullptr);
#else
g_test_init (&argc, &argv, static_cast<void *>(NULL));
--- a/gio/tests/cxx.cpp
+++ a/gio/tests/cxx.cpp
@@ -59,7 +59,7 @@ int
main (int argc, char **argv)
{
#if G_CXX_STD_CHECK_VERSION (11)
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, nullptr);
#else
g_test_init (&argc, &argv, static_cast<void *>(NULL));
#endif

View File

@ -1,62 +0,0 @@
Currently glib hardcodes a list of terminals and that list will not be expanding.
The hope being that it will eventually be replaced with some kind of api.
Until then, we might as well add gnome-console/kgx to the list
See: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/1404#note_1331262
Source: https://github.com/NixOS/nixpkgs/commit/c987121acf5c87436a0b05ca75cd70bf38c452ca
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index 60d6debb2..a441bfec9 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -2627,6 +2627,7 @@ prepend_terminal_to_vector (int *argc,
int i, j;
char **term_argv = NULL;
int term_argc = 0;
+ gboolean pass_cmd_as_single_arg = FALSE;
char *check;
char **the_argv;
@@ -2672,6 +2673,11 @@ prepend_terminal_to_vector (int *argc,
}
else
{
+ if (check == NULL) {
+ check = g_find_program_in_path ("kgx");
+ if (check != NULL)
+ pass_cmd_as_single_arg = TRUE;
+ }
if (check == NULL)
check = g_find_program_in_path ("tilix");
if (check == NULL)
@@ -2697,14 +2703,27 @@ prepend_terminal_to_vector (int *argc,
}
}
- real_argc = term_argc + *argc;
+ real_argc = term_argc + (pass_cmd_as_single_arg ? 1 : *argc);
real_argv = g_new (char *, real_argc + 1);
for (i = 0; i < term_argc; i++)
real_argv[i] = term_argv[i];
- for (j = 0; j < *argc; j++, i++)
- real_argv[i] = (char *)the_argv[j];
+ if (pass_cmd_as_single_arg) {
+ char **quoted_argv = g_new (char *, *argc + 1);
+
+ for (j = 0; j < *argc; j++) {
+ quoted_argv[j] = g_shell_quote (the_argv[j]);
+ g_free (the_argv[j]);
+ }
+ quoted_argv[j] = NULL;
+
+ real_argv[i++] = g_strjoinv (" ", quoted_argv);
+ g_strfreev (quoted_argv);
+ } else {
+ for (j = 0; j < *argc; j++, i++)
+ real_argv[i] = (char *)the_argv[j];
+ }
real_argv[i] = NULL;

View File

@ -1,50 +0,0 @@
From 902ba0bc0db50ede3473af576bddd2b6a2f9e326 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Sun, 18 Sep 2022 17:30:41 +0200
Subject: [PATCH] tests: Only run g_error_new_valist() programmer error test on
glibc
The musl implementation of vasprintf segfaults with NULL
---
glib/tests/error.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/glib/tests/error.c b/glib/tests/error.c
index 7ea04ea3ce..fa3a25969d 100644
--- a/glib/tests/error.c
+++ b/glib/tests/error.c
@@ -123,12 +123,12 @@ static void
test_new_valist_invalid_va (gpointer dummy,
...)
{
-#ifdef __linux__
- /* Only worth testing this on Linux; if other platforms regress on this legacy
- * behaviour, we dont care. In particular, calling g_error_new_valist() with
- * a %NULL format will crash on FreeBSD as its implementation of vasprintf()
- * is less forgiving than Linuxs. Thats fine: its a programmer error in
- * either case. */
+#if defined(__linux__) && defined(__GLIBC__)
+ /* Only worth testing this on Linux with glibc; if other platforms regress on
+ * this legacy behaviour, we dont care. In particular, calling
+ * g_error_new_valist() with a %NULL format will crash on FreeBSD as its
+ * implementation of vasprintf() is less forgiving than Linuxs. Thats
+ * fine: its a programmer error in either case. */
const struct
{
GQuark domain;
@@ -182,9 +182,9 @@ test_new_valist_invalid_va (gpointer dummy,
va_end (ap);
}
-#else /* if !__linux__ */
- g_test_skip ("g_error_new_valist() programmer error handling is only relevant on Linux");
-#endif /* !__linux__ */
+#else /* if !__linux__ || !__GLIBC__ */
+ g_test_skip ("g_error_new_valist() programmer error handling is only relevant on Linux with glibc");
+#endif /* !__linux__ || ! __GLIBC__ */
}
static void
--
GitLab

View File

@ -1,7 +1,7 @@
# Template file for 'glib'
pkgname=glib
version=2.74.0
revision=3
version=2.76.1
revision=1
build_style=meson
# static version is necessary for qemu-user-static;
# also disable LTO, otherwise there are multiple failures when linking qemu
@ -14,10 +14,10 @@ short_desc="GNU library of C routines"
maintainer="Michal Vasilek <michal@vasilek.cz>"
license="LGPL-2.1-or-later"
homepage="https://wiki.gnome.org/Projects/GLib"
#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-74/NEWS"
#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-76/NEWS"
changelog="https://gitlab.gnome.org/GNOME/glib/raw/main/NEWS"
distfiles="${GNOME_SITE}/glib/${version%.*}/glib-${version}.tar.xz"
checksum=3652c7f072d7b031a6b5edd623f77ebc5dcd2ae698598abcc89ff39ca75add30
checksum=43dc0f6a126958f5b454136c4398eab420249c16171a769784486e25f2fda19f
make_check_pre="dbus-run-session"
build_options="gtk_doc"
@ -27,6 +27,13 @@ if [ -z "$CROSS_BUILD" ]; then
build_options_default+=" gtk_doc"
fi
post_patch() {
# Timer test is flaky on 32 bit (does float comparisons)
if [ "${XBPS_TARGET_WORDSIZE}" = "32" ]; then
vsed -e "s/'timer' : {},//" -i glib/tests/meson.build
fi
}
pre_check() {
# machine-id is a random, non-zero value
echo 'dcb30309cd6c8b7cc20383d85a5c7012' > /etc/machine-id