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() {