| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should be consistent about what the name of a Tracker domain actually
is. In the domain rule we specify Domain=org.freedesktop (for the
default rule) or Domain=org.example.App (for a custom domain). But
internally tracker_domain_ontology_get_domain() would return
org.freedesktop.Tracker1 or org.example.App.Tracker1, i.e. the domain
name now has '.Tracker1' appended.
This does make sense in most cases, but it means there's no way to get
the actual name of the domain from a TrackerDomainOntology object. This
commit changes the existing function to not append '.Tracker1' in the
value it returns, which means that function can now be used to get the
base name of the domain. The assumption is that callers are normally
appending stuff to this base name anyway so it's not much extra effect
to also append the '.Tracker1' component if needed.
libtracker-common is internal to Tracker so this doesn't constitute a
public API break.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Creating a single query for all values to delete can only work if
all values have a match. As soon as a value is already missing,
the query would just bail out as there's no real match.
We want to delete every value individually regardless of other
properties, so decompose the single delete into multiple individual
deletes.
Fixes "Unable to insert multiple values for subject..." warnings
as the insertion queries would rely on single-valued properties being
cleared beforehand.
https://gitlab.gnome.org/GNOME/tracker/issues/28
Closes: #28
|
|
|
|
|
| |
This also adds `tracker extract -o json` to dump resources in JSON-LD,
in anticipation of corresponding updates in tracker-miners.git.
|
|
|
|
|
|
|
|
|
|
| |
This script dates from a long time ago when Meson lacked ways to install
generated headers.
This fixes an issue where `ninja install` in tracker.git triggers a
rebuild of lots of stuff from tracker-miners.git, which happened because
the mtime of the installed generated headers would become newer than the
build files in tracker-miners.git and cause ninja to rebuild them all.
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=792691
|
|
|
|
|
|
|
|
| |
The GVariant type string "i" refers to a signed 32-bit integer.
Therefore, gint32 is a much safer bet than gint, whose size is not
guaranteed across all platforms.
https://bugzilla.gnome.org/show_bug.cgi?id=792301
|
|
|
|
| |
The tracker_notifier_new() function allows NULL for 'classes'.
|
|
|
|
| |
The 'classes' parameter wasn't annotated correctly.
|
|
|
|
|
| |
In some places I had hardcoded '1.0' instead of honouring
tracker_api_version variable. This is now fixed.
|
| |
|
|
|
|
| |
It is now defined globally, so can removed from specific targets.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The change in 1b31260292 added somewhat clumsy meson support. The
C-side vapi is now required by the Vala-side vapi, but only the latter
is included when building the rest of the libraries. Since we can't
tell the build to ditch the vala vapi and include our merged/spiced up
tracker-sparql-2.0.vapi file, add a dependency on the C vapi that we can
add on the selected places.
A side effect of including the unfixed vapis is that includes point
to internal files, so make sure everything gets TRACKER_COMPILATION
when building to circumvent it.
|
|
|
|
|
|
| |
It would be left partly including headers that must not be accessed
directly. Also, ensure that we look for the C vapi file in srcdir for
both meson and autotools.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dependency tracking in Automake is a side effect of compilation. This
means two things:
* headers are ignored when it comes to building dependencies, even
when listed inside sources for a binary target
* generated headers included inside source files are not used
as a dependency until compilation of the source file completes
successfully
If binary target L depends on a source file C, and that source file
includes a generated header H, there is no guarantee that the header
H will be available by the time source file C is built, because the
dependency is extracted from C itself, not from the list of sources.
Additionally, any header H does not count towards the dependency
resolution because headers are only used for ancillary features, like
extracting tags.
For this reason, Automake has `BUILT_SOURCES`.
This is a bit of obscure corner of Automake that trips up many who are
not practitioners of the Dark Arts.
More information is available here:
https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Built-Sources-Example
|
|
|
|
|
|
| |
This is implemented on direct connections and the generic backend. The
TrackerNamespaceManager will be filled in from the internal ontologies, as
read by the TrackerDataManager.
|
|
|
|
|
|
| |
Just like we do with girs, merge together the vapi for the C portions and
the generated vapi for the vala bits. This allows using
TrackerNamespaceManager and TrackerResource from vala code.
|
|
|
|
|
| |
It has been superseded by TrackerResource, it is encouraged for new
development.
|
|
|
|
|
| |
The "d" is already implied there, not for us to add. Let's pretend this
never happened...
|
|
|
|
|
| |
These are C helper functions, so users may create trees of TrackerResources
without having to manually unref all non-root ones.
|
|
|
|
|
|
| |
Those functions have been deprecated for years and are being removed
for 2.0. Use tracker_sparql_connection_get() and async variants instead,
that will smartly use the direct connection underneath.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Targets far down the dependency chain were failing due to mysteriously
missing symbols. The use of -Wl,--as-needed seemed to be triggering the
issue.
This only occured with new versions of Meson. Previously circular
dependencies would be added recursively but this was removed with
<https://github.com/mesonbuild/meson/pull/1545>.
I'm not 100% sure how this fixes things, but I think that removing
or at least reshuffling circular dependencies of libtracker-sparql
means that libraries are passed to the linker in "correct" order.
|
|
|
|
| |
It must listen to the signal from the right tracker-store instance.
|
|
|
|
|
|
|
| |
Add a global tracker_sparql_connection_set_domain() call that allows setting
domain ontology that the client shall use. This only affects the connection
obtained through tracker_sparql_connection_get(), other constructors may have
different settings.
|
|
|
|
| |
These calls make private sparql databases available to applications.
|
|
|
|
|
|
|
|
| |
Following the meson changes, build 2 separate static libs, generate
introspection stuff for those, and put them together in
src/libtracker-sparql-backend.
https://bugzilla.gnome.org/show_bug.cgi?id=782091
|
|
|
|
|
|
|
| |
We don't need defining TrackerSparqlBuilder here, and it causes it
to get picked up twice in C and Vala girs.
https://bugzilla.gnome.org/show_bug.cgi?id=782091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up til now only the Tracker.SparqlConnection and Tracker.SparqlBuilder
resources were introspectable. This is because we only used the
introspection output from `valac`, but other bits of libtracker-sparql
have since been added that are written in C.
There seems to be no way to generate a single .gir for a combined C and
Vala codebase, so instead I have written a simple `g-ir-merge` script
which can combine two different namespaces into a single .gir.
This is currently tested and working with the Meson build instructions.
It would be possible to implement this for the Autotools build
instructions as well.
https://bugzilla.gnome.org/show_bug.cgi?id=782091
|
|
|
|
|
|
|
|
|
|
| |
First, instead of using add_global_arguments() we now use a variable
to set global compiler args. It turns out that add_global_arguments()
is broken if you ever want to include your project as a subproject of
something else.
Second, dependencies weren't being specified correctly. These are
hopefully now fixed to avoid any more random build failures.
|
|
|
|
| |
Hopefully among the last ones!
|
|
|
|
|
|
|
| |
This is useful for people who are not building from Git but still want
to avoid Autotools.
See: https://mail.gnome.org/archives/desktop-devel-list/2017-April/msg00091.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See <http://mesonbuild.com/> for information about Meson.
Remaining issues:
* There's no `make dist` equivalent. We currently produce release
tarballs containing the output files of the Vala compiler. We need
to think through whether we can stop doing that. Shipping the
generated .c files does make the Vala preprocessor useless so
it would be good if we can stop.
* The Firefox, Thunderbird, Evolution and Nautilus plugins are not
built
* https://github.com/mesonbuild/meson/issues/671 -- means we can't
depend on tracker_common_dep in most places and have to manually
set link_with, include_directories and sources instead.
* https://github.com/mesonbuild/meson/issues/1469 -- without this we
have to install generated Vala headers using a script
* https://github.com/mesonbuild/meson/issues/1229 -- means adding
the #include guard to libtracker-sparql/tracker-generated-no-checks.h
is a pain
* The test suite has some spurious failures.
Here's a rough speed comparison.
Meson:
time sh -c 'meson .. --prefix=/opt/tracker-meson -D bash_completion=/opt/tracker-meson/share/bash-completion -Dsystemd_user_services=/opt/tracker-meson/lib/systemd/user -Ddbus_services=/opt/tracker-meson/share/dbus-1/services && ninja-build -j 4 && ninja-build install'
real 1m8.194s
user 2m16.962s
sys 0m20.532s
Autotools:
time sh -c './configure --prefix=/opt/tracker-autotools --with-bash-completion-dir=/opt/tracker-autotools/share/bash-completion --with-session-bus-services-dir=/opt/tracker-autotools/share/dbus-1/services --disable-nautilus-extension && make -j 4 && make install'
real 2m37.750s
user 4m37.214s
sys 0m54.806s
Plus 30+ seconds of ./autogen.sh first.
Note that Meson builds may fail if your source tree has generated files
from an Autotools build in there. If you see errors about duplicate
definitions, first try cleaning your source tree (use `git clean -dfx`,
but make sure you commit any work first!!)
|
|
|
|
|
| |
The gir-scanner doesn't actually run for these files at the moment
(see bug#782091) which is why the mistakes didn't get caught until now.
|
|
|
|
|
| |
The gir-scanner doesn't actually run for these files at the moment, so
the mistakes didn't get caught until now.
|
|
|
|
|
|
| |
Otherwise namespace lookups will come out NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=780968
|
| |
|
|
|
|
|
| |
Sadly the correct format is different on 32bit and 64bit systems so we
have to use the unweildy G_GINT64_FORMAT macro.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TrackerResource was creating bad SPARQL & Turtle from GDateTime values.
If you saw this...
GDBus.Error:org.freedesktop.Tracker1.SparqlError.Type: Not a ISO
8601 date string. Allowed form is [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]
...it's because in the arguments for g_date_time_format() I confused %S
(seconds since the last minute) with %s (seconds since 1st January
1970). That's a lot of extra seconds.
|
| |
|
|
|
|
|
|
|
| |
Those were not being printed, just referenced in the parent resource.
Fixes properties like slo:location being lost on newly indexed photos.
https://bugzilla.gnome.org/show_bug.cgi?id=776723
|
|
|
|
|
|
|
| |
We don't need to generate sparql/turtle for builtin classes
(eg. nmm:flash-on).
https://bugzilla.gnome.org/show_bug.cgi?id=776723
|
|
|
|
|
|
|
|
| |
It doesn't really apply. The DELETE DATA { pattern } query requires
the exact given triples, and won't work on variables. As it's not
nice or possible to query the current values just to perform a better
looking DELETE DATA {} query, just stick to the DELETE {} WHERE {}
one, and don't insinuate that we have a better option.
|
|
|
|
| |
Multiline statements get braces around.
|
|
|
|
|
| |
The context is reused, so the list must be freed again after the
second use.
|
|
|
|
| |
The GString used to build the query is being leaked.
|
| |
|
|
|
|
|
| |
That's not guaranteed to be there yet at compile time, so it
randomly breaks build.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This object abstracts GraphUpdated, and is now the recommended method
to receive notifications upon changes in Tracker data. After creation,
the caller may connect to the ::events signal. This signal packs all
events received in one go, so as to avoid signal emission overhead on
mass changes.
The TrackerNotifier behavior can be slightly modified through the
flags passed during instantiation. Eg. it can be requested to query
some data (urn, location) upfront, although the API is tracker:id centric
otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=773028
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is yet another libtracker-sparql backend to connect to remote
HTTP SPARQL endpoints. Connections are made explicitly through the
tracker_sparql_connection_remote_new() API call, passing a server
to connect to. This commit introduces support for
application/sparql-results+json as specified in
https://www.w3.org/TR/sparql11-results-json/. XML format will be
handled next.
Just readonly queries are supported, and provided there's no
authentication schemes.
https://bugzilla.gnome.org/show_bug.cgi?id=773031
|
|
|
|
|
|
|
|
|
| |
Use the album creation date as part of the album uri identifier if
available. This should make the separation of similar named albums even
better. Also port mp3 & gstreamer to use the resource helper functon for
exctracting album disc data.
https://bugzilla.gnome.org/show_bug.cgi?id=773697
|