libtracker-sparql: Rewrite TrackerRemoteConnection
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