Update to 2.77.1

This commit is contained in:
Kalev Lember 2023-07-31 13:14:21 +02:00
parent 741aababcf
commit 1296978256
5 changed files with 2 additions and 291 deletions

View File

@ -1,31 +0,0 @@
From c67dd9d3fe9186bef76ba682a7e277ccb7d95227 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@endlessos.org>
Date: Tue, 18 Jul 2023 11:31:01 +0100
Subject: [PATCH] gmain: Add a missing return on error path in
g_main_context_release()
This should have been in commit
3926af723a7469a2ea492307f421820361d617b3.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #3054
---
glib/gmain.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/glib/gmain.c b/glib/gmain.c
index fac14224a..ccadf76ce 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -3608,6 +3608,7 @@ g_main_context_release (GMainContext *context)
g_critical ("g_main_context_release() called on a context (%p, owner %p, "
"owner count %u) which is not acquired by the current thread",
context, context_owner, context_owner_count);
+ return;
}
#endif /* !G_DISABLE_CHECKS */
--
2.41.0

View File

@ -1,158 +0,0 @@
From c49502582faedecc7020155d95b16c7a1d78d432 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
Date: Thu, 13 Jul 2023 10:06:21 +0200
Subject: [PATCH 1/2] gkeyfile: Ensure we don't add extra blank line above new
group
A forgotten edge case in 86b4b045: when the last value of the last group
has been added via g_key_file_set_value() and it contains line breaks.
The best we can do in this case is probably to do nothing.
Closes: #3047
Fixes: 86b4b0453ea3a814167d4a5f7a4031d467543716
---
glib/gkeyfile.c | 6 +++++-
glib/tests/keyfile.c | 10 ++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 145136706f..0e21ab4f14 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -3858,8 +3858,12 @@ g_key_file_add_group (GKeyFile *key_file,
{
/* separate groups by a blank line if we don't keep comments or group is created */
GKeyFileGroup *next_group = key_file->groups->next->data;
+ GKeyFileKeyValuePair *pair;
+ if (next_group->key_value_pairs != NULL)
+ pair = next_group->key_value_pairs->data;
+
if (next_group->key_value_pairs == NULL ||
- ((GKeyFileKeyValuePair *) next_group->key_value_pairs->data)->key != NULL)
+ (pair->key != NULL && !g_strstr_len (pair->value, -1, "\n")))
{
GKeyFileKeyValuePair *pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = NULL;
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index d3eed29841..80cdc93d8f 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -480,6 +480,16 @@ test_comments (void)
G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
g_assert_null (comment);
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3047");
+
+ /* check if we don't add a blank line above new group if last value of preceding
+ * group was added via g_key_file_set_value() and contains line breaks */
+ g_key_file_set_value (keyfile, "group4", "key1", "value1\n\n# group comment");
+ g_key_file_set_string (keyfile, "group5", "key1", "value1");
+ comment = g_key_file_get_comment (keyfile, "group5", NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
g_key_file_free (keyfile);
}
--
GitLab
From 51dfb3c229c0478b3615f486fbbc36de2586bd52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
Date: Thu, 13 Jul 2023 10:19:04 +0200
Subject: [PATCH 2/2] gkeyfile: Skip group comment when adding a new key to a
group
An oversight in 86b4b045: since the comment of group N now consists of
the last null-key values of group N-1, these keys must obviously be
skipped when adding a new non-null key to group N-1.
Closes: #3047
Fixes: 86b4b0453ea3a814167d4a5f7a4031d467543716
---
glib/gkeyfile.c | 19 ++++++++++++++-----
glib/tests/keyfile.c | 9 +++++++++
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 0e21ab4f14..4759051977 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -573,7 +573,8 @@ static void g_key_file_remove_key_value_pair_node (GKeyFile
static void g_key_file_add_key_value_pair (GKeyFile *key_file,
GKeyFileGroup *group,
- GKeyFileKeyValuePair *pair);
+ GKeyFileKeyValuePair *pair,
+ GList *sibling);
static void g_key_file_add_key (GKeyFile *key_file,
GKeyFileGroup *group,
const gchar *key,
@@ -1447,7 +1448,8 @@ g_key_file_parse_key_value_pair (GKeyFile *key_file,
pair->key = g_steal_pointer (&key);
pair->value = g_strndup (value_start, value_len);
- g_key_file_add_key_value_pair (key_file, key_file->current_group, pair);
+ g_key_file_add_key_value_pair (key_file, key_file->current_group, pair,
+ key_file->current_group->key_value_pairs);
}
g_free (key);
@@ -4034,10 +4036,11 @@ g_key_file_remove_group (GKeyFile *key_file,
static void
g_key_file_add_key_value_pair (GKeyFile *key_file,
GKeyFileGroup *group,
- GKeyFileKeyValuePair *pair)
+ GKeyFileKeyValuePair *pair,
+ GList *sibling)
{
g_hash_table_replace (group->lookup_map, pair->key, pair);
- group->key_value_pairs = g_list_prepend (group->key_value_pairs, pair);
+ group->key_value_pairs = g_list_insert_before (group->key_value_pairs, sibling, pair);
}
static void
@@ -4047,12 +4050,18 @@ g_key_file_add_key (GKeyFile *key_file,
const gchar *value)
{
GKeyFileKeyValuePair *pair;
+ GList *lp;
pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = g_strdup (key);
pair->value = g_strdup (value);
- g_key_file_add_key_value_pair (key_file, group, pair);
+ /* skip group comment */
+ lp = group->key_value_pairs;
+ while (lp != NULL && ((GKeyFileKeyValuePair *) lp->data)->key == NULL)
+ lp = lp->next;
+
+ g_key_file_add_key_value_pair (key_file, group, pair, lp);
}
/**
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index 80cdc93d8f..2c8eca4ebc 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -456,6 +456,15 @@ test_comments (void)
check_name ("group comment", comment, group_comment, 0);
g_free (comment);
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3047");
+
+ /* check if adding a key to group N preserve group comment of group N+1 */
+ g_key_file_set_string (keyfile, "group1", "key5", "value5");
+ comment = g_key_file_get_comment (keyfile, "group2", NULL, &error);
+ check_no_error (&error);
+ check_name ("group comment", comment, group_comment, 0);
+ g_free (comment);
+
g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/104");
/* check if comments above another group than the first one are properly removed */
--
GitLab

View File

@ -1,90 +0,0 @@
From 6e29fbec2dbc513e81252d0a83ab1e860c80c002 Mon Sep 17 00:00:00 2001
From: Harald van Dijk <harald@gigawatt.nl>
Date: Tue, 18 Jul 2023 18:26:43 +0100
Subject: [PATCH] Revert "build/gmodule-2.0.pc: Move compiler flags from Libs
to Cflags"
This reverts commit 004f48f4fc8adfccad51e2a7f4608c7fe3c28c7c.
Per the discussion on #3356, this change was prompted by a
misunderstanding of ldflags/link_args, and it resulted in various other
packages using glib no longer getting symbols exported. This commit
restores the glib 2.76 behaviour.
---
gio/tests/meson.build | 2 +-
gmodule/meson.build | 6 ++----
meson.build | 10 +++++-----
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 8d9c87c20c..1a0edad1f6 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -774,7 +774,7 @@ if not meson.is_cross_build()
resource_plugin += shared_module('resourceplugin',
sources: ['resourceplugin.c', plugin_resources_c],
- c_args : export_dynamic_cflags,
+ link_args : export_dynamic_ldflags,
dependencies : common_gio_tests_deps,
install_dir : installed_tests_execdir,
install_tag : 'tests',
diff --git a/gmodule/meson.build b/gmodule/meson.build
index f7b41536e3..da4d06cfb5 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -115,24 +115,22 @@ pkg.generate(libgmodule,
description : 'Dynamic module loader for GLib',
)
-pkg.generate(libraries : [libgmodule],
+pkg.generate(libraries : [libgmodule, export_dynamic_ldflags],
requires : ['glib-2.0'],
version : glib_version,
variables : [supported_var],
install_dir : glib_pkgconfigreldir,
filebase : 'gmodule-export-2.0',
- extra_cflags : export_dynamic_cflags,
name : 'GModule',
description : 'Dynamic module loader for GLib',
)
-pkg.generate(libraries : [libgmodule],
+pkg.generate(libraries : [libgmodule, export_dynamic_ldflags],
requires : ['glib-2.0'],
version : glib_version,
variables : [supported_var],
install_dir : glib_pkgconfigreldir,
filebase : 'gmodule-2.0',
- extra_cflags : export_dynamic_cflags,
name : 'GModule',
description : 'Dynamic module loader for GLib',
)
diff --git a/meson.build b/meson.build
index c7b5346260..3588dbe117 100644
--- a/meson.build
+++ b/meson.build
@@ -2328,15 +2328,15 @@ if host_system == 'windows'
# Autotools explicitly removed --Wl,--export-all-symbols from windows builds,
# with no explanation. Do the same here for now but this could be revisited if
# if causes issues.
- export_dynamic_cflags = []
+ export_dynamic_ldflags = []
elif host_system == 'cygwin'
- export_dynamic_cflags = ['-Wl,--export-all-symbols']
+ export_dynamic_ldflags = ['-Wl,--export-all-symbols']
elif host_system in ['darwin', 'ios']
- export_dynamic_cflags = []
+ export_dynamic_ldflags = []
elif host_system == 'sunos'
- export_dynamic_cflags = []
+ export_dynamic_ldflags = []
else
- export_dynamic_cflags = ['-Wl,--export-dynamic']
+ export_dynamic_ldflags = ['-Wl,--export-dynamic']
endif
win32_cflags = []
--
GitLab

View File

@ -1,5 +1,5 @@
Name: glib2
Version: 2.77.0
Version: 2.77.1
Release: %autorelease
Summary: A library of handy utility functions
@ -11,21 +11,11 @@ Source0: https://download.gnome.org/sources/glib/2.77/glib-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1630260
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/903
Patch0: gnutls-hmac.patch
# Avoid making anaconda crash
# https://gitlab.gnome.org/GNOME/glib/-/issues/3054
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3501
Patch1: 0001-gmain-Add-a-missing-return-on-error-path-in-g_main_c.patch
# recent close_range() changes break CircleCI and GitHub actions -- we can remove this when
# the baremetal Docker is updated there i.e. lets be a little bit pragmatic...
Patch2: gspawn-eperm.patch
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3504
Patch3: fix-missing-exported-symbols.patch
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3498
Patch4: 3498.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gettext

View File

@ -1 +1 @@
SHA512 (glib-2.77.0.tar.xz) = 0e2f327bcaa71d3a6b495272c97ff762726261e2010e4db91c6538ec5013060949dcba5ddadceded4f7bce079c5d1823e49ca0e3a041f7b0b46d79783e005343
SHA512 (glib-2.77.1.tar.xz) = 0f32eb7dcc652a727331226324225864212e14d0b1adac4493eb92f34c562cabd50cf8a602dae1b877e7adb73e038d2cc1e8d641e71eab77497990af4afb4906