2015-07-13 Carlos Garnacho Release 1.5.0 distcheck fixes tracker-extract: Remove ModulePath from comic/ebook rules These relied on the dummy extractor, removing the ModulePath is a similar silent shortcut since commit 06f7d4a1a. extract-gstreamer: Rely better on the GstDiscoverer than mimetype sniffing There's mimetypes that easily fool mimetype detection (eg. OGG videos with .ogg extension instead of .ogv will be detected as audio/ogg), the GstDiscoverer will however find out correctly whether there's audio and/or video information, so we should rely on it as a last resort, rather than (weaker) mimetype sniffing. This prevents .ogg suffixed videos from being played by gnome-music (oddly, with success, in a separate window). 2015-07-13 Daniel Mustieles Updated Spanish translation 2015-07-12 Carlos Garnacho libtracker-extract: Accept rules with no ModulePath This will enable us to make dummy rules for files that must have some RDF type(s), but don't have an extractor module. https://bugzilla.gnome.org/show_bug.cgi?id=735610 2015-07-12 Gilles Dartiguelongue build: Fix AM_CONDITIONAL position HAVE_{GSTREAMER,LIBAV} definition https://bugzilla.gnome.org/show_bug.cgi?id=750368 2015-07-06 Carlos Garnacho tracker-extract-gstreamer: Fallback to preview image for album art Some files don't provide a cover image, but just a preview image, we can use that as albumart. This commit reuses code from a fallback which looks bogus nowadays, since it just does the same than the while loop above. If we reached there, it would fail again for sure. https://bugzilla.gnome.org/show_bug.cgi?id=732236 2015-07-06 Pedro Albuquerque Updated Portuguese translation 2015-07-06 Philip Withnall libtracker-miner: Keep a monitor on root index tree files on deletion If Tracker is running with some index-recursive-directories set (for example, ~/Music), and one of those directories is moved, then the file monitor watching for its existence is deleted. This means that if it is then moved back to the location listed in index-recursive-directories, its renewed existence is not detected, and its contents are not re-indexed. Fix this by keeping a monitor around on a directory if that directory is listed as an index tree root, even if the directory is deleted. https://bugzilla.gnome.org/show_bug.cgi?id=750394 2015-07-06 Ville Skyttä tracker-sparql.1: Man page syntax fix https://bugzilla.gnome.org/show_bug.cgi?id=751723 docs: Spelling fixes https://bugzilla.gnome.org/show_bug.cgi?id=751724 2015-07-05 Carlos Garnacho tracker-miner-fs: Reset retry counter when we need to prepend parents The situation where a parent directory has to be prepended in order to process the current file is rare, mainly reserved to IndexFile calls on files out of watched dirs. This is a corner situation, but it is a legit place where we have to put the file back again in the queue, and thus we shouldn't increase the retry counter. This nominally fixes the indexing of gnome-documents-getting-started.pdf on a fresh-out tracker DB, as requested by gnome-shell. https://bugzilla.gnome.org/show_bug.cgi?id=751992 tracker-preferences: Use the new command line tool We resort to the tracker CLI for restart/reindex, the calls have changed to use Posix.system() as there's some operations that are now mutually exclusive in the CLI tool (eg. reset and start daemons) and still need to be performed in a single step here. https://bugzilla.gnome.org/show_bug.cgi?id=748677 tracker-preferences: Remove needless prints These won't tell a lot, since we're killing the whole thing. 2015-07-05 Sam Thursfield Fix tracker-encoding-test After commit ede17cc22b0c6245c030 this was failing to compile. 2015-07-05 Carlos Garnacho cli: Improve bash completion script We now autocomplete files where it applies (various -f/--file options, tracker info) and '-' prefixed switches. cli: Mark missing strings for translation The help strings in the sql subcommand weren't marked as translated extract-mp3: Bail out on encoding detection if confidence is too low Libicu encoding detection is able to tell the confidence it got on the detection, we should be using that in case the confidence is too low, as that means the returned encoding is probably bogus, and we have an encoding to fallback on. This fixes detection on the file reported on bug #735515, where a couple of 'ï' chars (valid ISO-8859-1) make libicu detect UTF-16BE, although with an extremely low confidence. https://bugzilla.gnome.org/show_bug.cgi?id=735515 libtracker-extract: initialize value ucsdet_open() expects an status set to 0, otherwise it will bail out early. With uninitialized memory we might or might not get that. 2015-07-05 Philip Withnall vala: Ensure all .vapi files contain GIR namespace CCode attributes Ensure all .vapi files exported by Tracker contain gir_namespace and gir_version CCode attributes, otherwise Vala code compiled against them will hit this warning: tracker-sparql-1.0.vapi:4.2-4.17: warning: Namespace Sparql does not have a GIR namespace and version annotation namespace Sparql { https://bugzilla.gnome.org/show_bug.cgi?id=751051 2015-07-04 Marcus Meissner configure: Save LDFLAGS There's places where CFLAGS is modified/restored while LDFLAGS is left untouched, both should be saved/restored at the same time. https://bugzilla.gnome.org/show_bug.cgi?id=742186 2015-07-04 Carlos Garnacho libtracker-data: Trigger rebuild of FTS tokens on parser changes Whenever there's a change in the implementation of our tokenizers, we'll trigger a rebuild of the FTS table. This allows for live updates to our tokenizers without the need to redo the database from scratch. The FTS rebuild is also triggered on locale changes. libtracker-data: Add functions to maintain a "parser sha1" stamp file We'll keep a ~/.cache/tracker/parser-sha1.txt file, containing the sha1 of the last commit that affected libtracker-common/tracker-parser*, which Tracker will compare against its compiled-in one. This will help trigger automatic FTS token rebuild on parser changes. libtracker-data: Add TrackerDBInterfaceSqlite method to rebuild FTS tokens Not a lot going on here, we just punch the hole so it can be used on tracker-data-manager.c tracker-fts: Add method to rebuild the FTS tokens This may be useful on locale changes or tokenizer updates, as our FTS table uses external content (the fts_view view we create for that purpose), All text content is external to it, so we can safely rebuild all tokens from scratch. libtracker-common: generate sha1 for the current parser incarnation This is created out of the last git commit sha1 from the relevant parser files. It may be used in order to rebuild the FTS table tokens after we perform changes in the tokenizers themselves. docs: Ensure ontology properties can be looked up through devhelp The devhelp index generation relies on specific roles set in the docbook XML, we were setting none for ontology properties though. 2015-07-04 Philip Withnall tracker-miner-fs: Fix a completion check when removing the final task Depending on how mining goes, this path might be the last one taken before the miner is ready to go idle again. However, the check on the task pool size is guaranteed to be false because the task which item_add_or_update_continue() was called on has not yet been removed from the pool — that’s done directly below. Fix that by removing the task from the task pool before checking whether the pool is empty. This fixes stalls in tracker-miner-fs where `tracker-control -S` would show the following for ever (when running with index-recursive-directories set to a non-empty list): 1% File System - Crawl finished for directory 'blah' Previously, the only way to fix this was to pause and then resume the miner. https://bugzilla.gnome.org/show_bug.cgi?id=751172 tracker-thumbnailer: Output debug information about supported MIME types https://bugzilla.gnome.org/show_bug.cgi?id=751654 build: Add missing files to .gitignore files https://bugzilla.gnome.org/show_bug.cgi?id=751052 2015-07-04 Iain Lane functions-tracker: Fix collate order Somewhere between sqlite 3.8.7 and 3.8.10.2, sqlite seemed to fix a bug on ORDER BY SOMESTRINGFUNCTION() clauses, where it would invariably apply the BINARY collator, despite tracker specifying its own one. This is something that 2 libtracker-data tests were indirectly testing, where queries are sorted by tracker:coalesce(), these now happen to fail because the stored results inadvertently had the wrong order. https://bugzilla.gnome.org/show_bug.cgi?id=749262 2015-07-03 Carlos Garnacho extract-mp3: Stop processing after finding padding ID3v2[0-4] Allows the possibility of some padding at the end of an ID3 block, defined to be filled with 0x00, just in case later tag additions don't cause a full rewrite of the file. This means there's nothing for us when we hit this. ID3v2.4 also defines the existence of "ID3 footers", those always start as "3ID", and should be skipped for our purposes, as those are basically a mirror of the ID3 block. This most notably avoids a bunch of "Ignoring unknown frame ''" spew on -v 3 logs, as padding is fairly common. extract-mp3: Account for the tag header size in calculations In the parsing of id3v2[0-4] tags, we calculate offsets in base of the size we get in the header, which according to id3 specs, doesn't include the 10 bytes of the header itself. This means there's a disparity of 10 bytes between our 0-based offsets, and our 10-based fetched size, we must account for this when iterating through frames. Also, we were possibly (and mistakenly) iterating till the end of the file (comparing against size instead of tsize(+header) in the while loops), we only have to parse one id3 block at a time. If the former bug could conceivable make us miss the last frame, this one would overcompensate for it. Less importantly, this fixes the incorrect "position + content size > tag size, not processing any more frames" debug spew I was seeing on many mp3s with -v 3. extract-mp3: Return false if we find no frame headers This means we're probably not dealing with an mp3 file, even if we thought so. This makes it possible to bail out into more generic modules (eg. gstreamer) that might catch what the file is for real. https://bugzilla.gnome.org/show_bug.cgi?id=733136 tracker-extract: Check the return value from TrackerExtractMetadataFunc Extract modules might fail mid-processing, when the TrackerSparqlBuilder has been partially written, we should bail out and move on to the next extract module, as we can't guarantee its validity. 2015-07-01 Carlos Garnacho Merge branch 'decorator-memory-reduction' tracker-miner-fs: Delete nie:dataSources on update Decorators should be updating again all relevant information, so ensure their nie:dataSource is deleted for these to kick in again. This used to be unnecessary because updated items just went to the internal decorator queue, without further checks. Now that the decorators query the database for the next items missing that dataSource, it is crucial to do this somewhere. tracker-extract: tell what the error really means The current one is not really intuitive. libtracker-miner: Reduce TrackerDecorator file cache size Instead of keeping all items in memory, a small cache is kept of upcoming files to be processed, querying the database again for files missing the nie:dataSource when the cache has been flushed. When no further items are processed, the miner is stopped. Whenever the prioritized rdf:types list changes, the cache is dropped, just to query again with the new order kept into account. This reduces the potential memory usage of tracker-extract, it would previously would grow linearly with the number of files left to be inspected, which might bring in some memory pressure on certain scenarios. On the downside, this obviously makes the decorator a little bit slower, due to more queries happening (as opposed to a huge one), and at times the decorator is idle waiting to know what else to do. tracker-extract: Keep ref on recovery files The hashtable expects its own ref here, otherwise we get critical warnings after processing that item. docs: delete xml folder before regenerating ontology docs Otherwise it simply fails if there happens to be stale data 2015-06-30 Carlos Garnacho distcheck fix update docs .gitignore docs: Delete dia diagrams, and pre-generated PNGs Those weren't that much clear nor useful, those are deleted in a separate commit in case we want to rescue and rework them someday. docs: Delete ontology graph tool This is now unused, so remove the tool, and the configure.ac check for fdp. docs: Rework ontology docs generation entirely Ontology docs weren't in a much good shape, besides many ontologies being seriously underdocumented (something which should improve separately), the generated docs were little more than a data dump, and the diagrams shown were broken, confusing, or both. This all amounts to quite counter-productive developer docs. So the ontology docs have been refurbished, the per-ontology descriptions are still useful, but have been stripped of all images, and the docs overall are now completely class-centric, per rdfs:Resource subclass we now get: - Ascii diagram of its local hierarchy, up to all its ancestors and down to all its direct children. - All properties that affect the specific class. This is notably more intuitive now as there's properties defined on one ontology that are in the domain of classes in another ontology, something which you couldn't get at a glance in the previous docs - It clearly states which properties supersede which superproperties, which again makes it easier if those apply for the class at hand. The result feels quite neater, and will indeed be more resembling to other gtk-doc generated API docs. 2015-06-30 Pedro Albuquerque Updated Portuguese translation 2015-06-23 Balázs Úr Updated Hungarian translation 2015-06-20 Ralph Boehme configure: fix conditional AM_CONDITIONAL 2015-06-16 Piotr Drąg Updated Polish translation 2015-05-31 Iain Lane libtracker-miner: Set inotify limits for 'GInotifyFileBackend' too As of GLib 2.45.1, the inotify monitor backend is called this. 2015-05-31 Philip Withnall libtracker-common: Don’t fail statvfs() on a missing directory If $XDG_CACHE_HOME/tracker doesn’t exist on startup, the statvfs() call to determine how much space is left will fail with ENOENT. However, the code currently interprets this as being out of space, and will cause the rest of Tracker to shut down, even if there is actually plenty of space left on the disk. Avoid this by traversing up the directory hierarchy until statvfs() does not fail with ENOENT. https://bugzilla.gnome.org/show_bug.cgi?id=748907 2015-05-28 Daniel Mustieles Updated Spanish translation 2015-05-26 Daniel Mustieles Updated Spanish translation 2015-05-23 Michael Biebl Move bash-completion to new location Rename the bash completion script after the binary and move it to /usr/share/bash-completion/completions. This way the completions can be loaded on demand. 2015-05-21 Dušan Kazik Updated Slovak translation 2015-05-20 Christian Kirbach Updated German translation 2015-05-18 Jordi Mas Fixes to Catalan translation 2015-05-17 Martin Srebotnjak Updated Slovenian translation 2015-05-09 Alexander Shopov Added Bulgarian translation 2015-04-26 Cheng-Chia Tseng <> Updated Chinese (Taiwan) translation 2015-04-25 Marek Černocký Updated Czech translation 2015-04-24 Philip Withnall tracker-extract: Only extract media art if artist or title is known media_art_process_*() require at least one of the track’s artist and title to be specified, and will fail an assertion precondition if both are NULL. Other tracker-extract-*.c media backends already do this check, but it was missing from the GStreamer extractor. https://bugzilla.gnome.org/show_bug.cgi?id=748227 2015-04-09 Carlos Garnacho tracker-extract-epub: Ensure we only have one nie:identifier This property has maxCardinality=1, we are however possibly adding multiple values there, either in both UUID/ISBN forms, or as multiple UUIDs in faulty epubs. ISBN should probably be its own rdf:Property, in the mean time, stick to the first nie:identifier found, and ignore the rest. https://bugzilla.gnome.org/show_bug.cgi?id=746401 2015-04-02 Piotr Drąg Slightly improve new strings Updated POTFILES.in 2015-04-01 Kunaal tracker-needle: use gsettings Added gsettings for tracker-needle. Store the last view selected by user in tracker-needle before closing. https://bugzilla.gnome.org/show_bug.cgi?id=740302 2015-04-01 Martyn Russell tracker: Fixed execution bit of tracker-compat, which is broken by sed https://bugzilla.gnome.org/show_bug.cgi?id=746939 2015-03-28 Antoine Jacoutot openbsd: implement tracker_process_get_uid_for_pid() https://bugzilla.gnome.org/show_bug.cgi?id=697719 2015-03-24 Daniel Mustieles Updated Spanish translation 2015-03-24 Milo Casagrande Updated Italian translation 2015-03-24 Marek Černocký Updated Czech translation 2015-03-24 Piotr Drąg Updated Polish translation 2015-03-24 Enrico Nicoletto Updated Brazilian Portuguese translation 2015-03-23 Kunaal