1. 20 Feb, 2021 1 commit
    • Carlos Garnacho's avatar
      libtracker-sparql: Add private call to get remote DBus service details · 38b4de26
      Carlos Garnacho authored
      When subscribing a TrackerNotifier to notifications from a remote DBus
      service, we may need to perform translation of dbus names and object
      paths, as this connection may be sandboxed.
      
      Implement this plumbing so we may ask the TrackerSparqlConnection
      about the real DBus details behind a SPARQL DBus endpoint.
      
      Fixes: #287
      38b4de26
  2. 13 Dec, 2020 2 commits
  3. 26 Nov, 2020 3 commits
  4. 10 Aug, 2020 1 commit
    • Sam Thursfield's avatar
      libtracker-sparql: Don't expose internal db interface errors · 9350af56
      Sam Thursfield authored
      We should not return TrackerDBInterfaceError, from the internal
      libtracker-data library, from public functions in libtracker-sparql.
      
      This problem is noticable as we register D-Bus error codes only for the
      public TrackerSparqlError type.
      
      Before, apps would show error messages like this:
      
          GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._tracker_2ddb_2dinterface_2derror_2dquark.Code0: example error message
      
      After this patch, the error is:
      
           GDBus.Error:org.freedesktop.Tracker.Error.QueryFailed: example error message
      9350af56
  5. 17 Jul, 2020 2 commits
  6. 18 Jun, 2020 3 commits
  7. 17 Feb, 2020 3 commits
    • Carlos Garnacho's avatar
      libtracker-sparql: Add tracker_sparql_connection_close_async/finish · c7050b6e
      Carlos Garnacho authored
      Since it may be "expensive" with a big amount of pending requests, add
      an async variant so it doesn't have to block the main loop.
      c7050b6e
    • Carlos Garnacho's avatar
      libtracker-sparql: Make class structs private · d2950e45
      Carlos Garnacho authored
      No object in the public API is meant to be subclassed, hide the
      class definitions so we have room to extend those at will in the
      future.
      d2950e45
    • Carlos Garnacho's avatar
      libtracker-sparql: Reimplement public API in C · 1e4cd3dc
      Carlos Garnacho authored
      It is risky and clunky to have API/ABI in control of a transpiler
      like Vala is. Examples are:
      
      - Defining the abstract classes in vala necessarily exports these
        *_construct() functions, which are 100% useless as public API
        since no subclassing of Tracker objects is whatsoever allowed
        outside of Tracker.
      - While on the *_construct() functions topic, adding a constructor
        like tracker_sparql_connetion_new() somehow made valac stop
        exporting one for TrackerSparqlConnection. The warnings are
        somehow eaten when compiling the resulting C code, but hell breaks
        loose when the C compiler assumes an int return value (because
        it can't know better) but the constructor has a pointer-sized
        return value. Since those functions are exported, this change
        sneakily involves an ABI break too.
      - Even though we want some properties to be construct-only, vala
        will automatically export setter functions for those. This adds
        API like tracker_sparql_statement_set_connection() that can only
        break things if ever called.
      - The --abi-stability valac toggle was added too late for Tracker
        to use it. We could use 3.0 as an excuse to turn it on, but that
        doesn't magically fix the other points.
      - Vala doesn't allow us to be explicit wrt the exported functions
        (eg. through extern). We do resort to a .map file, but that's
        prone to errors and hairy to maintain.
      
      We still use vala at places for internal code, but I can't bring
      myself to think it's a good idea to keep vala in charge of our
      public API and ABI.
      1e4cd3dc
  8. 09 Sep, 2019 1 commit
    • Carlos Garnacho's avatar
      libtracker-data: Add "service" virtual table · d12397c7
      Carlos Garnacho authored
      This virtual table will be used as the base for SERVICE{} syntax,
      and allows querying remote sparql endpoints as if it were part of
      the local data.
      
      This virtual table takes 3 parameters:
      - service: the uri of the remote service to query
      - query: the sparql query to issue on that remote service
      - silent: whether errors are fatal or not
      d12397c7
  9. 05 Feb, 2019 1 commit
    • Carlos Garnacho's avatar
      libtracker-data: Add "triples" virtual table · ab3c6d7e
      Carlos Garnacho authored
      This eponymous virtual table is able to decompose the full database
      in all its composing triples. This may be used to implement queries
      with predicate variables in a generic way, and finally support the
      kind of queries where we gave up (e.g. "select * { ?s ?p ?o }").
      
      Internally it works by using the TrackerOntologies in order to
      split the query into a set of queries for individual
      properties/columns, some optimizations happen when specific matches
      are given, and the SQLite engine does take care of the ones we don't
      optimize, sorting, etc...
      
      This virtual table will also be useful in the future when implementing
      CONSTRUCT/DESCRIBE commands.
      ab3c6d7e
  10. 13 Nov, 2018 1 commit
  11. 15 Aug, 2015 1 commit
  12. 15 Oct, 2009 1 commit
  13. 28 Aug, 2009 1 commit
  14. 10 Aug, 2009 1 commit
  15. 24 Jul, 2009 1 commit
  16. 16 Jul, 2009 1 commit
    • Martyn Russell's avatar
      Moved tracker-config to tracker-global-config, 1st phase · 74b05454
      Martyn Russell authored
      This change involves creating a tracker-config in the miner-fs based
      on the original config module. It will be cut down for miner only
      config.
      
      The global config will have options which don't belong to any specific
      binary OR apply to all binaries (like verbosity).
      74b05454
  17. 18 Feb, 2009 1 commit
    • Martyn James Russell's avatar
      Fixed Makefiles so we include WARN_CFLAGS in all files. Some files were · 1bca1a5c
      Martyn James Russell authored
      	* docs/reference/libtracker-common/Makefile.am:
      	* docs/reference/libtracker-module/Makefile.am:
      	* src/libinotify/Makefile.am:
      	* src/libstemmer/Makefile.am:
      	* src/libtracker-common/Makefile.am:
      	* src/libtracker-data/Makefile.am:
      	* src/libtracker-db/Makefile.am:
      	* src/libtracker-gtk/Makefile.am:
      	* src/plugins/evolution/Makefile.am:
      	* src/plugins/kmail/Makefile.am:
      	* src/plugins/rss/Makefile.am:
      	* src/tracker-applet/Makefile.am:
      	* src/tracker-extract/Makefile.am:
      	* src/tracker-fts/Makefile.am:
      	* src/tracker-indexer/Makefile.am:
      	* src/tracker-indexer/modules/Makefile.am:
      	* src/tracker-preferences/Makefile.am:
      	* src/tracker-search-tool/Makefile.am:
      	* src/tracker-utils/Makefile.am:
      	* src/trackerd/Makefile.am:
      	* tests/common/Makefile.am:
      	* tests/libtracker-common/Makefile.am:
      	* tests/libtracker-db/Makefile.am:
      	* tests/tracker-extract/Makefile.am:
      	* tests/tracker-indexer/Makefile.am:
      	* tests/trackerd/Makefile.am:
      	* tests/trackerd/xesam/Makefile.am:
      	* utils/qdbm/Makefile.am:
      	* utils/tracker-fts/Makefile.am: Fixed Makefiles so we include
      	WARN_CFLAGS in all files. Some files were missing this.
      
      	* src/libtracker-common/tracker-albumart.[ch]: 
      	* src/libtracker-common/tracker-thumbnailer.h: Fixed #define
      	statements so they are not the same as the extractor header files.
      
      	* src/libtracker-common/tracker-config.c:
      	* src/tracker-extract/tracker-dbus.[ch]: 
      	* src/tracker-extract/tracker-extract-albumart.c:
      	* src/tracker-extract/tracker-extract-gstreamer.c:
      	* src/tracker-extract/tracker-main.[ch]: 
      	* src/trackerd/tracker-cleanup.c:
      	* src/trackerd/tracker-dbus.c: 
      	* src/trackerd/tracker-processor.c: 
      	* src/trackerd/tracker-status.c: 
      	* tests/tracker-extract/tracker-extract-gstreamer-test.c: 
      	* tests/tracker-extract/tracker-extract-jpeg-test.c:
      	* tests/tracker-extract/tracker-extract-mp3-test.c: 
      	* tests/tracker-extract/tracker-extract-png-test.c: 
      	* tests/tracker-extract/tracker-extract-test-utils.c:
      	* tests/tracker-extract/tracker-extract-testsuite-avi.c:
      	* tests/tracker-extract/tracker-extract-testsuite-jpeg.c:
      	* tests/tracker-extract/tracker-extract-testsuite-jpeg.h:
      	* tests/tracker-extract/tracker-extract-testsuite-mp3.c:
      	* tests/tracker-extract/tracker-extract-testsuite-mp3.h:
      	* tests/tracker-extract/tracker-extract-testsuite-png.c:
      	* tests/tracker-extract/tracker-extract-testsuite-png.h:
      	* tests/tracker-extract/tracker-extract-testsuite-tiff.c:
      	* tests/tracker-extract/tracker-extract-testsuite-tiff.h:
      	* tests/tracker-extract/tracker-extract-tiff-test.c: Fixed all the
      	warnings produced by adding WARN_CFLAGS to the Makefile.am files.
      
      svn path=/trunk/; revision=2942
      1bca1a5c
  18. 27 Jan, 2009 1 commit
  19. 14 Jan, 2009 1 commit
  20. 26 Sep, 2008 1 commit