Skip to content

libtracker-sparql: Rewrite TrackerRemoteConnection

Carlos Garnacho requested to merge wip/carlosg/remote-conn-rewrite into master

This very cathartic change rewrites the remote TrackerSparqlConnection implementation from Vala to C, besides the additional boilerplate code is pretty much 1:1 otherwise.

Indirectly fixes build errors when using tracker as a submodule (like in tracker-miners CI) on some recent Vala versions (e.g. the one in F35), seen as:

subprojects/tracker/src/libtracker-sparql/libtracker-sparql-private.a.p/remote/tracker-remote.c:58:8: error: redefinition of 'struct _TrackerRemoteConnection'
   58 | struct _TrackerRemoteConnection {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from subprojects/tracker/src/libtracker-sparql/libtracker-sparql-private.a.p/remote/tracker-remote.c:34:
subprojects/tracker/src/libtracker-sparql/tracker-sparql-private.h:88:8: note: originally defined here
   88 | struct _TrackerRemoteConnection {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~

Where both tracker-remote.c and tracker-sparql-private.h here are files generated by Vala, and the latter should have no struct definitions.

But this also reduces on symbols that Vala unintendedly makes public behind our back (through VALA_EXTERN).

Edited by Carlos Garnacho

Merge request reports