Browse Source

glib2 package update

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 7 years ago
parent
commit
ec59ab6ab7
  1. 57
      SOURCES/0001-Build-with-old-libmount-too.patch
  2. 43
      SOURCES/0001-gdbus-codegen-Call-abspath-earlier.patch
  3. 53
      SOURCES/0001-gdbus-codegen-Don-t-assume-bindir-and-datadir-share-.patch
  4. 50
      SOURCES/0001-gio-fix-race-condition-in-GDBusObjectManagerClient.patch
  5. 27
      SOURCES/add-back-g-memmove.patch
  6. 25
      SOURCES/revert-g-source-remove-critical.patch
  7. 1441
      SPECS/glib2.spec

57
SOURCES/0001-Build-with-old-libmount-too.patch

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
From a78c36d7f4e0e3038005305efd84f66a7d157f20 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Wed, 1 Nov 2017 10:21:34 -0400
Subject: [PATCH] Build with old libmount too

Downstream: https://bugzilla.redhat.com/show_bug.cgi?id=1508056

This is an easy change, and lets us build with RHEL7's libmount.

See also https://github.com/ostreedev/ostree/commit/cee57a0268334d51cd312c6cdcf367bedfd3e30d
---
configure.ac | 6 ++++--
gio/gunixmounts.c | 4 ++--
2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index fcbb62e7d..0beb3898c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1760,8 +1760,10 @@ AS_IF([ test $have_libmount = maybe ], [
glib_save_LIBS=$LIBS
AC_CHECK_HEADER([libmount/libmount.h], [:], [have_libmount=no])
- # Check for a recent enough libmount
- AC_CHECK_LIB([mount], [mnt_unref_table], [:], [have_libmount=no])
+ # We used to check for mnt_unref_table(), but now for compat with
+ # e.g. RHEL7 just use mnt_free_table(). Let's keep this check
+ # anyways.
+ AC_CHECK_LIB([mount], [mnt_free_table], [:], [have_libmount=no])
LIBS=$glib_save_LIBS
if test $have_libmount != no; then
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
index ef7899dff..a3c40f5c1 100644
--- a/gio/gunixmounts.c
+++ b/gio/gunixmounts.c
@@ -505,7 +505,7 @@ _g_get_unix_mounts (void)
mnt_free_iter (iter);
out:
- mnt_unref_table (table);
+ mnt_free_table (table);
return g_list_reverse (return_list);
}
@@ -1029,7 +1029,7 @@ _g_get_unix_mount_points (void)
mnt_free_iter (iter);
out:
- mnt_unref_table (table);
+ mnt_free_table (table);
return g_list_reverse (return_list);
}
--
2.13.6

43
SOURCES/0001-gdbus-codegen-Call-abspath-earlier.patch

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
From 9d80b0bca3f90e2489aac8e7765081c47e8a66f5 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Tue, 31 Oct 2017 12:51:09 -0400
Subject: [PATCH] gdbus-codegen: Call abspath() earlier

The previous change from https://bugzilla.gnome.org/show_bug.cgi?id=786785
didn't actually work (for me at least) in the `/bin/gdbus-codegen` case
as the relative `/bin/../share` path works, but then `os.path.abspath()`
breaks it (as it's not doing `realpath()`, and let's not go there).

Fix this by doing the `abspath` first.

Downstream: https://bugzilla.redhat.com/show_bug.cgi?id=1507661
---
gio/gdbus-2.0/codegen/gdbus-codegen.in | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in
index e3f4f00f8..67d367543 100755
--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -37,6 +37,9 @@ else:
# parent directory to the python path.
path = os.path.join(filedir, '..')
+# Canonicalize, then do further testing
+path = os.path.abspath(path)
+
# If the above path detection failed, use the hard-coded datadir. This can
# happen when, for instance, bindir and datadir are not in the same prefix or
# on Windows where we cannot make any guarantees about the directory structure.
@@ -46,7 +49,7 @@ else:
if not os.path.isfile(os.path.join(path, 'codegen', 'codegen_main.py')):
path = os.path.join('@DATADIR@', 'glib-2.0')
-sys.path.insert(0, os.path.abspath(path))
+sys.path.insert(0, path)
from codegen import codegen_main
sys.exit(codegen_main.codegen_main())
--
2.13.6

53
SOURCES/0001-gdbus-codegen-Don-t-assume-bindir-and-datadir-share-.patch

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
From b9f2ea423526735f7fe7371fb1339eae91a618c2 Mon Sep 17 00:00:00 2001
From: Nirbheek Chauhan <nirbheek@centricular.com>
Date: Tue, 12 Sep 2017 15:46:57 +0530
Subject: [PATCH] gdbus-codegen: Don't assume bindir and datadir share prefix

This assumption breaks when, for instance:

* Called as /bin/gdbus-codegen
* Installed on Windows in a directory that is not `bin/`

For such cases, we cannot make any assumptions about the directory
structure, and must hard-code the datadir.

https://bugzilla.gnome.org/show_bug.cgi?id=786785
---
gio/gdbus-2.0/codegen/Makefile.am | 2 +-
gio/gdbus-2.0/codegen/gdbus-codegen.in | 9 +++++++++
gio/gdbus-2.0/codegen/meson.build | 1 +
3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gio/gdbus-2.0/codegen/Makefile.am b/gio/gdbus-2.0/codegen/Makefile.am
index b3fb2c292..b4e500cb0 100644
--- a/gio/gdbus-2.0/codegen/Makefile.am
+++ b/gio/gdbus-2.0/codegen/Makefile.am
@@ -21,7 +21,7 @@ CLEANFILES += gdbus-codegen
EXTRA_DIST += gdbus-codegen.in
gdbus-codegen: gdbus-codegen.in Makefile $(codegen_PYTHON)
- $(AM_V_GEN) sed -e 's,@datadir\@,$(datadir),' -e 's,@PYTHON\@,$(PYTHON),' $< > $@.tmp && mv $@.tmp $@
+ $(AM_V_GEN) sed -e 's,@DATADIR\@,$(datadir),' -e 's,@PYTHON\@,$(PYTHON),' $< > $@.tmp && mv $@.tmp $@
@chmod a+x $@
clean-local:
diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in
index 805098188..e3f4f00f8 100644
--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -37,6 +37,15 @@ else:
# parent directory to the python path.
path = os.path.join(filedir, '..')
+# If the above path detection failed, use the hard-coded datadir. This can
+# happen when, for instance, bindir and datadir are not in the same prefix or
+# on Windows where we cannot make any guarantees about the directory structure.
+#
+# In these cases our installation cannot be relocatable, but at least we should
+# be able to find the codegen module.
+if not os.path.isfile(os.path.join(path, 'codegen', 'codegen_main.py')):
+ path = os.path.join('@DATADIR@', 'glib-2.0')
+
sys.path.insert(0, os.path.abspath(path))
from codegen import codegen_main

50
SOURCES/0001-gio-fix-race-condition-in-GDBusObjectManagerClient.patch

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
From aeecd81dd13e4d8ef609149f82770ad06a8fccdb Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Sat, 30 Sep 2017 11:26:29 +0200
Subject: [PATCH] gio: fix race condition in GDBusObjectManagerClient

priv->map_object_path_to_object_proxy must be protected to avoid
concurrent access by multiple threads. Move the hash table insertion
into the critical section.

https://bugzilla.gnome.org/show_bug.cgi?id=788368
---
gio/gdbusobjectmanagerclient.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/gio/gdbusobjectmanagerclient.c b/gio/gdbusobjectmanagerclient.c
index 1c00797cd165..08c94d5068ef 100644
--- a/gio/gdbusobjectmanagerclient.c
+++ b/gio/gdbusobjectmanagerclient.c
@@ -1542,6 +1542,13 @@ add_interfaces (GDBusObjectManagerClient *manager,
g_variant_unref (properties);
}
+ if (added)
+ {
+ g_hash_table_insert (manager->priv->map_object_path_to_object_proxy,
+ g_strdup (object_path),
+ op);
+ }
+
g_mutex_unlock (&manager->priv->lock);
/* now that we don't hold the lock any more, emit signals */
@@ -1555,12 +1562,8 @@ add_interfaces (GDBusObjectManagerClient *manager,
g_list_free (interface_added_signals);
if (added)
- {
- g_hash_table_insert (manager->priv->map_object_path_to_object_proxy,
- g_strdup (object_path),
- op);
- g_signal_emit_by_name (manager, "object-added", op);
- }
+ g_signal_emit_by_name (manager, "object-added", op);
+
g_object_unref (manager);
g_object_unref (op);
}
--
2.14.2

27
SOURCES/add-back-g-memmove.patch

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
From 9ce4aab38747c80d043de5f907c7b514e2547df7 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Sat, 21 Mar 2015 11:18:05 -0400
Subject: [PATCH] Add back g_memmove

---
configure.ac | 2 --
1 file changed, 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 67a766f..cdf800a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2928,10 +2928,8 @@ _______EOF
cat >>$outfile <<_______EOF
-#ifndef G_DISABLE_DEPRECATED
#define g_ATEXIT(proc) (atexit (proc))
#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
-#endif
$glib_defines
$glib_os
$glib_static_compilation
--
1.8.3.1

25
SOURCES/revert-g-source-remove-critical.patch

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
From 7b125e2e70c9de222feccae4e8931f943c8ef0cc Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Sat, 21 Mar 2015 11:16:29 -0400
Subject: [PATCH] Revert "gmain: Warn when g_source_remove() fails"

---
glib/gmain.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/glib/gmain.c b/glib/gmain.c
index 30fac70..c5f5218 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -2237,8 +2237,6 @@ g_source_remove (guint tag)
source = g_main_context_find_source_by_id (NULL, tag);
if (source)
g_source_destroy (source);
- else
- g_critical ("Source ID %u was not found when attempting to remove it", tag);
return source != NULL;
}
--
1.8.3.1

1441
SPECS/glib2.spec

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save