Compare commits

...

5 Commits
master ... f18

Author SHA1 Message Date
Richard Hughes
56b65dc725 Update to 2.34.3 2013-03-04 15:21:50 +00:00
Ray Strode
7d2554d777 - Fix dconf-service crasher
Resolves: #789824
2013-01-18 17:02:43 -05:00
Kalev Lember
7114b81f5e Update to 2.34.2 2012-11-12 19:34:21 +01:00
Kalev Lember
19199a4216 Update to 2.34.1 2012-10-16 15:01:30 +02:00
Colin Walters
fc5f7e2caf Fix multilib -devel installation issues
- Resolves: #718404
2012-10-01 19:45:12 -04:00
4 changed files with 177 additions and 8 deletions

56
codegen-in-datadir.patch Normal file
View File

@ -0,0 +1,56 @@
From 24af7308b1268f1b4a6cae74ce68ee283bcb2a62 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 27 Sep 2012 20:11:27 -0400
Subject: [PATCH] codegen: Install Python files in $(datadir)/glib-2.0, rather
than $(libdir)
These files are actually architecture-indepdendent; using $(libdir)
for them means that /usr/bin/gdbus-codegen varies between
architectures, which is problematic for (mis)uses of multilib.
See https://bugzilla.redhat.com/show_bug.cgi?id=718404
https://bugzilla.gnome.org/show_bug.cgi?id=685012
---
gio/gdbus-2.0/codegen/Makefile.am | 4 ++--
gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gio/gdbus-2.0/codegen/Makefile.am b/gio/gdbus-2.0/codegen/Makefile.am
index 39349ce..5111487 100644
--- a/gio/gdbus-2.0/codegen/Makefile.am
+++ b/gio/gdbus-2.0/codegen/Makefile.am
@@ -5,7 +5,7 @@ bin_SCRIPTS =
CLEANFILES =
EXTRA_DIST =
-codegendir = $(libdir)/gdbus-2.0/codegen
+codegendir = $(datadir)/glib-2.0/codegen
codegen_PYTHON = \
__init__.py \
codegen.py \
@@ -24,7 +24,7 @@ CLEANFILES += gdbus-codegen
EXTRA_DIST += gdbus-codegen.in
gdbus-codegen: gdbus-codegen.in Makefile $(codegen_PYTHON)
- $(AM_V_GEN) sed -e 's,@libdir\@,$(libdir),' -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 217c755..253d151 100644
--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -33,7 +33,7 @@ elif os.name == 'nt':
# Makes gdbus-codegen 'relocatable' at runtime on Windows.
path = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gdbus-2.0')
else:
- path = os.path.join('@libdir@', 'gdbus-2.0')
+ path = os.path.join('@datadir@', 'glib-2.0')
sys.path.insert(0, os.path.abspath(path))
from codegen import codegen_main
--
1.7.11.4

62
fix-dconf-service.patch Normal file
View File

@ -0,0 +1,62 @@
From 998c6e65cf18aee626b9982347c29b4b09f2c097 Mon Sep 17 00:00:00 2001
From: Ryan Lortie <desrt@desrt.ca>
Date: Fri, 18 Jan 2013 21:11:20 +0000
Subject: GVariant: fix normal-form checking for tuples
GVariant has the concept of fixed-sized types (ie: types for which all
values of the type will have the same size). Examples are booleans,
integers, doubles, etc. Tuples containing only these types are also
fixed size.
When GVariant is trying to deal with a fixed-sized value for which it
doesn't have a sufficient backing store (eg: the case where a
fixed-sized value was created with g_variant_new_data() with an
incorrect number of bytes) it denotes this by setting the size of the
value to the correct fixed size but using a NULL data pointer.
This is well-documented in several code comments and also in the public
API documentation for g_variant_get_data() which describes the situation
number which NULL could be returned.
The decision to deal with this case in this way was changed at the last
minute around the time that GVariant was merged -- originally we had an
elaborate setup involving allocating an internal buffer of sufficient
size to be shared between all invalid values.
Unfortunately, when making this change a small detail was missed.
gvs_tuple_get_child() (the function responsible for deserialising
tuples) was updated to properly check for this case (and it contains a
comment about why it must). gvs_tuple_is_normal() (the function
responsible for verifying if a tuple is in normal form) was not.
We add the check now.
Note that this problem does not exist with any other container type
because tuples are the only container capable of being fixed-sized. All
other container types (arrays, maybes, variants) can contain a variable
number of items or items of variable types (note: we consider dictionary
entries to be two-tuples). The code for validating non-container values
also contains a check for the case of NULL data.
The problem also does not occur in the only other function dealing with
serialised tuples: gvs_tuple_n_children(). Whereas other container
types would have to inspect the serialised data to determine the number
of children, for tuples it can be determined directly from the type.
---
diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
index 4ee6c72..cc5cc7b 100644
--- a/glib/gvariant-serialiser.c
+++ b/glib/gvariant-serialiser.c
@@ -1023,6 +1023,10 @@ gvs_tuple_is_normal (GVariantSerialised value)
gsize offset;
gsize i;
+ /* as per the comment in gvs_tuple_get_child() */
+ if G_UNLIKELY (value.data == NULL && value.size != 0)
+ return FALSE;
+
offset_size = gvs_get_offset_size (value.size);
length = g_variant_type_info_n_members (value.type_info);
offset_ptr = value.size;
--
cgit v0.9.0.2

View File

@ -1,6 +1,6 @@
Summary: A library of handy utility functions
Name: glib2
Version: 2.34.0
Version: 2.34.3
Release: 1%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
@ -8,6 +8,9 @@ URL: http://www.gtk.org
#VCS: git:git://git.gnome.org/glib
Source: http://download.gnome.org/sources/glib/2.34/glib-%{version}.tar.xz
Patch0: codegen-in-datadir.patch
Patch1: fix-dconf-service.patch
BuildRequires: pkgconfig
BuildRequires: gamin-devel
BuildRequires: gettext
@ -45,10 +48,24 @@ Obsoletes: glib2-static < 2.32.1-2
%description devel
The glib2-devel package includes the header files for the GLib library.
%package doc
Summary: A library of handy utility functions
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
The glib2-doc package includes documentation for the GLib library.
%prep
%setup -q -n glib-%{version}
%patch0 -p1
%patch1 -p1
%build
# Rerun autotools for the above patch
rm -f configure
# Support builds of both git snapshots and tarballs packed with autogoo
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
%configure $CONFIGFLAGS \
@ -59,13 +76,27 @@ The glib2-devel package includes the header files for the GLib library.
make %{?_smp_mflags}
%install
make install DESTDIR=$RPM_BUILD_ROOT
# Use -p to preserve timestamps on .py files to ensure
# they're not recompiled with different timestamps
# to help multilib: https://bugzilla.redhat.com/show_bug.cgi?id=718404
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p -c"
# Also since this is a generated .py file, set it to a known timestamp,
# otherwise it will vary by build time, and thus break multilib -devel
# installs.
touch -r gio/gdbus-2.0/codegen/config.py.in $RPM_BUILD_ROOT/%{_datadir}/glib-2.0/codegen/config.py
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/*.so
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/gio/modules/*.{a,la}
rm -f $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb/*.{pyc,pyo}
rm -f $RPM_BUILD_ROOT%{_libdir}/gdbus-codegen/*.{pyc,pyo}
rm -f $RPM_BUILD_ROOT%{_datadir}/glib-2.0/codegen/*.{pyc,pyo}
# Multilib fixes for systemtap tapsets; see
# https://bugzilla.redhat.com/718404
for f in $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/*.stp; do
(dn=$(dirname ${f}); bn=$(basename ${f});
mv ${f} ${dn}/%{__isa_bits}-${bn})
done
mv $RPM_BUILD_ROOT%{_bindir}/gio-querymodules $RPM_BUILD_ROOT%{_bindir}/gio-querymodules-%{__isa_bits}
@ -124,8 +155,6 @@ gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules
%{_datadir}/glib-2.0/gettext
%{_datadir}/glib-2.0/schemas/gschema.dtd
%{_datadir}/bash-completion/completions/gresource
# %{_datadir}/glib-2.0/gdb/*.pyo
# %{_datadir}/glib-2.0/gdb/*.pyc
%{_bindir}/glib-genmarshal
%{_bindir}/glib-gettextize
%{_bindir}/glib-mkenums
@ -134,9 +163,8 @@ gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules
%{_bindir}/gdbus-codegen
%{_bindir}/glib-compile-resources
%{_bindir}/gresource
%{_libdir}/gdbus-2.0/codegen
%{_datadir}/glib-2.0/codegen
%attr (0755, root, root) %{_bindir}/gtester-report
%doc %{_datadir}/gtk-doc/html/*
%doc %{_mandir}/man1/glib-genmarshal.1.gz
%doc %{_mandir}/man1/glib-gettextize.1.gz
%doc %{_mandir}/man1/glib-mkenums.1.gz
@ -150,7 +178,30 @@ gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules
%{_datadir}/gdb/auto-load%{_libdir}/libgobject-2.0.so.*-gdb.py*
%{_datadir}/systemtap/tapset/*.stp
%files doc
%doc %{_datadir}/gtk-doc/html/*
%changelog
* Mon Mar 04 2013 Richard Hughes <rhughes@redhat.com> - 2.34.3-1
- Update to 2.34.3
* Fri Jan 18 2013 Ray Strode <rstrode@redhat.com> 2.34.2-2
- Fix dconf-service crasher
Resolves: #789824
* Mon Nov 12 2012 Kalev Lember <kalevlember@gmail.com> - 2.34.2-1
- Update to 2.34.2
* Tue Oct 16 2012 Kalev Lember <kalevlember@gmail.com> - 2.34.1-1
- Update to 2.34.1
* Thu Sep 27 2012 Colin Walters <walters@verbum.org> - 2.34.0-2
- Use install -p to preserve timestamps on .py files
- Rename systemtap tapsets with architecture-specific prefix
- Pull upstream patch to avoid conflict on /usr/bin/gdbus-codegen
- Split gtk-doc off into -doc package to avoid multilib conflicts
- Resolves: #718404
* Mon Sep 24 2012 Kalev Lember <kalevlember@gmail.com> - 2.34.0-1
- Update to 2.34.0

View File

@ -1 +1 @@
d80aef668f981b5dcf157633d13081c0 glib-2.34.0.tar.xz
a4ca31e258273c3761e3de2edd607661 glib-2.34.3.tar.xz