commit:     24498428ca700c5f84c362ea7f7c800aa1213326
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  5 11:01:47 2019 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Mon Aug  5 12:41:55 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24498428

app-misc/tracker: fix compatibility with vala:0.44 and reallow 0.44

With vala:0.46 it has new problems, so raise the MAX from 0.42 to 0.44
instead of removing it. The core problem was that 0.44.4 fixed a bug
where it didn't notice some extern symbol or whatnot and filtered out
a Tracker-2.0 include, so now with 0.44.4 and newer the GIR file had
Tracker-2.0 including Tracker-2.0 and under sandbox it bailed out
in some snprintf stuff (without sandbox it seemed to succeed, maybe
it has a recursion limit that hits after stricter sandbox bails on
some snprintf limit stuff going on in that recursion, or I tested
bad) in the recursion. Newer tracker has a fix by avoiding this
situation that it itself causes (it merges multiple different GIR
files together, without that it would probably be fine) by avoiding
the include of itself, and this is the patch that we apply now to
fix vala:0.44 compat to be able to lift the restriction.

Closes: https://bugs.gentoo.org/691072
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 .../tracker/files/2.1.8-vala-0.44-compat.patch     | 46 ++++++++++++++++++++++
 app-misc/tracker/tracker-2.1.8.ebuild              |  3 +-
 2 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/app-misc/tracker/files/2.1.8-vala-0.44-compat.patch 
b/app-misc/tracker/files/2.1.8-vala-0.44-compat.patch
new file mode 100644
index 00000000000..85a7eeadc2b
--- /dev/null
+++ b/app-misc/tracker/files/2.1.8-vala-0.44-compat.patch
@@ -0,0 +1,46 @@
+From e93ea9167dc4185b6c29b27abdab55b6bcd06c74 Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carl...@gnome.org>
+Date: Wed, 1 May 2019 13:38:34 +0200
+Subject: [PATCH] g-ir-merge: Avoid recursive includes
+
+Ensure the namespace is not part of the includes. This is a kludge and
+shouldn't ever happen, except it does (in continuous, induced by vala).
+
+The next big thing that would happen here is a rewrite of libtracker-sparql
+vala bits so we don't need this merging anymore, so I won't put much
+thought on it.
+---
+ utils/g-ir-merge/g-ir-merge | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/utils/g-ir-merge/g-ir-merge b/utils/g-ir-merge/g-ir-merge
+index ad79c2d29..321032a4a 100755
+--- a/utils/g-ir-merge/g-ir-merge
++++ b/utils/g-ir-merge/g-ir-merge
+@@ -89,12 +89,12 @@ def parse_inputs(files):
+     return includes, namespaces, c_includes
+ 
+ 
+-def merge_includes(all_includes):
++def merge_includes(all_includes, namespace):
+     merged = {}
+     for element in all_includes:
+         name = element.get('name')
+         version = element.get('version')
+-        if name not in merged:
++        if name not in merged and name != namespace:
+             merged[name] = element
+     return list(merged.values())
+ 
+@@ -153,7 +153,7 @@ def main():
+ 
+     all_includes, all_namespaces, all_c_includes = parse_inputs(args.files)
+ 
+-    includes = merge_includes(all_includes)
++    includes = merge_includes(all_includes, args.namespace)
+ 
+     namespace_contents, identifier_prefixes, symbol_prefixes, 
shared_libraries \
+         = merge_namespaces(all_namespaces)
+-- 
+2.20.1
+

diff --git a/app-misc/tracker/tracker-2.1.8.ebuild 
b/app-misc/tracker/tracker-2.1.8.ebuild
index 3bce3d5c217..a709313c84a 100644
--- a/app-misc/tracker/tracker-2.1.8.ebuild
+++ b/app-misc/tracker/tracker-2.1.8.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 PYTHON_COMPAT=( python3_{5,6,7} )
-VALA_MAX_API_VERSION="0.42"
+VALA_MAX_API_VERSION="0.44"
 
 inherit bash-completion-r1 eapi7-ver gnome.org linux-info meson python-any-r1 
systemd vala xdg
 
@@ -50,6 +50,7 @@ PATCHES=(
        "${FILESDIR}"/${PV}-test-fix.patch # 
https://gitlab.gnome.org/GNOME/tracker/merge_requests/59
        "${FILESDIR}"/${PV}-prevent-stack-smashing.patch
        "${FILESDIR}"/${PV}-fix-library-symlinks.patch
+       "${FILESDIR}"/${PV}-vala-0.44-compat.patch # upstream commit e93ea9167dc
 )
 
 function inotify_enabled() {

Reply via email to