diff options
6 files changed, 242 insertions, 5 deletions
diff --git a/main/gobject-introspection/0001-repository-Fix-g_irepository_get_c_prefix.patch b/main/gobject-introspection/0001-repository-Fix-g_irepository_get_c_prefix.patch new file mode 100644 index 000000000..e556ecfec --- /dev/null +++ b/main/gobject-introspection/0001-repository-Fix-g_irepository_get_c_prefix.patch @@ -0,0 +1,52 @@ +From e8b336cc0747b528263ec809d142f4803dcbdf35 Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Wed, 21 Sep 2011 13:13:45 -0400 +Subject: [PATCH 1/8] repository: Fix g_irepository_get_c_prefix() + +It was returning the wrong data. + +https://bugzilla.gnome.org/show_bug.cgi?id=659749 +--- + girepository/girepository.c | 2 +- + tests/repository/gitestrepo.c | 5 +++++ + 2 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/girepository/girepository.c b/girepository/girepository.c +index cc81107..b5cd4c7 100644 +--- a/girepository/girepository.c ++++ b/girepository/girepository.c +@@ -929,7 +929,7 @@ g_irepository_get_c_prefix (GIRepository *repository, + g_return_val_if_fail (typelib != NULL, NULL); + + header = (Header *) typelib->data; +- if (header->shared_library) ++ if (header->c_prefix) + return g_typelib_get_string (typelib, header->c_prefix); + else + return NULL; +diff --git a/tests/repository/gitestrepo.c b/tests/repository/gitestrepo.c +index cdaeb4c..05ea5d9 100644 +--- a/tests/repository/gitestrepo.c ++++ b/tests/repository/gitestrepo.c +@@ -46,6 +46,7 @@ main(int argc, char **argv) + GIBaseInfo *siginfo; + GIEnumInfo *errorinfo; + GType gtype; ++ const char *prefix; + + g_type_init (); + +@@ -55,6 +56,10 @@ main(int argc, char **argv) + if (!ret) + g_error ("%s", error->message); + ++ prefix = g_irepository_get_c_prefix (repo, "Gio"); ++ g_assert (prefix != NULL); ++ g_assert_cmpstr (prefix, ==, "G"); ++ + info = g_irepository_find_by_name (repo, "Gio", "Cancellable"); + g_assert (info != NULL); + g_assert (g_base_info_get_type (info) == GI_INFO_TYPE_OBJECT); +-- +1.7.7 + diff --git a/main/gobject-introspection/0002-Skip-analysis-of-params-that-have-been-skip-d.patch b/main/gobject-introspection/0002-Skip-analysis-of-params-that-have-been-skip-d.patch new file mode 100644 index 000000000..a043b17d9 --- /dev/null +++ b/main/gobject-introspection/0002-Skip-analysis-of-params-that-have-been-skip-d.patch @@ -0,0 +1,29 @@ +From 9234ff4eac87a5b635a6f19fa12e081d628dcf61 Mon Sep 17 00:00:00 2001 +From: Stef Walter <stefw@collabora.co.uk> +Date: Wed, 28 Sep 2011 14:01:26 +0200 +Subject: [PATCH 2/8] Skip analysis of params that have been (skip)'d + +Otherwise we get warnings for params that have been skipped + +https://bugzilla.gnome.org/show_bug.cgi?id=660352 +--- + giscanner/introspectablepass.py | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/giscanner/introspectablepass.py b/giscanner/introspectablepass.py +index 95d54b0..77a0e4f 100644 +--- a/giscanner/introspectablepass.py ++++ b/giscanner/introspectablepass.py +@@ -74,6 +74,9 @@ class IntrospectablePass(object): + else: + target = None + ++ if node.skip: ++ return ++ + if not node.type.resolved: + self._parameter_warning(parent, node, + "Unresolved type: %r" % (node.type.unresolved_string, )) +-- +1.7.7 + diff --git a/main/gobject-introspection/0003-Bug-660338-Account-for-padding-in-struct-size-check.patch b/main/gobject-introspection/0003-Bug-660338-Account-for-padding-in-struct-size-check.patch new file mode 100644 index 000000000..368920103 --- /dev/null +++ b/main/gobject-introspection/0003-Bug-660338-Account-for-padding-in-struct-size-check.patch @@ -0,0 +1,39 @@ +From e9a83d543e13b422762ed1dd06e6e0d37568f776 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martin.pitt@ubuntu.com> +Date: Wed, 28 Sep 2011 08:25:26 +0000 +Subject: [PATCH 3/8] Bug 660338: Account for padding in struct size check + +On some platform like armel or powerpc the compiler adds extra padding to +structs. Make the test_size_of_struct_with_array_of_anon_unions() check more +liberal by only requiring that the size of the struct is at least as big as +expected. Also use g_assert_cmpuint() to make it easier to see the actual diff. +--- + tests/repository/gitypelibtest.c | 7 ++++--- + 1 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tests/repository/gitypelibtest.c b/tests/repository/gitypelibtest.c +index de821e0..8356d93 100644 +--- a/tests/repository/gitypelibtest.c ++++ b/tests/repository/gitypelibtest.c +@@ -120,14 +120,15 @@ test_size_of_struct_with_array_of_anon_unions(GIRepository *repo) + struct_info = g_irepository_find_by_name (repo, "Regress", "TestStructE"); + if (!struct_info) + g_error ("Could not find Regress.TestStructE"); +- g_assert (g_struct_info_get_size (struct_info) +- == sizeof (GType) + 2*sizeof (gint64)); ++ /* need to use >=, there might be padding */ ++ g_assert_cmpuint (g_struct_info_get_size (struct_info), ++ >=, sizeof (GType) + 2*sizeof (gint64)); + g_base_info_unref (struct_info); + + struct_info = g_irepository_find_by_name (repo, "GObject", "Value"); + if (!struct_info) + g_error ("Could not find GObject.Value"); +- g_assert (g_struct_info_get_size (struct_info) == sizeof (GValue)); ++ g_assert_cmpuint (g_struct_info_get_size (struct_info), ==, sizeof (GValue)); + g_base_info_unref (struct_info); + } + +-- +1.7.7 + diff --git a/main/gobject-introspection/0007-giconstantinfo-Add-API-to-fix-memory-leak.patch b/main/gobject-introspection/0007-giconstantinfo-Add-API-to-fix-memory-leak.patch new file mode 100644 index 000000000..09f0398a9 --- /dev/null +++ b/main/gobject-introspection/0007-giconstantinfo-Add-API-to-fix-memory-leak.patch @@ -0,0 +1,75 @@ +From 8e970f46b8525396009d4d833a1f1cdacd3df6a1 Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" <jstpierre@mecheye.net> +Date: Wed, 5 Oct 2011 16:31:43 -0400 +Subject: [PATCH 7/8] giconstantinfo: Add API to fix memory leak + +https://bugzilla.gnome.org/show_bug.cgi?id=654069 +--- + girepository/giconstantinfo.c | 30 ++++++++++++++++++++++++++++++ + girepository/giconstantinfo.h | 2 ++ + 2 files changed, 32 insertions(+), 0 deletions(-) + +diff --git a/girepository/giconstantinfo.c b/girepository/giconstantinfo.c +index c082303..2c3cc29 100644 +--- a/girepository/giconstantinfo.c ++++ b/girepository/giconstantinfo.c +@@ -69,6 +69,35 @@ g_constant_info_get_type (GIConstantInfo *info) + memcpy((dest_addr), (src_addr), sizeof(type)) + + /** ++ * g_constant_info_free_value: (skip) ++ * @info: a #GIConstantInfo ++ * @value: the argument ++ * ++ * Free the value returned from g_constant_info_get_value(). ++ * ++ * Since: 1.30.1 ++ */ ++void ++g_constant_info_free_value (GIConstantInfo *info, ++ GIArgument *value) ++{ ++ GIRealInfo *rinfo = (GIRealInfo *)info; ++ ConstantBlob *blob; ++ ++ g_return_if_fail (info != NULL); ++ g_return_if_fail (GI_IS_CONSTANT_INFO (info)); ++ ++ blob = (ConstantBlob *)&rinfo->typelib->data[rinfo->offset]; ++ ++ /* FIXME non-basic types ? */ ++ if (blob->type.flags.reserved == 0 && blob->type.flags.reserved2 == 0) ++ { ++ if (blob->type.flags.pointer) ++ g_free (value->v_pointer); ++ } ++} ++ ++/** + * g_constant_info_get_value: (skip) + * @info: a #GIConstantInfo + * @value: (out): an argument +@@ -76,6 +105,7 @@ g_constant_info_get_type (GIConstantInfo *info) + * Obtain the value associated with the #GIConstantInfo and store it in the + * @value parameter. @argument needs to be allocated before passing it in. + * The size of the constant value stored in @argument will be returned. ++ * Free the value with g_constant_info_free_value(). + * + * Returns: size of the constant + */ +diff --git a/girepository/giconstantinfo.h b/girepository/giconstantinfo.h +index a2679bd..2e7d697 100644 +--- a/girepository/giconstantinfo.h ++++ b/girepository/giconstantinfo.h +@@ -34,6 +34,8 @@ G_BEGIN_DECLS + (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_CONSTANT) + + GITypeInfo * g_constant_info_get_type (GIConstantInfo *info); ++void g_constant_info_free_value(GIConstantInfo *info, ++ GIArgument *value); + gint g_constant_info_get_value(GIConstantInfo *info, + GIArgument *value); + G_END_DECLS +-- +1.7.7 + diff --git a/main/gobject-introspection/0008-scanner-split-CC-environment-variable.patch b/main/gobject-introspection/0008-scanner-split-CC-environment-variable.patch new file mode 100644 index 000000000..24a12df91 --- /dev/null +++ b/main/gobject-introspection/0008-scanner-split-CC-environment-variable.patch @@ -0,0 +1,31 @@ +From 99abcd268792ef3531346a7f885cc55d2ab0f8f4 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Mon, 10 Oct 2011 13:37:55 +0000 +Subject: [PATCH 8/8] scanner: split CC environment variable + +This fixes compilation where CC="ccache gcc" and similar. + +https://bugzilla.gnome.org/show_bug.cgi?id=660160 + +Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> +--- + giscanner/sourcescanner.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/giscanner/sourcescanner.py b/giscanner/sourcescanner.py +index 5f0ec2d..1e61ecf 100644 +--- a/giscanner/sourcescanner.py ++++ b/giscanner/sourcescanner.py +@@ -274,7 +274,8 @@ class SourceScanner(object): + + defines = ['__GI_SCANNER__'] + undefs = [] +- cpp_args = [os.environ.get('CC', 'cc'), '-E', '-C', '-I.', '-'] ++ cpp_args = os.environ.get('CC', 'cc').split() ++ cpp_args += ['-E', '-C', '-I.', '-'] + + cpp_args += self._cpp_options + proc = subprocess.Popen(cpp_args, +-- +1.7.7 + diff --git a/main/gobject-introspection/APKBUILD b/main/gobject-introspection/APKBUILD index ec2d44235..6b2635b74 100644 --- a/main/gobject-introspection/APKBUILD +++ b/main/gobject-introspection/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=gobject-introspection -pkgver=0.10.8 -pkgrel=2 +pkgver=1.30.0 +pkgrel=0 pkgdesc="Introspection system for GObject-based libraries" url="http://live.gnome.org/GObjectInstrospection" arch="all" @@ -10,7 +10,13 @@ depends_dev="python glib-dev libffi-dev cairo-dev" makedepends="$depends_dev flex bison python-dev libtool" depends= replaces="libgirepository" -source="http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2" +source="http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 + 0001-repository-Fix-g_irepository_get_c_prefix.patch + 0002-Skip-analysis-of-params-that-have-been-skip-d.patch + 0003-Bug-660338-Account-for-padding-in-struct-size-check.patch + 0007-giconstantinfo-Add-API-to-fix-memory-leak.patch + 0008-scanner-split-CC-environment-variable.patch + " # since this is a dev package by definition we dont bother separate -dev subpackages="$pkgname-doc $pkgname-dev" @@ -31,7 +37,7 @@ prepare() { build() { cd "$_builddir" ./configure --prefix=/usr --disable-static || return 1 - make || return 1 + make V=1 || return 1 } package() { @@ -50,4 +56,9 @@ dev() { replaces="gobject-introspection" } -md5sums="b5da58a5327d13b4d1e08b8e42b2456d gobject-introspection-0.10.8.tar.bz2" +md5sums="2dca065ef8ad95600040177a38b370fe gobject-introspection-1.30.0.tar.bz2 +33dab841cc8892fe3b3dc9548ef07667 0001-repository-Fix-g_irepository_get_c_prefix.patch +bd84cf5039f224d0535f5930c7b99366 0002-Skip-analysis-of-params-that-have-been-skip-d.patch +b4ee37cce3aa251ead694c10c5ff96a3 0003-Bug-660338-Account-for-padding-in-struct-size-check.patch +a36853f88ac252095312e63cd014888a 0007-giconstantinfo-Add-API-to-fix-memory-leak.patch +47321b30c92038439c36bcb051caebb2 0008-scanner-split-CC-environment-variable.patch" |