forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use patch from Fedora to port to tracker-3 (they also sent it to upstream) Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Pacho Ramos <[email protected]>
- Loading branch information
Showing
2 changed files
with
327 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Copyright 1999-2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
GNOME2_LA_PUNT="yes" | ||
GNOME2_EAUTORECONF="yes" | ||
|
||
inherit gnome2 | ||
|
||
DESCRIPTION="CD/DVD burning application for the GNOME desktop" | ||
HOMEPAGE="https://wiki.gnome.org/Apps/Brasero" | ||
|
||
LICENSE="GPL-2+ CC-BY-SA-3.0" | ||
SLOT="0/3.1" # subslot is 3.suffix of libbrasero-burn3 | ||
IUSE="+css +introspection +libburn mp3 nautilus packagekit playlist test tracker" | ||
RESTRICT="!test? ( test )" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" | ||
|
||
COMMON_DEPEND=" | ||
>=dev-libs/glib-2.29.14:2 | ||
>=x11-libs/gtk+-3:3[introspection?] | ||
media-libs/gstreamer:1.0 | ||
media-libs/gst-plugins-base:1.0 | ||
>=dev-libs/libxml2-2.6:2 | ||
>=x11-libs/libnotify-0.6.1:= | ||
media-libs/libcanberra[gtk3] | ||
x11-libs/libICE | ||
x11-libs/libSM | ||
introspection? ( >=dev-libs/gobject-introspection-1.30:= ) | ||
libburn? ( | ||
>=dev-libs/libburn-0.4:= | ||
>=dev-libs/libisofs-0.6.4:= ) | ||
nautilus? ( >=gnome-base/nautilus-2.91.90 ) | ||
playlist? ( >=dev-libs/totem-pl-parser-2.29.1:= ) | ||
tracker? ( app-misc/tracker:3= ) | ||
" | ||
RDEPEND="${COMMON_DEPEND} | ||
media-libs/gst-plugins-good:1.0 | ||
media-plugins/gst-plugins-meta:1.0[mp3?] | ||
x11-themes/hicolor-icon-theme | ||
css? ( media-libs/libdvdcss:1.2 ) | ||
!libburn? ( | ||
app-cdr/cdrdao | ||
app-cdr/cdrtools | ||
app-cdr/dvd+rw-tools | ||
) | ||
packagekit? ( app-admin/packagekit-base ) | ||
" | ||
DEPEND="${COMMON_DEPEND} | ||
>=dev-util/intltool-0.50 | ||
dev-util/itstool | ||
>=dev-util/gtk-doc-am-1.12 | ||
sys-devel/gettext | ||
virtual/pkgconfig | ||
test? ( app-text/docbook-xml-dtd:4.3 ) | ||
" | ||
# eautoreconf deps | ||
# app-text/yelp-tools | ||
# gnome-base/gnome-common | ||
|
||
PDEPEND="gnome-base/gvfs" | ||
|
||
PATCHES=( | ||
# https://gitlab.gnome.org/GNOME/brasero/-/merge_requests/10 | ||
"${FILESDIR}"/${P}-tracker3.patch | ||
) | ||
|
||
src_configure() { | ||
gnome2_src_configure \ | ||
--disable-caches \ | ||
$(use_enable !libburn cdrtools) \ | ||
$(use_enable !libburn cdrkit) \ | ||
$(use_enable !libburn cdrdao) \ | ||
$(use_enable !libburn growisofs) \ | ||
$(use_enable introspection) \ | ||
$(use_enable libburn libburnia) \ | ||
$(use_enable nautilus) \ | ||
$(use_enable playlist) \ | ||
$(use_enable tracker search) | ||
} | ||
|
||
src_install() { | ||
gnome2_src_install | ||
mv "${ED}"/usr/share/{appdata,metainfo} || die | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,240 @@ | ||
From ca0d487aac3b9cf21e520a00b94cb3eaf833b9a3 Mon Sep 17 00:00:00 2001 | ||
From: Carlos Garnacho <[email protected]> | ||
Date: Thu, 24 Dec 2020 12:19:49 +0100 | ||
Subject: [PATCH 1/5] Obtain TrackerSparqlConnection in a single point | ||
|
||
The is_available vmethod tries to create a connection if it's not | ||
there. But the BraseroSearchTracker initialization already tries to | ||
obtain the SPARQL connection. Let this method return wether | ||
initialiation was successful. | ||
--- | ||
src/brasero-search-tracker.c | 6 ------ | ||
1 file changed, 6 deletions(-) | ||
|
||
diff --git a/src/brasero-search-tracker.c b/src/brasero-search-tracker.c | ||
index fe7be2bd..f8c29c0d 100644 | ||
--- a/src/brasero-search-tracker.c | ||
+++ b/src/brasero-search-tracker.c | ||
@@ -56,12 +56,6 @@ brasero_search_tracker_is_available (BraseroSearchEngine *engine) | ||
BraseroSearchTrackerPrivate *priv; | ||
|
||
priv = BRASERO_SEARCH_TRACKER_PRIVATE (engine); | ||
- GError *error = NULL; | ||
- if (priv->connection) | ||
- return TRUE; | ||
- | ||
- priv->cancellable = g_cancellable_new (); | ||
- priv->connection = tracker_sparql_connection_get (priv->cancellable, &error); | ||
return (priv->connection != NULL); | ||
} | ||
|
||
-- | ||
GitLab | ||
|
||
|
||
From c0dace005ec34b345845aacd1f929fd618b199af Mon Sep 17 00:00:00 2001 | ||
From: Carlos Garnacho <[email protected]> | ||
Date: Thu, 24 Dec 2020 12:37:13 +0100 | ||
Subject: [PATCH 2/5] Fix ORDER BY clauses in Tracker search | ||
|
||
The ?urn variable is not defined anywhere else in the query, so | ||
ordering is left undefined. Access the url/filename properly here. | ||
--- | ||
src/brasero-search-tracker.c | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/src/brasero-search-tracker.c b/src/brasero-search-tracker.c | ||
index f8c29c0d..94085070 100644 | ||
--- a/src/brasero-search-tracker.c | ||
+++ b/src/brasero-search-tracker.c | ||
@@ -307,7 +307,7 @@ brasero_search_tracker_query_start_real (BraseroSearchEngine *search, | ||
g_string_append (query, ")"); | ||
|
||
g_string_append (query, | ||
- "} ORDER BY DESC(nie:url(?urn)) DESC(nfo:fileName(?urn))"); | ||
+ "} ORDER BY DESC(?url) DESC(nfo:fileName(?file))"); | ||
|
||
tracker_sparql_connection_query_async (priv->connection, | ||
query->str, | ||
-- | ||
GitLab | ||
|
||
|
||
From f7181445bf9c88b7fab1bb5237d602b491694a9e Mon Sep 17 00:00:00 2001 | ||
From: Carlos Garnacho <[email protected]> | ||
Date: Thu, 24 Dec 2020 13:04:03 +0100 | ||
Subject: [PATCH 3/5] Only use fts:rank with FTS searches | ||
|
||
This fixes two things: | ||
- The use of fts:match depends on priv->keywords being set, but | ||
fts:rank() has undefined behavior if fts:match is not present. | ||
Its value is returned in the cursor, but fortunately unused, | ||
so it can go away. | ||
|
||
- Fixes "garbage" being added at the end of the query, concretely | ||
") } ORDER BY ... " is appended at the supposed end of the query | ||
string. Older SPARQL parser implementations would allow garbage | ||
at the end of its parsing state, I suspect "LIMIT 0 OFFSET 10000" | ||
was just a mean to push it to that state that it'd allow the | ||
remaining string, so that is gone too. | ||
--- | ||
src/brasero-search-tracker.c | 21 +++++++++------------ | ||
1 file changed, 9 insertions(+), 12 deletions(-) | ||
|
||
diff --git a/src/brasero-search-tracker.c b/src/brasero-search-tracker.c | ||
index 94085070..ae1d388a 100644 | ||
--- a/src/brasero-search-tracker.c | ||
+++ b/src/brasero-search-tracker.c | ||
@@ -234,7 +234,7 @@ brasero_search_tracker_query_start_real (BraseroSearchEngine *search, | ||
|
||
priv = BRASERO_SEARCH_TRACKER_PRIVATE (search); | ||
|
||
- query = g_string_new ("SELECT ?file ?url ?mime fts:rank(?file) " /* Which variables should be returned */ | ||
+ query = g_string_new ("SELECT ?file ?url ?mime " /* Which variables should be returned */ | ||
"WHERE {" /* Start defining the search and its scope */ | ||
" ?file a nfo:FileDataObject . " /* File must be a file (not a stream, ...) */ | ||
" ?file nie:url ?url . " /* Get the url of the file */ | ||
@@ -293,21 +293,18 @@ brasero_search_tracker_query_start_real (BraseroSearchEngine *search, | ||
" ) "); | ||
} | ||
|
||
- if (priv->keywords) | ||
+ if (priv->keywords) { | ||
g_string_append_printf (query, | ||
" ?file fts:match \"%s\" ", /* File must match possible keywords */ | ||
priv->keywords); | ||
|
||
- g_string_append (query, | ||
- " } " | ||
- "ORDER BY ASC(fts:rank(?file)) " | ||
- "OFFSET 0 " | ||
- "LIMIT 10000"); | ||
- | ||
- g_string_append (query, ")"); | ||
- | ||
- g_string_append (query, | ||
- "} ORDER BY DESC(?url) DESC(nfo:fileName(?file))"); | ||
+ g_string_append (query, | ||
+ " } " | ||
+ "ORDER BY ASC(fts:rank(?file))"); | ||
+ } else { | ||
+ g_string_append (query, | ||
+ "} ORDER BY DESC(?url) DESC(nfo:fileName(?file))"); | ||
+ } | ||
|
||
tracker_sparql_connection_query_async (priv->connection, | ||
query->str, | ||
-- | ||
GitLab | ||
|
||
|
||
From ede7758e2fae487d57be641a120c4c02bfd249f1 Mon Sep 17 00:00:00 2001 | ||
From: Carlos Garnacho <[email protected]> | ||
Date: Thu, 24 Dec 2020 13:15:21 +0100 | ||
Subject: [PATCH 4/5] Observe nfo:FileDataObject/nie:InformationElement split | ||
|
||
These resources are interpreted differently in Tracker 3.0 compared | ||
to older versions, the newer version makes those 2 different resources | ||
(one representing the "file", other the "content) that relate to each | ||
other. In older tracker versions, these 2 aspects were conflated in | ||
a single resource. | ||
|
||
The query is implicitly crossing that barrier, so make it explicit. | ||
With this change, the query may run with either version. | ||
--- | ||
src/brasero-search-tracker.c | 5 +++-- | ||
1 file changed, 3 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/src/brasero-search-tracker.c b/src/brasero-search-tracker.c | ||
index ae1d388a..9aa06289 100644 | ||
--- a/src/brasero-search-tracker.c | ||
+++ b/src/brasero-search-tracker.c | ||
@@ -238,7 +238,8 @@ brasero_search_tracker_query_start_real (BraseroSearchEngine *search, | ||
"WHERE {" /* Start defining the search and its scope */ | ||
" ?file a nfo:FileDataObject . " /* File must be a file (not a stream, ...) */ | ||
" ?file nie:url ?url . " /* Get the url of the file */ | ||
- " ?file nie:mimeType ?mime . "); /* Get its mime */ | ||
+ " ?file nie:mimeType ?mime . " /* Get its mime */ | ||
+ " ?content nie:isStoredAs ?file . "); /* Get the resource representing the content */ | ||
|
||
if (priv->mimes) { | ||
int i; | ||
@@ -259,7 +260,7 @@ brasero_search_tracker_query_start_real (BraseroSearchEngine *search, | ||
gboolean param_added = FALSE; | ||
|
||
g_string_append (query, | ||
- " ?file a ?type . " | ||
+ " ?content a ?type . " | ||
" FILTER ( "); | ||
|
||
if (priv->scope & BRASERO_SEARCH_SCOPE_MUSIC) { | ||
-- | ||
GitLab | ||
|
||
|
||
From 05589be7da3a0dfb00617df049d129abba703c36 Mon Sep 17 00:00:00 2001 | ||
From: Carlos Garnacho <[email protected]> | ||
Date: Thu, 24 Dec 2020 13:22:43 +0100 | ||
Subject: [PATCH 5/5] Support Tracker 3.0 | ||
|
||
Add the compile-time checks, and add the minimal code catering for | ||
the API changes. In 3.0 connections are no longer singletons. | ||
--- | ||
configure.ac | 6 +++++- | ||
src/brasero-search-tracker.c | 8 ++++++++ | ||
2 files changed, 13 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/configure.ac b/configure.ac | ||
index d0c7a870..96afc551 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -388,7 +388,7 @@ AC_ARG_ENABLE(search, | ||
if test x"$enable_search" != "xno"; then | ||
# Try to figure out the tracker API version to use | ||
tracker_api="0.10" | ||
- m4_foreach([VERSION], [[0.10], [0.12], [0.14], [0.16], [0.18], [1.0], [2.0]], | ||
+ m4_foreach([VERSION], [[0.10], [0.12], [0.14], [0.16], [0.18], [1.0], [2.0], [3.0]], | ||
[PKG_CHECK_EXISTS([tracker-sparql-VERSION >= $TRACKER_REQUIRED], | ||
[tracker_api="VERSION"]) | ||
]) | ||
@@ -408,6 +408,10 @@ if test x"$enable_search" = "xyes"; then | ||
AC_SUBST(BRASERO_SEARCH_LIBS) | ||
build_tracker="yes" | ||
build_search="yes" | ||
+ | ||
+ if test x"$tracker_api" = x"3.0"; then | ||
+ AC_DEFINE(HAVE_TRACKER3, 1, [define if tracker3 is available]) | ||
+ fi | ||
else | ||
build_search="no" | ||
fi | ||
diff --git a/src/brasero-search-tracker.c b/src/brasero-search-tracker.c | ||
index 9aa06289..40c5f1ac 100644 | ||
--- a/src/brasero-search-tracker.c | ||
+++ b/src/brasero-search-tracker.c | ||
@@ -17,6 +17,8 @@ | ||
* with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
+#include "config.h" | ||
+ | ||
#include <stdlib.h> | ||
|
||
#include <libtracker-sparql/tracker-sparql.h> | ||
@@ -444,7 +446,13 @@ brasero_search_tracker_init (BraseroSearchTracker *object) | ||
|
||
priv = BRASERO_SEARCH_TRACKER_PRIVATE (object); | ||
priv->cancellable = g_cancellable_new (); | ||
+ | ||
+#ifdef HAVE_TRACKER3 | ||
+ priv->connection = tracker_sparql_connection_bus_new ("org.freedesktop.Tracker3.Miner.Files", | ||
+ NULL, NULL, &error); | ||
+#else | ||
priv->connection = tracker_sparql_connection_get (priv->cancellable, &error); | ||
+#endif | ||
|
||
if (error) { | ||
g_warning ("Could not establish a connection to Tracker: %s", error->message); | ||
-- | ||
GitLab | ||
|