Accepting request 1039673 from GNOME:Next
New stable release OBS-URL: https://build.opensuse.org/request/show/1039673 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/glib2?expand=0&rev=499
This commit is contained in:
parent
fa99da4099
commit
36bafaff06
@ -1,30 +0,0 @@
|
|||||||
From efb43ef813d90dca48aa01880f097a2161005db1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
|
|
||||||
Date: Sun, 23 Oct 2022 17:10:59 +0200
|
|
||||||
Subject: [PATCH] gio/gdesktopappinfo: Free the wrapped argv array on launch
|
|
||||||
failure
|
|
||||||
|
|
||||||
We create an array that we never free, ensure this is the case.
|
|
||||||
The previous commit gives CI a chance to check this with valgrind job.
|
|
||||||
|
|
||||||
Found as part of another review:
|
|
||||||
- https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2839#note_1524922
|
|
||||||
---
|
|
||||||
gio/gdesktopappinfo.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
|
|
||||||
index f8cccca025..c29c309478 100644
|
|
||||||
--- a/gio/gdesktopappinfo.c
|
|
||||||
+++ b/gio/gdesktopappinfo.c
|
|
||||||
@@ -2963,6 +2963,7 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo *info,
|
|
||||||
|
|
||||||
g_free (sn_id);
|
|
||||||
g_list_free (launched_uris);
|
|
||||||
+ g_clear_pointer (&wrapped_argv, g_strfreev);
|
|
||||||
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
118
ca905744.patch
118
ca905744.patch
@ -1,118 +0,0 @@
|
|||||||
From ca905744dffb844663b5bd6b42f33e2d44f9b4cd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
|
||||||
Date: Fri, 28 Oct 2022 11:21:04 -0400
|
|
||||||
Subject: [PATCH] Revert "Handling collision between standard i/o file
|
|
||||||
descriptors and newly created ones"
|
|
||||||
|
|
||||||
g_unix_open_pipe tries to avoid the standard io fd range
|
|
||||||
when getting pipe fds. This turns out to be a bad idea because
|
|
||||||
certain buggy programs rely on it using that range.
|
|
||||||
|
|
||||||
This reverts commit d9ba6150909818beb05573f54f26232063492c5b
|
|
||||||
and adds a test to ensure we don't inadvertently do it again later.
|
|
||||||
|
|
||||||
Closes: https://gitlab.gnome.org/GNOME/glib/-/issues/2795
|
|
||||||
---
|
|
||||||
glib/glib-unix.c | 24 ------------------------
|
|
||||||
glib/tests/unix.c | 29 +++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 29 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/glib/glib-unix.c b/glib/glib-unix.c
|
|
||||||
index 4710c51168..bc152d7663 100644
|
|
||||||
--- a/glib/glib-unix.c
|
|
||||||
+++ b/glib/glib-unix.c
|
|
||||||
@@ -108,17 +108,6 @@ g_unix_open_pipe (int *fds,
|
|
||||||
ecode = pipe2 (fds, pipe2_flags);
|
|
||||||
if (ecode == -1 && errno != ENOSYS)
|
|
||||||
return g_unix_set_error_from_errno (error, errno);
|
|
||||||
- /* Don't reassign pipes to stdin, stdout, stderr if closed meanwhile */
|
|
||||||
- else if (fds[0] < 3 || fds[1] < 3)
|
|
||||||
- {
|
|
||||||
- int old_fds[2] = { fds[0], fds[1] };
|
|
||||||
- gboolean result = g_unix_open_pipe (fds, flags, error);
|
|
||||||
- close (old_fds[0]);
|
|
||||||
- close (old_fds[1]);
|
|
||||||
-
|
|
||||||
- if (!result)
|
|
||||||
- g_unix_set_error_from_errno (error, errno);
|
|
||||||
- }
|
|
||||||
else if (ecode == 0)
|
|
||||||
return TRUE;
|
|
||||||
/* Fall through on -ENOSYS, we must be running on an old kernel */
|
|
||||||
@@ -127,19 +116,6 @@ g_unix_open_pipe (int *fds,
|
|
||||||
ecode = pipe (fds);
|
|
||||||
if (ecode == -1)
|
|
||||||
return g_unix_set_error_from_errno (error, errno);
|
|
||||||
- /* Don't reassign pipes to stdin, stdout, stderr if closed meanwhile */
|
|
||||||
- else if (fds[0] < 3 || fds[1] < 3)
|
|
||||||
- {
|
|
||||||
- int old_fds[2] = { fds[0], fds[1] };
|
|
||||||
- gboolean result = g_unix_open_pipe (fds, flags, error);
|
|
||||||
- close (old_fds[0]);
|
|
||||||
- close (old_fds[1]);
|
|
||||||
-
|
|
||||||
- if (!result)
|
|
||||||
- g_unix_set_error_from_errno (error, errno);
|
|
||||||
-
|
|
||||||
- return result;
|
|
||||||
- }
|
|
||||||
|
|
||||||
if (flags == 0)
|
|
||||||
return TRUE;
|
|
||||||
diff --git a/glib/tests/unix.c b/glib/tests/unix.c
|
|
||||||
index 2112cab6bf..5dde2b52cc 100644
|
|
||||||
--- a/glib/tests/unix.c
|
|
||||||
+++ b/glib/tests/unix.c
|
|
||||||
@@ -26,6 +26,7 @@
|
|
||||||
#include "glib-unix.h"
|
|
||||||
#include <string.h>
|
|
||||||
#include <pwd.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
|
|
||||||
static void
|
|
||||||
test_pipe (void)
|
|
||||||
@@ -52,6 +53,33 @@ test_pipe (void)
|
|
||||||
g_assert (g_str_has_prefix (buf, "hello"));
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+test_pipe_stdio_overwrite (void)
|
|
||||||
+{
|
|
||||||
+ GError *error = NULL;
|
|
||||||
+ int pipefd[2], ret;
|
|
||||||
+ gboolean res;
|
|
||||||
+ int stderr_fd;
|
|
||||||
+
|
|
||||||
+ stderr_fd = dup (STDERR_FILENO);
|
|
||||||
+ g_assert_cmpint (stderr_fd, >, 0);
|
|
||||||
+ close (STDERR_FILENO);
|
|
||||||
+
|
|
||||||
+ res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
|
|
||||||
+ g_assert (res);
|
|
||||||
+ g_assert_no_error (error);
|
|
||||||
+
|
|
||||||
+ g_assert_cmpint (pipefd[0], ==, STDERR_FILENO);
|
|
||||||
+
|
|
||||||
+ close (pipefd[0]);
|
|
||||||
+ close (pipefd[1]);
|
|
||||||
+
|
|
||||||
+ ret = dup2 (stderr_fd, STDERR_FILENO);
|
|
||||||
+ g_assert_cmpint (ret, >=, 0);
|
|
||||||
+
|
|
||||||
+ close (stderr_fd);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
test_error (void)
|
|
||||||
{
|
|
||||||
@@ -337,6 +365,7 @@ main (int argc,
|
|
||||||
g_test_init (&argc, &argv, NULL);
|
|
||||||
|
|
||||||
g_test_add_func ("/glib-unix/pipe", test_pipe);
|
|
||||||
+ g_test_add_func ("/glib-unix/pipe-stdio-overwrite", test_pipe_stdio_overwrite);
|
|
||||||
g_test_add_func ("/glib-unix/error", test_error);
|
|
||||||
g_test_add_func ("/glib-unix/nonblocking", test_nonblocking);
|
|
||||||
g_test_add_func ("/glib-unix/sighup", test_sighup);
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:0ab981618d1db47845e56417b0d7c123f81a3427b2b9c93f5a46ff5bbb964964
|
|
||||||
size 5189452
|
|
3
glib-2.74.3.tar.xz
Normal file
3
glib-2.74.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e9bc41ecd9690d9bc6a970cc7380119b828e5b6a4b16c393c638b3dc2b87cbcb
|
||||||
|
size 5181732
|
@ -1,8 +1,8 @@
|
|||||||
Index: glib-2.71.0/glib/gkeyfile.c
|
Index: glib-2.74.3/glib/gkeyfile.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glib-2.71.0.orig/glib/gkeyfile.c
|
--- glib-2.74.3.orig/glib/gkeyfile.c
|
||||||
+++ glib-2.71.0/glib/gkeyfile.c
|
+++ glib-2.74.3/glib/gkeyfile.c
|
||||||
@@ -514,6 +514,7 @@ struct _GKeyFile
|
@@ -516,6 +516,7 @@ struct _GKeyFile
|
||||||
gboolean checked_locales; /* TRUE if @locales has been initialised */
|
gboolean checked_locales; /* TRUE if @locales has been initialised */
|
||||||
gchar **locales; /* (nullable) */
|
gchar **locales; /* (nullable) */
|
||||||
gchar *gettext_domain;
|
gchar *gettext_domain;
|
||||||
@ -10,7 +10,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
|
|
||||||
gint ref_count; /* (atomic) */
|
gint ref_count; /* (atomic) */
|
||||||
};
|
};
|
||||||
@@ -641,6 +642,7 @@ g_key_file_init (GKeyFile *key_file)
|
@@ -643,6 +644,7 @@ g_key_file_init (GKeyFile *key_file)
|
||||||
key_file->list_separator = ';';
|
key_file->list_separator = ';';
|
||||||
key_file->flags = 0;
|
key_file->flags = 0;
|
||||||
key_file->gettext_domain = NULL;
|
key_file->gettext_domain = NULL;
|
||||||
@ -18,7 +18,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -667,6 +669,12 @@ g_key_file_clear (GKeyFile *key_file)
|
@@ -669,6 +671,12 @@ g_key_file_clear (GKeyFile *key_file)
|
||||||
key_file->gettext_domain = NULL;
|
key_file->gettext_domain = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
tmp = key_file->groups;
|
tmp = key_file->groups;
|
||||||
while (tmp != NULL)
|
while (tmp != NULL)
|
||||||
{
|
{
|
||||||
@@ -811,6 +819,39 @@ find_file_in_data_dirs (const gchar *f
|
@@ -813,6 +821,39 @@ find_file_in_data_dirs (const gchar *f
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
static gboolean
|
static gboolean
|
||||||
g_key_file_load_from_fd (GKeyFile *key_file,
|
g_key_file_load_from_fd (GKeyFile *key_file,
|
||||||
gint fd,
|
gint fd,
|
||||||
@@ -892,6 +933,9 @@ g_key_file_load_from_fd (GKeyFile
|
@@ -894,6 +935,9 @@ g_key_file_load_from_fd (GKeyFile
|
||||||
G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
|
G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -948,6 +992,8 @@ g_key_file_load_from_file (GKeyFile
|
@@ -950,6 +994,8 @@ g_key_file_load_from_file (GKeyFile
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1009,6 +1055,9 @@ g_key_file_load_from_data (GKeyFile
|
@@ -1011,6 +1057,9 @@ g_key_file_load_from_data (GKeyFile
|
||||||
G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
|
G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1113,6 +1162,9 @@ g_key_file_load_from_dirs (GKeyFile
|
@@ -1115,6 +1164,9 @@ g_key_file_load_from_dirs (GKeyFile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
if (found_file && full_path)
|
if (found_file && full_path)
|
||||||
*full_path = output_path;
|
*full_path = output_path;
|
||||||
else
|
else
|
||||||
@@ -2320,14 +2372,40 @@ g_key_file_get_locale_string (GKeyFile
|
@@ -2322,14 +2374,40 @@ g_key_file_get_locale_string (GKeyFile
|
||||||
{
|
{
|
||||||
gboolean codeset_set;
|
gboolean codeset_set;
|
||||||
const gchar *translated;
|
const gchar *translated;
|
||||||
@ -156,11 +156,11 @@ Index: glib-2.71.0/glib/gkeyfile.c
|
|||||||
|
|
||||||
g_free (orig_value);
|
g_free (orig_value);
|
||||||
|
|
||||||
Index: glib-2.71.0/glib/gkeyfile.h
|
Index: glib-2.74.3/glib/gkeyfile.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glib-2.71.0.orig/glib/gkeyfile.h
|
--- glib-2.74.3.orig/glib/gkeyfile.h
|
||||||
+++ glib-2.71.0/glib/gkeyfile.h
|
+++ glib-2.74.3/glib/gkeyfile.h
|
||||||
@@ -320,7 +320,7 @@ gboolean g_key_file_remove_group
|
@@ -322,7 +322,7 @@ gboolean g_key_file_remove_group
|
||||||
#define G_KEY_FILE_DESKTOP_KEY_URL "URL"
|
#define G_KEY_FILE_DESKTOP_KEY_URL "URL"
|
||||||
#define G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE "DBusActivatable"
|
#define G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE "DBusActivatable"
|
||||||
#define G_KEY_FILE_DESKTOP_KEY_ACTIONS "Actions"
|
#define G_KEY_FILE_DESKTOP_KEY_ACTIONS "Actions"
|
||||||
|
@ -1,3 +1,47 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 2 21:18:15 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- Update to version 2.74.3:
|
||||||
|
+ Fix regression in type checking `g_str_equal()` from C++
|
||||||
|
projects (glgo#GNOME/GLib#2820).
|
||||||
|
+ Bugs fixed:
|
||||||
|
- glgo#GNOME/GLib#2820 g_str_equal: New macro version breaks
|
||||||
|
compilation in C++ projects
|
||||||
|
- glgo#GNOME/GLib!3096 Backport !3094 “gstrfuncs: Fix
|
||||||
|
regression in C++ types accepted by g_str_equal()” to
|
||||||
|
glib-2-74
|
||||||
|
- Changes from version 2.74.2:
|
||||||
|
+ Fix GVariant type depths checks on text format variants.
|
||||||
|
+ Fix an obscure corner case with FD handling in g_spawn_*() when
|
||||||
|
a process has already closed the standard I/O FDs.
|
||||||
|
+ Fix regression in type checking on const arguments to
|
||||||
|
g_str_equal().
|
||||||
|
+ Bugs fixed: glgo#GNOME/GLib#2782 GVariant type depth not
|
||||||
|
checked on typedecls in text format variants.
|
||||||
|
glgo#GNOME/GLib#2795 [regression] gnome-keyring-daemon uses
|
||||||
|
100% CPU with glib-2.74.1.
|
||||||
|
glgo#GNOME/GLib#2799 Wrong GTask tag on error return path in
|
||||||
|
g_proxy_resolver_lookup_async().
|
||||||
|
glgo#GNOME/GLib#2809 g_str_equal switched to stricter API
|
||||||
|
(typing).
|
||||||
|
glgo#GNOME/GLib!3017 Backport !3008 “gio/gdesktopappinfo: Free
|
||||||
|
the wrapped argv array on launch failure” to glib-2-74.
|
||||||
|
glgo#GNOME/GLib!3038 Backport !3035 “portal: Fix broken header
|
||||||
|
guard” to glib-2-74.
|
||||||
|
glgo#GNOME/GLib!3039 Backport !3029 “Revert "Handling collision
|
||||||
|
between standard i/o file descriptors and newly created ones" ”
|
||||||
|
to glib-2-74.
|
||||||
|
glgo#GNOME/GLib!3046 Backport !3045 “gproxyresolver:
|
||||||
|
lookup_finish() should better parallel lookup_async()” to
|
||||||
|
glib-2-74.
|
||||||
|
glgo#GNOME/GLib!3063 Backport !3061 “gvariant-parser: Speed up
|
||||||
|
maybe_wrapper() by an order of magnitude” to glib-2-74.
|
||||||
|
glgo#GNOME/GLib!3084 Backport !3082 “gstrfuncs: Fix regression
|
||||||
|
in types accepted by g_str_equal()” to glib-2-74.
|
||||||
|
+ Updated translations.
|
||||||
|
- Drop ca905744.patch and a1151bc1.patch: Fixed upstream.
|
||||||
|
- Rebase patches with quilt.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 31 15:17:35 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
|
Mon Oct 31 15:17:35 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
%define libgthread libgthread-%{libver}
|
%define libgthread libgthread-%{libver}
|
||||||
%bcond_without systemtap
|
%bcond_without systemtap
|
||||||
Name: glib2%{psuffix}
|
Name: glib2%{psuffix}
|
||||||
Version: 2.74.1
|
Version: 2.74.3
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: General-Purpose Utility Library
|
Summary: General-Purpose Utility Library
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@ -58,10 +58,6 @@ Patch2: glib2-suppress-schema-deprecated-path-warning.patch
|
|||||||
Patch3: glib2-dbus-socket-path.patch
|
Patch3: glib2-dbus-socket-path.patch
|
||||||
# PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch olaf@aepfle.de -- Remove version string from files generated by gdbus-codegen
|
# PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch olaf@aepfle.de -- Remove version string from files generated by gdbus-codegen
|
||||||
Patch4: glib2-gdbus-codegen-version.patch
|
Patch4: glib2-gdbus-codegen-version.patch
|
||||||
# PATCH-FIX-UPSTREAM ca905744.patch dimstar@opensuse.org -- Revert "Handling collision between standard i/o file descriptors and newly created ones"
|
|
||||||
Patch5: https://gitlab.gnome.org/GNOME/glib/-/commit/ca905744.patch
|
|
||||||
# PATCH-FIX-UPSTREAM a1151bc1.patch -- gio/gdesktopappinfo: Free the wrapped argv array on launch failure
|
|
||||||
Patch6: https://gitlab.gnome.org/GNOME/glib/-/commit/a1151bc1.patch
|
|
||||||
|
|
||||||
BuildRequires: docbook-xsl-stylesheets
|
BuildRequires: docbook-xsl-stylesheets
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -265,8 +261,6 @@ the functionality of the installed glib2 package.
|
|||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE5} .
|
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE5} .
|
||||||
cp -a %{SOURCE4} gnome_defaults.conf
|
cp -a %{SOURCE4} gnome_defaults.conf
|
||||||
# replace /usr/bin/env shebangs
|
# replace /usr/bin/env shebangs
|
||||||
|
Loading…
Reference in New Issue
Block a user