07070100000000000081A400000000000000000000000166339107000001BC000000000000000000000000000000000000001C00000000tracker-3.7.3/.editorconfigroot = true [*] charset = utf-8 end_of_line = lf [*.[ch]] indent_size = 4 indent_style = tab insert_final_newline = true max_line_length = 100 tab_width = 8 [*.py] indent_size = 4 tab_size = 4 indent_style = space [*.sh] indent_size = 4 indent_style = space [*.ontology] indent_size = 4 tab_width = 4 indent_style = tab [*.{xml.in,xml}] indent_size = 2 tab_size = 2 indent_style = space [meson.build] indent_size = 4 indent_style = space07070100000001000081A40000000000000000000000016633910700000032000000000000000000000000000000000000001900000000tracker-3.7.3/.gitignore*~ .*.sw[op] *.desktop *.gcda *.gcno *.pyc build/ 07070100000002000041ED0000000000000000000000026633910700000000000000000000000000000000000000000000001900000000tracker-3.7.3/.gitlab-ci07070100000003000081A40000000000000000000000016633910700003E54000000000000000000000000000000000000001D00000000tracker-3.7.3/.gitlab-ci.ymlinclude: - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/81a36b5c5349fd3222036bb3caa0166083a3fd44/templates/ci-fairy.yml" - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/81a36b5c5349fd3222036bb3caa0166083a3fd44/templates/alpine.yml' - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/81a36b5c5349fd3222036bb3caa0166083a3fd44/templates/fedora.yml' - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/81a36b5c5349fd3222036bb3caa0166083a3fd44/templates/ubuntu.yml' variables: FDO_UPSTREAM_REPO: GNOME/tracker MESON_TEST_TIMEOUT_MULTIPLIER: 3 # These can be used to see verbose log output from the functional-tests. # See HACKING.md for more information. TRACKER_DEBUG: "" # This can be used when debugging test failures that only occur within GitLab CI. MESON_TEST_EXTRA_ARGS: "" stages: - check - review - prepare - code-review - build - test - analysis - website workflow: rules: # Allow to switch from branch pipelines to MR pipelines seamlessly # https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" when: never - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Don't trigger a branch pipeline if there is an open MR - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - if: '$CI_COMMIT_BRANCH' - if: '$CI_COMMIT_TAG' .manual-pipeline-guard: rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - if: '$CI_COMMIT_TAG' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH =~ /^tracker-[0-9-]\.[0-9-]+$/' # Avoid catchall `when: manual` rule which might # cause duplicate pipelines to be triggered. # https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines # # Also make it so pipelines without MR need to be started # manually, since their state will most likely be WIP - if: '$CI_COMMIT_BRANCH' when: 'manual' .check-template: &check extends: - .fdo.ci-fairy artifacts: expire_in: 1 week paths: - check-junit-report.xml reports: junit: check-junit-report.xml repo-sanity: stage: check script: - > if [[ -z "$CI_REGISTRY_IMAGE" ]] ; then .gitlab-ci/simple-junit-report.sh check-junit-report.xml \ repo-sanity "The container registry should be enabled in the project general settings panel at $CI_PROJECT_URL/edit" ; exit 1 ; fi rules: - !reference [.manual-pipeline-guard, rules] <<: *check check-commit-log: variables: GIT_DEPTH: "100" stage: review script: - ci-fairy check-commits --junit-xml=check-junit-report.xml && exit 0; if [[ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]] ; then echo "'ci-fairy check-commits' found commit messages with unexpected format, see https://wiki.gnome.org/Git/CommitMessages for the recommended guidelines. Please fix those before filing a merge request, this will be handled as a pipeline failure there." ; exit 255 ; fi ; exit 1 allow_failure: exit_codes: - 255 needs: - repo-sanity <<: *check check-merge-request: variables: GIT_STRATEGY: none stage: review script: - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; then ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ; else echo "Not a merge request" ; fi needs: - repo-sanity <<: *check .tracker.fedora@common: variables: BASE_TAG: '2024-03-24.3' FDO_DISTRIBUTION_PACKAGES: clang clang-analyzer cmake diffutils gcovr git libasan libsoup-devel libubsan patch python-devel python3-gobject python3-jinja2 python3-markdown python3-markupsafe python3-pip python3-pygments python3-typogrify umockdev-devel xmlto uncrustify FDO_DISTRIBUTION_EXEC: | dnf install -y 'dnf-command(builddep)' 'dnf-command(download)' && dnf builddep -y tracker --setopt=install_weak_deps=False && # For tests, this isn't packaged in Fedora. pip3 install tap.py && dnf clean all && # Prefer gi-docgen from the submodule dnf remove -y gi-docgen --noautoremove .tracker.ubuntu@common: variables: BASE_TAG: '2023-07-03.0' FDO_DISTRIBUTION_PACKAGES: 'python3-tap umockdev libumockdev-dev upower asciidoc-base git gcovr' FDO_DISTRIBUTION_EXEC: | export DEBIAN_FRONTEND=noninteractive && sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list && apt-get -yq update && apt-get -yq upgrade && apt-get -yq build-dep tracker .tracker.alpine@common: variables: BASE_TAG: '2024-03-09.0' FDO_DISTRIBUTION_PACKAGES: 'alpine-sdk asciidoc bash-completion dbus dbus-dev git glib-dev gobject-introspection-dev gtk-doc icu-dev json-glib-dev libsoup-dev libxml2-dev meson py3-gobject3 py3-setuptools py3-tappy sqlite-dev gcovr vala' .tracker.fedora:latest@x86_64: extends: .tracker.fedora@common variables: FDO_DISTRIBUTION_VERSION: latest FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" .tracker.fedora:rawhide@x86_64: extends: .tracker.fedora@common variables: FDO_DISTRIBUTION_VERSION: rawhide FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" .tracker.fedora:latest@aarch64: extends: .tracker.fedora@common variables: FDO_DISTRIBUTION_VERSION: latest FDO_DISTRIBUTION_TAG: "aarch64-${BASE_TAG}" tags: - aarch64 .tracker.fedora:rawhide@aarch64: extends: .tracker.fedora@common variables: FDO_DISTRIBUTION_VERSION: rawhide FDO_DISTRIBUTION_TAG: "aarch64-${BASE_TAG}" tags: - aarch64 .tracker.ubuntu:rolling@x86_64: extends: .tracker.ubuntu@common variables: FDO_DISTRIBUTION_VERSION: rolling FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" .tracker.alpine:latest@x86_64: extends: .tracker.alpine@common variables: FDO_DISTRIBUTION_VERSION: latest FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" build-fedora-container@x86_64: extends: - .fdo.container-build@fedora - .tracker.fedora:latest@x86_64 stage: prepare variables: GIT_STRATEGY: none needs: - check-commit-log - check-merge-request build-fedora-rawhide-container@x86_64: extends: - .fdo.container-build@fedora - .tracker.fedora:rawhide@x86_64 stage: prepare variables: GIT_STRATEGY: none allow_failure: true needs: - check-commit-log - check-merge-request build-fedora-container@aarch64: extends: - .fdo.container-build@fedora - .tracker.fedora:latest@aarch64 stage: prepare variables: GIT_STRATEGY: none needs: - check-commit-log - check-merge-request build-fedora-rawhide-container@aarch64: extends: - .fdo.container-build@fedora - .tracker.fedora:rawhide@aarch64 stage: prepare variables: GIT_STRATEGY: none needs: - check-commit-log - check-merge-request build-ubuntu-container@x86_64: extends: - .fdo.container-build@ubuntu - .tracker.ubuntu:rolling@x86_64 stage: prepare variables: GIT_STRATEGY: none needs: - check-commit-log - check-merge-request build-alpine-container@x86_64: extends: - .fdo.container-build@alpine - .tracker.alpine:latest@x86_64 stage: prepare variables: GIT_STRATEGY: none needs: - check-commit-log - check-merge-request check-code-style: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 needs: - build-fedora-container@x86_64 stage: code-review script: - git fetch origin master; export common_parent_sha=$(diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_DEFAULT_BRANCH}}") <(git rev-list --first-parent HEAD) | head -1) ; python3 -u ./check-style.py --dry-run --sha $common_parent_sha ; allow_failure: true .build-template: &build stage: build script: - meson . build -Ddocs=$([ -z "$NO_DOCS" ] && echo "true" || echo "false") -Db_coverage=true -Db_lto=true -Dsystemd_user_services=false -Dtests_tap_protocol=true -Davahi=disabled --prefix /usr - ninja -C build artifacts: expire_in: 1 day paths: - build build-fedora@x86_64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 needs: - build-fedora-container@x86_64 <<: *build build-fedora-rawhide@x86_64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:rawhide@x86_64 needs: - build-fedora-rawhide-container@x86_64 allow_failure: true <<: *build build-fedora@aarch64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@aarch64 needs: - build-fedora-container@aarch64 allow_failure: true variables: NO_DOCS: "true" <<: *build build-fedora-rawhide@aarch64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:rawhide@aarch64 needs: - build-fedora-rawhide-container@aarch64 allow_failure: true variables: NO_DOCS: "true" <<: *build build-ubuntu-rolling@x86_64: extends: - .fdo.distribution-image@ubuntu - .tracker.ubuntu:rolling@x86_64 needs: - build-ubuntu-container@x86_64 variables: NO_DOCS: "true" <<: *build build-alpine-latest@x86_64: extends: - .fdo.distribution-image@alpine - .tracker.alpine:latest@x86_64 needs: - build-alpine-container@x86_64 variables: NO_DOCS: "true" <<: *build .test-template: &test stage: test variables: G_SLICE: "always-malloc" MALLOC_CHECK_: "3" script: - cd build - | # Remove the many "CI_" variables from the environment. Meson dumps the # whole environment for every failed test, and that gives a whole # screenful of junk each time unless we strip these. unset $(env|grep -o '^CI_[^=]*') ninja clean; ninja env LANG=C.UTF-8 LC_ALL=C.UTF-8 dbus-run-session meson test -t $MESON_TEST_TIMEOUT_MULTIPLIER --print-errorlogs ${MESON_TEST_EXTRA_ARGS} after_script: - pushd build - gcovr --root=.. --filter='\.\./src/' --exclude=../utils --exclude=../examples --exclude=../docs/reference --exclude='\.\./build/.*\.[ch]$' --exclude='.*/tests/.*\.[ch]$' --merge-mode-functions=separate --gcov-ignore-parse-errors=negative_hits.warn --json --print-summary --output=../coverage-${CI_JOB_NAME}.json - popd - | echo "Distribution: " echo egrep '^NAME=|^VERSION=' /etc/os-release echo echo "Test suite settings:" echo echo "G_MESSAGES_DEBUG: ${G_MESSAGES_DEBUG}" echo "TRACKER_DEBUG: ${TRACKER_DEBUG}" echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}" echo echo "These values can be set at https://gitlab.gnome.org/GNOME/tracker/pipelines/new" artifacts: expire_in: 1 day when: always paths: - build - coverage-*.json reports: junit: "build/meson-logs/testlog.junit.xml" test-fedora@x86_64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 needs: - build-fedora@x86_64 <<: *test test-fedora-rawhide@x86_64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:rawhide@x86_64 needs: - build-fedora-rawhide@x86_64 allow_failure: true tags: # There is a mismatch between syscalls and seccomp rules in # some runners, using `crun` is advised in the mean time, see # https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/545 - crun <<: *test test-fedora@aarch64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@aarch64 needs: - build-fedora@aarch64 allow_failure: true <<: *test test-fedora-rawhide@aarch64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:rawhide@aarch64 needs: - build-fedora-rawhide@aarch64 allow_failure: true <<: *test test-ubuntu@x86_64: extends: - .fdo.distribution-image@ubuntu - .tracker.ubuntu:rolling@x86_64 needs: - build-ubuntu-rolling@x86_64 <<: *test test-alpine@x86_64: extends: - .fdo.distribution-image@alpine - .tracker.alpine:latest@x86_64 needs: - build-alpine-latest@x86_64 <<: *test test-website: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 stage: test script: - export install_prefix="$(pwd)/tracker-install" # Build tracker and install. - mkdir website-build; pushd website-build; meson .. --prefix="$install_prefix" -Dsystemd_user_services=false; ninja; ninja install; popd # Copy the gi-docgen website out of the install tree - cp -a $install_prefix/share/doc/Tracker-3.0 ./website # Add the redirects - cp docs/website/redirect-to-website.html docs/website/_redirects ./website artifacts: expose_as: 'Website' paths: - website - website/index.html needs: - build-fedora-container@x86_64 rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH when: never - when: always test-soup2@x86_64: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 needs: - build-fedora@x86_64 before_script: - meson configure -Dsoup=soup2 build <<: *test coverage: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 stage: analysis allow_failure: true script: - mkdir coveragereport - gcovr --add-tracefile 'coverage-*.json' --merge-mode-functions=separate --html-details --print-summary --output coveragereport/index.html - gcovr --add-tracefile 'coverage-*.json' --merge-mode-functions=separate --xml --output coveragereport/coverage.xml coverage: '/^lines: (\d+\.\d+\%)/' artifacts: expose_as: 'Coverage' when: always paths: - coveragereport - coveragereport/index.html reports: coverage_report: coverage_format: cobertura path: coveragereport/coverage.xml needs: - test-fedora@x86_64 - test-fedora-rawhide@x86_64 - test-fedora@aarch64 - test-fedora-rawhide@aarch64 - test-alpine@x86_64 - test-soup2@x86_64 coverity: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 stage: analysis allow_failure: true script: - curl https://scan.coverity.com/download/linux64 --data "token=$COVERITY_TOKEN&project=Tracker" --output /tmp/coverity_tool.tgz - tar zxf /tmp/coverity_tool.tgz - mkdir coverity-build - cd coverity-build - env CC=clang meson setup .. -Dsystemd_user_services=false - ../cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja - tar czf cov-int.tar.gz cov-int - curl https://scan.coverity.com/builds?project=Tracker --form token=$COVERITY_TOKEN --form email=carlosg@gnome.org --form file=@cov-int.tar.gz --form version="`git describe --tags`" --form description="gitlab CI build" needs: - build-fedora-container@x86_64 only: - master except: changes: - po/*.po static-scan: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 stage: analysis needs: - build-fedora-container@x86_64 script: - meson --buildtype=debug _scan_build -Dsystemd_user_services=false - ninja -C _scan_build scan-build artifacts: paths: - _scan_build/meson-logs allow_failure: true pages: extends: - .fdo.distribution-image@fedora - .tracker.fedora:latest@x86_64 stage: website script: - mv website public artifacts: paths: - public needs: - test-website only: - master 07070100000004000081ED0000000000000000000000016633910700000390000000000000000000000000000000000000003400000000tracker-3.7.3/.gitlab-ci/checkout-tracker-miners.sh#!/usr/bin/env bash tracker_target= mkdir extra cd extra git clone --depth 1 https://gitlab.gnome.org/GNOME/tracker-miners.git if [ $? -ne 0 ]; then echo Checkout failed exit 1 fi cd tracker-miners if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//tracker/tracker-miners} merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME echo Looking for $merge_request_branch on remote ... if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then tracker_target=FETCH_HEAD else tracker_target=origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME echo Using $tracker_target instead fi fi if [ -z "$tracker_target" ]; then tracker_target=$(git branch -r -l origin/$CI_COMMIT_REF_NAME) tracker_target=${tracker_target:-origin/master} echo Using $tracker_target instead fi git checkout -q $tracker_target 07070100000005000081A40000000000000000000000016633910700000247000000000000000000000000000000000000002A00000000tracker-3.7.3/.gitlab-ci/commit-rules.ymlpatterns: require: - regex: '^[^:]+: +[^ ]' message: "Commit message subject must have a prefix. E.g. 'tests: '" deny: - regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$' message: "Commit message must not contain a link to its own merge request" - regex: '^[^:]+: [a-z]' message: "Commit message subject should be properly Capitalized. E.g. 'cli: Fix help subcommand'" where: subject - regex: '^\S*\.[ch]:' message: Commit message subject prefix should not include .c, .h, etc. where: subject 07070100000006000081ED000000000000000000000001663391070000018F000000000000000000000000000000000000003000000000tracker-3.7.3/.gitlab-ci/simple-junit-report.shOUTFILE=$1 NAME=$2 MESSAGE=$3 cat >$OUTFILE < EOF # Also echo the message in stdout for good measure echo $MESSAGE 07070100000007000081A400000000000000000000000166339107000000AB000000000000000000000000000000000000001A00000000tracker-3.7.3/.gitmodules[submodule "subprojects/gvdb"] path = subprojects/gvdb url = https://gitlab.gnome.org/GNOME/gvdb.git branch = 0854af0fdb6d527a8d1999835ac2c5059976c210 shallow = true 07070100000008000081A40000000000000000000000016633910700000676000000000000000000000000000000000000001600000000tracker-3.7.3/AUTHORSMartyn Russell Jürg Billeter Philip Van Hoof Carlos Garnacho Mikael Ottela Ivan Frade Jamie McCracken Adrien Bustany Aleksander Morgado Anders Aagaard Anders Rune Jensen Baptiste Mille-Mathias Christoph Laimburg Dan Nicolaescu Deji Akingunola Edward Duffy Eskil Bylund Eugenio Fabien VALLON Gergan Penkov Halton Huo Jaime Frutos Morales Jedy Wang Jerry Tan John Stowers Julien Laurent Aguerreche Luca Ferretti Marcus Fritzsch Michael Biebl Michal Pryc Mikkel Kamstrup Erlandsen Nate Nielsen Neil Patel Richard Quirk Saleem Abdulrasool Samuel Cormier-Iijima Tobutaz Tom Tshepang Lekhonkhobe Ulrik Mikaelsson 07070100000009000081A400000000000000000000000166339107000000EC000000000000000000000000000000000000001600000000tracker-3.7.3/COPYINGlibtracker, tracker-extract, tracker-utils and gvdb are licensed under the LGPLv2.1+. See the file COPYING.LGPL. libstemmer is licensed under BSD-3-clause. Everything else is licensed under the GPLv2+. See the file COPYING.GPL. 0707010000000A000081A4000000000000000000000001663391070000464D000000000000000000000000000000000000001A00000000tracker-3.7.3/COPYING.GPL GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. 0707010000000B000081A4000000000000000000000001663391070000679F000000000000000000000000000000000000001B00000000tracker-3.7.3/COPYING.LGPL GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! 0707010000000C000081A40000000000000000000000016633910700097172000000000000000000000000000000000000002300000000tracker-3.7.3/ChangeLog.pre-0-6-932009-04-09 Martyn Russell * Release 0.6.93. 2009-04-09 Martyn Russell * configure.ac: Updated in preparation for release 0.6.93. 2009-04-09 Martyn Russell * src/tracker-applet/tracker-applet.c: (about_menu_activated): Updated Copyright years. Patch by Michele Mattioni. 2009-04-09 Martyn Russell * src/tracker-extract/tracker-main.c: (main): Don't keep the tracker-extract command running if DBus says it is already running. 2009-04-08 Carlos Garnacho * src/tracker-preferences/tracker-preferences.c (cmd_apply): Make the "Index mounted directories" option also manage removable devices. 2009-04-08 Carlos Garnacho * src/libtracker-common/tracker-config.c: Fix a typo. 2009-04-07 Carlos Garnacho * src/tracker-indexer.c (index_flushing_notify_cb): Do not try to enter into finished state after flushing in the cleanup task, since it closes the indexes. 2009-04-07 Martyn Russell * src/tracker-extract/tracker-main.c: (main): Make sure we send the thumbnailer queue to the thumbnailer daemon when we shutdown after 30 seconds of inactivity in the extractor. 2009-04-07 Martyn Russell * src/trackerd/tracker-main.c: * src/trackerd/tracker-status.c: Only set nice() to 19 when crawling the file system, for all other times, we use the value as set when the process is started (which is controlled by outside influence of course). 2009-04-07 Martyn Russell * src/libtracker-common/tracker-thumbnailer.h: * src/libtracker-common/tracker-albumart.h: Added preprocessor checks for __LIBTRACKER_COMMON_INSIDE__ which were missing. * src/libtracker-common/tracker-albumart.[ch]: * src/tracker-extract/tracker-extract-mp3.c: Fixed coding style issues. * src/libtracker-common/tracker-albumart.[ch]: * src/tracker-extract/tracker-extract-albumart.c: * src/tracker-extract/tracker-main.[ch]: Only create one TrackerHal object during the life time of tracker-extract instead of for EVERY file which has album art (which is quite a lot). This seems to be showing an increase of 2x the speed now for tracker-extract. * src/tracker-indexer/tracker-main.c: (main): Added print statement like we have in the daemon so we know when the process is finished and returning to the cmd line. * tests/tracker-extract/tracker-extract-test-utils.c: (tracker_test_extract_file_access): Added tracker_main_get_hal() fixes to ensure the tests build. 2009-04-07 Carlos Garnacho Propagate index errors up to the GUI, so the user has the opportunity to trigger a reindex. * src/libtracker-db/tracker-db-index.[ch]: Add an "error-received" signal. Emit it when QDBM fails to store a word. * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-marshal.list: * src/tracker-indexer/tracker-indexer.[ch]: Add an "IndexingError" DBus signal. Propagate up index errors. * data/dbus/tracker-daemon.xml: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-marshal.list: Add an "IndexingError" signal. Listen to that signal from the indexer in order to propagate it up the stack. src/tracker-applet/tracker-applet.[ch]: Listen for the new signal, and display an error notification with an option to reindex from scratch. 2009-04-07 Mikael Ottela * tests/tracker-extract/tracker-extract-png-test.c * tests/tracker-extract/tracker-extract-jpeg-test.c * tests/tracker-extract/tracker-extract-testsuite-generic.c * tests/tracker-extract/tracker-extract-tiff-test.c * tests/tracker-extract/tracker-extract-gstreamer-test.c * tests/tracker-extract/tracker-extract-testsuite-generic.h * tests/tracker-extract/tracker-extract-mp3-test.c * tests/tracker-extract/tracker-extract-test-utils.c * tests/tracker-extract/tracker-extract-test-utils.h * tests/tracker-extract/Makefile.am: Load the extractors modules for tests instead of directly linking as before. 2009-04-06 Carlos Garnacho * src/tracker-applet/tracker-marshal.list: * src/tracker-applet/tracker-applet.c: Generate the right marshaller for the IndexStateChange signal. 2009-04-06 Carlos Garnacho * src/tracker-applet/tracker-applet-marshallers.[ch]: Do not keep generated code. * src/tracker-applet/tracker-marshal.list: * src/tracker-applet/tracker-marshal-main.c: * src/tracker-applet/Makefile.am: Instead use the right tools. * src/tracker-applet/tracker-applet.c: Adapt to name changes. 2009-04-06 Martyn Russell * src/tracker-extract/tracker-main.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Use #ifdef __linux__ before including /usr/include/linux/ files. Fixes bug #577656 (Jasper Lievisse Adriaanse). 2009-04-06 Martyn Russell * src/libtracker-common/tracker-os-dependant-unix.c: (tracker_memory_setrlimits): Disabled by default to stop us getting SIGSEGV just because we reach the memory limits (which are small), instead we shouldn't be crashing, we should be investigating said issues. This should fix several launchpad issues that were reported since 0.6.91. 2009-04-06 Mikael Ottela * src/tracker-extract/tracker-iptc.c * src/tracker-extract/tracker-xmp.c: Fixes to the way multiple values are handled in some special cases in extraction. Fixes NB#108793. 2009-04-06 Martyn Russell * src/libtracker-data/tracker-turtle.[ch]: Fixed crasher in tracker_turtle_close() by checking if ->file is set before doing anything with it. Also now use tracker_file_{open|close} instead so we use posix_fadvise(). Fixes LP#355982. 2009-04-05 Ivan Frade * src/tracker-indexer/tracker-indexer.c: Surround hal code with ifdefs to fix compilation without hal. Fixes bug #577655. 2009-04-04 Ivan Frade * configure.ac: raptor >= 1.4.17. Tracker uses in the code RAPTOR_FEATURE_WRITE_BASE_URI that is available only since that version. 2009-04-03 Martyn Russell * src/libtracker-common/tracker-albumart.c: * src/libtracker-common/tracker-thumbnailer.[ch]: * src/tracker-extract/tracker-extract-albumart.c: * src/tracker-extract/tracker-main.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Updated thumbnailer code so we only send thumbnails to the thumbnailer daemon AFTER we have finished indexing to improve performance. 2009-04-03 Carlos Garnacho * src/tracker-extract/tracker-extract-gstreamer.c (add_tags) (tracker_extract_gstreamer): Plug more leaks. 2009-04-03 Carlos Garnacho * src/libtracker-common/tracker-hal.c (tracker_hal_init) (tracker_hal_finalize): Keep a pointer to the DBusConnection in order to unref it. Also, shut the libhal context down before destroying it, Fixes NB#107570. 2009-04-03 Carlos Garnacho * src/libtracker-common/tracker-albumart.c (tracker_albumart_queue_cb): do not strcmp the GError message, use error->code instead. Do not access() NULL paths. (tracker_albumart_get_path): Improve memory management if the function exits prematurely. * src/tracker-extract/tracker-extract-albumart.c (tracker_process_albumart): bail out if it couldn't get art_path. 2009-04-02 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Watch for DURATION messages and stop extraction when we receive one. Needed for elements/formats where several buffers needed for obtaining a valid duration. Plugged a leak, we never freed the audio- and videotags. 2009-04-02 Carlos Garnacho * src/tracker-extract/tracker-extract-gstreamer.c (tracker_extract_gstreamer): Fix a leak and a possible memory corruption. * src/tracker-extract/tracker-extract-mp3.c (extract_mp3): Do not make id3 tags parsers read invalid memory if file size is above MAX_FILE_READ. * src/tracker-extract/tracker-extract-png.c (extract_png): Free correctly the ending info pointer. * src/tracker-extract/tracker-extract.c (get_file_metadata): Plug a leak, caused when no extractor was found. * src/tracker-extract/tracker-main.c: Initialize the quit timeout ID to 0, so we don't try to remove nonexistent sources. 2009-04-02 Michael Biebl * src/plugins/evolution/Makefile.am, src/plugins/kmail/Makefile.am, src/plugins/rss/Makefile.am: Do not include BUILT_SOURCES in EXTRA_DIST. 2009-04-02 Martyn Russell * src/tracker-utils/tracker-info.c: (main): Fixed translations to use plural forms where needed. Spotted by Luca Ferretti. 2009-04-02 Martyn Russell * src/trackerd/tracker-monitor.c: (get_queue_from_gfile): Improve performance here, don't create/free a new list and iterate the hash table twice. This operation should be faster. Patch from Philip Van Hoof. 2009-04-01 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: More checks for unknown genre values. Fixes NB#106639. 2009-04-01 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Improvements to the stream info extraction using gstreamer. Fixes NB#107122. 2009-04-01 Mikael Ottela * src/tracker-extract/tracker-xmp.c: Handle existance of invalid dates correctly. Fixes NB#108793. 2009-04-01 Martyn Russell * src/tracker-utils/tracker-info.c: Added command line switches to faciliate the _get() and _get_multiple() APIs for Metadata. Now we can request multiple specific metadata types for multiple files using tracker-info. * data/dbus/tracker-metadata.xml: * src/libtracker/tracker.[ch]: * src/trackerd/tracker-metadata.[ch]: Added tracker_metadata_get_multiple() so we can get multiple metadata types for multiple files. This is quite a bit faster than requesting multiple metadata types for one file at a time. Fixes NB#108543. 2009-04-01 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (mount_pre_unmount_cb): Check that there's actually a current item before checking whether it's inside the mount. 2009-03-31 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata-utils.c (metadata_utils_get_embedded): Check for NULL context, since it can potentially happen, noticed by Philip Van Hoof. Prevents Bug NB#108819. (extractor_context_create): Raise severity of error message. 2009-03-31 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Fixed a memory leak * src/tracker-extract/tracker-iptc.c: Use location instead of sublocation for iptc-sublocation. Fixes NB#108331. 2009-03-31 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-extract-jpeg.c * src/tracker-extract/tracker-extract.c * src/tracker-extract/tracker-iptc.c: Some minor leak and other fixes 2009-03-31 Carlos Garnacho * src/libtracker-data/tracker-rdf-query.c (append_where_header): Filter out disabled elements in the Services table. Fixes NB#106085. 2009-03-30 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: Make tracker_file_open() return a FILE*. Added tracker_file_close(). Don't use open() and fdopen() everywhere, just fopen() instead. Add NOATIME retrspectively with fcntl(). * configure.ac: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract-vorbis.c: Added vorbis checks and cleaned up vorbis code. This is a backup, we use GStreamer normally and this is disabled by default. * src/tracker-extract/tracker-extract-abw.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-png.c: * src/tracker-extract/tracker-extract-ps.c: * src/tracker-indexer/modules/evolution-imap.[ch]: Use tracker_file_() functions to open/close files with posix_fadvise(). * src/tracker-extract/tracker-extract.c: Fixed 2 memory leaks. 2009-03-30 Martyn Russell * src/tracker-indexer/tracker-removable-device.c: Code clean up. Don't allocate memory for AddMetadataInfo and then return on some failure without cleaning it up. Use tracker_file_() APIs so we use posix_fadvise(). 2009-03-30 Martyn Russell * utils/tracker-fts/tracker-fts-test.c: Fixed missing include warning. 2009-03-30 Martyn Russell * src/tracker-utils/tracker-tag.c: (main): Fixed remove sys function confusion with static variable, was stopping tracker-tag from building. Not sure why this has started happening now? 2009-03-30 Carlos Garnacho * src/libtracker-db/tracker-db-index-manager.[ch]: * src/trackerd/tracker-main.c: Remove all references to the old file-index-update.db file, which isn't used anymore. 2009-03-27 Martyn Russell * Release 0.6.92. 2009-03-27 Carlos Garnacho * src/tracker-indexer/tracker-push.c (load_modules): Close the dir. 2009-03-27 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Do not try to memmove() past array boundaries when removing an element. 2009-03-27 Carlos Garnacho * src/libtracker-data/tracker-data-query.c (result_set_to_metadata): Do not leak GValues contents. 2009-03-27 Carlos Garnacho * src/libtracker-data/tracker-data-metadata.c (tracker_data_metadata_insert_values): Create a copy of the list before freeing the old values, since the new list could be constructed from these old values. Fixes NB#100642. 2009-03-26 Mikael Ottela * src/libtracker-data/tracker-data-search.c: Added the missing order-type join conditions. 2009-03-26 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c * src/tracker-extract/tracker-iptc.c: Fixed a small ontology mistake in the image extractors. 2009-03-25 Carlos Garnacho Make GVolumeMonitor::mount-pre-unmount cancel any ongoing operation in the indexer on the removable media. This isn't available yet due to GLib not emitting such signal, but it will soon. * src/tracker-indexer/tracker-module-file.[ch] (tracker_module_file_cancel) (tracker_module_file_is_cancelled): Added new API. * src/tracker-indexer/tracker-module-metadata-utils.[ch]: Reworked to have child processes async+killable. (tracker_module_metadata_utils_cancel): New function to kill all external processes on a GFile. * src/tracker-indexer/modules/files.c: Use new metadata utils function to immediately cancel an operation. * src/tracker-indexer/tracker-indexer.c (check_mount_removal) (mount_pre_unmount_cb) (tracker_indexer_finalize) (tracker_indexer_init): Hook to GVolumeMonitor::mount-pre-unmount, so any ongoing+future operations on the removable media are cancelled. (item_add_or_update) (item_move) (item_process) (process_file): Reworked to have a single point of cancellation. 2009-03-25 Mikael Ottela * src/libtracker-data/tracker-data-schema.c: * src/libtracker-data/tracker-rdf-query.c: Fixed a missing condition for join. 2009-03-25 Martyn Russell * src/trackerd/tracker-daemon.c: (tracker_daemon_get_stats): Fixed comparison with unset variable. 2009-03-25 Jürg Billeter * configure.ac: Disable static libraries by default. 2009-03-25 Jürg Billeter * configure.ac: Update help strings for the configure options of the mail push modules. 2009-03-25 Mikael Ottela * data/db/sqlite-service.sql: Added key collations to Services table. Additional indices. * data/services/default.service: * src/libtracker-db/tracker-db-manager.c * src/libtracker-common/tracker-ontology.c * src/libtracker-common/tracker-ontology.h * src/libtracker-data/tracker-data-schema.c * src/libtracker-data/tracker-data-search.c * src/libtracker-data/tracker-rdf-query.c * src/libtracker-data/tracker-data-update.c * src/libtracker-data/tracker-field-data.c * src/libtracker-data/tracker-field-data.h: Use key collations in queries and updates. Performance improvements to the queries. 2009-03-25 Carlos Garnacho * src/libtracker-data/tracker-data-update.c (tracker_data_update_replace_service): Refactored not to have duplicated code, do not compare file mtimes with the Accessed column in the Services table, instead use the GetServiceID stored procedure and compare against the IndexTime column. 2009-03-24 Martyn Russell * src/tracker-applet/tracker-applet-prefs.glade: * src/tracker-applet/tracker-applet.c: Removed all "merge" options since they no longer apply. Added more state information so the user isn't left wondering what is going on. Now we report states: watching, crawling, optimising and shutting down. 2009-03-24 Martyn Russell * src/tracker-utils/tracker-processes.c: Fixed build warnings. 2009-03-23 Martyn Russell * src/trackerd/tracker-processor.c: (get_remote_roots), (process_module_files_add_removable_media), (crawler_finished_cb), (mount_point_added_cb), (mount_point_removed_cb): Make use of g_strcmp0() so we don't crash with NULL strings as reported in LP#347352. 2009-03-23 Martyn Russell * src/libtracker-db/tracker-db-index-manager.[ch]: * src/libtracker-db/tracker-db-manager.[ch]: Make it possible to initialise these managers JUST for removing databases and resetting. * src/tracker-utils/Makefile.am: * src/tracker-utils/tracker-processes.c: Added options --hard-reset to kill all processes AND remove all databases. Also updated all output messages so they are translated. Added --terminate to use SIGTERM on all tracker processes and added --kill to use SIGKILL on all tracker processes. 2009-03-23 Martyn Russell * src/tracker-utils/tracker-processes.c: Only include basename in list and exclude ourselves from the list of running processes. Also remove the ":" between the "PID" and value for mouse copy and paste ease. 2009-03-23 Martyn Russell * data/dbus/tracker-extract.xml: * src/tracker-extract/tracker-extract.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-module-metadata-utils.c: Added GetPid API call to extractor. We now call this furst so we know what process to kill when the extractor misbehaves. The old solution would kill EVERY tracker-extract process on the system which (if the user has permissions) is potentially quite bad for multiple users using Tracker. This should be quicker than the old solution too. 2009-03-23 Philip Van Hoof * src/tracker-indexer/modules/evolution.c: fixed undefined symbol compilation error 2009-03-23 Martyn Russell * src/tracker-applet/tracker-applet.c: Revert turning on debugging. 2009-03-23 Martyn Russell * src/trackerd/tracker-status.c: Make sure we change the throttling when the battery is in use or not. Changed battery charge debugging to show even when it is charging, not just discharging. 2009-03-23 Martyn Russell * src/libtracker-common/tracker-hal.c: Improved add/remove/found devices debug messages. * src/trackerd/tracker-status.c: (battery_percentage_cb): Fixed message for battery percentage left so we don't always print 0%. 2009-03-23 Martyn Russell * src/tracker-extract/tracker-main.c: (signal_handler): * src/tracker-indexer/tracker-main.c: (signal_handler): * src/trackerd/tracker-main.c: (signal_handler): Fixes NB#102800, uses _exit() instead of exit() when receiving termination signals more than once (like Ctrl+C). 2009-03-20 Martyn Russell * src/tracker-indexer/tracker-module-metadata-utils.c: Used code from tracker-processes utility to find tracker-extract when we get a dbus timed out (and other type) messages and kill it with SIGKILL. This should fix the problems we were seeing with the extractor locking up for long periods of time on the device. * src/tracker-utils/Makefile.am: * src/tracker-utils/tracker-processes.c: Added utility to get all tracker processes running on the system. 2009-03-20 Martyn Russell * data/db/sqlite-service-types.sql: * data/db/sqlite-service.sql: * data/db/sqlite-stored-procs.sql: * src/libtracker-db/tracker-db-manager.c: * src/trackerd/tracker-daemon.c: Added ParentID and 2 indexes to improve GetStats performance. Removed erroneous indexes which were creating warnings when creating the databases. Added stored proc to get all parent service type statistics (like Files, Emails, Conversations, etc). * src/tracker-applet/tracker-applet.c: Fixed stats order. This was broken recently with the change to the stored procs. * src/trackerd/tracker-main.c: Don't try to reset the stats in the database when we reindex, we don't hold stats in the same place in the same way now. 2009-03-20 Philip Van Hoof * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/Makefile.am: * configure.ac: * src/tracker-indexer/modules/evolution-imap-db.h: * src/tracker-indexer/modules/evolution-imap-db.c: Removed support for the sqlite based pull indexer module for Evolution Enabled by defualt the support for the push indexing module for Evolution (Evolution pushes data into Tracker's storage) This fixes https://qa.mandriva.com/show_bug.cgi?id=48977 2009-03-20 Philip Van Hoof * src/libtracker-common/tracker-thumbnailer.c: Using an int instead of an int64 for this dbus call 2009-03-20 Martyn Russell * data/services/image.metadata: Fixed errors stopping file from being loaded. * src/libtracker-db/tracker-db-manager.c: Improve debugging so we see exactly what each .metadata file loads and also added GError to g_key_file_load* functions for metadata and service files so if they don't load we know why in the logs. 2009-03-19 Mikael Ottela * data/services/image.metadata: Added missing field type definition. 2009-03-19 Mikael Ottela * data/services/default.service * data/db/sqlite-service.sql * src/libtracker-data/tracker-data-search.c: Use the collation for sorting correctly. First phase of improving the unique values queries performance. * src/libtracker-data/tracker-data-update.c: Make sure no empty strings are added to the database. 2009-03-19 Martyn Russell * configure.ac: * 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/libtracker/Makefile.am: Added libtool library versioning so libraries are not all named .so.0.0.0. 2009-03-17 Mikael Ottela * data/services/image.metadata: Added sublocation property to images. * src/tracker-extract/tracker-iptc.c: * src/tracker-extract/tracker-xmp.c: Extract information for the sublocation. Fixes NB#90455. 2009-03-17 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Minor fixes to id3v2 extraction. Fixes NB#106424. 2009-03-17 Carlos Garnacho * src/libtracker-data/tracker-data-update.c (tracker_data_update_delete_service_by_path): Fail gracefully if the rdf type doesn't exist in the ontology. 2009-03-17 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (flush_data): Fixed wrong logic when signalling status. 2009-03-17 Martyn Russell * src/tracker-indexer/tracker-indexer.c: (should_change_index_for_file): Make sure we check the mtime in the db and on the disk are the same here before returning, don't assume if the file is older it means the same thing. 2009-03-17 Martyn Russell * configure.ac: Provide information about if GStreamer helix is being built in the summary. 2009-03-17 Martyn Russell * configure.ac: * src/tracker-extract/Makefile.am: Fixed GStreamer helix bin checks in configure and renamed variables. 2009-03-17 Carlos Garnacho * src/tracker-extract/tracker-main.c: Transform filenames passed through the -f parameter to full paths. 2009-03-17 Carlos Garnacho * src/tracker-extract/tracker-escape.c (tracker_escape_metadata): Handle NULL strings. Fixes NB#106201. 2009-03-16 Martyn Russell * src/tracker-applet/tracker-applet.c: (filter_x_events): * src/trackerd/tracker-main.c: (main): * src/trackerd/tracker-processor.c: (item_queue_handlers_set_up): Use g_timeout_add_seconds() in preference to g_timeout_add(). Fixes bug #573834 (Marcel Stimberg). 2009-03-16 Martyn Russell * configure.ac: Fix confusion and error with deskbar-applet module dir detection. Fixes bug #575271 (Deji Akingunola). 2009-03-16 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (handle_metadata_add): Make sure that we allocate enough space for the tags that are going to be set, and that no empty places are left in between. This fixes both memory corruption and strange behavior when saving tags. 2009-03-16 Martyn Russell * src/libtracker-db/tracker-db-dbus.c: Don't check each string for utf8 validity in tracker_dbus_query_result_to_ptr_array() since we call tracker_dbus_slist_to_strv() which does this for us anyway. * src/tracker-applet/tracker-applet.c: Fixed crasher here and added a refresh button so the user can request updates more frequently than they are signalled to us. Fixes bug #575332. * src/trackerd/tracker-daemon.c: Fixed the "service-statistics-updated" signal here so we actually send the GType that is expected based on the dbus XML introspection file. 2009-03-16 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (db_exec_proc): Removed dead code. * src/tracker-extract/tracker-extract-pdf.c: Added missing include. 2009-03-16 Carlos Garnacho * data/db/sqlite-tracker.sql: Set primary key on the Options table, so the 'Replace' statement in the SetOption stored procedure actually replaces the setting value. Fixes #570232 2009-03-13 Mikael Ottela * src/libtracker-data/tracker-rdf-query.c: Return undefined integer values with empty field in rdf (as with strings) 2009-03-13 Philip Van Hoof * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: * src/tracker-extract/tracker-main.c: Reverting SCHED_IDLE and setting the extractor to nice(). We don't want to go into SCHED_IDLE else will any app with a bug like "while(1);" make us strave. This is really a bad idea. Apps that want to have a prio over tracker's processes should simply use SCHED_FIFO themselves. Don't require apps to run at a lower prio, run at a higher prio yourself if you are indeed realtime. Keeping the nice() value so that for a normal desktop we run at a level that is lower-than-everybody-else. 2009-03-13 Martyn Russell * Release 0.6.91. 2009-03-13 Martyn Russell * NEWS: * configure.ac: * python/deskbar-handler/tracker-module.py: Prepare for release 0.6.91. 2009-03-13 Martyn Russell * src/libtracker-data/tracker-data-update.c: (tracker_data_update_reset_volume): Make sure we convert the volume id into a string before using it in the stored procedure, was crashing. * src/trackerd/tracker-volume-cleanup.c: (check_for_volumes_to_cleanup): Small clean ups trying to find a crash. 2009-03-13 Philip Van Hoof * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/trackerd/tracker-volume-cleanup.c: * data/db/sqlite-stored-procs.sql: fixes a bug in cleaning up thumbnails from removed devices 2009-03-13 Philip Van Hoof * src/trackerd/tracker-main.c: Don't use SCHED_IDLE for the daemon 2009-03-13 Martyn Russell * src/trackerd/tracker-volume-cleanup.c: (check_for_volumes_to_cleanup): Fixed blunder on my part, reusing variable name. Seems to work nicely. 2009-03-13 Jürg Billeter * src/tracker-indexer/tracker-indexer.c: (process_file): Remove unused path variable. 2009-03-13 Martyn Russell * src/trackerd/tracker-volume-cleanup.c: (check_for_volumes_to_cleanup), (tracker_volume_cleanup_init): Added some messaging so we can see what is going on here. 2009-03-13 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-cleanup.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-volume-cleanup.[ch]: Renamed tracker-cleanup to tracker-volume-cleanup so the name makes more sense. 2009-03-13 Martyn Russell * src/trackerd/tracker-cleanup.c: (check_for_volumes_to_cleanup), (tracker_cleanup_init): Code clean ups. 2009-03-13 Philip Van Hoof * src/trackerd/tracker-cleanup.c: * data/db/sqlite-stored-procs.sql: Cleaning up removable devices' thumbnails after a long period of the device not having been mounted 2009-03-12 Philip Van Hoof * src/libtracker-data/tracker-data-update.c: Cope with the insanity of the current ontology 2009-03-12 Martyn Russell * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-main.c: Put statistics update signal in a separate public function. Fixed not signalling stats when we remove a MMC. Now clients will get updates not only when an MMC is inserted. * src/trackerd/tracker-daemon.h: Removed tracker_daemon_backup(), function no longer exists. 2009-03-12 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (flush_data): Do not emit status if the indexer is not indexing. 2009-03-12 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata.c (tracker_module_metadata_add_take_string): Be more permissive about NULL metadata values. 2009-03-12 Martyn Russell * src/trackerd/tracker-daemon.c: (tracker_daemon_init): Removed dead code left around causing GObject warnings. 2009-03-12 Martyn Russell * src/trackerd/tracker-crawler.c: (tracker_crawler_start): * src/trackerd/tracker-daemon.c: (indexer_finished_cb): Fixed 3 memory leaks and a bug in the statistics signalling code rewrite. 2009-03-12 Martyn Russell * src/trackerd/tracker-daemon.c: Fixed the "ServiceStatisticsUpdated" signal we emit so we don't send empty GStrvs over DBus. Now we accurately tell clients what service types changed when we get the "Finished" signal from the indexer. Also, we now don't get stats when initialising the daemon, only when we get our first "Finished" signal. Fixes NB#105133. 2009-03-12 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (generate_item_thumbnail) (item_add_or_update): Generate thumbnails here, so we can access configuration and actually respect the EnableThumbnails option. Fixes bug #503595. * src/tracker-indexer/tracker-module-metadata-utils.c (tracker_module_metadata_utils_get_data): Remove thumbnail generation from here. 2009-03-12 Philip Van Hoof * src/tracker-indexer/tracker-removable-device.c: Fixed a crash when removing a resource from a removable device 2009-03-11 Carlos Garnacho * src/tracker-extract/tracker-extract-pdf.c (extract_pdf): Also include Doc:Created in the metadata. Fixes bug #489876. 2009-03-11 Martyn Russell * src/libtracker-common/tracker-hal.c: Reduce the amount of debugging when starting up and detecting HAL devices. * src/trackerd/tracker-main.c: Fixed debugging. 2009-03-11 Martyn Russell * tests/tracker-extract/tracker-extract-test-utils.[ch]: * tests/tracker-extract/tracker-extract-testsuite-avi.c: * tests/tracker-extract/tracker-extract-testsuite-jpeg.c: * tests/tracker-extract/tracker-extract-testsuite-mp3.c: * tests/tracker-extract/tracker-extract-testsuite-png.c: * tests/tracker-extract/tracker-extract-testsuite-tiff.c: Use proper name spacing for public functions and cleaned up the code a little. Also added test mp3s so make check doesn't fail. 2009-03-11 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Ensure weights are correct before inserting hits for a new word. 2009-03-11 Carlos Garnacho * src/libtracker-common/tracker-hal.c (tracker_hal_init): Ensure daemons do not exit if the system bus is shut down. Partly fixes bug #519222. 2009-03-11 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata-utils.c (process_context_invalidate) (process_context_destroy): Merged together. (process_context_child_watch_cb): Removed obsolete code. (process_context_create): Set a 10 seconds timeout to extract text. Fixes bug #455588. 2009-03-11 Martyn Russell * tests/libtracker-db/tracker-index-writer-test.c: Code clean ups. 2009-03-11 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * data/db/sqlite-cache.sql: * data/db/sqlite-stored-procs.sql: * tests/scripts/data/xesam.sql: Removed some more Xesam traces that were burried deeper 2009-03-11 Philip Van Hoof * src/libtracker-data/tracker-data-schema.c: * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-schema.h: * src/libtracker-data/tracker-data-live-search.h: * src/libtracker-data/tracker-xesam-query.c: * src/libtracker-data/tracker-xesam-query.h: * src/libtracker-data/tracker-data-update.h: * src/libtracker-data/Makefile.am: * src/trackerd/tracker-search.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-xesam-session.c: * src/trackerd/tracker-xesam-session.h: * src/trackerd/tracker-xesam.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam.h: * src/trackerd/tracker-xesam-live-search.h: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-xesam-manager.h: * src/trackerd/tracker-dbus.c: * src/trackerd/Makefile.am: * src/trackerd/tracker-utils.c: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-index-manager.c: * src/libtracker-db/tracker-db-manager.h: * src/libtracker-common/tracker-service.h: * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-ontology.c: * src/libtracker-common/tracker-config.h: * src/libtracker-common/tracker-service.c: * tests/trackerd: * tests/trackerd/tracker-xesam-test.c: * tests/trackerd/tracker-xesam-session-test.c: * tests/trackerd/tracker-xesam-hit-test.c: * tests/trackerd/Makefile.am: * tests/trackerd/tracker-xesam-hits-test.c: * tests/trackerd/tracker-xesam-test.h: * tests/trackerd/tracker-xesam-session-test.h: * tests/trackerd/tracker-xesam-hit-test.h: * tests/trackerd/xesam: * tests/trackerd/xesam/xesam-g-globals-private.h: * tests/trackerd/xesam/xesam-g-testsearcher.h: * tests/trackerd/xesam/xesam-g-debug-private.h: * tests/trackerd/xesam/xesam-g-utils.h: * tests/trackerd/xesam/xesam-g-test-query-builder.c: * tests/trackerd/xesam/gtestextensions.c: * tests/trackerd/xesam/Makefile.am: * tests/trackerd/xesam/xesam-g-test-query-builder.h: * tests/trackerd/xesam/gtestextensions.h: * tests/trackerd/xesam/xesam-g-testsearcher.c: * tests/trackerd/xesam/README: * tests/trackerd/README: * tests/trackerd/tracker-xesam-hits-test.h: * tests/libtracker-db/tracker-db-manager-test-attach.c: * tests/libtracker-db/union-performance.c: * tests/libtracker-db/Makefile.am: * tests/libtracker-db/tracker-db-manager-test-unattach.c: * tests/libtracker-db/tracker-db-manager-test-custom.c: * tests/scripts/dummy_data_start.sh.in: * tests/Makefile.am: * configure.ac: * data/services/xesam-virtual.metadata: * data/services/xesam-convenience.metadata: * data/services/xesam-service.smapping: * data/services/xesam.metadata: * data/services/xesam-metadata.mmapping: * data/services/xesam-convenience.service: * data/services/Makefile.am: * data/services/xesam.service: * data/db/sqlite-stored-procs.sql: * data/db/Makefile.am: * data/db/sqlite-xesam.sql: * data/dbus/tracker-xesam.xml: * data/dbus/Makefile.am: Trivial mini commit that removes the Xesam support. We decided to remove this because Xesam 1.0 was never fully supported, and Xesam 2.0 will most like be a very different DBus API, will probably use SPARQL as query language, and will probably use Nepomuk as ontology. Which means that none of Xesam 1.0's support code will really be usable anymore. Perhaps keep this revision number in mind so that we can bring the code back to live later? 2009-03-11 Philip Van Hoof * src/libtracker-common/tracker-albumart.c: Don't continue trying to request album art if no service provides album-art downloading 2009-03-10 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer-helix.c: Removed the reference to images that broke build. 2009-03-10 Mikael Ottela * src/tracker-extract/tracker-main.h * src/tracker-extract/tracker-extract-gstreamer-helix.c * src/tracker-extract/tracker-extract-mp3.c: Remove the last dummy empty strings as they are no longer needed. 2009-03-10 Mikael Ottela * data/services/default.service * data/services/image.metadata: Add Image:HasKeywords field for performance reasons. * src/tracker-extract/tracker-iptc.c: * src/tracker-extract/tracker-xmp.c: Fill it in the extractors. 2009-03-10 Martyn Russell * src/tracker-extract/tracker-main.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Use SCHED_IDLE and define it if it isn't defined (in older kernels). 2009-03-10 Martyn Russell * src/tracker-preferences/tracker-preferences.c: * src/tracker-preferences/tracker-preferences.glade: Removed deprecated widgets. Used "+" and "-" buttons without text so there is more space for paths, etc. Fixed spin button warnings in the terminal due to deprecated glade calls. Make step increment for maximum bytes to index in text files increments of 1024. Fixed throttle range to be 0->20 not 0->99 which is not valid. Removed email options which have no effect. Fixes bug #571331 . 2009-03-10 Martyn Russell * src/libtracker-common/tracker-config.c: Make sure once we have loaded the config, we check there are no fundamental keys missing and make sure any new keys added which didn't exist before have comments too. 2009-03-10 Philip Van Hoof * src/libtracker-common/tracker-thumbnailer.c: Using no_reply calls for the DBus methods 2009-03-10 Carlos Garnacho * src/tracker-indexer/tracker-removable-device.c (get_uri_with_trailing_slash) (consume_triple_storer) (tracker_removable_device_load) (tracker_removable_device_add_metadata) (tracker_removable_device_add_removal) (tracker_removable_device_add_move): Generate URIs with trailing slash where appropriate, since raptor likes them. 2009-03-09 Carlos Garnacho * src/tracker-extract/tracker-extract-ps.c (extract_ps_gz): * src/trackerd/tracker-main.c (check_runtime_level): Do not leak file descriptors. 2009-03-09 Martyn Russell * TODO: * docs/manpages/trackerd.1: Fixed documentation, patch from Tshepang Lekhonkhobe. 2009-03-09 Mikael Ottela * src/tracker-extract/tracker-iptc.c * src/tracker-extract/tracker-xmp.c: Added simple filtering for repeated values in multivalued extracting. The same value can be embedded in several places to avoid conflicts. Fixes NB#96314. 2009-03-09 Carlos Garnacho * src/libtracker-db/tracker-db-index-item.c (tracker_db_index_item_calc_amalgamated): Also clamp big negative values to fit into a gint16, so we don't possibly underflow. * src/tracker-indexer/tracker-indexer.c (item_erase): Schedule a flush after an item has been removed. 2009-03-09 Martyn Russell * MAINTAINERS: Updated to reflect the current offenders :) 2009-03-09 Martyn Russell * src/tracker-extract/tracker-main.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Remove copyright and version information on startup. There were reports of .xsession-errors being populated with this information. Now version information is available with -V. Removed copyright because it was solely to Jamie which it no longer is. 2009-03-09 Martyn Russell * src/tracker-indexer/tracker-module-metadata-utils.c: (get_file_content): Fixed potential buffer overflow. Reported in https://bugs.launchpad.net/ubuntu/+source/tracker/+bug/339560. 2009-03-06 Michael Biebl * python/deskbar-handler/tracker-module.py: * python/deskbar-handler/tracker-handler.py: Starting with version 2.23.6, deskbar-applet no longer ships the deskbar.core.gnomedeskop python module so we use gnomedesktop directly (requires python-gnome-desktop). Not only fix the imports but also the code, so the desktop file support keeps working. Patch pulled from Ubuntu. * python/deskbar-handler/tracker-module.py: Bump version to 0.6.90. 2009-03-06 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: Added tracker_dbus_str_to_strv() since it is pretty common. * src/libtracker-db/tracker-db-dbus.c: Some code clean ups. * src/libtracker-common/tracker-thumbnailer.c: When we get an error from the thumbnailer, include the context so we know where the error came from. * src/libtracker-db/tracker-db-manager.c: (function_group_concat_step): Fixed my g_return_if_fail() change for the g_assert() which ottela added initially, logic was wrong way round. 2009-03-06 Carlos Garnacho * src/tracker-indexer/tracker-main.c: * src/tracker-extract/tracker-main.c: Initialize DBus before log subsystem, so a second instance being run doesn't wipe the current instance logs. 2009-03-06 Philip Van Hoof * src/tracker-indexer/tracker-push.c: * src/trackerd/tracker-push.c: These directories not existing ain't real errors that are worth reporting 2009-03-06 Carlos Garnacho Clean up deleted elements from dbs/index on tracker-indexer idle time. This is the equivalent to dud hits removal, which trackerd can't perform since it opens the index files as readonly. Now services are just marked as disabled on deletion. So the indexer cleans them up slowly, after all elements have been processed, and before it shuts down. * data/db/sqlite-service.sql: Create the new table for deleted elements. * data/db/sqlite-stored-procs.sql: Add stored procedures for disabling services and dealing with the DeletedServices table. * src/libtracker-data/tracker-data-query.[ch] (tracker_data_query_metadata_fields): Do not have service ID as a string argument. (tracker_data_query_first_removed_service): New function to retrieve a deleted file. * src/trackerd/tracker-metadata.c (tracker_metadata_get): Adapt to API change in tracker-data-query.[ch] * src/libtracker-data/tracker-data-search.c (tracker_data_search_text): Remove code to clean up dud hits. * src/libtracker-data/tracker-data-update.[ch] (tracker_data_update_disable_service): Add function to disable a service. (tracker_data_update_delete_service): Also remove the service from the DeletedServices table. * src/libtracker-db/tracker-db-index.[ch] (tracker_db_index_finalize): Ensure the index is opened before flushing. (tracker_db_index_remove_dud_hits): Removed. * src/tracker-indexer/tracker-indexer.[ch] (cleanup_task_func) (cleanup_task_start) (cleanup_task_stop) (state_check): Add "cleanup" state (check_started): Also ensure the cleanup task is stopped. (check_finished): Launch the cleanup task from here. (item_remove): Renamed to item_mark_for_removal(). No longer delete things from the databases, just mark them as disabled. Queue children to be removed in the file queue. (item_erase): Added, actually delete the item from databases and index. (item_move): Erase immediately in case the dest path already exists. (tracker_indexer_get_running) (tracker_indexer_get_stoppable): Separate these a bit since the indexer now also must be paused during cleanup. * src/tracker-indexer/tracker-main.c (quit_timeout_cb): Use tracker_indexer_get_stoppable() to get to know whether the indexer should be stopped. * src/trackerd/tracker-dbus.c (indexer_name_owner_changed) (initialize_indexer_presence) (dbus_register_names): Listen for changes in the tracker-indexer presence... (dbus_request_new_cb): ... in order to pause it here if necessary, since now it should always be paused. 2009-03-06 Ivan Frade * python/deskbar-handler/tracker-module.py: Update import to use gnomedesktop instead of deskbar.code.gnomedesktop. Patch by Michel Alexandre Salim. Fixes bug #571573 (Michel Alexandre Salim). 2009-03-06 Michael Biebl * python/deskbar-handler/tracker-module.py: Update deskbar module to the new D-Bus API, fix a small typo (recieve->receive) while at it. 2009-03-06 Martyn Russell * src/tracker-fts/tracker-fts.c: Merged some of the non-code changes (i.e. alignments, comment updates) back into our FTS version from upstream to make comparing easier with future changes in SQLite. 2009-03-06 Carlos Garnacho * src/tracker-indexer/tracker-removable-device.c: Do not use string contatenation tricks to get URIs, use GFile instead. Fixed also wrong code formatting and some incorrectly freed/leaked variables as well. 2009-03-05 Carlos Garnacho Merge together the GetFileChildren and SelectFileChild stored procedures. * data/db/sqlite-stored-procs.sql: Only one can stand. * src/libtracker-data/tracker-data-query.c (tracker_data_query_service_children): * src/libtracker-data/tracker-data-search.c (tracker_data_search_files_get): Adapt to stored procedures change. 2009-03-04 Martyn Russell * src/tracker-indexer/tracker-indexer.c: (tracker_indexer_files_check): Added indexer fix using Carlos' patch now that we only send top level directories which are deleted from the daemon not all files. 2009-03-04 Martyn Russell * src/tracker-extract/tracker-extract-exif.c: * src/tracker-extract/tracker-extract-gstreamer-playbin.c: Removed no longer used extractors. 2009-03-04 Mikael Ottela * src/tracker-extract/tracker-iptc.c: Fixed a memory leak. * src/tracker-extract/tracker-extract-mp3.c: Added un-unsynch support to mp3 extractor. Fixes NB#99823 2009-03-04 Martyn Russell * src/libtracker-db/tracker-db-index.c: (tracker_db_index_get_word_hits), (tracker_db_index_add_word), (tracker_db_index_remove_dud_hits): Make sure we check the priv->readonly property before trying to add or remove words from the QDBM index. As you may see from now on, this indicates that the only time we remove duds and words from the index is when the trackerd process finds them and it *ONLY* opens the index as readonly. We need to fix this removing dud issue ASAP - bring on FTS support! 2009-03-04 Martyn Russell * src/trackerd/tracker-monitor.c: Now we cache DELETE events. This way, when recursively deleting a directory, we ONLY send the top level directory that was removed to the indexer instead of EVERY file and subdirectory under it. 2009-03-04 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (index_flush_item) (tracker_db_index_flush): Prevent against cur_cache being possibly NULL. * src/tracker-indexer/tracker-indexer.c (check_finished) (check_stopped): Call check_finished() in any case, not just after the cache has been flushed. 2009-03-03 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Fixed frame size calculation. 2009-03-03 Martyn Russell * data/db/sqlite-service.sql: * src/libtracker-db/tracker-db-manager.c: Remove collation from Services table. 2009-03-03 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: Make the indexer decide the flush timeout dynamically based on the number of elements left. 2009-03-03 Carlos Garnacho Make flushing to index asynchronous. * src/libtracker-db/tracker-db-index.[ch]: Make asynchronous, so the information is committed in batches, and the cache is layered. Add boolean properties to indicate whether it's currently flushing or saturated (i.e.: too many cache layers left to flush) * src/tracker-indexer/tracker-indexer.c: Update to these changes. Listen for changes in these new properties in order to pause the indexer or waiting for the index to be flushed before finishing. 2009-03-03 Carlos Garnacho Do not wipe out/overwrite existing logs if there's a running instance. * src/libtracker-common/tracker-log.c (tracker_log_init): Remove old log file here, prior to creating the new one. * src/trackerd/tracker-main.c (initialize_directories): Do not remove the old log file here. (main): Check whether there's a running instance before initializing the logs subsystem. 2009-03-03 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (restore_backup_cb): Iterate the main loop while processing the turtle records to restore. 2009-03-03 Martyn Russell * src/libtracker-db/tracker-db-manager.c: Removed TRACKER_DB_PAGE_SIZE_DEFAULT, use TRACKER_DB_PAGE_SIZE_DONT_SET instead because this allows SQLite to decide what to use based on the file system block size. Tests with 40k items show a 2 minute speed improvement (was 13.5 minutes in total). 2009-03-03 Martyn Russell * src/libtracker-db/tracker-db-manager.c: (tracker_db_manager_init): Add new DB versions so users are forced to reindex when updating from svn or to the next version 0.6.91 planned for next week. NOTE: Updating to this version *WILL* require you reindex your data. 2009-03-03 Martyn Russell * src/tracker-extract/tracker-escape.c: * src/tracker-extract/tracker-extract-gstreamer-playbin.c: * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract.c: * tests/tracker-extract/tracker-extract-test-utils.c: Don't use g_strstrip() before calling tracker_escape_metadata() which calls g_strstrip() for us. 2009-03-02 Mikael Ottela * src/tracker-extract/tracker-escape.c * src/tracker-extract/tracker-escape.h: Strip the whitespaces from extracted metadata. Fixes NB#102246, NB#103260 2009-03-02 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-extract-gstreamer.c: Treat the Unknown genre like other unknown/missing values. Fixes NB#103198 2009-03-02 Mikael Ottela * src/libtracker-db/tracker-db-interface-sqlite.c * src/libtracker-db/tracker-db-manager.c: More proper handling of NULLs in aggregates. 2009-03-02 Mikael Ottela * src/trackerd/tracker-search.c * src/libtracker-data/tracker-rdf-query.c: Use group_concat for multivalued queries instead of combining entries in code. Fixes NB#102210. 2009-03-02 Carlos Garnacho * src/tracker-extract/tracker-extract-jpeg.c (extract_jpeg): Use correct ifdef to cover otherwise unused variables. 2009-02-27 Mikael Ottela * src/tracker-extract/tracker-extract-jpeg.c: Put back variables needed for exif extraction. 2009-02-27 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata-utils.c (metadata_utils_get_embedded): Plug a leak. 2009-02-27 Carlos Garnacho * src/trackerd/tracker-main.c (shutdown_indexer) (main): Do not explicitly shutdown the indexer, it will shutdown by itself then trackerd disappears from the session bus, and it could respawn a indexer instance if it wasn't there. 2009-02-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (check_stopped): Do not report spurious elapsed times if check_stopped is called when the indexer is in stopped state. 2009-02-27 Carlos Garnacho * src/tracker-extract/tracker-extract-jpeg.c (extract_jpeg): * src/tracker-extract/tracker-extract-ps.c (extract_ps_gz): * src/tracker-utils/tracker-search.c (main): * src/tracker-utils/tracker-services.c (main): Fix compiler warnings. 2009-02-26 Mikael Ottela * src/libtracker-data/tracker-data-backup.c: Fixed some compilation errors. * src/libtracker-data/tracker-data-search.c: Minor fix to concatenation dbus method. * src/libtracker-db/tracker-db-interface-sqlite.c * src/libtracker-db/tracker-db-interface-sqlite.h: Added abstraction layer to sqlite aggregate function creation. * src/libtracker-db/tracker-db-manager.c: Added a redefined version of GROUP_CONCAT aggregate function. 2009-02-26 Carlos Garnacho * src/trackerd/tracker-daemon.c (tracker_daemon_get_status): Do not use all the tracker_dbus_request machinery, so asking for the status doesn't actually change it. 2009-02-26 Carlos Garnacho * src/trackerd/tracker-xesam-live-search.c (get_hit_data): Do not use deprecated functions. Fixes bug #572237. 2009-02-26 Andre Klapper * src/tracker-search-tool/tracker-search-tool-support.c: Replace a call to libart with a GDK equivalent. Patch by Cosimo Cecchi copied from gnome-utils. Fixes bug #571736. 2009-02-26 Carlos Garnacho Refactor Backups to turtle files support out to a org.freedesktop.Tracker.Backup interface. * data/dbus/tracker-backup.xml: Definition for the new interface. * data/dbus/tracker-daemon.xml: Remove Backup method. * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-backup.[ch]: New files, contain the actual saving/restoring to/from turtle files, this was spread before in tracker-indexer and trackerd. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_restore_backup) (restore_backup_cb): Use new functions in libtracker-data. * src/trackerd/tracker-backup.[ch]: Now they contain TrackerBackup, the object that's going to handle petitions from DBus. * src/trackerd/tracker-dbus.c: Hook the new object into trackerd. * src/trackerd/tracker-daemon.c: Remove implementation for Backup method. * src/trackerd/tracker-main.c: * src/trackerd/Makefile.am: Miscellaneous changes. 2009-02-26 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c: Added CollateKey sqlite function to let it handle collate key changes. Check locale on startup and regenerate collate keys if necessary. * src/libtracker-data/tracker-data-update.c: Remove collate key generation from code, since now it will be handled by the database. * data/db/sqlite-stored-procs.sql: Updated to use the CollateKey function, added getter/setter for locale config option, stored in Options (common.db) 2009-02-26 Philip Van Hoof * src/plugins/evolution/Makefile.am * src/plugins/rss/Makefile.am * src/plugins/kmail/Makefile.am * src/qdbm/Makefile.am * src/libtracker-data/Makefile.am * src/libtracker-gtk/Makefile.am * src/tracker-applet/Makefile.am: Added support for coverage reporting to targets that I missed last commit for this feature 2009-02-25 Mikael Ottela * data/dbus/tracker-metadata.xml: * src/libtracker/tracker.h: * src/libtracker/tracker.c: * src/tracker-utils/tracker-unique.c: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-metadata.c * src/trackerd/tracker-metadata.h: Added a new function to metadata dbus API to get concatenated group fields. * data/db/sqlite-service.sql: * src/libtracker-data/tracker-data-schema.c: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-rdf-query.c: Fixed problems in joining of order fields. 2009-02-25 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (struct PathInfo) (path_info_new): Contain info about whether it should recurse or not, instead of passing specific parameters in the affected functions. (item_move) (item_remove) (process_directory) (process_module) (process_func) (tracker_indexer_files_check) (tracker_indexer_file_move): Update all callers accordingly. (remove_stale_children): Recurse explicitly when deleting stale items in DB that were deleted between executions. Fixes NB#99827. 2009-02-25 Philip Van Hoof * src/libtracker/Makefile.am: * src/tracker-fts/Makefile.am: * src/tracker-indexer/modules/Makefile.am: * src/tracker-indexer/Makefile.am: * src/tracker-utils/Makefile.am: * src/tracker-preferences/Makefile.am: * src/trackerd/Makefile.am: * src/tracker-extract/Makefile.am: * src/libstemmer/Makefile.am: * src/libtracker-db/Makefile.am: * src/libtracker-common/Makefile.am: * src/libinotify/Makefile.am: * src/tracker-search-tool/Makefile.am: * tests/trackerd/Makefile.am: * tests/tracker-extract/Makefile.am: * tests/libtracker-db/Makefile.am: * tests/tracker-indexer/Makefile.am: * tests/common/Makefile.am: * tests/libtracker-common/Makefile.am: * configure.ac: Added support for coverage reporting 2009-02-25 Philip Van Hoof * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-daemon.h: * data/dbus/tracker-daemon.xml: Added a Backup method to the Daemon object on DBus 2009-02-24 Mikael Ottela * data/db/sqlite-stored-procs.sql: Fixed an issue with integer to string conversion. 2009-02-24 Martyn Russell * python/deskbar-handler/Makefile.am: Fixed make distcheck issue. 2009-02-24 Martyn Russell * configure.ac: Improve configure switch help. 2009-02-24 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Handle id3v2 tags split into several frames. * tests/tracker-extract/tracker-extract-mp3-test.c: Fix the test-cases. Fixes NB#102606 2009-02-24 Carlos Garnacho * src/tracker-extract/tracker-extract.c: * src/tracker-extract/tracker-main.c: call alarm() prior to processing a file, so the extractor dies if it gets stuck. 2009-02-24 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (tracker_db_index_add_word): Do not remove words with negative weight from the cache, so they make it to the actual index. 2009-02-24 Martyn Russell * src/tracker-indexer/tracker-indexer.c: If we don't get an mtime for a file, don't then just return, make sure it is removed from the DB. Reduced debugging so we don't print twice that we aren't changing the DB for each file. Improved function names and debugging to make more sense. Fixes NB#98297 too. 2009-02-24 Martyn Russell * data/db/sqlite-stored-procs.sql: * data/db/sqlite-tracker.sql: * src/libtracker-data/tracker-data-update.[ch]: * src/tracker-indexer/tracker-indexer.c: Add $home as the first volume in the Volumes table with an id of 1 (has to be non-zero) and make sure all new items not related to a volume that are indexed use a default id of 1 instead of 0. Removed incstat and decstat stored procedures, they are not needed now. Updated the GetStats function call to get a real time count of the data, not a pre-calculated number from a table. Fixes NB#98297. 2009-02-24 Martyn Russell * src/tracker-extract/tracker-main.c: * src/tracker-indexer/tracker-main.c: * src/tracker-utils/tracker-status.c: * src/trackerd/tracker-main.c: Don't handle signals SIGSEGV, SIGBUS, SIGILL, SIGFPE, SIGABRT, instead let a core file be generated for those. We only handle SIGINT, SIGTERM and SIGHUP. Fixes NB#102800. 2009-02-24 Martyn Russell * configure.ac: Make tracker-preferences, tracker-applet, tracker-search-tool and libtrackergtk all "auto" so we don't error for people that just want Tracker without a user interface. 2009-02-23 Martyn Russell * data/db/sqlite-stored-procs.sql: Updated ServiceMetadata queries to use "Display" field instead of "Value" field where it makes sense. * src/libtracker-data/tracker-data-update.c: Write ServiceMetadata collation data to the table. 2009-02-23 Martyn Russell * configure.ac: * data/Makefile.am: * docs/manpages/Makefile.am: * python/deskbar-handler/Makefile.am: * python/deskbar-handler/tracker-module.py: * src/Makefile.am: Fixed tracker-search-tool, tracker-preferences, tracker-applet and the deskbar-applet enable/disable switches in configure. Also fixed the deskbar-applet so it actually errors when using --enable-deskbar-applet instead of doing nothing when we don't have it available. 2009-02-23 Mikael Ottela * src/tracker-utils/tracker-query.c * src/libtracker-data/tracker-data-search.c * src/libtracker-data/tracker-rdf-query.c: Use the MetadataCollation for sorting rather than the display field. 2009-02-23 Martyn Russell * python/deskbar-handler/README: Removed. Was 0 bytes. 2009-02-20 Mikael Ottela * src/libtracker-data/tracker-data-schema.c * src/libtracker-data/tracker-field-data.c * src/libtracker-data/tracker-field-data.h: Added support for order-fields. 2009-02-20 Mikael Ottela * data/db/sqlite-stored-procs.sql: * data/db/sqlite-service.sql: Added collation column to ServiceMetadata for future development. 2009-02-20 Mikael Ottela * configure.ac: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-iptc.c: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract-tiff.c: * src/tracker-extract/tracker-iptc.h: Added iptc support for tiff and jpeg. Fixes NB#101954 2009-02-20 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: * src/libtracker-common/tracker-field.h: * src/libtracker-common/tracker-ontology.h: * src/libtracker-common/tracker-parser.h: * src/libtracker-common/tracker-service.h: Fixed the #defines for these headers so they don't possibly conflict with same name headers in the future. 2009-02-19 Mikael Ottela * src/tracker-extract/tracker-extract-jpeg.c: Error handling changed not to abort anymore in jpeg extraction in case of failures. 2009-02-19 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer-playbin.c * src/tracker-extract/tracker-extract-gstreamer-tagreadbin.c * src/tracker-extract/tracker-extract-gstreamer.c: Switched gstreamer extractor implementation to use decodebin/tagreadbin. 2009-02-18 Martyn Russell * src/libtracker-db/tracker-db-manager.c: Don't optimize the database(s) unless there have been changes committed to them. This fixes NB#101296. 2009-02-18 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Reset stats after we issue finished signal. * src/trackerd/tracker-processor.c: Small code cleanup. 2009-02-18 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: Removed unused functions. * src/libtracker-db/tracker-db-file-info.c: * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-png.c: * src/tracker-extract/tracker-extract-tiff.c: * src/tracker-indexer/tracker-indexer.c: Use tracker_file_get_mtime() instead of using g_lstat() everywhere. 2009-02-18 Martyn Russell * 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. 2009-02-18 Martyn Russell * src/libtracker-common/tracker-config.c: (config_create_with_defaults): Use g_strv_length() to make the patching here easier for Maemo. 2009-02-17 Martyn Russell * src/tracker-utils/tracker-status.c: Fixed missing include. 2009-02-17 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Make timeout for flushing data to the database 30 seconds instead of 60 seconds to try and improve responsiveness for new data. * src/trackerd/tracker-dbus.c: Make timeout between receiving a DBus request from the user and continuing to index data 5 seconds instead of 10 seconds. 2009-02-17 Martyn Russell * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.c: Removed the "Reason" from the Paused signal since we don't have a reason any more. We are paused when we are told. All battery monitoring and disk space monitoring has been moved to the daemon status module and removed from the indexer so state is more centrally observed. * src/tracker-utils/tracker-status.c: Added a couple of command line options to "follow" the status of Tracker using --follow (instead of just returning to the command line after the initial query) and also to get more details using --detailed. * src/trackerd/tracker-main.[ch]: Added API to get data dir for the disk space monitoring which uses the database directory location for disk space checking. * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-status.[ch]: Added APIs to deal with pausing during DBus calls. Fixed a bunch of issues found here where we just weren't returning to the correct state after being paused due to DBus requests from apps or pausing manually from the user. 2009-02-17 Martyn Russell * src/tracker-utils/tracker-status.c: Handle Ctrl+C more gracefully. 2009-02-17 Martyn Russell * src/tracker-utils/tracker-status.c: Add options to track changes in real time instead of repeatedly asking the daemon. 2009-02-17 Philip Van Hoof * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-extract-gstreamer-helix.c * src/tracker-extract/tracker-extract-gstreamer.c * src/tracker-extract/tracker-extract-albumart.c * src/libtracker-common/tracker-albumart.c: Don't add the artist-name to the album-art request. 2009-02-17 Martyn Russell * src/libtracker-common/tracker-albumart.c: (tracker_albumart_queue_cb): Fixed warning from missing include. * src/libtracker-common/tracker-utils.[ch]: Added g_dngettext() which is in GLib 2.18 but we don't depend on it. Now all the utils use tracker_dngettext() instead. * src/tracker-utils/Makefile.am: * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-info.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-unique.c: Include libtracker-common and use new function for translations with plural entities using imported function g_dngettext() from Glib 2.18. 2009-02-16 Martyn Russell * src/trackerd/tracker-status.c: Make sure we *ALWAYS* log state changes. The recent status code updates broke that. 2009-02-16 Martyn Russell * src/tracker-utils/tracker-services.c: Also sorted all properties returned by tracker-services. * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-info.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-unique.c: Added extra warning to all utils which have a --limit option so the user knows that there are more results if the limit is reached and not listed to stdout. Fixed the singular/plural issues with "Results". 2009-02-16 Philip Van Hoof * src/tracker-extract/tracker-extract-ps.c * configure.ac: Added option to disable uncompressing ps.gz files to /tmp, which is a bad idea on certain mobile devices 2009-02-12 Mikael Ottela * src/tracker-extract/tracker-extract-png.c: data/services/default.service: Handle also sketch/png mime correctly. Fixes NB #101593 2009-02-12 Philip Van Hoof * src/plugins/evolution/tracker-evolution-indexer.h * src/plugins/evolution/tracker-evolution-registrar.h * src/plugins/evolution/tracker-evolution-plugin.xml * src/plugins/evolution/Makefile.am * src/plugins/evolution/tracker-evolution-indexer.c * src/plugins/evolution/tracker-evolution-registrar.xml * src/plugins/evolution/tracker-evolution-registrar.c * src/plugins/Makefile.am * src/tracker-indexer/tracker-main.c * src/tracker-indexer/Makefile.am * src/trackerd/tracker-main.c * src/trackerd/Makefile.am * configure.ac * data/db/sqlite-tracker.sql * src/plugins/rss * src/plugins/rss/tracker-rss-registrar.xml * src/plugins/rss/tracker-rss-registrar.c * src/plugins/rss/tracker-rss-indexer.h * src/plugins/rss/tracker-rss-registrar.h * src/plugins/rss/Makefile.am * src/plugins/rss/tracker-rss-common.h * src/plugins/rss/tracker-rss-indexer.c * src/plugins/kmail * src/plugins/kmail/tracker-kmail-common.h * src/plugins/kmail/tracker-kmail-indexer.c * src/plugins/kmail/tracker-kmail-registrar.xml * src/plugins/kmail/tracker-kmail-registrar.c * src/plugins/kmail/tracker-kmail-indexer.h * src/plugins/kmail/Makefile.am * src/plugins/kmail/tracker-kmail-registrar.h * src/tracker-indexer/tracker-push.c * src/tracker-indexer/tracker-push.h * src/trackerd/tracker-push-registrar.c * src/trackerd/tracker-push.c * src/trackerd/tracker-push-registrar.h * src/trackerd/tracker-push.h * src/plugins/evolution/tracker-evolution.h * src/plugins/evolution/tracker-evolution.c: New infrastructure for so-called Push modules, these include the new support for Evolution 2009-02-12 Philip Van Hoof * src/libtracker-common/tracker-albumart.c: Bugfix for local mediaart 2009-02-12 Martyn Russell * src/libtracker-common/tracker-ioprio.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Use SCHED_IDLE for the process scheduling to improve responsiveness of phone calls and other real time applications. Fixes NB#95573. 2009-02-12 Mikael Ottela * src/tracker-extract/tracker-main.c * src/tracker-extract/tracker-extract-jpeg.c * src/tracker-extract/tracker-extract-png.c: Added checks for minimum file size and access. Fixes NB #101096. 2009-02-11 Mikael Ottela * src/libtracker-data/tracker-data-schema.c * src/libtracker-data/tracker-rdf-query.c * src/libtracker-data/tracker-field-data.c * src/libtracker-data/tracker-field-data.h: For equality condition against an empty string in queries use outer join to include nulls. 2009-02-11 Carlos Garnacho Add option for modules to discard a directory based on its contents. * src/libtracker-common/tracker-module-config.[ch] (tracker_module_config_get_ignored_directories_with_content): Added function for new module configuration option. * src/trackerd/tracker-crawler.c: Modified to obey the new configuration option, now it must retrieve all contents for a directory before processing them in order to know whether it's filtered or not. * data/modules/*.module: Add default values for this option. 2009-02-11 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_move): And add back that recurse boolean parameter to the function, looks like commit r2892 to tracker-indexer.c wiped out the previous commit. 2009-02-11 Mikael Ottela * data/services/default.service * data/db/sqlite-service.sql: Turned some KeyMetadata6-8 into Integer affinity so the sorting should works correctly. Fixes NB #101142 2009-02-11 Philip Van Hoof * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-extract-gstreamer-helix.c * src/tracker-extract/tracker-extract-gstreamer.c * src/tracker-extract/Makefile.am * src/libtracker-common/Makefile.am * src/tracker-extract/tracker-extract-albumart.c * src/tracker-extract/tracker-extract-albumart.h * src/libtracker-common/tracker-albumart.c * src/libtracker-common/tracker-albumart.h * src/tracker-extract/tracker-albumart.c * src/tracker-extract/tracker-albumart.h: Made a library for the album-art code, because other processes (tracker-indexer and trackerd) will soon have to perform album-art use-cases and requests too (not only the tracker-extract will have to do it anymore) 2009-02-11 Mikael Ottela * src/trackerd/tracker-main.c: Crash fix for error freeing. 2009-02-10 Martyn Russell * src/trackerd/tracker-main.c: (crawling_finished_cb): Make sure we initialise GError to NULL. Also use the error in the print statement if it is set and make sure we also free it. If we do fail (i.e. error != NULL) we now don't try to rename the ttl file. 2009-02-10 Mikael Ottela * src/libtracker-common/tracker-type-utils.c: Handle ISO 8601 that has fractions of a second. Fixes NB #100123 2009-02-10 Martyn Russell * src/tracker-extract/tracker-extract.c: Check file size is non-zero before trying to extract metadata from it. This saves us time and warnings in the log. * src/tracker-extract/tracker-main.c: Added GOption based command line argument handling. Also added -m for mime -f for filename and -v to set the verbosity to something other than the default config. 2009-02-09 Martyn Russell * Release 0.6.90. 2009-02-09 Martyn Russell * src/libtracker-db/tracker-db-manager.c: (db_set_params): Revert Jamie's change to use FULL synchronicity with SQLite. There was a speed issue with it. 2009-02-09 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: Added a debug function which uses g_debug() instead of g_message(). * src/tracker-extract/tracker-escape.[ch]: Make it possible to UTF8 validate all strings escaped. For now we are turning this off. * src/tracker-extract/tracker-extract.c: Use the new DBus debug function so we don't spam the logs in EVERY log verbosity mode. This makes quite an impact on indexing time with verbosity set to 3. 2008-02-09 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_remove): Add back once again deleting content from removed services. 2009-02-08 Jamie McCracken * src/libtracker-db/tracker-db-manager.c: Use full synchronous in sqlite to minimize corruption 2009-02-06 Martyn Russell * tests/tracker-extract/tracker-extract-gstreamer-test.c: (main): Fixed test cases missing namespace change for TrackerExtractor. 2009-02-06 Martyn Russell * src/tracker-extract/dummy.c: * src/tracker-extract/tracker-extract-exif.c: * src/tracker-extract/tracker-extract-gstreamer-helix.c: * src/tracker-extract/tracker-extract-gstreamer-tagreadbin.c: * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-imagemagick.c: * src/tracker-extract/tracker-extract-libxine.c: Fixed broken names after renaming TrackerExtractor to TrackerExtract to be consistent with the namespace. 2009-02-06 Martyn Russell * docs/reference/libtracker-common/Makefile.am: Fixed make distcheck issues. 2009-02-06 Martyn Russell * src/tracker-extract/tracker-escape.c: Make sure we check for UTF8 validation before sending over dbus. * src/tracker-extract/tracker-extract.c: Fixed some warnings related to NULL hash tables. 2009-02-06 Martyn Russell * src/tracker-extract/tracker-escape.[ch]: Make the escape functions simply duplicate the functions with g_strdup() and g_strdup_printf(). * src/tracker-extract/dummy.c: * src/tracker-extract/tracker-extract-abw.c: * src/tracker-extract/tracker-extract-exif.c: * src/tracker-extract/tracker-extract-gstreamer-helix.c: * src/tracker-extract/tracker-extract-gstreamer-tagreadbin.c: * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-html.c: * src/tracker-extract/tracker-extract-imagemagick.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-libxine.c: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-mplayer.c: * src/tracker-extract/tracker-extract-msoffice.c: * src/tracker-extract/tracker-extract-oasis.c: * src/tracker-extract/tracker-extract-pdf.c: * src/tracker-extract/tracker-extract-playlist.c: * src/tracker-extract/tracker-extract-png.c: * src/tracker-extract/tracker-extract-ps.c: * src/tracker-extract/tracker-extract-tiff.c: * src/tracker-extract/tracker-extract-totem.c: * src/tracker-extract/tracker-extract-vorbis.c: * src/tracker-extract/tracker-extract-xmp.c: * src/tracker-extract/tracker-xmp.c: Renamed 'Extractor' to 'Extract' * data/dbus/Makefile.am: * data/dbus/org.freedesktop.Tracker.Extract.service.in: * data/dbus/tracker-extract.xml: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract.[ch]: New DBus object with introspection to request metadata for a file and mime type. * src/tracker-extract/tracker-main.[ch]: Use logging and now log all messages to tracker-extract.log. * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-dbus.h: * src/tracker-indexer/tracker-module-metadata-utils.c: Call the new extracter over DBus. * 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-test-utils.h: * tests/tracker-extract/tracker-extract-testsuite-avi.c: * tests/tracker-extract/tracker-extract-testsuite-generic.[ch]: * tests/tracker-extract/tracker-extract-testsuite-jpeg.c: * tests/tracker-extract/tracker-extract-testsuite-mp3.c: * tests/tracker-extract/tracker-extract-testsuite-png.c: * tests/tracker-extract/tracker-extract-testsuite-tiff.c: * tests/tracker-extract/tracker-extract-tiff-test.c: Updated tests accordingly. 2009-02-06 Carlos Garnacho Pass also the amount of processed items over to trackerd, use this number in the IndexProgress DBus signal to improve feedback, this also fixes the bug where the total items was being reduced down to 0. * data/dbus/tracker-indexer.xml: Include processed items count in both Status and Finished signals. * src/tracker-indexer/tracker-marshal.list: * src/tracker-indexer/tracker-indexer.[ch]: include processed items count in ::status and ::finished. Also increase the processed items count when an item is being skipped. * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-xesam-manager.c: Adapt to tracker-indexers DBus API change. Report processed items count in IndexProgress. 2009-02-06 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_remove): Add a boolean param to specify whether we should recurse when deleting or not. Also make it delete content from the database again, since this is still needed. (item_move) (process_file): Update callers as appropriate. 2009-02-06 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Do not give images Video:Framerate value. Fixes NB #100816. 2009-02-06 Ivan Frade * src/tracker-indexer/tracker-indexer.c * src/trackerd/tracker-metadata.c: Removed asserts disabling the set of embedded properties. Now tracker will accept it and it is a responsability of the application developers to use carefully this. * src/tracker-extract/tracker-extract-playlist.c: Added new default value for the property ValidDuration * data/services/playlist.metadata * data/services/default.service Renamed TotalLength to Duration Added ValidDuration property. When tracker is unable to calculate the duration of a playlist, the applications can try to calculate it and write the value. Then they will set this property to something != 0. 2009-02-06 Mikael Ottela * src/tracker-indexer/tracker-module-metadata-utils.c * src/libtracker-common/tracker-os-dependant-unix.c: Removed a timeout from the tracker-extractor spawning. 2009-02-06 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_remove): #ifdef out the code that removed metadata from the index. No longer existing items will be removed at query time. 2009-02-06 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Fixed yet another glitch in the binary search... the right pivot was being set past the last element in the array. 2009-02-05 Mikael Ottela * src/libtracker-data/tracker-data-search.c * data/services/default.service: Some query speed improvements 2009-02-05 Martyn Russell * src/tracker-applet/tracker-applet.c: (set_status_hint), (can_auto_pause), (index_state_changed): Added new state (PAUSED) and add to the tooltip when paused so it is known that it can also be because of heave disk IO OR low disk space. Also uncommented the code for the tooltip when we are paused due to low battery. * src/tracker-indexer/tracker-indexer.c: Make low disk space warning a g_message() instead. Also added a state_to_string() function so we can see state changes a bit more clearly in the logs. * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-monitor.c: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-status.[ch]: Moved all indexer state monitoring (paused/continued) to the tracker-status module. Now when we use APIs like tracker_status_set_is_paused_manually() it will now: - Tell the indexer to pause/continue - Signal the applet that we are in a new state - Set the state internally. All pausing/continuing is now handled collectively in the same places and some bugs were fixed here. We now don't send queued files to the indexer when we are paused for *ANY* reason (before it was just when paused for IO or manually). 2009-02-05 Martyn Russell * src/libinotify/inotify-monitor.c: (inotify_watch_func), Add main context iteration in the tight loop that is the event processing for libinotify. Attila's bug shows how spamming NOTIFY events means the libinotify code never returns back to the comfort of the main event loop. This means we never handle any timeouts or other event loop sources. I added an event loop iteration in there to make sure we always submit to the event loop in such conditions. Fixes NB#98896. For REAL. 2009-02-05 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c * data/services/video.metadata: Extract the Video:Source tag 2009-02-05 Philip Van Hoof * src/libtracker-data/tracker-turtle.c * src/tracker-extract/tracker-albumart.c * src/libtracker-common/tracker-thumbnailer.c: Using g_filename_to_uri instead of doing filename to uri conversion wrong 2009-02-05 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Fix glitch in binary search. (tracker_db_index_flush): Break flushing when paused, so it doesn't try to modify the closed index. 2009-02-05 Carlos Garnacho Let the indexer perform recursive move operations, so all files inside get the path changed in the index. This also makes the whole move operation asynchronous, so tracker-indexer can be paused in between. * data/db/sqlite-stored-procs.sql (GetFileChilden): new stored procedure to get the immediate children for a given path. * src/libtracker-data/tracker-data-query.[ch] (tracker_data_query_service_children): New function to wrap that stored procedure. * src/libtracker-data/tracker-data-update.c (tracker_data_update_move_service): Do not move service children, this is done now by the indexer itself. * src/tracker-indexer/tracker-indexer.c (filter_invalid_after_move_properties): Code legibility improvements. (update_moved_item_thumbnail) (update_moved_item_removable_device) (update_moved_item_index): Refactored out from item_move(). (item_move): Append move operations for all children in the indexer queue. 2009-02-05 Martyn Russell * acinclude.m4: Added "maximum" to the arguments that can be used in --with-compile-warnings. This was always available, just not mentioned. It is the same as "error", just without -Werror. Also make "maximum" the default not "error" (only for builds with autogen.sh). * configure.ac: Add a status string in the summary with the compile warnings setting. 2009-02-05 Mikael Ottela * data/db/sqlite-service.sql * src/libtracker-data/tracker-data-search.c: First part of the database index scheme rewrite. 2009-02-02 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Leak fix 2009-02-03 Martyn Russell * data/modules/applications.module: * data/modules/evolution.module: * data/modules/files.module: * data/modules/gaim-conversations.module: * src/libtracker-common/tracker-module-config.[ch]: (load_file), (tracker_module_config_get_scan_timeout): Added scan_timeout option to modules and the module config. This means that if we are downloading a file for 10 minutes, we can set the option to make sure we get a signal up the stack *at least* every n seconds. * src/trackerd/tracker-monitor.c: Serious improvements to the cache here and how it is used. Now the NOTIFY event is used in the cache too. This fixes NB#98896. 2009-02-03 Martyn Russell * src/trackerd/tracker-processor.c: (process_module_next), (crawler_finished_cb): Make sure we stop processing modules if the removable devices is less than the number of removable devices we have completed - i.e. there is some miscalculation somewhere. Also, make sure we don't add removable devices into the completed list AGAIN if we get the "finished" signal from the crawler (because we added a new directory). This was causing some serious lock ups. 2009-02-02 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Bugfix for album-art thumbnail request 2009-02-02 Martyn Russell * src/trackerd/tracker-main.c: (initialize_databases): Remove the set_db_option_int() call for IntegrityCheck and InitialIndex. These options are not used anywhere for anything. 2009-02-02 Martyn Russell * src/libtracker-data/tracker-data-manager.c: (tracker_data_manager_set_db_option_int): Make sure we pass the parameters the right way round to the SetOption stored procedure. This fixes bug #570209 (TJ). 2009-01-30 Philip Van Hoof * src/tracker-indexer/tracker-main.c * src/trackerd/tracker-main.c * src/tracker-extract/tracker-extract.c * src/libtracker-common/tracker-thumbnailer.c * src/libtracker-common/tracker-thumbnailer.h: No timeout to wait for for tracker-extract 2009-01-30 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Bugfix when album art was extracted from an embedded MP3, the copy to .mediaartlocal was not requested in case of removable media. 2009-01-29 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Don't fail if we can't access a file with O_NOATIME, try without it. Fixes NB #99281 2009-01-29 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Added a default to Image:Date. 2009-01-29 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Fixed a typo that gave wrong image widths. Fixes NB #91312 2009-01-29 Mikael Ottela * src/libtracker-data/tracker-rdf-query.c: Fixed filtering for multiple tags. 2009-01-29 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (remove_stale_children) (item_add_or_update): Delete children that no longer exist in folders, this check is needed if a file is deleted between tracker executions. (tracker_indexer_file_move): Plug a leak. 2009-01-29 Carlos Garnacho * src/libtracker-data/tracker-data-update.c (tracker_data_update_set_metadata): Also update IndexTime in the Services table if necessary, so the indexer doesn't check against outdated mtimes afterwards. 2009-01-29 Carlos Garnacho * src/tracker-indexer/tracker-module-file.c (tracker_module_file_get_metadata): Set File:Modified to the current time() if the module didn't provide any. 2009-01-29 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (should_index_file): Always check item (not parent's) mtime, since mtime will only change for dir if a file is added/deleted in there. Get rid of the mtime cache, since it's not useful anymore. 2009-01-29 Martyn Russell * NEWS: * README: * TODO: Updated these based on a patch from Tshepang Lekhonkhobe. All updated to include things missing on the top of my head. The NEWS is mostly ready for release now. 2009-01-29 Martyn Russell * configure.ac: * src/Makefile.am: Bumped GLib dependency up from 2.15 to 2.16, so we require the stable version. Clean up configure a bit in relation to QDBM and also don't have a separate check for glib unit tests since they come for free with GLib 2.16. 2009-01-28 Philip Van Hoof * src/plugins/evolution/tracker-evolution-indexer.h * src/plugins/evolution/tracker-evolution-plugin.h * src/plugins/evolution/tracker-evolution-registrar.h * src/plugins/evolution/tracker-evolution-plugin.xml * src/plugins/evolution/tracker-evolution-common.h * src/plugins/evolution/tracker-evolution-indexer.c * src/plugins/evolution/tracker-evolution-plugin.c * src/plugins/evolution/tracker-evolution-registrar.xml * src/plugins/evolution/tracker-evolution-registrar.c * src/plugins/evolution/tracker-evolution.c * data/db/sqlite-tracker.sql: Made the D-Bus API of the E-mail metadata infrastructure less Evolution specific 2009-01-28 Mikael Ottela * src/libtracker-data/tracker-rdf-query.c: Performance improved way of including tags in queries. 2009-01-28 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer-tagreadbin.c: Added an initial tagreadbin extractor. 2009-01-28 Mikael Ottela * src/libtracker-data/tracker-rdf-query.c: Added a missing sql escape. Fixes NB #95227 2009-01-27 Mikael Ottela * tests/tracker-extract/data/jpeg/create_jpeg_testdata * tests/tracker-extract/tracker-extract-testsuite-mp3.h * tests/tracker-extract/tracker-extract-mp3-test.c * tests/tracker-extract/tracker-extract-test-utils.c * tests/tracker-extract/tracker-extract-test-utils.h * tests/tracker-extract/tracker-extract-testsuite-mp3.c * tests/tracker-extract/data/mp3/create_mp3_testdata: Added file access testing. 2009-01-27 Martyn Russell * src/trackerd/tracker-monitor.c: (get_module_name_from_gfile): Changed warnings to debug messages when we can't find a module from a GFile. 2009-01-27 Mikael Ottela * tests/tracker-extract/tracker-extract-png-test.c * tests/tracker-extract/tracker-extract-jpeg-test.c * tests/tracker-extract/tracker-extract-tiff-test.c * tests/tracker-extract/tracker-extract-testsuite-png.c * tests/tracker-extract/tracker-extract-testsuite-jpeg.c * tests/tracker-extract/tracker-extract-test-utils.c * tests/tracker-extract/tracker-extract-testsuite-tiff.c * tests/tracker-extract/tracker-extract-testsuite-png.h * tests/tracker-extract/tracker-extract-testsuite-jpeg.h * tests/tracker-extract/tracker-extract-testsuite-tiff.h * tests/tracker-extract/data/png/create_png_perfdata * tests/tracker-extract/data/jpeg/create_jpeg_perfdata * tests/tracker-extract/data/tiff/create_tiff_perfdata: Added performance tests for image extraction. 2009-01-27 Carlos Garnacho * src/trackerd/tracker-monitor.c (tracker_monitor_init) (libinotify_monitor_event_cb): Make cached events hash table keep a reference as the key, so it doesn't get destroyed if the value is replaced. (get_module_name_from_gfile): Do not possibly use already freed memory. (libinotify_cached_events_timeout_cb): Discard cached events for deleted items. 2009-01-27 Martyn Russell * src/trackerd/tracker-cleanup.c: (check_for_volumes_to_cleanup): Commented out code which causes assertion warnings but doesn't function properly. MMC thumbnail cleanup is disabled using preprocessor statements now and wasn't working properly in the first place. 2009-01-27 Carlos Garnacho * src/libtracker-data/tracker-data-update.[ch] (tracker_data_update_move_service): Make if return FALSE if the operation failed. * src/tracker-indexer/tracker-indexer.c (item_move): Handle move operations that overwrite the dest file. 2009-01-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_move): If a file is created and then immediately moved to another location. There's a chance that the indexer hasn't yet processed the origin file, so the move operation fails. In this case, the destination file is indexed from scratch (Fixes NB #99035) 2009-01-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (struct PathInfo): replace other_file with source_file, and make file point to the destination, so we can map PathInfo for move operations into create/delete operations. 2009-01-27 Carlos Garnacho * src/trackerd/tracker-monitor.c: Remove blacklist, since the events cache already prevents spamming tracker-indexer with too frequent update events. 2009-01-26 Mikael Ottela * tests/tracker-extract/Makefile.am * tests/tracker-extract/tracker-extract-png-test.c * tests/tracker-extract/tracker-extract-gstreamer-test.c * tests/tracker-extract/tracker-extract-testsuite-avi.c * tests/tracker-extract/tracker-extract-testsuite-png.c * tests/tracker-extract/tracker-extract-testsuite-avi.h * tests/tracker-extract/tracker-extract-testsuite-png.h: Added tests for png and avi extraction * tests/tracker-extract/data/avi * tests/tracker-extract/data/avi/*.data * tests/tracker-extract/data/avi/create_avi_testdata: Avi test data * tests/tracker-extract/data/png * tests/tracker-extract/data/png/create_png_testdata * tests/tracker-extract/data/png/*.data: Png test data 2009-01-26 Mikael Ottela * src/tracker-extract/tracker-extract-jpeg.c * src/tracker-extract/tracker-xmp.c * data/services/default.service * data/services/image.metadata: Changed Image:Orientation to integer for consistency and updated the extractors. Orientation is now a KeyMetadata. * tests/tracker-extract/tracker-extract-jpeg-test.c * tests/tracker-extract/tracker-extract-tiff-test.c * tests/tracker-extract/tracker-extract-testsuite-jpeg.c * tests/tracker-extract/tracker-extract-testsuite-tiff.c * tests/tracker-extract/tracker-extract-testsuite-tiff.h * tests/tracker-extract/Makefile.am * tests/tracker-extract/data/exif/*.data * tests/tracker-extract/data/jpeg/*.data: Added the testcases and testdata for tiffs and orientation in jpegs. 2009-01-26 Philip Van Hoof * utils/services/rdfxml2unittest_data.xsl: added a sample xsl that generates a libtracker-data unit test's data.ttl file * utils/services/rdfxml2unittest_query.xsl: added a sample xsl that generates a libtracker-data unit test's query file 2009-01-23 Mikael Ottela * data/services/default.service: Small correction to the playlist mimes. 2009-01-23 Martyn Russell * configure.ac: Make unit tests disabled by default. They now have to be enabled with --enable-unit-tests. 2009-01-23 Mikael Ottela * src/tracker-extract/tracker-xmp.c: Added more date fields to be extracted and implemented a simple priority checking between tags. 2009-01-23 Carlos Garnacho Actually implement Gaim/Pidgin logs indexing. * data/services/conversation.metadata: Add basic metadata definitions for IM conversations. * data/services/Makefile.am: Install that file. * data/modules/gaim-conversation.module: Specify service type, and set 10 min timeout so the log isn't reindexed after each sent/received phrase. * src/tracker-indexer/modules/gaim-conversations.c: Extract metadata/text from Gaim/Pidgin logs. 2009-01-23 Carlos Garnacho * src/trackerd/tracker-processor.c (item_queue_handlers_cb): Only set state to "indexing" if there are actually items to be sent to the indexer, This fixes spurious "indexing" state when indexing new elements, etc... Fixes NB #98516. 2009-01-23 Philip Van Hoof * src/libtracker-common/tracker-thumbnailer.c: Don't print debugging messages when not compiled with -DDEBUG * utils/services/rdfxmltoservice.xsl * utils/services/rdfxml2metadatasample.xsl * utils/services/service2rdf-xml.py * utils/services/rdfxmlsample.xsl: rdf:Property was not with rfds as namespace (fixed) 2009-01-22 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Added additional regex for TCON to id3v1 genre code mapping. * tests/tracker-extract/tracker-extract-testsuite-mp3.c * tests/tracker-extract/data/mp3/id3v23_tcon_?.data * tests/tracker-extract/data/mp3/create_mp3_testdata * tests/tracker-extract/tracker-extract-testsuite-mp3.h * tests/tracker-extract/tracker-extract-mp3-test.c: Added appropriate testcases. Fixes NB #91165 2009-01-22 Philip Van Hoof * utils/services/rdfxml2metadatasample.xsl: added one more sample that attempts to convert a rdf:xml file to our current ontology .ini format 2009-01-21 Mikael Ottela * data/services/default.service: Added audio/x-pn-realaudio-plugin mimetype to the playlists. 2009-01-21 Mikael Ottela * src/tracker-extract/tracker-extract-tiff.c: A bugfix to tiff ascii field handling. 2009-01-21 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata.c (tracker_module_metadata_add_date): Cast time_t to avoid compiler warnings. 2009-01-21 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata-utils.c (metadata_utils_add_embedded_data): Refactored out, transform ISO 8601 dates into unix times if we're adding a date field. (metadata_utils_get_embedded): Use the function above to add metadata. 2009-01-21 Carlos Garnacho * data/modules/files.module: * data/modules/gaim-conversations.module: * data/modules/applications.module: Add default ScanTimeout to modules. 2009-01-21 Carlos Garnacho * src/libtracker-common/tracker-module-config.[ch]: Add support for ScanTimeout option, which forces such timeout (in seconds) after a file pertaining to the module has changed before being sent to the indexer. * src/trackerd/tracker-monitor.c (libinotify_cached_events_timeout_cb): Wait for the specified timeout before sending files to the indexer. * data/modules/evolution.module: Schedule reindexing of mails to 1h after the files change. 2009-01-21 Carlos Garnacho * src/libtracker-common/tracker-module-config.c (load_boolean) (load_string) (load_string_list): Do not free the key file on error, it will be done afterwards anyway. (tracker_module_config_get_monitor_directories) (tracker_module_config_get_monitor_recurse_directories) (tracker_module_config_get_ignored_directories) (tracker_module_config_get_ignored_files) (tracker_module_config_get_index_mime_types) (tracker_module_config_get_index_files): Return correct types if one of the preconditions fails. 2009-01-21 Philip Van Hoof * utils/services/rdfsample.xsl: Added a small code generator that uses rdf:xml as input and outputs a hypothetical simple OO language 2009-01-21 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Correction for album-art that has one-character long album-names. * utils/services/service2rdf-xml.py: Bugfix 2009-01-20 Mikael Ottela * tests/tracker-extract/data/jpeg/*.data * tests/tracker-extract/data/jpeg/create_jpeg_testdata * tests/tracker-extract/Makefile.am * tests/tracker-extract/tracker-extract-test-utils.c * tests/tracker-extract/tracker-extract-test-utils.h * tests/tracker-extract/tracker-extract-testsuite-generic.c * tests/tracker-extract/tracker-extract-gstreamer-test.c * tests/tracker-extract/tracker-extract-testsuite-mp3.c * tests/tracker-extract/tracker-extract-jpeg-test.c * tests/tracker-extract/tracker-extract-testsuite-jpeg.c * tests/tracker-extract/tracker-extract-testsuite-jpeg.h: Added some jpeg extraction tests. * src/tracker-extract/tracker-extract-jpeg.c * src/tracker-extract/tracker-xmp.c: Fixed and unified jpeg and image metadata extraction. Fixes NB #96018 2009-01-20 Martyn Russell * src/plugins/evolution/tracker-evolution.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-processor.c: Make sure we check the module config AND the config for disabled modules and do that EVERYWHERE. Don't recusively process the "files" module for removable devices if the "files" module is disabled in the config or module config. 2009-01-20 Philip Van Hoof * utils/services/service2rdf-xml.py: added a tool that spews out something that looks (or is) rdf:xml, if you let it eat some .service and .metadata cookies. Usage: python service2rdf-xml.py --metadata=ONTOLOGY.metadata \ --service=ONTOLOGY.service 2009-01-20 Carlos Garnacho * src/tracker-extract/tracker-escape.c (tracker_escape_metadata): * src/libtracker-common/tracker-utils.c (tracker_escape_string): Accept NULL strings. (Fixes NB98170) * src/libtracker-common/tracker-type-utils.c (tracker_date_format_to_iso8601): Do not memset a stack allocated variable. 2009-01-20 Philip Van Hoof * utils/services/service2xml.py: A tool to convert a .service file to an XML file. Usage: * utils/services/sample.xsl: added a sample XSLT * utils/services/README.example: Added a sample XSLT python utils/services/service2xml.py < data/services/service.service 2009-01-19 Martyn Russell * src/trackerd/tracker-processor.c: Fixed a nasty bug where inserting a MMC would cause ALL MMCs to be re-crawled and sent to the indexer. Now we just index the MMC that changed. This fixes NB#97049. 2009-01-06 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (load_metadata_file): Warn on invalid/unparseable data types. * src/tracker-indexer/tracker-module-metadata.c (tracker_module_metadata_add_date): Convert time_t to string directly instead of dates. * src/libtracker-data/tracker-data-update.c (tracker_data_update_create_service): So we don't have to convert them back to unix times here. * data/services/email.metadata: * data/services/image.metadata: Fix invalid data types so Tracker now recognizes them. 2009-01-16 Martyn Russell * src/plugins/Makefile.am: * src/plugins/evolution/Makefile.am: Added glib test Makefile.decl includes to these new Makefiles so make distcheck doesn't fail. * tests/tracker-extract/Makefile.am: Include .h files needed in TEST_UTILS_SOURCES so they are not left out of the tarball and don't fail make distcheck. * tests/tracker-extract/tracker-extract-mp3-test.c: * tests/tracker-extract/tracker-extract-testsuite-generic.c: Some code clean ups. 2009-01-16 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Define pivots as gint, as we can potentially underflow the right pivot with guint. 2009-01-16 Mikael Ottela * src/libtracker-data/tracker-data-search.c: Switched back to using INNER JOINs because of performance issues. 2009-01-15 Mikael Ottela * src/libtracker-data/tracker-data-search.c: Added proper NULL handling to queries. Fixes NB #97029 2009-01-15 Martyn Russell * docs/reference/libtracker-common/libtracker-common-docs.sgml: * docs/reference/libtracker-common/libtracker-common.types: Removed tracker-data-field.[ch] now that it is in libtracker-data, fixes documentation build. * src/tracker-extract/tracker-escape.[ch]: Fixed include order. * src/tracker-extract/tracker-xmp.c: Small code clean up and fixed 3 warnings from missing include. * src/tracker-indexer/Makefile.am: * src/trackerd/Makefile.am: Don't link with libtracker-evolution-plugin if we don't have support for it enabled. * tests/tracker-extract/Makefile.am: Don't try to build gstreamer test cases if we don't have gstreamer support enabled. 2009-01-15 Ivan Frade * data/services/default.service: Added some Image properties in the Services tables. Fixes NB #97765 2009-01-15 Martyn Russell * configure.ac: * src/plugins/evolution/Makefile.am: Change EVOPLUG_{CFLAGS|LDFLAGS} to EVOLUTION_PLUGIN_*. Also make the evolution plugin a build time option so we error if it is expicitly enabled but not available. This is disabled by default for the up and coming release. 2009-01-15 Philip Van Hoof * src/tracker-indexer/modules/Makefile.am * src/tracker-indexer/modules/evolution.c: Selecting between the old and the new Evolution support, depending on availability of the right version of EDS * data/services/email.metadata: * data/db/sqlite-tracker.sql: * configure.ac * src/tracker-indexer/Makefile.am * src/trackerd/Makefile.am * src/Makefile.am * src/tracker-evolution-plugin/tracker-evolution-plugin.h * src/tracker-evolution-plugin/tracker-evolution-indexer.h * src/tracker-evolution-plugin/tracker-evolution.h * src/tracker-evolution-plugin/tracker-evolution-registrar.h * src/tracker-evolution-plugin/tracker-evolution-plugin.xml * src/tracker-evolution-plugin/org-freedesktop-Tracker-evolution-plugin.eplug.xml * src/tracker-evolution-plugin/tracker-evolution-common.h * src/tracker-evolution-plugin/Makefile.am * src/tracker-evolution-plugin/tracker-evolution-plugin.c * src/tracker-evolution-plugin/tracker-evolution-indexer.c * src/tracker-evolution-plugin/tracker-evolution-registrar.xml * src/tracker-evolution-plugin/tracker-evolution.c * src/tracker-evolution-plugin/tracker-evolution-registrar.c: Implementation of the new Evolution support * src/trackerd/tracker-main.c 2009-01-14 Mikael Ottela * tests/tracker-extract/data/mp3/*.data: Added data files for testing * tests/tracker-extract/data/mp3/create_mp3_perfdata: Script for creating performance test data for mp3. * tests/tracker-extract/Makefile.am * tests/tracker-extract/tracker-extract-testsuite-generic.h * tests/tracker-extract/tracker-extract-testsuite-mp3.h * tests/tracker-extract/tracker-extract-mp3-test.c * tests/tracker-extract/tracker-extract-test-utils.c * tests/tracker-extract/tracker-extract-test-utils.h * tests/tracker-extract/tracker-extract-testsuite-generic.c * tests/tracker-extract/tracker-extract-gstreamer-test.c * tests/tracker-extract/tracker-extract-testsuite-mp3.c: Added more mp3 tests and test cases for gstreamer mp3 extraction. * src/tracker-extract/tracker-extract-mp3.c: Fixed genre handling in id3v2 tags. Fixed frame size and count calculations for MPEG-2 and MPEG-25. Fixes NB #97125 2009-01-14 Philip Van Hoof * src/tracker-extract/tracker-extract.c: Fixed too early shutdown of the thumbnailer support code in tracker-extract 2009-01-14 Carlos Garnacho * src/tracker-indexer/modules/evolution-imap-db.c (tracker_evolution_imap_db_file_finalize): finalize the query before closing the database. 2009-01-14 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Perform binary search correctly, so it's able to find all items in the array. (Fixes bug #441739) * src/tracker-indexer/tracker-indexer.c (item_remove): Pass big enough weight to have elements removed from the index. 2009-01-13 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (process_module): Do not spew a critical warning if the module has no dirs configured. Do not emit module-finished/started signals for misconfigured modules. 2009-01-13 Carlos Garnacho * src/tracker-indexer/modules/evolution-pop.c (get_message_flags): Fix potential crasher. 2009-01-13 Martyn Russell * .svnignore: * docs/.svnignore: Added these files for use with: svn -R propset svn:ignore -F .svnignore ./ and also added special additions for unique cases using: svn propedit svn:ignore ./ in specific locations (like po/ and docs/reference/*). Now svn st reports much less about files not in the repository. 2009-01-13 Jürg Billeter * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-common.h: * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-query.h: * src/libtracker-data/tracker-data-schema.h: * src/libtracker-data/tracker-data-search.h: * src/libtracker-data/tracker-field-data.c: * src/libtracker-data/tracker-field-data.h: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/trackerd/tracker-metadata.c: Move tracker-field-data.[ch] from libtracker-common to libtracker-data as TrackerFieldData contains data specific to the storage backend 2009-01-12 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: BOM from UCS-2 encoded data was not removed correctly by all iconv versions. Removed an incorrect TIME tag. Fixes NB #97610. 2009-01-12 Ivan Frade * src/tracker-extract/tracker-extract-playlist.c: (extract-playlist): Handling correctly the results of totem-plparser to avoid crashing the extractor. Fixes NB #95754 2009-01-09 Ivan Frade * data/services/default.service: Added application/vnd.rn-realmedia to Video mimes. Fixes NB #97512 2009-01-09 Carlos Garnacho * src/tracker-indexer/tracker-main.c (indexer_finished_cb): Obey -f even if it's interrupted by trackerd shutting down. 2009-01-09 Martyn Russell * tests/Makefile.am: * tests/tracker-extract/tracker-extract-mp3-test.c: Disabled tests which fail and don't disable tracker-extract from the Makefile.am, this breaks make distcheck. 2009-01-09 Carlos Garnacho * src/tracker-indexer/modules/files.c (tracker_regular_file_get_service_type): Do not sniff mimetype and return NULL service type if the file doesn't exist. 2009-01-09 Carlos Garnacho * src/libtracker-data/tracker-data-query.c (tracker_data_query_service_exists): Dates are already stored as unix times, and stored in the databases as integers. 2009-01-08 Carlos Garnacho * src/trackerd/tracker-status.c (tracker_status_signal): Set the paused_on_battery parameter to the current state, not the configuration setting. 2009-01-08 Carlos Garnacho * src/tracker-indexer/modules/evolution-imap-db.c: Handle databases with no parseable folders. 2009-01-08 Mikael Ottela * configure.ac * tests/Makefile.am * tests/tracker-extract * tests/tracker-extract/Makefile.am * tests/tracker-extract/tracker-extract-mp3-test.c: Added some initial unit tests for mp3 extraction. * tests/tracker-extract/data * tests/tracker-extract/data/mp3 * tests/tracker-extract/data/mp3/*.data * tests/tracker-extract/data/mp3/create_mp3_testdata: Test data for the mp3 extraction unit tests and a script for creating the files. * src/tracker-extract/tracker-extract-mp3.c: Added some missing pieces of track number and release data extraction. 2009-01-08 Carlos Garnacho * src/libtracker-data/tracker-data-update.c (tracker_data_update_create_service) (tracker_data_update_set_metadata): Store all dates in the DB as unix times. 2009-01-08 Carlos Garnacho * src/tracker-indexer/tracker-module-file.[ch]: Add get_flags() method. TrackerModuleFlags at the moment contains TRACKER_FILE_CONTENTS_STATIC, used for contents that are not prone to change. * src/tracker-indexer/tracker-indexer.c: Do not try to update static items in the database, since all the metadata comparison is going to be expensive and useless if the data isn't changing. * src/tracker-indexer/modules/evolution-pop.c: * src/tracker-indexer/modules/evolution-imap.c: * src/tracker-indexer/modules/evolution-imap-db.c: Implement get_flags(). 2009-01-07 Carlos Garnacho * src/tracker-indexer/modules/evolution-imap-db.[ch]: Implement get_count() taking into account all folders. * src/tracker-indexer/tracker-module-iteratable.c (tracker_module_iteratable_get_count): Return by default 1 element. * src/tracker-indexer/tracker-indexer.c: Modified to keep track of the number of processed/indexed elements, not just files. This also improves feedback in the status signal (not treating the whole mbox as one file, etc...) 2009-01-07 Carlos Garnacho Several improvements to the evolution module. * src/tracker-indexer/modules/evolution-imap-db.c (tracker_evolution_imap_db_file_initialize): Do not try to extract data from a busy database. (extract_message_text): Handle g_convert() failures gracefully. (get_message_metadata): Do not try to index the email if it doesn't contain the essential information. (tracker_evolution_imap_db_file_iter_contents): Make cur_message_uid actuallly point to the current message. * src/tracker-indexer/modules/evolution-imap.c (get_message_metadata): Do not try to index the email if it doesn't contain the essential information. 2009-01-07 Carlos Garnacho * src/libtracker-data/tracker-data-update.c (tracker_data_update_create_service): Do not set Enabled=0 in any case, since it fails for non-local files, again. 2009-01-07 Ivan Frade * src/tracker-utils/tracker-files.c: Updated command line options help. Applied patch by Luca Ferretti. Fixes bug #563909 (Luca Ferretti). 2009-01-07 Ivan Frade * src/tracker-preferences/tracker-preferences.desktop: Added X-GNOME-PersonalSettings category. Fixes bug #557979. 2009-01-05 Carlos Garnacho * src/tracker-indexer/modules/evolution.c: Use the correct TrackerDBFile for the new database format. * src/tracker-indexer/modules/evolution-imap-db.[ch]: Also iterate through folders, and parse appropriate paths for mail contents. 2009-01-05 Ivan Frade * src/trackerd/tracker-main.c: Updated one more time the backup save/restore logic. We must try to restore backup even when the force_reindex flag is set to false. This is the case when call reindex from tracker-preferences. 2009-01-05 Ivan Frade * src/tracker-preferences/tracker-preferences.glade: Removed white space at the end of "Index delay: " label. Fixes bug #493049 2009-01-02 Ivan Frade * data/services/default.service: Added application/x-rpm in the list of playlists mimetypes. Fixes NB #95151 2009-01-02 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Corrected comment buffer size. Fixes NB #96999 2009-01-02 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Fixed header seeking bug in mp3 extraction. Fixes NB #95873. 2009-01-02 Ivan Frade * src/tracker-applet/tracker-applet.c: (set_status_hint): Fixed string and added comments for translators. Patch from Gabor Kelemen. Fixes bug #565725. Compilation warning fixes. 2009-01-02 Ivan Frade * python/nautilus/tracker-tags-tab.py: Updated to use the new dbus namespaces. Patch from Thomas. Fixes bug #566221 (Thomas). 2008-12-31 Philip Van Hoof * src/trackerd/tracker-cleanup.c: Bugfix when mount_point is NULL 2008-12-30 Philip Van Hoof * src/libtracker/tracker.h * src/libtracker/tracker.c * src/tracker-indexer/tracker-dbus.c * src/tracker-indexer/modules/evolution.c * src/tracker-indexer/modules/evolution-imap-db.c * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/tracker-module-metadata-utils.c * src/tracker-utils/tracker-meta-folder.c * src/libtracker-data/tracker-data-schema.c * src/libtracker-data/tracker-data-search.c * src/libtracker-data/tracker-data-query.c * src/libtracker-data/tracker-rdf-query.c * src/libtracker-data/tracker-turtle.c * src/libtracker-data/tracker-xesam-query.c * src/libtracker-data/tracker-data-update.c * src/libtracker-data/tracker-query-tree.c * src/trackerd/tracker-keywords.c * src/trackerd/tracker-processor.c * src/trackerd/tracker-main.c * src/trackerd/tracker-backup.c * src/trackerd/tracker-monitor.c * src/trackerd/tracker-cleanup.c * src/trackerd/tracker-dbus.c * src/tracker-extract/tracker-albumart.c * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-extract-oasis.c * src/tracker-extract/tracker-extract-ps.c * src/tracker-extract/tracker-extract-png.c * src/tracker-extract/tracker-extract-gstreamer.c * src/libtracker-gtk/tracker-metadata-tile.c * src/libtracker-db/tracker-db-dbus.c * src/libtracker-db/tracker-db-interface-sqlite.c * src/libtracker-db/tracker-db-manager.c * src/libtracker-db/tracker-db-index-manager.c * src/libtracker-common/tracker-thumbnailer.c * src/libtracker-common/tracker-file-utils.c * src/libtracker-common/tracker-dbus.h * src/libinotify/inotify-log.h * src/libinotify/inotify-monitor.c: Compilation warning fixes 2008-12-29 Ivan Frade Fixed (some) compilation warnings in ultra-strict mode in libtracker-db. * src/libtracker-db/tracker-db-manager.c (tracker_db_manager_get_db_interface_by_type) (tracker_db_manager_get_db_interface_by_service) (db_interface_create): Added missing/default cases in switchs. * src/libtracker-db/tracker-db-index.c: Renamed local variable "index" as "indez" to avoid collision with string.h 2008-12-29 Ivan Frade Fixed compilation warnings in ultra-strict mode in libtracker-common. * src/libtracker-common/tracker-language.[ch] (tracker_language_get_all_by_name): Removed (unused) Fixed const pointer. * src/libtracker-common/tracker-hal.c: Removed prototypes of init functions. * src/libtracker-common/tracker-parser.c (tracker_parser_is_stop_word): Define and initialize variable in different lines. (analyze_text) (parser_next): Added missing case options. * src/libtracker-common/tracker-module-config.c (changed_cb): Added missing case options, renamed local variable to avoid collision with global var. * src/libtracker-common/tracker-config.[ch] (tracker_config_add_disabled_modules): Use const gchar * const * for the modules lists. (config_changed_cb): Added missing case options. * src/libtracker-common/tracker-log.c (log_output): Added missing case options. * src/libtracker-common/tracker-os-dependant-unix.c (tracker_create_permission_string): Added default case in switch. 2008-12-29 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.h: Cleanup of duplicate prototype in include header 2008-12-29 Ivan Frade * data/services/playlist.metadata: Define Playlist:TotalLenght as non-embedded. The applications can set a more refined value. 2008-12-29 Ivan Frade * src/libtracker-data/tracker-rdf-query.c * src/libtracker-gtk/tracker-keyword-store.h * src/libtracker-common/tracker-os-dependant-win.c * src/libtracker-common/tracker-os-dependant-unix.c * src/tracker-search-tool/sexy-icon-entry.h * src/tracker-search-tool/tracker-search-tool-support.c * src/tracker-search-tool/tracker-search-tool.c * src/tracker-applet/tracker-applet.h * tests/trackerd/tracker-xesam-test.c * tests/trackerd/tracker-xesam-session-test.c * tests/trackerd/tracker-xesam-hit-test.c * tests/trackerd/tracker-xesam-hits-test.c * tests/libtracker-db/tracker-db-manager-test-attach.c * tests/libtracker-db/tracker-db-dbus-test.c * tests/libtracker-db/tracker-index-writer-test.c * tests/libtracker-db/union-performance.c * tests/libtracker-db/tracker-db-manager-test-unattach.c * tests/libtracker-db/tracker-db-manager-test-custom.c * tests/libtracker-db/tracker-index-reader-test.c * tests/libtracker-common/tracker-ontology-test.c * tests/libtracker-common/tracker-parser-test.c * tests/libtracker-common/tracker-dbus-test.c * tests/libtracker-common/tracker-file-utils-test.c * tests/libtracker-common/tracker-type-utils-test.c * tests/libtracker-common/tracker-field-test.c Gnome Goal: Cleaned up gtk and glib includes. Applied patch from Luis Menina. Fixes bug #565218 (Luis Menina). 2008-12-29 Ivan Frade * src/libtracker-data/tracker-data-update.c Replaced g_basename with g_path_get_basename Gnome Goal: Remove deprecated glib symbols. Code taken from patch provided by Luis Menina. Fixes bug #565218 (Luis Menina, Ivan Frade). 2008-12-29 Ivan Frade * src/tracker-search-tool/tracker-search-tool.c: Marked some strings for translation. Applied patch from Gabor Kelemen. Fixes bug #565932. 2008-12-29 Ivan Frade * src/tracker-applet/tracker-applet.c: Fixed translation of --help output. Applied patch from Gabor Kelemen. Fixes #565928. 2008-12-23 Carlos Garnacho Support new Evolution database storage. Based on a patch by Philip Van Hoof * src/tracker-indexer/modules/evolution-imap-db.[ch]: New TrackerModuleFile implementations which get messages information for the new Evolution sqlite storage. * src/tracker-indexer/modules/Makefile.am: Build evo modulewith sqlite3 libs/cflags, add the new files. * src/tracker-indexer/modules/evolution.c: Use the new implementation if folders.db is found. 2008-12-22 Mikael Ottela * src/libtracker-data/tracker-data-update.c: Added escaping to metadata strings for SQL. Fixes NB #95227. 2008-12-22 Martyn Russell * configure.ac: * src/libtracker-common/Makefile.am: * src/tracker-indexer/Makefile.am: * src/trackerd/Makefile.am: * tests/common/Makefile.am: * tests/tracker-indexer/Makefile.am: Patch from Michael Biebl to NOT use symbolic links for test cases and to clean up some of the unnecessary EXTRA_DIST lines in Makefiles. 2008-12-19 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_remove): Inconditionally check the service type in the database for deleted files, since files could not end always with the service type specified by the module definition file, and there's no way to requery it for a deleted file. This for example allows setting the correct services in the ServiceStatisticsUpdated signal for any special (image, music, ...) file that was indexed through the files module. Fixes NB #95215. 2008-12-19 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Fixed two spaces vs once space filename issue 2008-12-19 Mikael Ottela * src/tracker-extract/tracker-escape.c: Fixed a small bug in metadata escaping. 2008-12-18 Carlos Garnacho * src/tracker-extract/tracker-escape.[ch]: New methods to escape metadata properly, so we don't barf on new lines, metadata separators, etc... * src/tracker-extract/Makefile.am: Add new files. * src/tracker-extract/tracker-extract.h: Include header for modules. * src/tracker-extract/tracker-extract-*.c: * src/tracker-extract/tracker-xmp.c: Escape metadata properly in the right places. 2008-12-18 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Some optimizations to reading mp3 frames. 2008-12-18 Martyn Russell * src/libtracker-db/tracker-db-manager.c: (tracker_db_manager_optimize): Don't use British English spelling for ANALYZE. 2008-12-18 Martyn Russell * data/db/sqlite-service.sql: Added indexes for the Services table on Enabled, AuxilaryID and KeyMetadata{1|2|3} to improve performance for queries. * src/trackerd/tracker-processor.c: * src/libtracker-db/tracker-db-manager.[ch]: Added an _optimize() API call which calls ANALYZE on the Services tables for emails and files. 2008-12-18 Philip Van Hoof * src/libtracker-common/tracker-thumbnailer.c: Assertion fix, mime_type is allowed to be passed as NULL here 2008-12-18 Ivan Frade * src/trackerd/tracker-main.c: Set the restore callback if we are in force-reindex AND we have a backup file. (backup_restore_on_crawling_finished): static int to keep the value in the callback. 2008-12-17 Carlos Garnacho * src/tracker-extract/tracker-extract.c (print_meta_table_data): Escapemetadata values so we allow multiline data and other stuff. * src/tracker-indexer/tracker-module-metadata-utils.c (metadata_utils_get_embedded): And compress it back here. 2008-12-17 Mikael Ottela * src/libtracker-data/tracker-data-search.c: Fixed joining of count and sum fields. Added the support for * for count fields which maps to ID internally for unique rows. 2008-12-17 Mikael Ottela * src/tracker-extract/tracker-extract.c: Deactivated the extractor debug output. 2008-12-17 Philip Van Hoof * src/trackerd/tracker-main.c * src/tracker-extract/tracker-extract.c: Initialization of the thumbnailer * src/tracker-extract/tracker-albumart.c: Bugfix 2008-12-17 Carlos Garnacho * src/libtracker-common/tracker-log.c: * src/libtracker-data/tracker-rdf-query.c: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/evolution-imap.h: * src/tracker-indexer/modules/evolution-pop.h: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/gaim-conversations.c: * src/tracker-indexer/tracker-module.h: Fixed more warnings that were spotted with the new compiler flags. 2008-12-16 Martyn Russell * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-hal.c: * src/libtracker-common/tracker-thumbnailer.[ch]: * src/libtracker-common/tracker-type-utils.c: * src/libtracker-data/tracker-data-metadata.c: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-rdf-query.c: * src/trackerd/tracker-search.c: Fixed a bunch of warnings now we have more compiler flags to catch these things. 2008-12-16 Carlos Garnacho * acinclude.m4: Add macro to enable compile warnings. * configure.ac: call it. * src/*/Makefile.am: Add WARN_CFLAGS to INCLUDES. 2008-12-16 Martyn Russell * src/trackerd/tracker-monitor.c: Fixed a compiler warning and made pausing the indexer on IO a #define. Also we now by default DON'T pause the indexer on IO events. If this is problematic for performance reasons, we can switch this back. This dramatically improves indexing speed for files we download or copy on the Nokia device. This commit was partially patched by Attila. Fixes NB #90111 and NB #90700. 2008-12-16 Carlos Garnacho * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/Makefile.am: Enable -Wall * src/tracker-indexer/modules/evolution-common.c: * src/tracker-indexer/modules/evolution-imap.[ch]: * src/tracker-indexer/modules/evolution-pop.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-module-metadata.c: Fix compiler warnings. 2008-12-16 Philip Van Hoof * src/tracker-indexer/tracker-removable-device.c: Compilation warnings if you don't have libraptor-dev installed 2008-12-16 Philip Van Hoof * src/tracker-indexer/tracker-removable-device.c * src/tracker-indexer/tracker-removable-device.h * src/tracker-indexer/tracker-main.c * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/Makefile.am * src/tracker-indexer/tracker-indexer.h * src/tracker-indexer/tracker-module-metadata.c * src/libtracker-data/tracker-data-query.c * src/libtracker-data/tracker-turtle.c * src/libtracker-data/tracker-data-query.h * src/libtracker-data/tracker-turtle.h * src/libtracker-data/tracker-data-metadata.c * src/libtracker-data/tracker-data-update.c * src/libtracker-data/tracker-data-metadata.h * src/libtracker-data/tracker-data-update.h * src/libtracker-data/Makefile.am * src/trackerd/tracker-main.c * src/trackerd/tracker-backup.c * src/trackerd/tracker-backup.h * src/trackerd/Makefile.am * src/libtracker-db/tracker-db-manager.c * src/libtracker-common/tracker-hal.c * src/libtracker-common/tracker-hal.h * tests/tracker-indexer/Makefile.am * configure.ac * data/db/sqlite-stored-procs.sql * data/dbus/tracker-indexer.xml: Committed the Turtle branch merge to trunk 2008-12-16 Philip Van Hoof * src/tracker-indexer/tracker-removable-device.c * src/tracker-indexer/tracker-indexer.c * src/libtracker-data/tracker-turtle.h * src/libtracker-data/tracker-data-metadata.c * src/libtracker-data/tracker-data-update.c * src/libtracker-data/tracker-data-update.h * src/trackerd/tracker-main.c * src/libtracker-common/tracker-hal.c: Fixed comments from martyn 2008-12-16 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer-helix.c: Added a missing mimetype to helixbin. Fixes NB #95928. 2008-12-16 Martyn Russell * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-file-utils.[ch]: * src/trackerd/tracker-crawler.c: * tests/libtracker-common/tracker-file-utils-test.c: In function tracker_path_list_filter_duplicates(), don't filter basenames which have a particular prefix. This prefix is currently always "." but can be specified. Fixes NB #95545. 2008-12-15 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Filenames for album-art. They are now named type-md5(artist)-md5(album).jpeg 2008-12-11 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Requesting a thumbnail for embedded album-art * src/libtracker-common/tracker-thumbnailer.c: coping with paths 2008-12-11 Philip Van Hoof * src/tracker-indexer/tracker-removable-device.c * src/tracker-indexer/tracker-removable-device.h * src/tracker-indexer/tracker-main.c * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/Makefile.am * src/tracker-indexer/tracker-indexer.h * src/tracker-indexer/tracker-module-metadata.c * src/libtracker-data/tracker-data-query.c * src/libtracker-data/tracker-turtle.c * src/libtracker-data/tracker-data-query.h * src/libtracker-data/tracker-turtle.h * src/libtracker-data/tracker-data-metadata.c * src/libtracker-data/tracker-data-update.c * src/libtracker-data/tracker-data-metadata.h * src/libtracker-data/tracker-data-update.h * src/libtracker-data/Makefile.am * src/trackerd/tracker-main.c * src/trackerd/tracker-backup.c * src/trackerd/tracker-backup.h * src/trackerd/Makefile.am * src/libtracker-db/tracker-db-manager.c * src/libtracker-common/tracker-hal.c * src/libtracker-common/tracker-hal.h * tests/tracker-indexer/Makefile.am * configure.ac * data/db/sqlite-stored-procs.sql * data/dbus/tracker-indexer.xml: Recreated the Turtle branch, and applied merge-to-trunk patch on it 2008-12-10 Mikael Ottela * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-unique.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-info.c: * src/tracker-utils/tracker-meta-folder.c: Fixed help output of the command line tools. 2008-12-10 Mikael Ottela * src/libtracker-common/tracker-parser.c: * src/tracker-extract/tracker-extract.c: Fixed support for empty strings as metadata values 2008-12-09 Mikael Ottela * data/dbus/tracker-search.xml: * src/trackerd/tracker-search.c: * src/trackerd/tracker-search.h: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-rdf-query.h: * src/libtracker/tracker.h: * src/libtracker/tracker.c: The keyword field in query method now supports multiple values. * src/tracker-utils/tracker-query.c: Changed the command line tool to work with multiple keywords. * data/services/image.metadata: * src/tracker-extract/tracker-xmp.c: Image:Keywords is now a multivalue field and used in extraction. 2008-12-09 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata.c (tracker_module_metadata_get_hash_table): Make it return a new hashtable with field names as keys for easier use. * src/tracker-indexer/tracker-indexer.c (item_add_or_update): Destroy the hashtable that tracker_module_metadata_get_hash_table() returns. 2008-12-09 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (check_disk_space_cb) (state_check): Do not stop disk space check when pausing the indexer. 2008-12-09 Martyn Russell * src/libtracker/tracker.[ch]: Fixes bug #563706. * src/trackerd/tracker-dbus.c: Include config.h. 2008-12-08 Ivan Frade * tracker-query.c * tracker-tag.c * tracker-info.c * tracker-meta-folder.c: Allow this tools to receive relative paths as parameters. Fixes bug #563666. 2008-12-08 Ivan Frade * src/tracker-utils/tracker-files.c: Inform to the user if we are defaulting to 'Other' service type. Now using the same code as in "tracker-search". It is ugly but consistent between tools. 2008-12-08 Ivan Frade * src/tracker-utils/tracker-files.c: Inform to the user if we are defaulting to 'Other' service type. 2008-12-08 Ivan Frade * src/tracker-applet/tracker-applet.c: Applied patch from Wendy Hu preventing the raise of a second preferences window from the applet. This fixes bug #528684 (Wendy Hu). 2008-12-05 Jürg Billeter * data/db/sqlite-stored-procs.sql: * src/libtracker-data/tracker-data-update.c: (tracker_data_update_move_service): Only execute MoveServiceChildren for folders and add condition to UPDATE statement 2008-12-05 Carlos Garnacho * docs/reference/libtracker-module/writing-an-indexer-module.sgml: Update to latest module changes. 2008-12-05 Carlos Garnacho * src/libtracker-data/tracker-data-update.h (tracker_data_update_delete_service_recursively): Make it take a const gchar*, do not append ourselves the '/', Since it's done in the stored procedure now. 2008-12-05 Carlos Garnacho * docs/reference/libtracker-module/tmpl/tracker-module-file.sgml: * docs/reference/libtracker-module/tmpl/tracker-module-iteratable.sgml: * docs/reference/libtracker-module/tmpl/tracker-module-metadata.sgml: * docs/reference/libtracker-module/tmpl/tracker-module-metadata-utils.sgml: Add short/long descriptions and other missings docs. 100% coverage! 2008-12-05 Carlos Garnacho * docs/reference/libtracker-module/libtracker-module-docs.sgml: Fix missing reference. 2008-12-05 Carlos Garnacho * docs/reference/libtracker-module/libtracker-module.types: Added so we get proper GObject documentation. * docs/reference/libtracker-module/Makefile.am: Added missing lib to compile the scanner. 2008-12-05 Carlos Garnacho * src/tracker-indexer/tracker-module-file.c: * src/tracker-indexer/tracker-module-iteratable.c: Document missing symbols. 2008-12-05 Carlos Garnacho * src/tracker-indexer/tracker-module.h: Added, all-in-one header for developing tracker indexer modules. * src/tracker-indexer/Makefile.am: Install that new header. * src/tracker-indexer/tracker-module-file.h: * src/tracker-indexer/tracker-module-iteratable.h: * src/tracker-indexer/tracker-module-metadata-utils.h: * src/tracker-indexer/tracker-module-metadata.h: Prevent these files to be included directly from external modules. Only tracker-module.h should be included. 2008-12-05 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (tracker_indexer_process_all): Unset the stopped flag set during init(), so -p works again. 2008-12-04 Martyn Russell * src/tracker-indexer/tracker-indexer.c: (item_add_or_update), (item_move), (item_remove): Don't call stat() when we remove and move thumbnails. Just use the current metadata we hold for a URI. 2008-12-04 Martyn Russell * src/trackerd/tracker-monitor.[ch]: * src/trackerd/tracker-processor.c: Make sure we recursively remove all monitors for mount points which are unmounted. Also, when a directory is deleted, remove the monitor, don't keep it around! 2008-12-04 Carlos Garnacho * configure.ac: * tests/tracker-indexer/Makefile.am: Fix tests build. 2008-12-04 Carlos Garnacho Rename libtracker-indexer to libtracker-module for consistence, as it's not a library to make indexers, but to make modules. * src/tracker-indexer/Makefile.am: Rename the library to libtracker-module. * data/tracker-indexer-module-1.0.pc.in: Moved to * data/tracker-module-1.0.pc.in: Added * docs/reference/tracker-indexer: Moved to * docs/reference/libtracker-module: Adapt to new modules API. * configure.ac: * data/Makefile.am: * docs/reference/Makefile.am: Misc changes. * src/tracker-indexer/modules/Makefile.am: Compile modules as libtracker-module-*.so, instead of libtracker-indexer-*.so * src/tracker-indexer/tracker-indexer-module.c: Just load libtracker-module-*.so. * src/tracker-indexer/tracker-module-file.c: * src/tracker-indexer/tracker-module-metadata-utils.c: Add a few docs. 2008-12-04 Carlos Garnacho * src/tracker-indexer/tracker-module-metadata.[ch]: * src/tracker-indexer/tracker-module-metadata-private.h: New files. TrackerModuleMetadata is the object used for exchanging information between the indexer and the modules, similar to TrackerDataMetadata, but more suited to the task, and in the correct library. * src/tracker-indexer/tracker-metadata-utils.[ch]: Moved to * src/tracker-indexer/tracker-module-metadata-utils.[ch]: Just for consistency. * src/tracker-indexer/Makefile.am: Compile the new files. * src/tracker-indexer/tracker-module-file.[ch]: * src/tracker-indexer/tracker-indexer.c: Updated to use TrackerModuleMetadata where it's relevant. * src/tracker-indexer/modules/*.c: Update to these changes. * src/libtracker-data/tracker-data-update.[ch] (tracker_data_update_create_service): Modify to receive a GHashTable instead of a TrackerDataMetadata. to avoid type conversions, circular dependencies, etc... * configure.ac: * tests/tracker-indexer/Makefile.am: Update to latest changes to get testcases compiling. 2008-12-04 Ivan Frade * src/tracker-preferences/tracker-preferences.c: (restart_tracker): Handle correctly the should_reindex conditions. This fixes the double ask for reindex with "apply" and "ok" buttons. 2008-12-04 Ivan Frade * Makefile.am: Remove "thumbnailers" from SUBDIRS. 2008-12-04 Ivan Frade * src/tracker-preferences/tracker-preferences.c: Enabled the evolution option in tracker-preferences. Now evolution can be added/removed from the disabled modules list using tracker-preferences. 2008-12-04 Martyn Russell * src/libtracker/tracker.c: Included config.h so we get the __FUNCTION__ definition on Sun builds. 2008-12-04 Martyn Russell * configure.ac: * src/Makefile.am: * src/tracker-thumbnailer/Makefile.am: * src/tracker-thumbnailer/tracker-thumbnailer.c: * thumbnailers/Makefile.am: * thumbnailers/application/Makefile.am: * thumbnailers/application/pdf_thumbnailer: * thumbnailers/application/vnd.oasis.opendocument.graphics_thumbnai ler: * thumbnailers/application/vnd.oasis.opendocument.presentation_thum bnailer: * thumbnailers/application/vnd.oasis.opendocument.spreadsheet_thumb nailer: * thumbnailers/application/vnd.oasis.opendocument.text_thumbnailer: * thumbnailers/image/Makefile.am: * thumbnailers/image/gif_thumbnailer: * thumbnailers/image/hildon/gif_thumbnailer: * thumbnailers/image/hildon/jpeg_thumbnailer: * thumbnailers/image/hildon/png_thumbnailer: * thumbnailers/image/hildon/tiff_thumbnailer: * thumbnailers/image/jpeg_thumbnailer: * thumbnailers/image/png_thumbnailer: * thumbnailers/image/tiff_thumbnailer: Removed all unused thumbnail code and scripts now they are unused. 2008-12-04 Ivan Frade * src/tracker-indexer/tracker-indexer.c (item_remove): Call recursively delete only when the uri is a Folder. This speed up a lot the delete operation. 2008-12-04 Martyn Russell * src/libtracker-common/tracker-utils.c: Improve the strings used when estimating time remaining and the time is < 1 second. * src/tracker-extract/tracker-extract.h: Changed the "tracker:unknown" value used for metadata information which is unknown to an empty string. 2008-12-04 Carlos Garnacho * data/db/sqlite-stored-procs.sql (DeleteServiceRecursively): Fix so it just deletes files contained in the directory. 2008-12-03 Ivan Frade * src/tracker-preferences/tracker-preferences.glade * src/tracker-preferences/tracker-preferences.c: Using gtk tree model in the language combo box (instead of setting options in glade file). The previous code to read the language was forcing a reindex everytime you closed the preferences dialog. Use "No" instead of "Cancel" from the stock in the "reindex" dialog. It is a yes/no answer. 2008-12-03 Martyn Russell * configure.ac: * src/tracker-indexer/modules/evolution-common.c: * src/trackerd/tracker-files.c: Support __FUNCTION__ for compilers which don't have it as standard. Based on a patch from Jerry Tan. 2008-12-03 Carlos Garnacho * src/libtracker-common/tracker-type-utils.[ch] (tracker_string_in_gslist): New function to know whether a string is contained in a GSList of strings. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_load_modules): Refactor out modules loading to this function, also do not load ignored modules by tracker.cfg. (tracker_indexer_finalize) (tracker_indexer_init): Misc changes. 2008-12-03 Carlos Garnacho * src/libtracker-common/tracker-config.c (config_finalize): Plug a leak. 2008-12-03 Martyn Russell * NEWS: * README: * docs/manpages/trackerd.1: Patch from Tshepang Lekhonkhobe to update documentation. 2008-12-03 Martyn Russell * configure.ac: Bumped version requirement of GLib to 2.16. We depend on it anyway. 2008-12-02 Mikael Ottela * configure.ac: Replaced the package check for helixbin with only an enable-switch. 2008-12-02 Mikael Ottela * src/tracker-extract/tracker-extract-png.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-tiff.c: Added a default value for the Image:Date property. Fixes NB #93928 and NB #91827 2008-12-01 Martyn Russell * src/libtracker-common/tracker-thumbnailer.[ch]: * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-main.c: Fixed the header which was using the same ifdefs as another header. Fixed the leak where by we were not cleaning up the DBusGProxy objects. Only get thumbnails if enabled in the config, previously, no checks were done before requesting thumbnails. 2008-12-01 Martyn Russell * src/libtracker-common/tracker-type-utils.[ch]: Added function to deep copy a GList of strings. * src/libtracker-data/tracker-data-metadata.[ch]: * src/libtracker-data/tracker-data-query.[ch]: * src/tracker-extract/tracker-extract.c: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/evolution-imap.c: * src/tracker-indexer/modules/evolution-pop.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-module-file.c: Added more variable checking to the tracker_data_metadata_() public API. Now all calls to the tracker_data_metadata_() API take a const argument and are copied, not inherited. This also fixes a bug where we were double freeing a GList. Fixes NB #93960. 2008-12-01 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Bug fix and small improvements to the duration calculation of mp3 files. Fixes NB #93348. 2008-12-01 Ivan Frade * src/trackerd/tracker-keywords.c (tracker_keywords_search) * src/trackerd/tracker-files.c (tracker_files_get_metadata_for_files_in_folder) Using dbus_method_return_error error instead of g_propagate_error. This should prevent timeout returning errors in the DBus API. 2008-12-01 Ivan Frade * src/trackerd/tracker-metadata.c: Some errors were reported using g_error_propagate and not the dbus methods, so it was causing a dbus timeout in the tools. Fixes NB #93935. 2008-12-01 Martyn Russell * src/tracker-indexer/modules/dummy.c: Small code clean up. * src/tracker-indexer/modules/gaim-conversations.c: Used the dummy.c for this module. The indexer logging was complaining about some modular functions not existing. * tests/libtracker-common/tracker-dbus-test.c: * tests/libtracker-common/tracker-type-utils-test.c: Small code clean ups. 2008-12-01 Philip Van Hoof * src/libtracker-common/tracker-hal.c: Fixed a crash when HAL didn't initialize successfully. Fixes NB #93962. 2008-11-28 Martyn Russell * data/modules/files.module: Added "core-dumps" to the list of directories to ignore and "*.rcore.lzo" to the list of files to ignore. 2008-11-27 Philip Van Hoof * src/libtracker-common/tracker-thumbnailer.c: Replaced a non-critical warning with a message 2008-11-27 Martyn Russell * src/libinotify/inotify-handle.c: Disable warning causing breaks in gdb, it makes no difference either way. * src/trackerd/tracker-monitor.c: Don't call g_hash_table_remove (key) when we can use g_hash_table_iter_remove() instead. Also, don't reset the iter making us go round every item again after removing one. This seriously impedes performance. The removal wasn't actually working either. Meaning trackerd was using 100% CPU power in a continous while loop. 2008-11-27 Jürg Billeter * configure.ac: Drop unused GnomeVFS dependency 2008-11-26 Mikael Ottela * data/services/default.metadata: Made DC:Subject and DC:Keywords multivalued. * src/tracker-extract/tracker-xmp.c: Handle multivalued fields correctly and use '|' as separator. * src/libtracker-data/tracker-rdf-query.c: Fixed some bugs introduced by recent changes. * src/tracker-indexer/tracker-metadata-utils.c: Added support for multivalued field extraction using '|' as the separator. 2008-11-26 Martyn Russell * src/trackerd/tracker-cleanup.[ch]: Committed the changes I made to these files. 2008-11-26 Martyn Russell * data/db/sqlite-stored-procs.sql: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-rdf-query.c: * src/trackerd/tracker-processor.c: Updated all queries to use the "AS" keyword for clarity. Now we check the Volumes table for the Enabled value as well as the Services table so we don't show files which are disabled because the memory card isn't mounted. We also now don't delete memory card data in the Services table when we unmount. This work was partly done by Jürg. Fixes NB #92788. 2008-11-25 Martyn Russell * src/libtracker-common/tracker-thumbnailer.c: Set a flag if the prepare function succeeds so we know the service can be contacted. If it can't be contacted for some reason, don't keep trying and waiting for the timeout for every file the indexer sends us. Instead, just return. 2008-11-25 Martyn Russell * src/tracker-applet/tracker-applet.c: Don't output logging with g_print(), indexer status updates were being picked up in ~/.xsession-errors which in turn was pausing the indexing making it take longer than it needs to unnecessarily. 2008-11-25 Martyn Russell * configure.ac: * data/db/sqlite-stored-procs.sql: * data/db/sqlite-tracker.sql: * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-thumbnailer.[ch]: * src/tracker-extract/tracker-albumart.c: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-thumbnailer.[ch]: * src/trackerd/Makefile.am: * src/trackerd/tracker-main.c: * tests/tracker-indexer/Makefile.am: Added code to clean up database volumes which have been disabled for more than 3 days. Moved the thumbnailer code to libtracker-common since it is used by the indexer, the daemon and the extractor processes. This patch was written by Philip and reviewed/updated by Martyn. 2008-11-24 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Requesting thumbnails of album art * src/tracker-indexer/tracker-metadata-utils.c * src/tracker-indexer/tracker-main.c * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/Makefile.am * src/tracker-extract/Makefile.am * thumbnailers/image/Makefile.am * tests/tracker-indexer/Makefile.am * configure.ac * src/tracker-indexer/tracker-thumbnailer.c * src/tracker-indexer/tracker-thumbnailer.h: Cleaning up thumbnails when originals are removed. Refactored the thumbnailing code 2008-11-24 Martyn Russell * src/tracker-indexer/modules/evolution-imap.c: Fixed a typo in the includes. 2008-11-23 Jamie McCracken * data/db/sqlite-fulltext.sql: * data/db/Makefile.am: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: Started integrating FTS into tracker 2008-11-21 Martyn Russell * configure.ac: Small improvement. 2008-11-21 Martyn Russell * src/tracker-indexer/tracker-indexer.c: (tracker_indexer_init): Set the state initially to _STOPPED. The problem was, if the indexer was told to do something other than process files, it was sending the FINISHED signal even though no files had been processed. Setting the state to stopped initially means, the process_func() is only set up if state = 0, for that, it has to NOT be stopped and NOT have other factors like low battery or low disk space. 2008-11-21 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer-helix.c: Fixed the helixbin extractor mime types. 2008-11-21 Carlos Garnacho * src/libtracker-common/tracker-ontology.c (tracker_ontology_get_service_by_mime): Return a const gchar* in all cases. 2008-11-21 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-gstreamer-helix.c: * src/tracker-extract/tracker-extract.h: * src/tracker-extract/tracker-extract-gstreamer.c: Fixed some typos 2008-11-21 Mikael Ottela * configure.ac: Changed helixbin to be included by default. 2008-11-21 Martyn Russell * src/libtracker-common/tracker-ontology.c: Code clean ups, don't unnecessarily cast and coding style. * src/tracker-indexer/modules/Makefile.am: Included new evolution module header files so make distcheck works. * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/evolution-common.[ch]: * src/tracker-indexer/modules/evolution-imap.[ch]: * src/tracker-indexer/modules/evolution-pop.[ch]: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/gaim-conversations.c: Added common.h include and formatting line at the top of these files. * tests/libtracker-common/tracker-ontology-test.c: Fixed several leaks and updated the calls which now return static data so we don't free the result. Also don't free the return from tracker_ontology_get_subcategory_ids() since it is a const array. This was crashing the test cases. 2008-11-21 Mikael Ottela * src/tracker-extract/Makefile.am: * configure.ac: * src/tracker-extract/tracker-extract-gstreamer-helix.c: Added initial Gstreamer Helix Bin (Real Media) extractor implementation. 2008-11-20 Carlos Garnacho * src/libtracker-common/tracker-hal.c (hal_battery_notify): * src/libtracker-data/tracker-data-update.c (tracker_data_update_delete_all_metadata): * src/tracker-indexer/modules/evolution-imap.c (tracker_evolution_imap_file_finalize): Plug some leaks. 2008-11-20 Carlos Garnacho * src/libtracker-common/tracker-ontology.[ch] (tracker_ontology_get_service_by_id) (tracker_ontology_get_service_by_mime): * src/libtracker-data/tracker-data-query.[ch] (tracker_data_query_service_type_by_id): Make them return const gchar*, since the strings are stored in the ontology and guaranteed to be there until it shuts down. * src/libtracker-db/tracker-db-index-manager.c (tracker_db_index_manager_get_index_by_service_id): * src/libtracker-db/tracker-db-manager.c (function_get_service_name): * src/tracker-indexer/tracker-indexer.c (item_remove): * src/tracker-indexer/tracker-metadata-utils.c (metadata_utils_get_embedded) (tracker_metadata_utils_get_text): * src/trackerd/tracker-files.c (tracker_files_get_service_type): * src/trackerd/tracker-metadata.c (tracker_metadata_get): * src/trackerd/tracker-search.c (tracker_search_get_hit_count_all): Adapt to API change. 2008-11-20 Carlos Garnacho * configure.ac: * src/tracker-indexer/modules/gaim-conversations.c: * tests/tracker-indexer/Makefile.am: Remove any references to tracker-module.h 2008-11-20 Carlos Garnacho Make indexer modules API GObject oriented, which allows easier bindings development and more flexible behavior for modules. * src/tracker-indexer/tracker-module-file.[ch]: * src/tracker-indexer/tracker-module-iteratable.[ch]: Definition of abstract base object and interface for modules to implement. * src/tracker-indexer/tracker-indexer-module.[ch]: Build on top of GTypeModule. * src/tracker-indexer/tracker-indexer.c: Modify to use new modules API. * src/tracker-indexer/tracker-module.h: Removed, no longer needed. * src/tracker-indexer/tracker-metadata-utils.[ch]: Switch API to GFile, since modules API now also deals with it. * src/modules/evolution-common.[ch]: * src/modules/evolution-imap.[ch]: * src/modules/evolution-pop.[ch]: * src/modules/evolution.c: Implement new modules API, split POP3/IMAP implementations, and make the module return different TrackerModuleFile objects depending on the parsed file. * src/modules/dummy.c: * src/modules/files.c: * src/modules/applications.c: Implement new modules API. * data/modules/files.c: Specify service type. 2008-11-20 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c: Leave one place for the trailing NULL in the batch and hints arrays so they can behave like GStrv. Also initialize the array and set freed elements to NULL so we don't end up with dangling pointers. 2008-11-20 Ivan Frade * src/libtracker-data/tracker-data-query.[ch] (tracker_data_query_non_embedded_metadata): New method to retrieve non-mebedded metadata of a service. * src/tracker-indexer/tracker-indexer.c: Handled correctly the non-embedded metadata coming from the extractor with default values when we update a file. 2008-11-20 Martyn Russell * src/libtracker-common/tracker-type-utils.[ch]: * src/tracker-extract/tracker-extract.[ch]: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-gstreamer.c: Revert changes that removed "tracker:unknown" when we didn't know the metadata value for some fields. Now we have METADATA_UNKNOWN defined in tracker-extract.h so we can be consistent everywhere with this. Moved tracker_generic_date_to_iso8601() here from tracker-extract.c since it is so common. * src/tracker-extract/tracker-extract-exif.c: Code clean up and remark that this module is not used. * src/tracker-extract/tracker-extract-imagemagick.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-ps.c: * src/tracker-extract/tracker-extract-tiff.c: Code clean up and used the new date function in tracker-type-utils. * src/tracker-extract/tracker-extract-png.c: Fixed a warning and used the new date function in tracker-type-utils. 2008-11-19 Martyn Russell * src/libtracker-data/tracker-data-search.c: * src/tracker-extract/tracker-extract-gstreamer.c: Code clean ups. 2008-11-19 Ivan Frade * src/libtracker-data/tracker-data-query.c (result_set_to_metadata): Reimplemented using GValues. (tracker_data_query_embedded_metadata): Use a stored proc with unions instead three different procedures. * data/db/sqlite-stored-procs.sql: Removed unused procedures. 2008-11-19 Martyn Russell * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-mp3.c: Don't use "tracker:unknown" when we don't know a metadata value, return "". 2008-11-19 Martyn Russell * src/trackerd/tracker-metadata.c: Fixed formatting and removed some unnecessary code. 2008-11-19 Martyn Russell * src/tracker-indexer/tracker-metadata-utils.c: (get_file_thumbnail): Fixed a missing semi colon, spotted by Laurent Aguerreche. 2008-11-18 Mikael Ottela * src/tracker-extract/tracker-xmp.c: Added ISOSpeedRatings to xmp exif namespace. Fixes NB #92708 2008-11-18 Ivan Frade * src/libtracker-data/tracker-data-metadata.[ch] (tracker_data_metadata_foreach_remove): New function. Wrapper for g_hash_table_forearch_remove. * src/tracker-indexer/tracker-indexer.c: Handling correctly the metadata when move a file. Updating only the metadata related with path. Fixes NB #91842 2008-11-18 Martyn Russell * src/tracker-indexer/tracker-metadata-utils.c: Fix the way we check if we should do thumbnailing. Don't explicitly #define HAVE_HILDON_THUMBNAIL now, use the config.h value instead. This was causing a lot of indexer log warnings about not being able to contact the thumbnailer daemon. * src/trackerd/tracker-main.c: Small code cleanups. 2008-11-18 Mikael Ottela * src/tracker-extract/tracker-extract-png.c: Fixed the extractor to check the whole file for text chunks instead of just the header. Fixes NB #90455 2008-11-18 Jürg Billeter * data/db/sqlite-stored-procs.sql: * src/libtracker-data/tracker-data-update.[ch]: * src/tracker-indexer/tracker-indexer.c: Add tracker_data_update_disable_all_volumes function to disable all volumes on startup 2008-11-18 Martyn Russell * src/libtracker-common/tracker-hal.[ch]: Added API to get all * src/tracker-extract/tracker-albumart.c: * src/trackerd/tracker-processor.c: UDIs for removable media and then to get the mount point and mounted state of those UDIs too. Also changed the API to use GList instead of GSList since we want to be consistent. * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: * src/trackerd/tracker-main.c: Added VolumeDisableAll API so the daemon can tell the indexer to disable all volumes in the Volumes table. This is proceded shortly with Enable for volumes which actually exist at the time we start the daemon. 2008-11-18 Jürg Billeter * data/db/sqlite-stored-procs.sql: Add procedures to handle volumes * src/libtracker-data/tracker-data-update.[ch]: * src/tracker-indexer/tracker-indexer.c: Update Volumes table when volume is added or removed, set AuxID in Services table to VolumeID when inserting new entry 2008-11-17 Martyn Russell * src/libtracker-common/tracker-hal.c: Added the UDI to the mount-pointer-added and mount-point-removed signals. * src/trackerd/tracker-processor.c: * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-marshal-main.c: * src/libtracker-common/tracker-marshal.list: Added marshalling for VOID__STRING_STRING function signature. * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: Added function to allow the daemon to tell us when a volume has changed state so we can update the Volume table in the database. * src/trackerd/tracker-main.c: Added volume monitoring here so we can notify the Indexer that it should update the Volumes table in teh database. 2008-11-17 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Also copy in case the album art got requested 2008-11-17 Martyn Russell * configure.ac: Removed Enable warnings|debug statement when configure is finished, they are no longer used. Fixed the checks for HAL and libxml2 to actually error if the user specifically asked to enable them. Also make the HAL error more obvious since it is usually likely the hal-storage package is the one missing. * src/libinotify/inotify-listhash.c: * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-dbus.c: * src/libtracker-common/tracker-nfs-lock.c: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-xesam-query.c: * src/libtracker-db/tracker-db-interface-sqlite.c: * src/libtracker-db/tracker-db-interface.c: * src/libtracker-db/tracker-db-manager.c: * src/tracker-applet/tracker-applet.c: * src/tracker-extract/tracker-albumart.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-preferences/tracker-preferences.c: * src/tracker-search-tool/tracker-search-tool-callbacks.c: * src/tracker-search-tool/tracker-search-tool.c: * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-info.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-services.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-unique.c: * src/trackerd/tracker-search.c: * src/trackerd/tracker-xesam-live-search.c: * utils/qdbm/print-words.c: * utils/qdbm/search-word.c: Fixed all 64bit compilation warnings. 2008-11-14 Martyn Russell * configure.ac: Fixed some broken issues. 2008-11-14 Martyn Russell * src/tracker-extract/tracker-albumart.c: (perhaps_copy_to_local): Renamed the make_directory_with_parents and added a comment detailing why we stole it from GLib. 2008-11-14 Martyn Russell * configure.ac: * docs/manpages/Makefile.am: * src/Makefile.am: * src/tracker-applet/Makefile.am: Fixed the configure script to make certain extensions automatic not required so that package maintainers can specify what they want to include beyond the required extensions we choose. 2008-11-14 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-mp3.c: Stripped filename is used as the default title. Fixes NB #91009. 2008-11-14 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-gstreamer.c: Added a default value for durations. Fixes NB #89160, NB #89757, NB #91621, NB #92319 2008-11-13 Ivan Frade * src/trackerd/tracker-main.c (entries_daemon): Fixed typo in help message for disable-modules option. This fixes bug #560581. 2008-11-13 Martyn Russell * src/libtracker-data/tracker-data-search.c: * src/trackerd/tracker-keywords.c: Don't crash when we pass an empty GStrv to tracker_keywords_search(). 2008-11-13 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Fixed symbol troubles for most recent GLib 2008-11-12 Ivan Frade * src/tracker-extract/tracker-extract-playlist.c: Extractor using totem playlist parser. * src/tracker-extract/tracker-extract-m3u.c: Removed * src/tracker-extract/Makefile.am * configure.ac Added support for playlists using totem-plparser (only counting tracks). Removed the old uncomplete and useless extrator for m3u. 2008-11-11 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Some minor leak and bug fixes to the mp3 extractor. 2008-11-11 Martyn Russell * ALL: Merged libtracker-data branch into TRUNK. Conflicts involved src/trackerd/tracker-search.c with the tracker_search_sql_query() which was changed by Ivan for NB #89965, if this regression still exists, it is my fault. 2008-11-11 Martyn Russell * src/libtracker-data/tracker-data-live-search.h: * src/libtracker-data/tracker-data-metadata.[ch]: * src/libtracker-data/tracker-data-query.[ch]: * src/libtracker-data/tracker-data-schema.h: * src/libtracker-data/tracker-data-update.h: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/evolution.c: Updated tracker_data_metadata_insert_multiple_values() and removed the _multiple_ since it is implied in the _values(). Fixed some coding style issues in the headers. 2008-11-10 Jürg Billeter * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-keywords.c: Move SQL query from trackerd/tracker-keywords to libtracker-data/tracker-data-search 2008-11-10 Jürg Billeter * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-files.c: Move SQL query from trackerd/tracker-files to libtracker-data/tracker-data-search 2008-11-10 Jürg Billeter * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-metadata.c: Move SQL queries from trackerd/tracker-metadata to libtracker-data/tracker-data-search 2008-11-10 Mikael Ottela * src/tracker-extract/tracker-extract-tiff.c: Fixed a bug in array handling of Tiff tags. Fixes NB #91516 and NB #91488 2008-11-10 Martyn Russell * configure.ac: * src/trackerd/tracker-monitor.c: (black_list_check_items_cb): Fixed check for inotify and also fixed build when we don't have it. 2008-11-10 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Function is only available on very recent versions of glib. 2008-11-09 Jamie McCracken * src/tracker-fts/tracker-fts.c: made rank func use meatdata ranking set up default column for storing positions efficiently spacewise * utils/tracker-fts/tracker-fts-test.c: updated example 2008-11-07 Ivan Frade * data/languages/stopwords.en: Removed "help" from the stopwords list for english. 2008-11-07 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_imap_uri): Make sure we decompose the URI following the same procedure than Tracker. 2008-11-07 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.c (tracker_db_set_metadata): Escape the value being inserted, so little Bobby Tables doesn't bite us in the ass. 2008-11-07 Carlos Garnacho * src/libtracker-common/tracker-utils.c (tracker_escape_string): Fix logic, so it actually escapes single quotes... 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-query.h: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: Use more consistent parameter names 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-schema.c: * src/libtracker-data/tracker-data-schema.h: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-search.c: Use tracker_data_schema as function namespace 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-live-search.h: * src/trackerd/tracker-xesam-live-search.c: Rename tracker_data_live_search_get_all_ids to tracker_data_live_search_get_ids 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-live-search.h: * src/trackerd/tracker-xesam-live-search.c: Use tracker_data_live_search as function namespace 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/trackerd/tracker-xesam-manager.c: Rename tracker_db_xesam_delete_handled_events to tracker_data_update_delete_handled_events 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/trackerd/tracker-files.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-xesam-manager.c: Move tracker_db_xesam_delete_handled_events to tracker-data-update 2008-11-06 Jürg Billeter * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-schema.c: * src/libtracker-data/tracker-data-schema.h: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-search.c: Move Schema API to tracker-data-schema.[ch] 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: Revert unintentional renaming of tracker_db_metadata_get_field_* 2008-11-06 Jürg Billeter * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-live-search.c: * src/libtracker-data/tracker-data-live-search.h: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/trackerd/tracker-xesam-live-search.c: Move Live Search API to tracker-data-live-search.[ch] 2008-11-06 Jürg Billeter * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-query.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-search.c: Use tracker_data_query as function namespace 2008-11-06 Philip Van Hoof Patch from Jerry Tan * src/libtracker-common/tracker-os-dependant-unix.c: stdin/stdout is keyword for compile, replace it 2008-11-05 Jürg Billeter * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-query.c: * src/libtracker-data/tracker-data-query.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: Move Query API to tracker-data-query.[ch] 2008-11-05 Jürg Billeter * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-search.c: Use tracker_data_search as function namespace 2008-11-05 Jürg Billeter * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-search.c: * src/libtracker-data/tracker-data-search.h: * src/trackerd/tracker-files.c: Move Search API to tracker-data-search.[ch] 2008-11-05 Jürg Billeter * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-metadata.c: * src/libtracker-data/tracker-data-metadata.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/tracker-indexer-module.c: * src/tracker-indexer/tracker-indexer-module.h: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-metadata-utils.h: * src/tracker-indexer/tracker-module.h: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-search.c: Use tracker_data_manager, tracker_data_metadata, and tracker_data_update as function namespaces 2008-11-05 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Bugfix incase of the empty string being stripped 2008-11-05 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Saw the hope for change become realized and then fixed creating the .mediaartlocal directory for local media art on removable devices 2008-11-05 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.c (tracker_db_create_service): Do not set Enabled=0 in any case, it failed for non local files, and modules can return NULL metadata for any file/directory it doesn't want to be indexed. 2008-11-05 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_imap_uri): Make sure we remove leading '/' in email URIs basename. 2008-11-04 Jürg Billeter * src/libtracker-data/tracker-data-manager.h: Remove declarations for tracker_db_get_file_contents_words and tracker_db_get_indexable_content_words as the functions are never defined 2008-11-04 Jürg Billeter * configure.ac: * src/Makefile.am: * src/libtracker-data/Makefile.am: * src/libtracker-data/tracker-data-manager.c: * src/libtracker-data/tracker-data-manager.h: * src/libtracker-data/tracker-data-metadata.c: * src/libtracker-data/tracker-data-metadata.h: * src/libtracker-data/tracker-data-update.c: * src/libtracker-data/tracker-data-update.h: * src/libtracker-data/tracker-query-tree.c: * src/libtracker-data/tracker-rdf-query.c: * src/libtracker-data/tracker-xesam-query.c: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer-db.h: * src/tracker-indexer/tracker-indexer-module.h: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: * src/tracker-indexer/tracker-metadata-utils.h: * src/tracker-indexer/tracker-metadata.c: * src/tracker-indexer/tracker-metadata.h: * src/tracker-indexer/tracker-module.h: * src/trackerd/Makefile.am: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-db.h: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-query-tree.c: * src/trackerd/tracker-query-tree.h: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-rdf-query.h: * src/trackerd/tracker-search.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-query.c: * src/trackerd/tracker-xesam-query.h: * src/trackerd/tracker-xesam.c: * src/trackerd/tracker-xesam.h: * tests/tracker-indexer/Makefile.am: Add libtracker-data library, move tracker-db, tracker-query-tree, tracker-rdf-query, and tracker-xesam-query from src/trackerd to src/libtracker-data, and move tracker-indexer-db and tracker-metadata from src/tracker-indexer to src/libtracker-data. 2008-11-04 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Fixed comment tags in id3v23 and id3v24. Fixes NB #91655. 2008-11-04 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_mbox_message_id): Return -1 if the header X-Evolution does not exist in the message. (get_mbox_uri) (get_mbox_attachment_uri): Return NULL URIs if it couldn't get the message ID. 2008-11-04 Carlos Garnacho * src/libtracker-common/tracker-hal.c (tracker_hal_finalize): Plug a small leak. 2008-11-04 Carlos Garnacho * src/libtracker-common/tracker-hal.[ch]: Add capability for reading batteries percentage. * src/tracker-indexer/tracker-indexer.c: Stop indexing if battery level is too low (< 0.05 at the moment, but should be user configurable). 2008-11-04 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Added support for non-standard metadata tags that some fluendo plugins are using. Fixes NB #90138 2008-11-04 Ivan Frade * src/trackerd/tracker-search.c (tracker_search_metadata) Implemented this method creating internally and RDF query. Extracted the common code with tracker_search_query to a new function (perform_rdf_query). * src/tracker/tracker-rdf-query.[ch] (tracker_rdf_query_for_attr_value): New helper function to generate the RDF for a pair attribute-value. This fixes NB #89965. 2008-11-03 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Added a default value for Video:PlayCount. 2008-11-03 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-gstreamer.c: Added a default value for Audio:PlayCount for simplifying queries. Fixes NB #89254 2008-11-03 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (process_context_invalidate): Splitted invalidation from destruction. So it's just the child watch handler the one responsible of destroying it. This fixes a potential crash when the child watch is ron on an already destroyed context. (metadata_setup) (metadata_query_file): Just invalidate the metadata context if it couldn't be created, the child watch will send it later to the bin. 2008-11-03 Ivan Frade * src/trackerd/tracker-search.c (tracker_search_query): Fixed how the error message is setted in GError. 2008-11-03 Carlos Garnacho * data/dbus/tracker-indexer.xml: Add "reason" parameter to ::Paused. * src/tracker-indexer/tracker-indexer.c: Add "Low batt" state. Add extra parameter to ::paused and emit it for any state that could be relevant for the daemon. Same for ::continued. * src/trackerd/tracker-daemon.c (indexer_paused_cb): Change status depending on the reason for the indexer to be paused (indexer_continued_cb): And make it continue here. * src/trackerd/tracker-status.[ch]: Add "Disk full" and "Low batt" to TrackerStatus enum. * src/trackerd/tracker-dbus.c: Miscellaneous changes. 2008-11-03 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Fixed a bug that caused unicode encoded id3v23 tags to be corrupt. 2008-10-31 Ivan Frade * src/tracker-applet/tracker-applet.c Added translation domain loading the glade file. Fixes bug #558613 (Gabor Kelemen). 2008-10-30 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Stripping album and artist strings. Code cleanups, added some comments. Support for local album art on removable devices (added it to the heuristic scanner) 2008-10-30 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Support for storing local album art on removable devices 2008-10-29 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-mp3.c: We take embedded album art with no type defition if front cover is not found. 2008-10-29 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Additional genre tags are now returned as text rather than numbers. We no longer mix up artist and the original artist. Fixes NB #91165. 2008-10-29 Ivan Frade * src/tracker/tracker-metadata.c (tracker_metadata_get): Fixed error message. It was printing the wrong variable, causing confusion to the users. Fixes NB#91053. 2008-10-29 Ivan Frade * src/trackerd/tracker-keywords.c (tracker_keywords_add): Check that none of the keywords is an empty string. Fixes bug #402063. 2008-10-29 Ivan Frade * data/services/default.service Removed audio/vnd.rn-realaudio from the [Playlist] mimetypes. This mimetype indicates audio and not playlist. Fixes NB #90876. 2008-10-29 Ivan Frade * src/tracker-indexer/tracker-indexer.c (handle_metadata_add): Check the previous values to dont insert duplicated values. Fixes NB #88048 and fixes bug #402054. 2008-10-27 Mikael Ottela * data/services/image.metadata: * src/tracker-extract/tracker-xmp.c: Added Image:City, Image:Country and Image:Location fields and support for them in the extractors. Fixes NB #90455. 2008-10-27 Martyn Russell Fixes NB #88140. * src/trackerd/tracker-crawler.[ch]: Added a function to be able to request a new directory to be looked at at any stage of the crawler's life. This is so that newly created directories or directories moved into monitored locations are crawled. Before just the directory would be indexed. Now its content is traversed in teh same fashion as all other content. * src/trackerd/tracker-files.c: Small improvement. * src/trackerd/tracker-marshal.list: Changed the move signal so we actually state if the source was monitored or not. This allows the processor to decide if we should try to crawl the target because it is new or if it is a simple move operation in the DB. * src/trackerd/tracker-monitor.c: get_module_name_from_gfile() was incorrectly determining GFile pointers as directories or files. So now we do a stat() when we need to know. * src/trackerd/tracker-processor.c: Add some indication in debugging if the events we receive are for a file or directory. Also call the new function in TrackerCrawler to request traversal of a newly found directory upon monitor events. 2008-10-27 Mikael Ottela * data/services/default.service: * data/services/image.metadata: * src/tracker-extract/tracker-xmp.c: Added Image:Rating field and XMP:XAP:Rating support. Fixes NB #90374. 2008-10-24 Philip Van Hoof * src/trackerd/tracker-search.c: Bugfix in SqlQuery 2008-10-23 Mikael Ottela * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-xmp.c: Adds support to more XMP and EXIF image metadata fields. Fixes NB #90506. 2008-10-23 Philip Van Hoof * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-dbus.h: Fixes for requesting thumbnails 2008-10-23 Carlos Garnacho * src/tracker-indexer/tracker-main.c (initialize_signal_handler): Actually ignore SIGPIPE, since we already handle it where necessary. 2008-10-23 Ivan Frade * data/services/video.metadata: Added new properties for video: LastPlayedFrame, PausePosition, PlayCount and Source. 2008-10-22 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Changes to cope with problems gstreamer has with hardware acceleration. 2008-10-22 Ivan Frade * src/libtracker-db/tracker-db-dbus.c (tracker_dbus_query_result_columns_to_strv): Added support for multiple rows in the result set. It was returning only the first value. This should fix the Metadata.Get method asking for properties with multiple values. * tests/libtracker-db/tracker-db-dbus-test.c Added test for the new cases. 2008-10-22 Martyn Russell * src/libtracker-common/tracker-common.h: Included tracker-hal and tracker-field-data to fix the documentation errors in make distcheck. 2008-10-22 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Cleaned up some more code 2008-10-21 Jamie McCracken * src/tracker-fts/tracker-fts.c: fixed rank function and made it efficient 2008-10-21 Martyn Russell * src/tracker-extract/tracker-albumart.c: Cleaned up the code here. Removed unnecessary memory allocation and code obfuscation. 2008-10-21 Philip Van Hoof * src/tracker-indexer/tracker-metadata-utils.c: Adapted to new D-Bus API for thumbnailing * src/tracker-extract/tracker-albumart.c: Some minor optimizations * src/tracker-extract/tracker-extract.c: Added g_type_init, as GIO is being used for some operations 2008-10-21 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-metadata.c: Add some methods docs. 2008-10-20 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (get_file_content_read_cb): Issue error and quit the channel watch on error, this should fix misterious crashes with i.e. invalid UTF8 coming from the text filters. 2008-10-20 Philip Van Hoof * src/tracker-extract/tracker-albumart.c * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-albumart.h * src/tracker-extract/tracker-extract-gstreamer.c: Album art heuristics 2008-10-20 Carlos Garnacho * src/tracker-indexer/modules/evolution.c: Resort to a copy of the old code to decode time_t, should definitely fix summaries parsing in 64bit platforms... 2008-10-20 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch] (tracker_indexer_process_modules): New public function to specify which modules should the indexer actually use. * src/tracker-indexer/tracker-main.c: Add --modules parameter to specify a closed list of modules, as opposed to --process-all. 2008-10-20 Philip Van Hoof * src/tracker-fts/tracker-fts.c: * utils/tracker-fts/tracker-fts-test.c: Simple rank() impl. without weighting (just counting). It seems the last matching row ain't being counted but I haven't found howcome yet (sqlite is just not calling the functions for this one). 2008-10-19 Jamie McCracken * src/tracker-fts/tracker-fts.c: fixed offsets for multiple word and,or and phrase searches 2008-10-19 Jamie McCracken * utils/tracker-fts/tracker-fts-test.c: * src/tracker-fts/tracker-fts.c: adjusted offsets function to output cached values from position data in index. Output format is now comma separated list of ColumnID, WordPostion... 2008-10-18 Ivan Frade * src/trackerd/tracker-metadata.c: (tracker_metadata_set): Check all metadata before send them to the indexer. This does the operation a little bit more atomic: less chances to find an error during the insertions and end up with only half of the metadata set. 2008-10-17 Ivan Frade * src/tracker-extract/Makefile.am: Added ifdefs to select the extractor modules. The checks were already in place in configure.ac. 2008-10-17 Martyn Russell * configure.ac: * tests/Makefile.am: * tests/tracker-fts/Makefile.am: * tests/tracker-fts/tracker-fts-test.c: * utils/Makefile.am: * utils/tracker-fts/Makefile.am: Moved the tracker-fts-test application to utils/tracker-fts/ since it is not a GLib test. 2008-10-17 Philip Van Hoof * src/tracker-extract/tracker-albumart.c * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/Makefile.am * src/tracker-extract/tracker-extract-gstreamer.c: Handling of albumart in case we don't have GDKPIXBUF (don't handle embedded albumart, for this we would need a pixbuf lib to save the RAW data as a JPEG). 2008-10-15 Philip Van Hoof * src/tracker-extract/tracker-extract-mp3.c * src/tracker-extract/tracker-albumart.c * src/tracker-extract/tracker-albumart.h * src/tracker-extract/Makefile.am * src/tracker-extract/tracker-extract-gstreamer.c: Handling of albumart 2008-10-15 Philip Van Hoof * src/tracker-extract/tracker-albumart.c: Adapted to new spec available at http://live.gnome.org/MediaArtStorageSpec * configure.ac: Downgraded GdkPixbuf requirement from 2.16 to 2.12 2008-10-15 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (process_context_child_watch_cb): Inconditionally destroy here the context, even if it's not the metadata one. Avoids leaks when for some reason the metadata extractor dies immediately. (get_file_thumbnail) (get_file_content_by_filter): Don't destroy the context here. (get_file_thumbnail): Do not send non-utf8 over DBus. (get_file_thumbnail_queue_cb): Plug a leak. (metadata_query_file): Ensure the context is destroyed if any attempt to write fails. (metadata_query_file): Removed unnecessary g_free() 2008-10-14 Jamie McCracken * tests/tracker-fts/tracker-fts-test.c: * src/libtracker-common/tracker-ontology.c * src/libtracker-common/tracker-ontology.h * src/tracker-fts/tracker-fts.c * src/tracker-fts/Makefile.am Updated FTS code with metadata and onto support functions Added category to be stored in index (similar to qdbm) Modified handling of postion data so that all searches uses it Improve speed of generating snippets+offsets using position data 2008-10-14 Martyn Russell * src/trackerd/tracker-monitor.c: Try to improve on the NB#88769 fix I added previously. Now we don't use 2 GHashTables for the black list we use the EventData structure we use for all other event data too. We now emit the correct event on the black list timeout too (which is the last event we got). 2008-10-14 Martyn Russell * data/db/sqlite-stored-procs.sql: Removed the DISTINCT keyword from statements which use a WHERE clause comparing a unique ID. This was adding unnecessary slowness to querying. 2008-10-14 Martyn Russell * src/libinotify/Makefile.am: * src/libinotify/inotify-handle.c: * src/libinotify/inotify-monitor.c: Include , not and removed libinotify/linux-inotify-syscalls.h, this fixes bug #556196 (John Millikin). 2008-10-14 Martyn Russell * data/modules/files.module: Fixed the ignored file patterns. Changed *~* to *~. Patch committed from Tshepang Lekhonkhobe. 2008-10-14 Martyn Russell * TODO: Updated TODO. Patch committed from Tshepang Lekhonkhobe. 2008-10-14 Martyn Russell * README: Updated README. Patch committed from Tshepang Lekhonkhobe. 2008-10-14 Carlos Garnacho * src/libtracker-common/tracker-file-utils.c (path_has_write_access_or_was_created): * src/libtracker-common/tracker-ontology.c (tracker_ontology_get_field_names_registered): * src/tracker-extract/tracker-extract-mp3.c (get_id3v24_tags): Fix compiler warnings. 2008-10-14 Martyn Russell * NEWS: Updated news. Patch committed from Tshepang Lekhonkhobe. 2008-10-13 Martyn Russell * data/db/sqlite-stored-procs.sql: Completely reworked this file and removed about 50% of it. This 50% was unused stored procedures. * src/libtracker-common/tracker-file-utils.c: (tracker_file_get_mime_type): If stat() fails, just make that a normal message for now, not a warning, we should expect it. * src/libtracker-db/tracker-db-interface-sqlite.c: Added a few debug commands to see what is happening. * src/libtracker-db/tracker-db-manager.c: (load_prepared_queries): Improved this function to actually allow for bracketed comments in the .sql files. * src/tracker-indexer/tracker-indexer-db.[ch]: * src/tracker-indexer/tracker-indexer.ch: Added a function to recursively delete a path, this is needed for when a memory card is removed. * src/trackerd/tracker-db.c: Removed the stat() on every file that is returned if we are running a detailed search. This is unnecessary and causes a difference in the results returned if the database is inaccurate (which it shouldn't be). * src/trackerd/tracker-processor.c: (mount_point_removed_cb): When we unmount, add the directory to the deleted queue to be processed by the indexer for now. This needs to be fixed properly at some point (i.e. just disabling the items in the database, awaiting SQLite FTS for that). This fixes NB #87525. 2008-10-13 Carlos Garnacho * src/trackerd/tracker-search.c (search_highlight_terms): Do not leak like if there was no tomorrow, save one unnecessary allocation. (search_get_snippet): Rework code, do not read out of bounds. (tracker_search_get_snippet): Actually highlight the search terms. (search_utf8_strcasestr_array): Pass a const gchar** for search terms. * src/trackerd/tracker-crawler.c (tracker_crawler_finalize): Plug a leak. 2008-10-13 Ivan Frade * python/SearchTool/COPYING * python/nautilus/tracker-tags-tab.py * src/qdbm/depot.[ch] * src/qdbm/myconf.[ch] * src/tracker-extract/tracker-extract-gstreamer.c * src/tracker-search-tool/sexy-icon-entry.[ch] * src/tracker-applet/tracker-applet.c * COPYING Updated Free Software Foundation address. This fixes bug #518265. 2008-10-13 Ivan Frade * docs/manpages/trackerd.1 Fixed typo, this fixes bug #548561. 2008-10-13 Martyn Russell * tracker.spec: Moved this file to data/. 2008-10-13 Martyn Russell * configure.ac: Change the way GdkPixbuf is detected by using "auto". This means it won't stop the build if it doesn't exist unless the user explicitly asks for it with --enable-gdkpixbuf. * data/english/Makefile.am: * data/english/errmsg.txt: Removed data/english, it was completely unused. 2008-10-13 Martyn Russell * configure.ac: * data/Makefile.am: * data/db/Makefile.am: * data/sqlite-cache.sql: * data/sqlite-contents.sql: * data/sqlite-email.sql: * data/sqlite-metadata.sql: * data/sqlite-service-triggers.sql: * data/sqlite-service-types.sql: * data/sqlite-service.sql: * data/sqlite-stored-procs.sql: * data/sqlite-tracker-triggers.sql: * data/sqlite-tracker.sql: * data/sqlite-user-data.sql: * data/sqlite-xesam.sql: Moved all database files to data/db. 2008-10-12 Jamie McCracken * src/tracker-search-tool/tracker-search-tool.h: * src/tracker-search-tool/tracker-search-tool-support.c: * src/tracker-search-tool/tracker-search-tool-callbacks.c: * src/tracker-search-tool/Makefile.am: * src/tracker-search-tool/tracker-search-tool-support.h: * src/tracker-search-tool/tracker-search-tool.c: * src/tracker-search-tool/tracker-search-tool-callbacks.h: Patch from John Millikin Modified search tool to use GIO instead of Gnome VFS 2008-10-10 Martyn Russell * src/libtracker-common/tracker-file-utils.c: (tracker_path_hash_table_filter_duplicates), (tracker_path_list_filter_duplicates): In both these functions strip any trailing G_DIR_SEPARATOR from paths since that is the format we use. Ivan't test case showed that I didn't do this in my reimplementation and also from that I realised the hash table variant wasn't removing the trailing G_DIR_SEPARATOR either. 2008-10-10 Mikael Ottela * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-unique.c: * src/tracker-utils/tracker-info.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-stats.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-status.c: * src/tracker-utils/tracker-services.c: Added locale definitions to all the tracker utils to fix problems with command line arguments containing non-ascii (C) characters. 2008-10-10 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (read_summary): Turns out Evolution always store times with 32bits width regardless of the platform. Switching back so the parser doesn't go astray where time_t is 64bits wide. 2008-10-09 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Fixed conversions between different character encodings in the tags. 2008-10-09 Martyn Russell * src/trackerd/tracker-monitor.c: (libinotify_monitor_directory): Removed the if is_directory check on EVERY file monitor we add since we know we only monitor directories. 2008-10-09 Martyn Russell * src/tracker-extract/Makefile.am: Put all definitions and includes before CFLAGS (like everywhere else). Fix linking order. * src/tracker-extract/tracker-extract.c: Don't call g_strstrip() on NULL values, check the mime type first since it can be NULL. Fixes a warning that was being produced. Also added GOption support so users can do --help to see how to use the extractor from the terminal. 2008-10-09 Martyn Russell * src/tracker-extract/Makefile.am: Don't link with GdkPixbuf unless we have it. * src/tracker-extract/tracker-extract-gstreamer.c: Don't call GdkPixbuf module functions unless we have GdkPixbuf. 2008-10-09 Carlos Garnacho * src/trackerd/tracker-db.c (tracker_db_search_text) (tracker_db_get_metadata_field): * src/trackerd/tracker-metadata.c (tracker_metadata_get): * src/trackerd/tracker-query-tree.c (tracker_query_tree_finalize) (tracker_query_tree_get_hits) (tracker_query_tree_get_hit_counts): Plug leaks everywhere. 2008-10-09 Carlos Garnacho * src/trackerd/tracker-monitor.c (get_module_name_from_gfile): Plug a leak. 2008-10-09 Carlos Garnacho * src/trackerd/tracker-search.c (tracker_search_get_hit_count) (tracker_search_get_hit_count_all): Do not free memory owned by TrackerOntology. 2008-10-09 Philip Van Hoof * src/trackerd/tracker-search.c: Timeout based SQLite connection for the direct-sql SqlQuery feature. The connection stays open for 10 minutes before being recyled 2008-10-09 Philip Van Hoof * src/libtracker-db/tracker-db-interface-sqlite.c * src/libtracker-db/tracker-db-interface-sqlite.h * src/libtracker-db/tracker-db-manager.c * src/libtracker-db/tracker-db-manager.h * src/trackerd/tracker-main.c * src/tracker-indexer/tracker-main.c: utilizing SQLite's shared cache feature in the daemon. 2008-10-09 Mikael Ottela * src/tracker-extract/Makefile.am: Fixed a gdk_pixbuf related typo in the makefile. 2008-10-09 Martyn Russell * src/trackerd/tracker-monitor.c: Added an event cache so we don't send 2 events for a cp command to the indexer - this is an efficiency improvement. Now we just send CREATED to the indexer instead of CREATED & UPDATED. This fixes NB #88769. 2008-10-09 Philip Van Hoof * configure.ac * src/libtracker-db/tracker-db-interface-sqlite.c * src/libtracker-db/tracker-db-interface-sqlite.h * src/libtracker-db/tracker-db-manager.c * src/libtracker-db/tracker-db-manager.h * src/trackerd/tracker-search.c * src/trackerd/tracker-search.h * data/dbus/tracker-search.xml: Added a method to access the database using normal SQL queries. Please do not use this API in applications unless you understand the consequences of the DB schema changing at unannounced moments. 2008-10-08 Ivan Frade * docs/reference/tracker-indexer/adding-categories-and-properties.sgml Added ShowServiceFiles to the documentation. Set this variable is essential to see the category files in search results. 2008-10-08 Ivan Frade * src/libtracker-common/tracker-ontology.[ch] (tracker_ontology_get_subcategory_ids) New method to obtain all the subcategory ids of a service type. The returned array contains the id of the searched service type as well. * src/trackerd/tracker-db.c (tracker_db_create_array_of_services): Use the new tracker-ontology method instead of hardcoded arrays. (tracker_db_search_text): Use tracker_db_create_array_of_services * tests/libtracker-common/tracker-ontology-test.c: Test for the new functionality 2008-10-08 Carlos Garnacho * docs/reference/tracker-indexer/writing-an-indexer-plugin.sgml: Rediscovering the wonders of git-add. 2008-10-08 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-config.[ch]: Added more functions to be able to more easily manipulate the lists we store in the configuration. Also make it possible to save the config. * src/libtracker-common/tracker-configuration.[ch]: Removed in favour of tracker-config. * src/libtracker-common/tracker-file-utils.c: Completely reworked tracker_path_list_filter_duplicates() so it works similarly to the hash table function. Also removed some of the debugging here and casting which was unnecessary. * src/libtracker-common/tracker-language.[ch]: Added functions needed by tracker-preferences to get all languages and codes for stemmers. * src/tracker-preferences/Makefile.am: Reworked the Makefile to be inline with others we have. Fixed the linking order. * src/tracker-preferences/tracker-preferences-main.c: * src/tracker-preferences/tracker-preferences.c: Completely reworked the source here to use TrackerConfig instead of TrackerConfiguration. 2008-10-08 Ivan Frade * data/services/default.service: Added ShowServiceFiles property to get playlists as results of text search. * src/tracker-search-tool/tracker-search-tool.c: Added Playlists to the categories list, so it shows the number of results on the left panel. 2008-10-08 Carlos Garnacho * src/libtracker-common/tracker-file-utils.c (tracker_file_get_mime_type): do not unref a possibly NULL GFileInfo. 2008-10-08 Mikael Ottela * data/services/image.metadata: Changed some field types for images to ones that make more sense. 2008-10-08 Carlos Garnacho * docs/reference/tracker-indexer/writing-an-indexer-plugin.sgml: * docs/reference/tracker-indexer/tracker-indexer-docs.sgml: * docs/reference/tracker-indexer/Makefile.am: Add an initial draft on how to develop indexer modules. 2008-10-08 Carlos Garnacho * src/tracker-extract/tracker-extract.c (print_file_metadata) (process_input_cb) (main): Make tracker-extract process inmediately and exit if path/mimetype are passed through argv. It will be useful for testing purposes. 2008-10-08 Carlos Garnacho * docs/reference/libtracker-common/libtracker-common.types: Forgot to add this, now the GObject scanner is compiled correctly. * docs/reference/libtracker-common/Makefile.am: Add -DTRACKER_COMPILATION to build things. 2008-10-07 Carlos Garnacho * src/libtracker-common/tracker-common.h: Make sure we include glib.h. Noticed by Roberto Majadas 2008-10-07 Carlos Garnacho * src/trackerd/tracker-db.c (tracker_db_create_array_of_services): Don't be naughty and overwrite memory we don't own. 2008-10-07 Martyn Russell * src/tracker-applet/Makefile.am: Added -DTRACKER_COMPILATION to fix the build. 2008-10-07 Ivan Frade Added initial support for playlists. The playlist files are now in a "Playlists" category, but only (and partially) m3u files provide some metadata. * src/trackerd/tracker-db.c (tracker_db_create_array_of_services): Added Playlist as subcategory if Files * src/tracker-extract/tracker-extract-m3u.c * src/tracker-extract/Makefile.am: New extractor for m3u files. * data/services/playlist.metadata * data/services/default.service * data/services/Makefile.am: New category and properties for Playlists. 2008-10-07 Carlos Garnacho * configure.ac: * data/Makefile.am: * data/tracker-indexer-module-1.0.pc.in: New file. All-in-one pkg-config file for developing tracker-indexer standalone modules. 2008-10-07 Carlos Garnacho * src/tracker-indexer/Makefile.am: Split the relevant parts of tracker-indexer into libtracker-indexer.so, make tracker-indexer use it. * src/tracker-indexer/tracker-metadata.h: * src/tracker-indexer/tracker-module.h: Fix includes so it doesn't give problems when compiling modules out of tree. 2008-10-07 Carlos Garnacho * src/libtracker-common/tracker-parser.[ch]: Do not expose the TrackerParser struct in the header, it was pulling pango.h unnecessarily. 2008-10-07 Carlos Garnacho * src/libtracker-common/Makefile.am: Install relevant headers so they're available for public use. 2008-10-07 Carlos Garnacho * src/libtracker-common/tracker-common.h: New file. Do not allow compiling unless TRACKER_ENABLE_INTERNALS or TRACKER_COMPILATION is defined. * src/libtracker-common/*.h: Do not allow including anything but libtracker-common/tracker-common.h outside of tracker. * */Makefile.am: define TRACKER_COMPILATION. 2008-10-06 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (extract_message_text): How about not breaking build? 2008-10-06 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (extract_message_text): Also check the mime part doesn't contain raw/binary data before processing it as text. 2008-10-06 Martyn Russell * docs/reference/tracker-indexer/Makefile.am: Fixed a build issue. 2008-10-06 Martyn Russell * docs/reference/tracker-indexer/Makefile.am: * docs/reference/tracker-indexer/adding-categories-and-properties.sgml: * docs/reference/tracker-indexer/tracker-indexer-docs.sgml: * docs/reference/tracker-indexer/writing-an-extractor.sgml: Added Ivan's live.gnome.org documentation so it is available in the reference documentation. 2008-10-06 Martyn Russell * docs/design/Makefile.am: Added tracker-indexer.dia to illustrate the design of the indexer. 2008-10-06 Ivan Frade * src/tracker-extract/dummy.c: Dummy extractor to use as example in the documentation. 2008-10-04 Ivan Frade * src/tracker-utils/Makefile.am * src/tracker-utils/tracker-services.c * docs/manpages/tracker-services.1: Added new tracker-services tool to ask the daemon available services types and properties. Updated the man page. 2008-10-03 Ivan Frade * docs/manpages/tracker-extract.1 * docs/manpages/tracker-files.1 * docs/manpages/tracker-meta-folder.1 * docs/manpages/tracker-query.1 * docs/manpages/tracker-search-tool.1 * docs/manpages/tracker-search.1 * docs/manpages/tracker-services.1 * docs/manpages/tracker-stats.1 * docs/manpages/tracker-tag.1 * docs/manpages/tracker-thumbnailer.1 * docs/manpages/tracker.cfg.5 * docs/manpages/trackerd.1: Updated map pages * docs/manpages/Makefile.am * docs/manpages/tracker-info.1 * docs/manpages/tracker-unique.1: New man pages for the new utils * docs/manpages/tracker-services.7: Moved to tracker-services.1 * src/libtracker-common/tracker-config.c: Updated path for indexer modules in the option message. 2008-10-03 Mikael Ottela * src/tracker-extract/Makefile.am: Fixed building with GdkPixbuf. 2008-10-03 Carlos Garnacho * src/libtracker-common/tracker-hal.c: * src/libtracker-common/tracker-field.c: Add some docs. * docs/reference/libtracker-common/libtracker-common-sections.txt: Make gtk-doc interpret GObjects as such. Finish correctly the "SECTION" tag so gtk-doc also dumps output for TrackerField and TrackerFieldData. * docs/reference/libtracker-common/libtracker-common-docs.sgml: Add the sections for TrackerField and TrackerFieldData. * docs/reference/libtracker-common/Makefile.am: Fixes to compile the docs scanner. 2008-10-03 Martyn Russell * configure.ac: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-albumart.[ch]: * src/tracker-extract/tracker-extract-mp3.c: Don't require GdkPixbuf for MP3 album art extraction. Instead make it optionally disabled for the Maemo platform while we wait for the latest GdkPixbuf to be available. 2008-10-03 Martyn Russell * docs/reference/libtracker-common/libtracker-common-sections.txt: Change the order of the functions so all the new/free/init/shutdown functions are at the top. * src/libtracker-common/tracker-hal.h: Don't define the TrackerHal object differently depending on if we HAVE_HAL. This was causing an error in the documentation building. 2008-10-03 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (extract_message_text): Just try to convert if part contents don't validate as utf8. 2008-10-03 Martyn Russell * configure.ac: * docs/reference/Makefile.am: * docs/reference/libtracker-common/Makefile.am: * docs/reference/libtracker-common/libtracker-common-docs.sgml: * docs/reference/tracker-indexer/Makefile.am: * docs/reference/tracker-indexer/tracker-indexer-docs.sgml: * docs/reference/tracker-indexer/tracker-indexer-sections.txt: Added new documentation module for tracker-indexer module creation. 2008-10-03 Martyn Russell * configure.ac: * docs/design/Makefile.am: * docs/manpages/Makefile.am: * docs/reference/libtracker-common/Makefile.am: Added missing Makefile.am files. 2008-10-03 Mikael Ottela * configure.ac: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract-gstreamer.c: Added extraction of embedded album art to gstreamer based extractor. 2008-10-02 Mikael Ottela * configure.ac: * src/tracker-extract/tracker-albumart.c: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-albumart.h: * src/tracker-extract/Makefile.am: Added extraction of embedded album art to mp3. The implementatio is based on the current draft of the album art spec. 2008-10-02 Martyn Russell * Makefile.am: Fixed make distcheck for the documentation addition. 2008-10-02 Martyn Russell * configure.ac: Added version information and new documentation Makefiles. * docs/Makefile.am: * docs/reference/COPYING: * docs/reference/Makefile.am: * docs/reference/README: * docs/reference/libtracker-common/libtracker-common-docs.sgml: * docs/reference/libtracker-common/libtracker-common-sections.txt: Added for initial libtracker-common documentation. * src/libtracker-common/tracker-config.[ch]: Removed unused function declaration. * src/tracker-applet/tracker-applet.c: * src/tracker-indexer/tracker-main.c: * src/tracker-search-tool/tracker-search-tool.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-main.c: Fixed VERSION to be PACKAGE_VERSION. 2008-10-02 Martyn Russell * configure.ac: * docs/Makefile.am: * docs/tracker-applet.1: * docs/tracker-extract.1: * docs/tracker-files.1: * docs/tracker-meta-folder.1: * docs/tracker-preferences.1: * docs/tracker-query.1: * docs/tracker-search-tool.1: * docs/tracker-search.1: * docs/tracker-services.7: * docs/tracker-stats.1: * docs/tracker-status.1: * docs/tracker-tag.1: * docs/tracker-thumbnailer.1: * docs/tracker.cfg.5: * docs/trackerd.1: Moved all manpages to docs/manpages and moved all architecture docs to docs/design. 2008-10-02 Martyn Russell * docs/trackerd.dia: * docs/trackerd.png: Added to illustrate the architectural design of the daemon. 2008-10-02 Martyn Russell * src/tracker-extract/Makefile.am: Fix the linking order here. * src/trackerd/tracker-monitor.c: (libinotify_event_check_timeout_cb), (libinotify_monitor_event_cb): Don't use IN_MOVE_SELF for the ITEM_DELETED event. This meant that when we get this convenience event from inotify, we were signalling a delete event (which is wrong since we support proper move events now) and delete file changes are signalled to the indexer BEFORE all other events. So the indexer would get DELETE followed by MOVE and not find the source to MOVE in the database. 2008-10-01 Carlos Garnacho Handle properly multipart messages in Evolution's IMAP. * src/tracker-indexer/modules/evolution.c (get_message_encoding): Renamed to get_object_encoding(), since it will also be used for IMAP message parts. (get_text_for_mbox): Update caller. (extract_message_text) (get_text_for_imap): Use GMime to parse individual messages, and iterate through mail parts to extract the contained text. 2008-10-01 Ivan Frade * src/libtracker-db/tracker-db-manager.c: (db_interface_get_xesam) (db_interface_get_common) Scan the services directory to load the service and metadata descriptions, instead of the previous hardcoded list. 2008-10-01 Mikael Ottela * data/dbus/tracker-metadata.xml: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-metadata.h: Added GetUniqueValuesWithCountAndSum back to the API. * src/tracker-utils/tracker-unique.c: * src/libtracker/tracker.c: * src/libtracker/tracker.h: GetUniqueValuesWithCountAndSum mapped to the library. 2008-10-01 Martyn Russell * src/tracker-indexer/modules/applications.c: Added some debugging to know why some .desktop files are not indexed because the module returns no metadata. * src/tracker-indexer/modules/files.c: Don't check files for to see if they should be excluded in this module - the daemon currently does this. This can still be enabled with a #define because this is problematic for standalone testing of the indexer with the -p switch. * src/tracker-indexer/tracker-indexer.c: Improve the debugging so it doesn't look like we delete items in the database which should be indexed. Instead explain there is no metadata so we are removing the item from the database. 2008-10-01 Ivan Frade * src/libtracker/tracker.[ch]: (tracker_metadata_get_all) Mapped new method in the DBus API in the library * src/tracker-utils/tracker-info.c * src/tracker-utils/Makefile.am: New program (tracker-info) to ask all available metadata of a certain file. 2008-09-30 Mikael Ottela * src/libtracker-db/tracker-db-manager.c: Fixed a bug that forced reindex at every startup. 2008-09-30 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-crawler.h: * src/trackerd/tracker-processor.c: Make sure we reset the boolean we used to know if we have already iterated the paths, recurse_paths and special_paths lists when we _start(). The API was improved and a new function added to clear the special_paths() list. 2008-09-30 Martyn Russell * src/trackerd/tracker-crawler.c: Improve the crawler by adding a "special_paths" category used for legacy config paths and for mmc paths which are not in the module config. Also, removed some code duplication. 2008-09-29 Ivan Frade * src/trackerd/tracker-db.[ch]: Removing unused functions static functions: (compress_string) (db_save_full_text) (update_metadata_index) (get_backup_id) (backup_non_embedded_metadata) (backup_delete_non_embedded_metadata_value) (backup_delete_non_embedded_metadata) (remove_value) (db_create_event) public functions: (this functionality is now in the indexer) (tracker_db_metadata_set_single) (tracker_db_metadata_set) (tracker_db_metadata_delete_value) (tracker_db_metadata_delete) (tracker_db_service_create) (tracker_db_metadata_get_types) 2008-09-29 Ivan Frade * data/dbus/tracker-metadata.xml * src/trackerd/tracker-metadata.[ch]: New GetAll method in the DBus API to obtain all metadata available for a URI. * src/trackerd/tracker-db.[ch] (tracker_db_metadata_get_all): New function with the neccesary code to retrieve all metadata of a file from the DB. (tracker_db_metadata_get_types): Renamed parameter class to klass to avoid possible conflicts with C++. * data/sqlite-store-procs.sql: New GetAllMetadata stored proc. 2008-09-29 Mikael Ottela * src/libtracker-db/tracker-db-dbus.[ch]: Added functions to handle multi-valued fields. Different values are separated by '|' * src/trackerd/tracker-search.c: * src/trackerd/tracker-rdf-query.c: Changed rdf-query to support multi-valued fields. * tests/libtracker-db/tracker-db-dbus-test.c: Added test cases. 2008-09-29 Ivan Frade * src/libtracker-db/tracker-db-manager.[ch]: Added new TRACKER_DB_FOR_VIRTUAL_SERVICES. Will be used in the user.db implementation. * src/trackerd/tracker-db.[ch] (tracker_db_file_get_id): Removed TrackerDBInterface from method signature. Now it chooses internally the DB connection using the service type. * src/trackerd/tracker-files.c * src/trackerd/tracker-keywords.c * src/trackerd/tracker-metadata.c * src/trackerd/tracker-search.c: Updated to the new API. 2008-09-26 Martyn Russell * Merge indexer-split branch. 2008-09-26 Martyn Russell * Pre-merge with indexer-split marker. 2008-09-26 Martyn Russell * src/libtracker-common/tracker-config.c: (config_load_int), (config_load_boolean), (config_load_string): Don't use g_warning() when we can't find an old config option, instead just print a normal message. * Makefile.am: * configure.ac: * data/Makefile.am: * data/dbus/Makefile.am: * data/icons/16x16/Makefile.am: * data/icons/22x22/Makefile.am: * data/icons/24x24/Makefile.am: * data/icons/32x32/Makefile.am: * data/icons/48x48/Makefile.am: * data/icons/Makefile.am: * data/icons/scalable/Makefile.am: * data/languages/Makefile.am: * data/modules/Makefile.am: * data/services/Makefile.am: * docs/Makefile.am: * filters/application/Makefile.am: * filters/text/Makefile.am: * python/Makefile.am: * python/deskbar-handler/Makefile.am: * src/Makefile.am: * src/libinotify/Makefile.am: * src/libstemmer/Makefile.am: * src/libtracker-common/Makefile.am: * src/libtracker-db/Makefile.am: * src/libtracker-gtk/Makefile.am: * src/libtracker/Makefile.am: * src/qdbm/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-indexer/tracker-indexer.c: * src/tracker-preferences/Makefile.am: * src/tracker-search-tool/Makefile.am: * src/tracker-thumbnailer/Makefile.am: * src/tracker-utils/Makefile.am: * src/trackerd/Makefile.am: * tests/tracker-indexer/Makefile.am: * tests/trackerd/Makefile.am: * thumbnailers/application/Makefile.am: * thumbnailers/image/Makefile.am: * utils/qdbm/Makefile.am: Fixed 'make check' and 'make distcheck' 2008-09-25 Martyn Russell * Makefile.am: Added $(DESTDIR) to the install hooks since it is not applied to the hooks. Thanks for the input here from Michael Biebl. 2008-09-25 Martyn Russell * Makefile.am: * configure.ac: Added a message about the file removal of old data and binary files from older Tracker projects after the initial configure script has run. 2008-09-25 Ivan Frade * src/tracker-indexer/tracker-indexer.c (index_metadata_item): The score must be positive when we are adding words to the index. 2008-09-25 Ivan Frade * src/trackerd/tracker-db.c (tracker_db_create_array_of_services): Added missing "Applications" category. We were filtering all application results in the daemon. 2008-09-25 Martyn Russell * Makefile.am: Improve this so we don't use all-local and instead use install-exec-hook and install-data-hook. * src/libtracker-db/tracker-db-manager.c: Added functions to check database versions to know if we should reindex or not. 2008-09-25 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (process_file): Don't give up on the whole file if the URI can't be extracted for any contained item. 2008-09-25 Carlos Garnacho * src/tracker-indexer/module/evolution.c (tracker_module_file_get_data) (tracker_module_file_iter_contents): Get the Message UID before reading metadata, since we'll need it for tracker_module_file_get_uri(). (get_metadata_for_imap): Remove UID parsing from here. 2008-09-25 Carlos Garnacho Do not break on 64-bit platforms. Based on a patch by Laurent Aguerreche * src/tracker-indexer/modules/evolution.c (read_summary): time_t will have different width in other platforms. (read_summary_header): Add comments to skipped summary elements. 2008-09-25 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (tracker_db_index_open): Be more graceful when the index is already open. * src/tracker-indexer/tracker-indexer.c (check_started): Reopen the indexes if needed. (handle_metadata_add) (handle_metadata_remove): Check that the indexer is running and fine. (tracker_indexer_get_running): Check also for the "stopped" flag. * src/tracker-indexer/tracker-metadata.c (tracker_metadata_insert): Plug a potential leak. 2008-09-25 Martyn Russell * Makefile.am: * data/services/Makefile.am: Added install hooks to clean up old locations for binaries from TRUNK. This way when replacing TRUNK with indexer-split, people shouldn't get run the wrong binaries if they are still in their $prefix. 2008-09-23 Ivan Frade * src/trackerd/tracker-db.c (tracker_db_create_array_of_services): Added missing "Files" category. The queries were returning less results than expected due to the lack of this category. 2008-09-21 Martyn Russell * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract.c: * src/tracker-indexer/tracker-main.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-thumbnailer/tracker-thumbnailer.c: * src/trackerd/tracker-main.c: Use G_OS_WIN32 instead of OS_WIN32. 2008-09-21 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_message_encoding): Remove debug g_print() 2008-09-21 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_message_encoding) (get_text_for_mbox): Try to convert message contents to UTF8 based on the charset specified by the Content-Type header. 2008-09-21 Carlos Garnacho * src/libtracker-common/tracker-service.c (service_finalize): Plug a leak. 2008-09-21 Carlos Garnacho * data/services/file.metadata: Added missing description for File:Language. 2008-09-21 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (item_create_or_update) (item_delete): Show item uri instead of file path in debug messages. 2008-09-21 Carlos Garnacho * src/tracker-indexer/tracker-metadata.c (tracker_metadata_insert): Provide a more verbose error if some field name isn't defined in the ontology. 2008-09-20 Martyn Russell *.[ch]: Tabbify code. 2008-09-20 Martyn Russell *.[ch]: Removed all trailing whitespace. 2008-09-20 Ivan Frade * tests/tracker-indexer/Makefile.am: Revert previous change. Using symbolic links instead of BUILD_SOURCES var. 2008-09-19 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Call service_def 'service' and field_def 'field'. 2008-09-19 Martyn Russell * src/trackerd/tracker-processor.c: Reduce the size of the list of files we send to the indexer down to 1000 from 5000. DBus isn't supposed to be optimized for > 4kb chunks. * src/tracker-indexer/tracker-indexer.c: Make sure we remove all entries in the hash table we use for mtime cache on parent directories when we have finished indexing. Use Quarks to know what the current module is instead of strdup() every time we process a file. Actually free the TrackerMetadata on move events. * src/tracker-indexer/tracker-metadata-utils.c: (get_file_content): Don't write until the end of the buf, use a length, we know it and it should be faster if the GString function doesn't need to calculate the length too.k 2008-09-17 Ivan Frade * tests/tracker-indexer/Makefile.am: Using BUILD_SOURCES automake's var to fix the build. 2008-09-17 Martyn Russell * tests/tracker-indexer/Makefile.am: Tried fixing the ln -s generated files hack which breaks the build right now. 2008-09-17 Martyn Russell * src/libtracker-common/tracker-file-utils.c: (tracker_file_get_mime_type), (path_has_write_access): Fixed GFileInfo memory leaks. * src/libtracker-common/tracker-ontology.c: (tracker_ontology_get_field_by_id): Fixed GList memory leak from g_hash_table_get_values() call. * src/libtracker-common/tracker-parser.c: (analyze_text), (tracker_parser_text_to_string), (tracker_parser_text): Make sure we check the text string is not just an empty string. Also, don't call strlen twice in some cases. * src/tracker-indexer/tracker-indexer-db.c: (tracker_db_check_service), For some reason, the mtime comes back as a string, even though it is supposed to be an integer. So we call tracker_string_to_date() on it now. (result_set_to_metadata), In this function, don't strdup() a strdup() only to free the first one. Only free if it is unused and make use of the already strdup'd string. * src/tracker-indexer/tracker-indexer.c: (item_create_or_update): Fixed a memory leak here were the TrackerMetadata was not freed when updating an indexed item. * src/tracker-indexer/tracker-metadata-utils.c: Some code clean ups. 2008-09-16 Martyn Russell * src/libtracker-common/tracker-ontology.c: (tracker_ontology_get_field_names_registered): Removed the NULL check since it is valid to pass NULL. Thanks to Ivan's tests to pointing this out before building :) * configure.ac: * tests/Makefile.am: * tests/tracker-indexer/Makefile.am: Fixed tests for make distcheck. 2008-09-16 Martyn Russell * src/libtracker-db/tracker-db-interface.c: (_tracker_db_result_set_set_value): Always set GValue to the the column type before setting the GValue. This saves us checking if it was set in the first place and sometimes the column type set initially is not the same as the type we get returned. Which is what was causing the G_VALUE_HOLDS_INT (value) assertion (when we were trying to set a double for GetMetadataIDValueNumeric. * src/tracker-indexer/tracker-indexer-module.c: (tracker_indexer_module_file_get_uri): Don't spam warnings about not being able to get the basename and/or dirname. This happens all the time for the email module because we don't process ALL files, only summary files for IMAP (for example). This means that the module may return NULL for basename and dirname. We shouldn't error the situation as a result. * src/tracker-indexer/tracker-indexer.c: (item_delete), (should_index_file), (process_file): Don't try to check if we should index email files, instead just do it right now. Before it would spam critical warnings about files not existing in the database. Also, make the item_delete() debug more consistent with other functions and clearer too. 2008-09-16 Martyn Russell * configure.ac: * tests/tracker-indexer/Makefile.am: Fixed the test cases for the indexer since pvanhoof's merge requires tracker-dbus. 2008-09-16 Martyn Russell * src/tracker-indexer/tracker-metadata-utils.c: (get_file_thumbnail): Mereged pvanhoof's last commit. 2008-09-16 Martyn Russell * src/tracker-extract/tracker-extract-png.c: Reworked the code here and fixed adding NULL values with sensible keys to the hash table. * src/tracker-extract/tracker-extract.c: (tracker_get_file_metadata): Check the key and value separately so we don't just get one warning for either not knowing which is NULL. * src/tracker-indexer/tracker-indexer-module.c: (tracker_indexer_module_file_get_uri): Removed the '\n' from the debug statement. * src/tracker-indexer/tracker-metadata-utils.c: Fixed a nasty crash where the watch is not removed when cleaning up IO channels. Grouped the functions more logically so it is clearer what this module does by function names. * src/tracker-indexer/tracker-metadata-utils.h: Removed unused function signatures and structs/enums. 2008-09-16 Philip Van Hoof * src/tracker-indexer/tracker-metadata-utils.c: * src/tracker-indexer/tracker-dbus.[ch]: * src/tracker-indexer/Makefile.am: * tests/tracker-indexer/Makefile.am: Support for thumbnailing using org.freedeskop.thumbnailer.Generic (DBus names might change as the specification changes: http://live.gnome.org/ThumbnailerSpec) 2008-09-15 Martyn Russell * src/libtracker-common/tracker-config.[ch]: Support legacy options SkipMountPoints, IndexEvolutionEmail and IndexThunderbirdEmail. 2008-09-15 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (tracker_metadata_read) (tracker_text_read): Don't remove the idle func when we're done reading metadata for one item, it can be reused for the next one. 2008-09-15 Martyn Russell * src/libtracker-common/tracker-file-utils.c: (tracker_env_check_xdg_dirs): Don't warn when the XDG_DATA_HOME environment variable is empty (and NULL). * src/libtracker-common/tracker-ontology.c: (tracker_ontology_service_add): Don't add service names and field names in to the hash table collated, they can be looked up then. * src/tracker-indexer/tracker-metadata-utils.c: Re-enable thumbnail extraction now we know it isn't slowing us down in the indexer. 2008-09-15 Martyn Russell * src/libtracker-common/tracker-ontology.[ch]: Removed the service_directory_table GHashTable and the service_directory_list GList because they are unused and the API to add/remove and get paths is unused too. Fixed a memory leak in tracker_ontology_get_field_names_registered(). Don't collate strings before looking up the service names and field names. This operation is done a lot and was created/freeing memory each time we lookup. This is not necessary. 2008-09-15 Martyn Russell * src/libtracker-common/tracker-ontology.[ch]: * src/libtracker-db/tracker-db-manager.c: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-xesam-live-search.c: * tests/libtracker-common/tracker-ontology-test.c: More ontology API improvements and added parameter checks for a lot of public functions which were missing them. 2008-09-15 Martyn Russell * src/libtracker-common/tracker-ontology.c: * src/libtracker-common/tracker-ontology.h: * src/libtracker-db/tracker-db-index-manager.c: * src/libtracker-db/tracker-db-manager.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-query-tree.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-search.c: * tests/libtracker-common/tracker-ontology-test.c: More ontology API improvements. 2008-09-15 Martyn Russell * src/libtracker-common/tracker-ontology.[ch]: * src/libtracker-db/tracker-db-index-manager.c: * src/libtracker-db/tracker-db-manager.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-query-tree.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-search.c: * tests/libtracker-common/tracker-ontology-test.c: * tests/libtracker-db/Makefile.am: Renamed a lot of the tracker-ontology API to make it clearer and more consistent. * src/tracker-extract/tracker-extract.c: * tests/tracker-fts/tracker-fts-test.c: Fixed compiler warnings. * utils/qdbm/Makefile.am: Fixed linker errors. 2008-09-12 Martyn Russell * src/tracker-extract/tracker-extract.c: Disabled debugging by default. 2008-09-12 Martyn Russell * src/tracker-extract/tracker-extract-mp3.c: Clean up the code. 2008-09-11 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: Added mime-type audio/x-mp3 to the list of supported ones. Corrected some metadata field names. * src/tracker-extract/tracker-extract-jpeg.c: Call to xmp routines fixed. * src/libtracker-common/tracker-type-utils.c: Removed an unused variable. * src/tracker-indexer/tracker-indexer-db.c: Added a check that the date given by extractor is valid. 2008-09-11 Mikael Ottela * src/libtracker-db/tracker-db-interface.c: Fixed a crash in result sets. 2008-09-11 Martyn Russell * src/tracker-extract/tracker-extract.c: (debug_impl), (print_meta_table_data): Fixed printing to stdout for the indexer to use the returned data. 2008-09-11 Martyn Russell * src/tracker-extract/tracker-extract.c: (tracker_get_file_metadata): Debugging improvements. 2008-09-11 Martyn Russell * src/tracker-extract/tracker-extract.c: Added debugging which can be turned off using the #define DISABLE_DEBUGGING at the top. 2008-09-11 Martyn Russell * src/tracker-extract/tracker-extract-imagemagick.c: * src/tracker-extract/tracker-extract-mplayer.c: * src/tracker-extract/tracker-extract-msoffice.c: * src/tracker-extract/tracker-extract-oasis.c: * src/tracker-extract/tracker-extract-pdf.c: * src/tracker-extract/tracker-extract-totem.c: * src/tracker-extract/tracker-extract.[ch]: Code clean up and use libtracker-common for functions instead of duplicating them in these files. 2008-09-11 Martyn Russell * src/tracker-extract/tracker-extract.c: Use the libtracker-common spawn function instead of duplicating the code here. Also the libtracker-common function has a lot better error handling. 2008-09-11 Martyn Russell * src/tracker-extract/Makefile.am: Cleaned up Makefile. * src/tracker-extract/tracker-extract.c: Use functions from libtracker-common instead of duplicating our own here. * src/tracker-indexer/tracker-metadata-utils.c: (process_watch_cb): Print the g_strerror() for the error code we get back from an exiting process from the extractor. 2008-09-11 Martyn Russell * src/libtracker-common/tracker-os-dependant-unix.c: Cleaned up * src/libtracker-common/tracker-os-dependant.h: functions. Added parameter checks for all public functions. Made setrlimit function public since it is used in a lot of places. * src/libtracker-common/tracker-os-dependant-win.c: Updated this * src/libtracker-common/tracker-os-dependant.h: module and wrote functions that were missing. * src/tracker-extract/tracker-extract.c: * src/tracker-extract/tracker-extract-abw.c: * src/tracker-extract/tracker-extract-gstreamer.c: * src/tracker-extract/tracker-extract-html.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-ps.c: Cleaned up the code here. Made a lot of things static which shouldn't be public. * src/tracker-extract/tracker-extract-jpeg.c: Fixed some memory leaks here in the "fix" functions. * src/tracker-indexer/tracker-main.c: Temporarily removed the SIGPIPE handling here so we know about it instead of just ignore it. * src/tracker-indexer/tracker-metadata-utils.c: Improved the debugging and cleaned up the code. 2008-09-11 Mikael Ottela * src/tracker-indexer/tracker-metadata-utils.c: Fixed a date metadata bug. 2008-09-11 Martyn Russell * src/tracker-indexer/tracker-indexer.c: (process_file): Add some compiler hints to optimize the code here a little. * src/tracker-indexer/tracker-metadata-utils.c: (tracker_metadata_utils_get_text), (tracker_metadata_utils_get_thumbnail): Disable thumbnail retrieval until it is faster. 2008-09-10 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: (tracker_env_check_xdg_dirs): Added this function to make sure we have write access to XDG_DATA_HOME. On the Maemo platform, this is /usr/share, on Ubuntu this is $HOME/.local/share. We default to the later in cases where we don't have write access and can't create the XDG_DATA_HOME location. 2008-09-10 Mikael Ottela * src/trackerd/tracker-rdf-query.c: Fixed some problems with OR operator in RDF queries. 2008-09-09 Martyn Russell * src/tracker-indexer/tracker-indexer-db.c: (tracker_db_move_service): Switch the to and from parameters round so the move statement works. * src/tracker-indexer/tracker-indexer.c: Now use the PathInfo struct for move events and also the event queue instead of dealing with them specifically there and then. Now rename or move events on files work. 2008-09-09 Martyn Russell * src/libtracker-db/tracker-db-index.c: Cleaned up the code. * src/tracker-indexer/tracker-indexer.c: When finishing do 2 things. First make sure we flush BEFORE we unset the flag to say we are indexing. This way the flush function doesn't just return. Also when finished, we now close the index. This means that the daemon can use the new index when it reopens it after indexing. 2008-09-09 Mikael Ottela * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract-gstreamer.c: The audio extractors now check that a minimum amount of information (title, artist, album, genre) has been found and if not, "tracker:unknown" value is used for these crucial fields. This change can be considered a hack and should be reverted when tracker supports finding unexisting metadata. 2008-09-09 Martyn Russell * src/libtracker-db/tracker-db-interface.c: * src/tracker-indexer/tracker-indexer-db.c: Some small code clean ups. * src/tracker-indexer/tracker-indexer.c: Better error handling for the move dbus function. 2008-09-09 Martyn Russell * src/libtracker-common/tracker-file-utils.c: (tracker_file_get_mime_type): Improve the error message. * src/tracker-indexer/modules/files.c: Small clean up. * src/trackerd/tracker-monitor.c: Fixed the signal emission so the file and other file are the right way round for one of the MOVE events. This is probably why renaming a file was not working before. 2008-09-08 Mikael Ottela * src/tracker-extract/tracker-extract-png.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-tiff.c: Changed image extractors to take native image information have higher priority than EXIF/XMP (for example for width & height) 2008-09-08 Mikael Ottela * src/tracker-indexer/tracker-indexer-db.c: * src/trackerd/tracker-db.c: * src/libtracker-common/tracker-type-utils.c: * src/libtracker-common/tracker-type-utils.h: Fixed problems with date handling in metadata. 2008-09-08 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Implemented a cache that we use to know if a directory mtime has changed to know if we should go into it to be reindexed. We still mtime check each file in that directory, but we don't even try to index files for a directory where the mtime is the same. * src/tracker-indexer/tracker-module.h: Cleaned up header. 2008-09-05 Martyn Russell * configure.ac: * src/Makefile.am: Make Jamie's new tracker-fts/ directory disabled by default. Enabled with the --enable-sqlite-fts configure option. This breaks the build right now that's why it is disabled while it is under development. Also fixed make distcheck failures (tests still fail for some things). * src/libtracker-db/Makefile.am: Link with -lz so build doesn't fail. * tests/Makefile.am: Clean ups. * src/libtracker-db/tracker-db-index.c: (tracker_db_index_flush): Fixed build warnings. * tests/tracker-fts/Makefile.am: Fixed missing header file. 2008-09-05 Martyn Russell * src/libstemmer/*: Moved all source files into this directory, there is no need to have them all in separate directories. Make the library generated a shared library. * src/libtracker-common/Makefile.am: * src/libtracker-db/Makefile.am: Made libtracker-common and libtracker-db shared libraries. * src/libtracker-common/tracker-language.c: Fixed include paths. 2008-09-05 Mikael Ottela * src/libtracker/tracker.h: * src/libtracker/tracker.c: * src/tracker-utils/tracker-unique.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-metadata.h: * data/dbus/tracker-metadata.xml: Added GetUniqueValueWithCount to metadata dbus. It is similar to previous GetUniqueValues, except if requested an additional count of items is returned. 2008-09-04 Martyn Russell * data/dbus/tracker-daemon.xml: * src/tracker-applet/Makefile.am: * src/tracker-applet/tracker-applet-marshallers.[ch]: * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-daemon.c: Include the elapsed time in seconds in the index-progress signal. * src/tracker-applet/tracker-applet.c: Refactored the code a little and improved the status tooltip to include estimated time and elapsed time. * data/dbus/tracker-daemon.xml: * src/trackerd/tracker-daemon.c: Changed the signal name 'state-change' to 'service-statistics-updated' so it is clearer what it means. * src/trackerd/tracker-processor.[ch]: Added an API to get last elapsed time sent to us from the indexer. Fixed a bug where we were using our private copy of the items done/remaining in signal emissions but not updating them first in the "finished" signal from the indexer. The "index-finished" signal is now emitted. Before it wasn't at all so the applet was left looming in a wrong state. 2008-09-04 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Fixed the process idle handler so that when we are finished processing we set the ->in_process to FALSE (was TRUE). In check_started() we don't check the ->idle_id, we instead rely on the state being correct. Renamed the state functions so they are obviously internal and don't use global name space and fixed one of them that wasn't static. 2008-09-04 Martyn Russell * src/tracker-indexer/tracker-metadata-utils.c: (call_text_filter), (get_file_in_locale), (get_file_content): Split the get_file_content() up into a few smaller functions. Also check the WHOLE string for UTF-8 compliance instead of JUST when we reach the maximum indexable allowance. Plus don't free buf which is a stack allocated buffer. Also made it possible to try and convert from locale to UTF-8 with a #define at the top of the file. Trying this worked for some files and not for others. A lot of files were just dropped because the last character was something weird. I thought it would be better to index as much content as possible, so for now this is disabled so we index up to the last valid UTF-8 character. 2008-09-03 Martyn Russell * src/tracker-indexer/tracker-metadata-utils.c: (get_file_content), (tracker_metadata_utils_get_text), (tracker_metadata_utils_get_thumbnail): Improved the get_file_content() function to check for '\n' in the first 64Kb buffer and if it doesn't exist we don't index the file. Also, check for UTF-8 validity so we don't stop on exactly 'x' bytes but where the last valid character is. 2008-09-03 Philip Van Hoof * ChangeLog: * src/trackerd/tracker-processor.c: Reverted revision 2159 2008-08-29 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (process_func) (tracker_indexer_check_state): If for some reason the indexer is stopped and started again somewhere inside process_func(), the indexer would end up with the current idle function "detached" but still running, and a new one. So, if we're inside process_func, we won't remove the idle function immediately, instead we'll wait and make the idle func return FALSE if the indexer should still be paused. 2008-08-29 Ivan Frade * src/tracker-indexer/tracker-indexer.c * src/trackerd/tracker-daemon.c * src/trackerd/tracker-files.c * src/trackerd/tracker-keywords.c * src/trackerd/tracker-metadata.c Use context instead of FALSE as second parameter for tracker_dbus_async_return_if_fail . This fixes crashes in trackerd when the assertions failed. 2008-08-29 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (tracker_db_index_flush): Do not use GHashTableIter API here, we can't avoid for sure having other portions of the code try to insert data to the index cache while it's flushing, and performance here is largely bound to QDBM, so it won't be that noticeable anyways. 2008-08-29 Carlos Garnacho * src/tracker-indexer/tracker-main.c (initialize_signal_handler): Ignore SIGPIPE, so we can handle it ourselves. * src/tracker-indexer/tracker-metadata-utils.c: It's possible that the indexer is trying to write to the metadata extractor before it realizes it has quit/crashed. Handle errors writing to a broken pipe and respawn the metadata process context in that case. 2008-08-28 Ivan Frade * src/tracker-thumbnailer/tracker-thumbnailer.c: Splitted the code in functions. Fixed some memory leaks. Fixed crash with incorrect parameters 2008-08-28 Philip Van Hoof * src/tracker-indexer/tracker-metadata-utils.c * src/tracker-indexer/tracker-metadata-utils.h * src/tracker-indexer/Makefile.am * tests/tracker-indexer/Makefile.am * configure.ac: Use Hildon's thumbnailer if available. Similar things should be done for other thumbnailers too. 2008-08-28 Carlos Garnacho * tests/tracker-indexer/tracker-metadata-utils-test.c: Remove tests related to metadata merging, this leaves the file mostly empty, but would be useful to keep it around when some other tests to tracker-indexer are added. 2008-08-28 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (lists_equal) (metadata_action_item_new) (calculate_merge_action) (add_deleted_items) (tracker_metadata_utils_calculate_merge) (tracker_metadata_utils_action_item_free): Removed functions, they weren't used anywhere. 2008-08-28 Carlos Garnacho * src/tracker-thumbnailer/tracker-thumbnailer.c: Use GChecksum instead of shipped MD5 implementation. * src/tracker-thumbnailer/Makefile.am: * src/tracker-thumbnailer/md5.[ch]: Removed MD5 implementation, no longer necessary. 2008-08-28 Carlos Garnacho * data/sqlite-stored-procs.sql: Use '#' to begin comments. * src/libtracker-db/tracker-db-manager.c (load_prepared_queries): Skip lines that begin with '#'. 2008-08-28 Carlos Garnacho * src/tracker-thumbnailer/Makefile.am: Install thumbnailer in libexec. * src/tracker-indexer/Makefile.am: * tests/tracker-indexer/Makefile.am: define LIBEXECDIR * src/tracker-indexer/tracker-metadata-utils.c (tracker_metadata_query_file) (tracker_metadata_utils_get_thumbnail): Use LIBEXECDIR to locate both tracker-extract and tracker-thumbnailer. 2008-08-28 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (create_update_item): Avoid potential double frees. 2008-08-28 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (tracker_metadata_watch_cb): Rename to process_watch_cb() and make generic to all spawned processes, so we don't leave defunct processes all around. 2008-08-27 Ivan Frade * src/libtracker-common/tracker-ontology.c: (tracker_ontology_get_registered_field_types): Removed wrong g_critical, the categories can have "empty" parent. 2008-08-27 Ivan Frade * data/services/default.service * data/sqlite-service-types.sql * data/sqlite-stored-procs.sql * data/sqlite-xesam.sql: Added new field to service type description called "PropertyPrefix", so we can specify that "Document" properties are "Doc:xxx" * src/libtracker-common/tracker-service.[ch] * src/libtracker-db/tracker-db-manager.c: Code to handle the new property. * src/libtracker-common/tracker-ontology.[ch] (tracker_ontology_get_registered_field_types): Implemented properly so now it return the property of the service type and his parent. This fixes the GetRegisteredTypes method in the API. * tests/libtracker-common/tracker-ontology-test.c: Updated tests. 2008-08-27 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.[ch] (tracker_metadata_utils_get_thumbnail): Added back thumbnails creation. (tracker_metadata_utils_get_data): Call it from here. 2008-08-27 Mikael Ottela * src/trackerd/tracker-rdf-query.c: Fixed a crash. Added additional '%' to sql like statements because vsprintf strips some at execute_query level. 2008-08-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (tracker_indexer_check_state): Actually check the TRACKER_INDEXER_STATE_STOPPED flag... 2008-08-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Add new TRACKER_INDEXER_STATE_STOPPED flag. (check_started) (check_stopped): Use that flag. (tracker_indexer_init): Call directly tracker_indexer_check_state() to setup the idle functions. 2008-08-27 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (tracker_db_index_flush): Protect agains reentrancy, return the number of actually flushed items. Also, fail when adding if the cache is being flushed. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_set_state_flags) (tracker_indexer_unset_state_flags) (tracker_indexer_get_state_flags): There are several reasons why the indexer would want to stop, and not all of them are relevant outside TrackerIndexer. This internal API will stop the indexer if any of the relevant flags is set. (tracker_indexer_[gs]et_running): Use internally the TRACKER_INDEXER_STATE_PAUSED flag. (check_disk_space_cb): Use internally the TRACKER_INDEXER_STATE_DISK_FULL flag. (flush_data): Set the TRACKER_INDEXER_STATE_FLUSHING flag when flushing, so the indexing is temporarily stopped. 2008-08-27 Ivan Frade * data/sqlite-stored-procs.sql * src/libtracker-common/tracker-ontology.[ch] * src/tracker-indexer/tracker-indexer-db.[ch] * src/tracker-indexer/tracker-indexer.c Added metadata updating when the file is updated. Remove the old embedded metadata and set the new values. Remove only the embedded to keep the tags and other user/application metadata. 2008-08-27 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (tracker_metadata_read) (tracker_metadata_query_file): Handle again metadata_context being possibly invalidated during reading. (call_text_filter): Fix compiler warning. 2008-08-27 Ivan Frade * src/libtracker-common/tracker-field.c * tests/libtracker-common/tracker-field-test.c * tests/libtracker-common/Makefile.am: Fixed detail in enum definition and added testing for enum->string function. 2008-08-27 Philip Van Hoof * src/trackerd/tracker-daemon.c: Fixed a memory problem allocating 0 bytes, found using valgrind 2008-08-26 Jamie McCracken * src/libtracker-common/tracker-parser.c * src/libtracker-common/tracker-parser.h Made new API for tracker-parser more compatible with sqlite FTS3. * tracker-fts * tracker-fts/tracker-fts.c * tracker-fts/tracker-fts-hash.c * tracker-fts/Makefile.am * tracker-fts/tracker-fts.h * tracker-fts/tracker-fts-hash.h Created forked version of sqlite fts3 module called tracker-fts Integrated our parser and tweaked it to work fully with FTS3 api * tests/Makefile.am * configure.ac * src/Makefile.am * tests/tracker-fts * tests/tracker-fts/tracker-fts-test.c * tests/tracker-fts/Makefile.am Added test files for tracker-fts module 2008-08-26 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (get_file_content): Don't allocate in the stack so much memory, even more when it's going to be copied around. 2008-08-26 Carlos Garnacho * src/Makefile.am: * src/libinotify/Makefile.am: * tests/common/Makefile.am: * tests/common/tracker-test-helpers.c: * tests/libtracker-common/Makefile.am: * tests/libtracker-db/Makefile.am: Fix distcheck, to some extent. 2008-08-26 Philip Van Hoof * src/tracker-indexer/tracker-main.c: raised the "wait for more" timeout to 5 minutes. The indexer is harmless for the system's resources while waiting. VS. stopping and starting the indexer often isn't harmless for the system's resources. 2008-08-26 Philip Van Hoof * src/trackerd/tracker-processor.c: a patch fix for the processor. It seems that a timeout that happens after the indexer has shut down calls its callback. That callback sets the status back to indexing. When Martyn is back from holiday he should take a look at this. 2008-08-26 Philip Van Hoof * src/trackerd/tracker-daemon.c: Changed the way we emit the stats-changed signal. Fixes a crash. 2008-08-26 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c * src/libtracker-db/tracker-db-index.h * src/libtracker-db/tracker-db-index.c: Making flushing the index more responsive 2008-08-26 Philip Van Hoof * src/libtracker-db/tracker-db-index.c: removed a mutex. The API of tracker-db-index.h is never used by more than one thread. Therefore can't there be a need for a mutex. If we do need a mutex, then just reverting this wont suffice: changes that will happen after this commit will require using a recursive mutex instead. 2008-08-26 Philip Van Hoof * src/trackerd/tracker-daemon.c * src/trackerd/tracker-marshal.list * data/dbus/tracker-daemon.xml: Added a stats-changed signal 2008-08-26 Carlos Garnacho * tests/tracker-indexer/Makefile.am: Added LIBDIR define for tracker-metadata-utils.c 2008-08-26 Carlos Garnacho * src/tracker-indexer/modules/files.c (tracker_metadata_call_text_filter) (get_file_content): Moved to tracker-metadata-utils.c (tracker_module_file_get_text): Use these new functions. * src/tracker-indexer/tracker-metadata-utils.[ch]: Refactor MetadataContext so it can also spawn external text extractors. (tracker_metadata_utils_get_text): New helper function. 2008-08-25 Ivan Frade * src/tracker-indexer/tracker-indexer-db.c * src/tracker-indexer/tracker-indexer.c: Using the new method also here to obtain path and name also here. 2008-08-25 Ivan Frade * src/libtracker-common/tracker-file-utils.[ch] (tracker_file_get_path_and_name): New function to get the path and name of an uri. It removes some duplicate code and uses g_file to parse the path, so we can fix "x//y" in uris. * src/trackerd/tracker-db.c * src/trackerd/tracker-files.c: Using the new method, instead of the old code. * tests/libtracker-common/tracker-file-utils-test.c: Fixed minor things in previous tests and added test for the new method. 2008-08-25 Mikael Ottela * src/tracker-extract/tracker-extract-gstreamer.c: Gstreamer extractor extracts now also images. 2008-08-25 Carlos Garnacho * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract-ps.c: Fix up symbol not found that prevented the PS module to be loaded. * src/tracker-extract/tracker-extract.c (initialize_extractors): Provide a better error message if a module can't be loaded. 2008-08-22 Martyn Russell * src/trackerd/tracker-monitor.c: Handle situations where the source or target are not monitored and emit the appropriate signals up the stack. * src/trackerd/tracker-processor.c: Check the source AND the target to see if they should be ignored or not when we get MOVE monitor events. If both are ignored, we do nothing, if source is ignored we create the new file in the database, if target is ignored we delete the old file in the database, if both are valid we do a simple move in the database. I say simple, it isn't that simple. :) 2008-08-22 Carlos Garnacho * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-dbus.c: Fix marshaller for Finished signal. 2008-08-22 Carlos Garnacho * data/dbus/tracker-indexer.xml: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-xesam-manager.c: Added a missing argument to the Finished DBus signal definition in the indexer. Also updated all callers. 2008-08-22 Mikael Ottela * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-db.c: Fixes to index and string type metadata handling in queries. 2008-08-22 Carlos Garnacho * src/tracker-indexer/tracker-metadata-utils.c (tracker_metadata_read): Strip metadata separators when reading from the external extractor. 2008-08-22 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.c (tracker_indexer_module_file_get_uri): Reduce the warning to a debug message, it's still nice to have that info, but it isn't crucial either. 2008-08-22 Martyn Russell * src/libtracker-db/tracker-db-index.c: (tracker_db_index_open), (tracker_db_index_flush): Fixed the g_return_val_if_fail() check for the priv->index already being set in tracker_db_index_open(). Initially it is not set at all so the index was not being opened. Also, if we can't open the index, we now debug specifically if it was because the file doesn't exist yet or if it wasn't closed properly. 2008-08-21 Martyn Russell * data/services/default.service: Added inode/; to the prefixes to recognise folders like $HOME/.xchat. * src/libtracker-common/tracker-ontology.[ch]: * tests/libtracker-common/tracker-ontology-test.c: Added in tracker_ontology_get_db_by_service_type() a check for NULL service strings. * src/libtracker-common/tracker-parser.c: Cleaned up the code, fixed a nasty double free that was introduced recently. Do proper type checking for TrackerLanguage. Make sure we reference the language and unreference it when creating/freeing the parser. * src/libtracker-common/tracker-service.[ch]: (tracker_db_type_get_type): Added missing enumerations: unknown, files and xesam. * src/libtracker-db/tracker-db-manager.[ch]: Added TRACKER_DB_UNKNOWN type. * src/trackerd/tracker-db.[ch]: Make use of GStaticPrivate for the local data. Also instead of using priv->index, we now send the services we are interested in to TrackerQueryTree and it finds out what indexes it needs to use instead. Added a function to return a gint GArray for the service IDs needed for TrackerQueryTree too. * src/trackerd/tracker-query-tree.[ch]: Removed properties which shouldn't change after creation (like language and config). Removed the TrackerDBIndex parameter for _new() and just use the GArray for services now. We get the TrackerDBIndex from each service instead. * src/trackerd/tracker-search.[ch]: Use tracker_db_create_array_of_services() instead of duplicating the code here. Also try to get suggestions from the email index db if there are none from the files index db. * src/libtracker-db/tracker-db-index-manager.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-processor.c: Now we have all email words indexed to their own email-index.db file instead of filling up one big index.db file. This was causing serious performance issues. 2008-08-21 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (tracker_db_index_open): Do not reopen/leak/corrupt data if there's already an index opened. (tracker_db_index_flush): Do not open index if it was closed, there could be good reasons for it. * src/tracker-indexer/tracker-indexer.[ch] (schedule_flush): Do not attempt to flush if the indexer is paused. (stop_transaction): No point in committing if there wasn't a transaction. (tracker_indexer_set_running): Refactored the flush out, calling it wherever it's needed. Also stop scheduled flushes so they aren't called while the indexer is paused. (check_disk_space_cb) (tracker_indexer_pause) (pause_for_duration_cb) (tracker_indexer_pause_for_duration) (tracker_indexer_continue): Update callers. 2008-08-21 Philip Van Hoof * src/libtracker-db/tracker-db-index.c: Regression fix on "There's no need to flush the word index on pausing the indexer.": the current transaction was not always being committed anymore 2008-08-21 Mikael Ottela * src/libtracker-db/tracker-db-interface.c: Bug fix. Added checking that row exists before reading for result sets. 2008-08-21 Carlos Garnacho * tests/tracker-indexer/Makefile.am: No need to include libxdgmime.la anymore. 2008-08-21 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_text_for_mbox) (get_text_for_imap) (tracker_module_file_get_text): New functions, get the emails body through the get_text() module function, so it's saved in the contents DB. 2008-08-21 Ivan Frade * src/tracker-indexer/tracker-metadata-utils.[ch] (tracker_metadata_utils_calculate_merge): Addded funciont. Given two set of metadata (old and new) calculate a list of actions to do in the DB (insert, delete or update).. * tests/tracker-indexer * tests/tracker-indexer/tracker-metadata-utils-test.c * tests/tracker-indexer/Makefile.am * tests/Makefile.am * configure.ac: Added unit tests to the previous function 2008-08-21 Ivan Frade * data/service/image.metadata: Set the correct data types for the metadata. 2008-08-21 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (create_update_item) (should_index_file) (tracker_indexer_file_move): Check return value of tracker_indexer_module_file_get_service_type(), since it could return NULL for files the module doesn't handle. 2008-08-21 Philip Van Hoof * src/tracker-indexer/tracker-main.c: Run forever feature for the indexer, for debugging purposes 2008-08-21 Martyn Russell * src/libtracker-common/tracker-ontology.c: (ontology_hash_lookup_by_str), (ontology_hash_lookup_by_id): Check the string is != NULL before using it in g_hash_table_lookup() which uses strcmp for string comparisons. 2008-08-21 Martyn Russell * src/libtracker-common/tracker-file-utils.c: Removed is_text_file() which is no longer used. * src/libtracker-common/tracker-parser.[ch]: Fixed the formatting and use gchar instead of char in new code. Removed unnecessary spacing and a LOT of trailing whitespace. Fixed the header file too. * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/Makefile.am: * src/trackerd/Makefile.am: * tests/libtracker-common/Makefile.am: * tests/libtracker-db/Makefile.am: Removed references to libxdgmime.la which was breaking the build. 2008-08-20 Jamie McCracken * Added new API for tracker-parser so that it will be compatible with sqlite FTS3. 2008-08-20 Carlos Garnacho * src/libtracker-common/tracker-file-utils.c (tracker_file_get_mime_type): Replace mimetype checking with GIO. * configure.in: * src/Makefile.am: * src/xdgmime/*: Nuked the local xdgmime copy. 2008-08-20 Martyn Russell * src/tracker-applet/tracker-applet.c: * src/tracker-extract/tracker-extract-tiff.c: * src/tracker-indexer/tracker-indexer-db.c: * src/trackerd/tracker-xesam.c: * tests/libtracker-common/tracker-type-utils-test.c: * utils/qdbm/search-word.c: More uninitialised variable crapness fixed to make it the all new hotness. 2008-08-20 Martyn Russell * src/libtracker-common/tracker-type-utils.[ch]: Renamed tracker_boolean_as_text_to_number() to tracker_string_boolean_to_string_gint(). * src/libtracker-db/tracker-db-manager.c: Make use of tracker_string_boolean_to_string_gint() instead of using code which does the exact same thing. Also fixed 3 places which use uninitalised integers as part of their calculations. * src/tracker-indexer/modules/evolution.c: (get_mbox_recipient_list): When getting the recipients list, don't potentially add an uninitialised string. * src/trackerd/tracker-db.c: (get_backup_id): Don't reuse id here, call it something else and make this code work. * src/trackerd/tracker-keywords.c: (tracker_keywords_search): Don't check if "values" is != NULL since it is a local variable now not a gchar** like it used to be. * src/trackerd/tracker-metadata.c: (tracker_metadata_get): If there is no result set, set the values to NULL so we don't check for NULL against an uninitalised variable. * src/trackerd/tracker-monitor.c: (tracker_monitor_add): Fixed warning about unused variable when using libinotify. * src/trackerd/tracker-processor.c: (item_queue_processed_cb): Fixed warning about queue being uninitialised in NOP switch statement condition. * src/trackerd/tracker-search.c: (search_highlight_terms): If there are no search terms, don't rely on uninitialised "s" variable being set. * src/trackerd/tracker-xesam-query.c: (build_sql): Set value to NULL to initialise it and use tracker_string_boolean_to_string_gint() instead of duplicating the code to do the same thing. * src/trackerd/tracker-xesam.c: (tracker_xesam_get_state): Don't try to free random memory and make sure we NULL terminate the GStrv that is returned. 2008-08-20 Martyn Russell * src/libtracker-common/tracker-dbus.c: (tracker_dbus_request_failed): If error is already set and there is no format, we do not set str which is used in a print statement and then freed. This could lead to serious stack corruption. * src/libtracker-db/tracker-db-index-manager.c: (has_tmp_merge_files): Don't print a warning with an uninitialised path string. * src/libtracker-db/tracker-db-index.c: (tracker_db_index_get_size): Actually return the size instead of returning an uninitialised size variable. * src/libtracker-db/tracker-db-interface-sqlite.c: (create_result_set_from_stmt): Set the busy count instead of incrementing random memory. * src/libtracker-db/tracker-db-manager.c: (load_service_file_xesam): If we can't map data id to a TrackerFieldType, don't just use an uninitialised integer. Now we use -1 and display a warning. 2008-08-20 Martyn Russell * src/libtracker-db/tracker-db-dbus.c: (tracker_dbus_query_result_to_hash_table): Fixed a bug where field_count was redefined in a deeper code block overwriting the number of columns previously determined by an unintialised variable. 2008-08-20 Martyn Russell * configure.ac: Clean up and remove the --enable-debug-tools. The -g option is automatic with autotools and most packaging systems (like debian's) have an option to strip binaries of debug symbols. In the worst case we can always use CFLAGS="..." before running ./autogen.sh anyway. * src/trackerd/tracker-monitor.c: Fixed a nasty NULL deference spotted by Ross Burton. 2008-08-20 Carlos Garnacho * tracker.pc.in: * libtracker-gtk.pc.in: Moved also to data/ * configure.ac: * Makefile.am: * data/Makefile.am: Modify corresponding autofoo. 2008-08-20 Carlos Garnacho * src/trackerd/Makefile.am: * src/tracker-indexer/Makefile.am: Install both trackerd and tracker-indexer in $(prefix)/libexec, since they're not supposed to be executed by the user. * data/dbus/Makefile.am: * data/dbus/org.freedesktop.Tracker.service.in: * data/dbus/org.freedesktop.Tracker.Indexer.service.in: Look up the executables in $(libexecdir) * Makefile.am: * data/Makefile.am: * configure.ac: * trackerd.desktop.in.in: Moved trackerd.desktop.in.in to data/. Also correct path to trackerd. 2008-08-19 Philip Van Hoof * src/trackerd/tracker-keywords.c: Removing keywords was not passing service_type correctly 2008-08-19 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/tracker-indexer.h * src/libtracker-db/tracker-db-index.c: There's no need to flush the word index on pausing the indexer. 2008-08-20 Martyn Russell * src/libtracker-db/tracker-db-index.c: Don't try to open the index and flush if the cache size is < 1. This should fix a warning we were seeing about not being able to open the cache on startup and shutdown. * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-monitor.c: Add support for libinotify to know about MOVE events. * src/trackerd/tracker-processor.[ch]: Added a move queue and API to use the new indexer move API when we know about files/directories that move. 2008-08-19 Ivan Frade * src/trackerd/tracker-files.c (tracker_files_get_metadata_for_files_in_folder): Added NULL element at the end of the fields array. This fixes a segfault using the method. 2008-08-19 Martyn Russell * configure.ac: * src/Makefile.am: * src/libinotify/.cvsignore: * src/libinotify/Makefile.am: * src/libinotify/inotify-handle.c: * src/libinotify/inotify-handle.h: * src/libinotify/inotify-listhash.c: * src/libinotify/inotify-listhash.h: * src/libinotify/inotify-log.h: * src/libinotify/inotify-monitor.c: * src/libinotify/inotify-monitor.h: * src/libinotify/libinotify.h: * src/libinotify/linux-inotify-syscalls.h: * src/trackerd/Makefile.am: * src/trackerd/tracker-monitor.c: Add the initial inotify replacement work while glib upstream is fixed. This is to support MOVE events for files and directories. This is not yet working. * tests/common/Makefile.am: Fixed some small errors. 2008-08-19 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_check_service): Modify to also get mtime. * src/tracker-indexer/tracker-indexer.c: Update all callers. (should_index_file) (process_file): Check mtimes before reindexing a file. 2008-08-19 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.c: Restore accidental revert of fix in r2093. 2008-08-19 Carlos Garnacho * src/tracker-extract/Makefile.am: Install tracker-extract in $prefix/libexec. * src/tracker-indexer/Makefile.am: specify tracker-extract path. * src/tracker-indexer/tracker-metadata-utils.c (create_metadata_context): Use defined tracker-extract path. 2008-08-19 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Emit the status signal every 10 seconds, as flushes now can be more sparse. * src/libtracker-db/tracker-db-index.c (tracker_db_index_flush): Do not try to flush if there aren't items in the cache. 2008-08-19 Martyn Russell * src/libtracker-common/tracker-file-utils.c: (tracker_path_list_filter_duplicates): Don't append a trailing G_DIR_SEPARATOR_S when we return the list here. This standard is not used in the rest of Tracker and strcmp() was failing to notice ignored paths when checking against the config. * src/libtracker-common/tracker-type-utils.[ch]: * src/libtracker-db/tracker-db-manager.c: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-metadata-utils.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-xesam-query.c: * tests/libtracker-common/tracker-type-utils-test.c: Changed all _{uint|int|long}_to_string() functions to rename them to _{guint|gint|glong}_to_string, to remain consistent with other functions. Added tracker_gslist_copy_with_string_data() to copy a list of strings. Also, changed many functions that return if an input parameter is NULL to actually return the proper data type if plausible since sometimes you would want to return an empty string list from NULL (for example). * src/trackerd/tracker-crawler.c: Make sure each directory is checked against the NoWatchDirectoryRoots config option and that each directory prefixed with "." is checked against the config WatchDirectoryRoots and CrawlDirectoryRoots options to know if we should NOT ignore those locations (by default they are). The crawler was also very slow (taking ~68 seconds to crawl my 130k files, so the throttle was decreased from 100 usecs to 25 usecs with the same CPU utilisation making the crawl take ~12 seconds instead). * src/trackerd/tracker-processor.c: Make sure we check the NoWatchDirectoryRoots config before blindly adding roots to be checked to the crawler. Also print out what we are ignoring so we know why some things might not be crawled/watched. 2008-08-19 Carlos Garnacho * src/libtracker-common/tracker-os-dependant-unix.c: * src/libtracker-common/tracker-os-dependant-win.c: * src/libtracker-common/tracker-os-dependant.h (tracker_spawn_async_with_channels): Added function. * src/tracker-extract/tracker-extract.c: Modified to read queried files from stdin and stay alive until it has stopped being asked for metadata. According to sysprof, tracker-metadata spent a long time in initialization due to being respawned once and again. * src/tracker-indexer/tracker-metadata-utils.c: Modified to send filename/mimetype pairs to the extractor through a pipe and keep track of the extractor state. 2008-08-19 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_mbox_attachment_uri): Also remove ".sbd" from the mbox uris here. * src7tracker-indexer/tracker-indexer.c (struct TrackerIndexerPrivate): pack booleans into guints. (handle_metadata_add): Actually return a boolean if checks fail. 2008-08-19 Martyn Russell * src/libtracker-common/tracker-config.c: Cleaned up a few things. 2008-08-19 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Print error+cause if any insertion to the index fails. * src/tracker-indexer/tracker-indexer.c (create_update_item): Remove useless message, since there's already a similar one previous to it. 2008-08-18 Martyn Russell * Makefile.decl: * tracker.spec: * README: * configure.ac: * acinclude.m4: * libtracker-gtk.pc.in: Fixed some trailing whitespace issues. 2008-08-18 Martyn Russell * src/trackerd/tracker-daemon.c: Use TrackerDaemonPrivate not Priv. * src/trackerd/tracker-db.c: Removed commented out code. * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-files.[ch]: Use the processor for the org.freedesktop.Tracker.Files.{Create|Delete} interfaces so we make use of the processor's queues and do things all one way. This includes checking ignore lists, etc. * src/trackerd/tracker-keywords.c: Use TrackerKeywordsPrivate not Priv. * src/trackerd/tracker-processor.[ch]: Add public functions to check/update/delete files. This simply makes the functions we already have public which send files to the indexer to check/update/delete. * src/trackerd/tracker-search.c: Use TrackerSearchPrivate not Priv. 2008-08-18 Mikael Ottela * src/trackerd/tracker-rdf-query.c: Minor bug fix to rdf-queries. 2008-08-18 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-module.h: Move the module_name parameter from TrackerFile to PathInfo, such information is internal to the indexer, and modules shouldn't have to care about their own name. 2008-08-18 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.c (tracker_indexer_module_file_get_uri): Set dirname/basename to NULL if the function is going to return FALSE. * src/tracker-indexer/tracker-indexer.c (create_update_item): Check that the module could get the URI for the element being processed. 2008-08-18 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_mail_storage_type_from_path): Ignore "Sent" folders. (get_mbox_uri): Remove ".sbd" from directory names, Evolution won't recognize that. 2008-8-18 Mikael Ottela * src/trackerd/tracker-search.c: * src/trackerd/tracker-search.h: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-rdf-query.h: * src/libtracker/tracker.h: * src/libtracker/tracker.c: * data/dbus/tracker-search.xml: Added sorting fields to rdf-queries. Fixed some problems with error reporting. * src/trackerd/tracker-metadata.c: Fixed limit and offset in unique values queries. 2008-08-18 Philip Van Hoof * src/libtracker-db/tracker-db-index.c: Added a FIXME comment * ChangeLog: changed my E-mail address 2008-08-18 Martyn Russell * src/libtracker-common/tracker-ontology.c: * src/libtracker-common/tracker-type-utils.c: * src/libtracker-db/tracker-db-file-info.c: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-gtk/tracker-metadata-tile.c: * src/tracker-extract/tracker-extract-html.c: * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/tracker-extract-mp3.c: * src/tracker-extract/tracker-extract.[ch]: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/gaim-conversations.c: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-search-tool/tracker-search-tool-callbacks.c: * src/tracker-search-tool/tracker-search-tool-support.c: * src/tracker-search-tool/tracker-search-tool.c: * src/tracker-thumbnailer/tracker-thumbnailer.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-monitor.c: * src/trackerd/tracker-search.c: * tests/common/Makefile.am: * tests/common/tracker-test-helpers.[ch]: * tests/libtracker-common/tracker-file-utils-test.c: * tests/libtracker-common/tracker-ontology-test.c: * tests/libtracker-common/tracker-parser-test.c: * tests/libtracker-db/tracker-index-writer-test.c: * utils/qdbm/print-words.c: * utils/qdbm/search-word.c: Added -Wmissing-declarations -Wmissing-prototypes -Wunused warnings to the CFLAGS when using --enable-warnings. These files all had incorrect declarations or unused code which has been removed. 2008-08-18 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (handle_metadata_add): Correct check for GError. 2008-08-18 Carlos Garnacho * src/tracker-indexer/modules/files.c (get_file_content): Plug a leak. 2008-08-18 Carlos Garnacho * src/tracker-indexer/tracker-main.c: Unref the indexer before any manager it could make use of is shutdown. Also, ensure we disable the log handler after any other thing, so we catch any possible warning. 2008-08-18 Martyn Russell * configure.ac: Add more warnings when they are enabled and clean up the summary of the configure script. 2008-08-18 Martyn Russell * configure.ac: * src/libtracker-common/Makefile.am: * src/libtracker-db/Makefile.am: * src/libtracker/Makefile.am: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/Makefile.am: * src/tracker-utils/Makefile.am: * src/trackerd/Makefile.am: * tests/libtracker-common/Makefile.am: * tests/libtracker-db/Makefile.am: * tests/trackerd/Makefile.am: * tests/trackerd/xesam/Makefile.am: * utils/qdbm/Makefile.am: Don't use -g in every Makefile.am, it is added to CFLAGS with --enable-debug-code. Changed the CFLAGS to include -O0 too. 2008-08-18 Martyn Russell * src/trackerd/tracker-status.c: (tracker_status_signal): Incorrect state sent in status signal about pausing on battery. 2008-08-18 Martyn Russell * data/modules/files.module: Remove $HOME from the files module. It is not needed since it is in the user config already and it means users would have to change two places, IF they could change /usr/share at all anyway. * src/libtracker-common/tracker-utils.c: (tracker_throttle): If throttle is 0, don't return, always have a minimum of 5 for throttle added to whatever the config throttle value is. If we don't want to throttle, don't call the throttle function. * src/trackerd/tracker-crawler.c: (file_enumerate_children), (prune_none_existing_paths), (tracker_crawler_start): * src/trackerd/tracker-processor.c: (process_module_files_add_legacy_options): Make sure that the legacy config option WatchDirectoryRoots ALSO crawls the file system, not just adds monitors. Plus check that we don't try to recurse non-existing paths when we start for paths NOT in the module config. Module config paths were already checked. 2008-08-14 Mikael Ottela * src/tracker-extract/tracker-extract-tiff.c: (tracker_extract_tiff): Restored variables used conditionally by XMP extraction, previously removed because of compiler warnings. 2008-08-14 Martyn Russell * src/tracker-indexer/modules/files.c: Don't just use g_file_get_contents() because some files might be quite big. Instead only get the maximum size we would normally index for each file which is "Text" or a "Development" file. 2008-08-14 Carlos Garnacho Add FileMove DBus method to tracker-indexer. * data/dbus/tracker-indexer.xml: Define new method. * data/sqlite-stored-procs.sql: Add MoveService and MoveServiceChildren, stored procedures that actually switch paths in the DB. * src/libtracker-common/tracker-utils.[ch] (tracker_string_replace): Misc fix, that function should take const strings. * src/libtracker-db/tracker-db-manager.c (function_replace): Add a SQL function to replace a substring with other. * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_move_service): * src/tracker-indexer/tracker-indexer.[ch] (tracker_indexer_file_move): Implement moving files in tracker-indexer. 2008-08-14 Martyn Russell * src/libtracker-common/tracker-parser.[ch]: Fixed the way we handle memory with the hash words table here. We now also don't create the index word in memory before checking if we are filtering words and if it is a stop word only to then free it again which we were doing. * src/libtracker-db/tracker-db-index.c: (tracker_db_index_flush): If the index is not open when we try to flush, try and open it first. * src/tracker-extract/tracker-extract-tiff.c: (tracker_extract_tiff): * tests/libtracker-db/tracker-db-dbus-test.c: (test_dbus_query_result_to_ptr_array): Fixed compiler warnings. * src/tracker-indexer/tracker-indexer.c: Fixed a nasty crash I introduced last commit and clean up the merge function for words tables. Plus make sure we free basename and dirname in delete_item(), this was quite a leak. * src/tracker-utils/tracker-files.c: (main): Fixed printing a %d as a %s. * src/trackerd/tracker-db.c: (update_metadata_index): * tests/libtracker-common/tracker-parser-test.c: Use g_hash_table_unref() instead of the custom function we had for the parser for freeing hash tables. * src/trackerd/tracker-processor.c: (tracker_processor_stop): Fixed a warning where the trackerd would stop before it started processing (due to Ctrl+C) and the private->timer was NULL, so using it caused warnings. 2008-08-14 Martyn Russell * src/libtracker-common/Makefile.am: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/Makefile.am: Include -g so we get debugging symbols to use in gdb. * src/libtracker-common/tracker-language.[ch]: Change the _get_stem_word() API to return a const gchar*. * src/libtracker-common/tracker-ontology.c: (tracker_ontology_shutdown): Use g_hash_table_unref() instead of _destroy() in case the table is referenced somewhere else. * src/libtracker-common/tracker-parser.c: Use const strings from tracker_language_get_stem_word() instead of dups and modularise the code a bit more to make it clearer what is going. * src/tracker-indexer/modules/files.c: (tracker_module_file_get_text): Dont't use g_mapped_file_get_contents() with g_strdup() since the first call can return a NON-NULL-terminated string. Instead use g_file_get_contents(). We might want to improve this by using GIO functions later. * src/tracker-indexer/tracker-dbus.c: Fix compiler warning. * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer.c: Cleaned up the code, removed unnecessary parenthesis and casting. * src/tracker-indexer/tracker-indexer-module.c: (tracker_indexer_module_file_get_uri): If either basename or dirname pointers are NULL, make sure we free either one when they are. * src/tracker-indexer/tracker-indexer.c: Fixed a nasty memory leak in create_update_item() when calling tracker_db_get_text() and tracker_indexer_module_file_get_text() we now free the return values. Other memory improvements made here, like using the GHashTableIter instead of getting all keys and going through the list for after parsing text in send_text_to_index(). * src/tracker-indexer/tracker-main.c: (main): Actually call the shutdown functions for dbus, log and db_index_manager. Now objects should all finalize properly. * src/tracker-utils/tracker-meta-folder.c: Refactored and made to use GOption now. * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-unique.c: Improved print formatting and don't use warnings for errors reported to us from DBus about the Tracker service. 2008-08-13 Mikael Ottela * thumbnailers/image/Makefile.am: * thumbnailers/image/hildon: * thumbnailers/image/hildon/jpeg_thumbnailer: * thumbnailers/image/hildon/gif_thumbnailer: * thumbnailers/image/hildon/tiff_thumbnailer: * thumbnailers/image/hildon/png_thumbnailer: Added hildon-thumbnail based thumbnailer scripts for images. 2008-08-12 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_metadata_for_imap): Do not perform any extra processing than just reading over mail when the message is junk/deleted. 2008-08-13 Mikael Ottela * src/tracker-extract/tracker-extract-jpeg.c: * src/tracker-extract/Makefile.am: * src/tracker-extract/tracker-extract-tiff.c: * src/tracker-extract/tracker-xmp.c: * configure.ac: Extractors for jpeg and tiff added (EXIF and XMP). Old exif-extractor replaced. 2008-08-12 Carlos Garnacho * src/libtracker-common/tracker-parser.c (tracker_parser_text_to_string): Check we're dealing with sane UTF8. * src/tracker-indexer/tracker-indexer.c (index_metadata_item): Handle the case where tracker_parser_text_to_string() returns NULL. (delete_item) (create_update_item): Add debug messages that give a better clue about what is it doing at that moment. (process_file): Remove debug message from here. 2008-08-13 Martyn Russell * src/trackerd/tracker-status.c: (tracker_status_signal): If we are told to signal but there is no TrackerDaemon object created yet, don't error, instead drop the signal request. This occurs when we start up the daemon with a reindex or first time index. 2008-08-13 Martyn Russell * src/tracker-utils/Makefile.am: Added GLib and GIO to the CFLAGS and LDFLAGS. * src/tracker-utils/tracker-tag.c: Refactored, fixed bugs, etc. 2008-08-13 Martyn Russell * src/tracker-utils/tracker-query.c: (get_meta_table_data): * src/tracker-utils/tracker-search.c: (get_meta_table_data): * src/tracker-utils/tracker-unique.c: (get_meta_table_data): Fix for these implementations. 2008-08-13 Martyn Russell * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-stats.c: * src/tracker-utils/tracker-status.c: * src/tracker-utils/tracker-tag.c: * src/tracker-utils/tracker-unique.c: Fixed some of the printing where \n was omitted. Also fixed the includes for the Win32 compatibility. 2008-08-12 Martyn Russell * src/trackerd/tracker-main.c: (main): Now shutdown the indexer when we shutdown. 2008-08-12 Martyn Russell * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-unique.c: Fixed a memory leak. * src/tracker-utils/tracker-stats.c: Clean up. 2008-08-12 Martyn Russell * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-stats.c: * src/tracker-utils/tracker-status.c: * src/tracker-utils/tracker-tag.c: Fix the tracker.h include to omit the "src/" part since we set up the include path in the CFLAGS. * src/tracker-utils/tracker-unique.c: Clean up. 2008-08-12 Carlos Garnacho * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-meta-folder.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-stats.c: * src/tracker-utils/tracker-status.c: * src/tracker-utils/tracker-tag.c: Include correctly tracker.h. 2008-08-12 Martyn Russell * src/tracker-utils/Makefile.am: Added. * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-status.c: Clean up these examples. More importantly make it show the help if the wrong parameters are used or none at all. 2008-08-12 Ivan Frade * src/tracker-indexer/tracker-indexer.c: Added differential indexing of text contents when a file is updated. 2008-08-12 Ivan Frade * tests/libtracker-db/Makefile.am: Commented out some tests that need to run with an script. This fixes make distcheck. 2008-08-12 Carlos Garnacho * src/libtracker-db/tracker-db-indexer.c (indexer_update_word): Behave nicely with 1-2 elements arrays. Use the correct array index when doing operations on the element at hand. 2008-08-12 Martyn Russell * configure.ac: * src/Makefile.am: * src/libtracker/Makefile.am: * src/libtracker/tracker-files.c: * src/libtracker/tracker-get-meta-for-folder.c: * src/libtracker/tracker-query.c: * src/libtracker/tracker-search.c: * src/libtracker/tracker-stats.c: * src/libtracker/tracker-status.c: * src/libtracker/tracker-tag.c: * src/libtracker/tracker-unique.c: * src/tracker-utils/tracker-files.c: * src/tracker-utils/tracker-query.c: * src/tracker-utils/tracker-search.c: * src/tracker-utils/tracker-stats.c: * src/tracker-utils/tracker-status.c: * src/tracker-utils/tracker-tag.c: Moved all utilities to a tracker-utils folder instead of mixing them up with the libtracker library. 2008-08-12 Carlos Garnacho * src/trackerd/tracker-dbus.c (indexer_continue_async_cb): Make error message more helpful. 2008-08-12 Carlos Garnacho * data/dbus/tracker-indexer.xml: Add Shutdown method. * src/tracker-indexer/tracker-indexer.[ch] (tracker_indexer_stop) (tracker_indexer_shutdown): Added internal and DBus method. Also added a gboolean parameter to ::finished so we know whether the indexing was interrupted. * src/tracker-indexer/tracker-marshal.list: modify marshaller for ::finished. * src/tracker-indexer/tracker-main.c (indexer_finished_cb): Quit immediately if the indexing was interrupted. * src/tracker-indexer/tracker-dbus.c (name_owner_changed_cb) (dbus_register_object): Listen for changes in the daemon service ownership. If the daemon dissapears, shut down the indexer. 2008-08-12 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Change flushing parameters so it's not done that often. Ensure the number of elements left to process is reset to 0 after each flush. (process_directory): Do not get into hidden files/dirs. 2008-08-12 Carlos Garnacho * src/libtracker-db/tracker-db-index.c (indexer_update_word): Improve performance CPU-wise when inserting words into the index. Perform binary searches on previous hits, since insertions are guaranteed to be ordered. Shift array over deleted values with g_memmove(). 2008-08-12 Ivan Frade * src/trackerd/tracker-keywords.c: Propagating errors coming from the indexer, instead overwrite them in the daemon. 2008-08-12 Martyn Russell * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-dbus.c: Don't resume indexing after the dbus request without checking if we are manually paused or paused for IO first. * src/trackerd/tracker-monitor.c: Make sure we pause when we get monitor events from the system. * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-processor.c: Don't send ANYTHING to the indexer or crawl any files while paused from IO as well as manually. * src/trackerd/tracker-status.c: Make sure we send the right state up to the applet about being paused from IO and for being on battery. 2008-08-12 Martyn Russell * src/trackerd/tracker-main.c: Use GStaticPrivate for the private data here and make sure we tell the processor to stop now when we are given the shutdown signal. 2008-08-12 Martyn Russell * src/trackerd/tracker-main.c: (initialize_databases), (main): Fixed some errors in the last commit. 2008-08-12 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-status.[ch]: Hold all valuable states in the status module, like is_readonly, is_first_time_index, is_running, etc. 2008-08-12 Ivan Frade * src/libtracker-db/tracker-db-index (tracker_db_index_flush): It is not necessary to close and open the index after flush. 2008-08-11 Ivan Frade * src/libtracker/tracker-unique.c: Added new file. 2008-08-11 Ivan Frade New methods GetSum, GetCount, GetUniqueValues. Patch by Mikael Ottela. * data/dbus/tracker-metadata.xml * src/trackerd/tracker-metadata.[ch] * src/trackerd/tracker-rdf-query.[ch]: Daemon side implementation. * src/libtracker/Makefile.am * src/libtracker/tracker.[ch]: Added methods in the library and created a tracker-unique program. 2008-08-11 Ivan Frade * src/libtracker-db/tracker-db-dbus.c (tracker_dbus_query_result_to_ptr_array): Fixed memory leak and handle NULL content in a column. * tests/libtracker-db/tracker-db-dbus-test.c: Added tests for tracker_dbus_query_result_to_ptr_array 2008-08-11 Martyn Russell * src/trackerd/tracker-monitor.c: (tracker_monitor_init), (monitor_event_cb): Improve the last commit so we use the _CHANGED event for FAM only because it is dumb and doesn't allow GIO to signal _CHANGES_DONE. 2008-08-11 Martyn Russell * src/trackerd/tracker-monitor.c: (monitor_event_cb): Don't signal files to be reindexed on the _CHANGED event. Only on CHANGES_DONE which is for WRITE_CLOSE events. 2008-08-08 Martyn Russell * src/libstemmer/Makefile.am: * src/trackerd/Makefile.am: * src/tracker-indexer/Makefile.am: * tests/libtracker-common/Makefile.am: Renamed .la to just libstemmer from libstemmer-private. * src/libtracker-common/Makefile.am: Added libstemmer to the .la files we need so the tests don't fail to build. * src/libtracker-common/tracker-language.c: Fixed include path for libstemmer. * src/libtracker-common/tracker-utils.[ch]: * src/trackerd/tracker-crawler.c: * src/tracker-indexer/tracker-indexer.c: Added throttle function we use in the indexer to a common place for the daemon to use too. * src/trackerd/tracker-main.c: Add the throttle value to the sanity check for variables. 2008-08-08 Martyn Russell * src/trackerd/tracker-crawler.c: (process_func): Make sure we pause the crawling too when the user manually pauses. 2008-08-08 Martyn Russell * src/trackerd/tracker-crawler.c: (file_enumerate_next_cb), (file_enumerate_next): Now we get 100 files at a time from GIO instead of 1 at a time. This should reduce overheads when crawling the file system. Performance seems to be slightly better now too especially with the ioprio calls. 2008-08-08 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-ioprio.[ch]: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-ioprio.[ch]: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: (main): Moved tracker_ioprio_init() to libtracker-common and use it in the daemon. 2008-08-08 Martyn Russell * src/tracker-indexer/tracker-ioprio.[ch]: * src/tracker-indexer/tracker-main.c: Don't require #ifdefs around the ioprio init, do it in the module instead. 2008-08-08 Martyn Russell * configure.ac: Improved the check for ioprio. Patch by Laurent Aguerreche. 2008-08-07 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_metadata_for_imap): Ensure we parse the whole message if it was deleted/junk, so we keep parsing from the correct position for the next message. 2008-08-07 Ivan Frade * tests/libtracker-db/tracker-db-manager-test-attach.c: (test_always_same_iface_no_reindex): Removed. It was testing just an implementation detail. * tests/libtracker-db/tracker-index-reader-test.c * tests/libtracker-db/tracker-index-writer-test.c: Fixed namespace of the tests. 2008-08-07 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (check_disk_space_start) (check_disk_space_stop): New functions. (tracker_indexer_init): start the low disk check through these functions. (process_func): (tracker_indexer_set_running): Stop low disk check when the indexer finishes or is paused. (check_disk_space_cb): Pause the indexer if there's not enough disk space, but keep running the check. 2008-08-07 Ivan Frade * tests/trackerd/example.index * tests/trackerd/tracker-index-test.c * tests/trackerd/Makefile.am: Moved trackerd index tests to libtracker-db as tracker-index-reader-test * tests/tracker-indexer * tests/tracker-indexer/Makefile.am * tests/tracker-indexer/tracker-index-test.c: Moved tracker-indexer tests to libtracker-db as tracker-index-writer-test. They were the only test for tracker-indexer so we also remove the folder. * tests/libtracker-db/example.index * tests/libtracker-db/tracker-index-writer-test.c * tests/libtracker-db/Makefile.am * tests/libtracker-db/tracker-index-reader-test.c * tests/Makefile.am * configure.ac: The index code is now merged in libtracker-db, so we move the unit tests to libtracker-db. 2008-08-07 Ivan Frade * tests/trackerd/Makefile.am * tests/trackerd/tracker-index-test.c: Fixed tests and linked with new code. 2008-08-07 Martyn Russell * src/trackerd/tracker-main.c: (main): Fix the flag setting here. 2008-08-07 Martyn Russell * src/trackerd/tracker-main.c: (main): Make sure we open the db index in READONLY mode not READ/WRITE. 2008-08-07 Martyn Russell * src/libtracker-db/Makefile.am: Make sure we compile with debug symbols for gdb. * src/libtracker-db/tracker-db-index.c: (tracker_db_index_open): Don't set priv->reload incorrectly, this meant we wouldn't get stats because we thought we couldn't open the file. This means t-s-t is now working again. * src/trackerd/tracker-query-tree.c: Use TRACKER_IS_LANGUAGE for TrackerLanguage now it is a GObject. 2008-08-07 Martyn Russell * src/libtracker-db/tracker-db-index.c: Don't free the priv->filename before closing the index, causes weird debug messages which depend on that pointer. 2008-08-07 Martyn Russell * src/libtracker-db/tracker-db-index.c: Make sure we close the index after flushing it and then reopen it. * utils/qdbm/Makefile.am: Added -g to CFLAGS here so we have debug symbols. 2008-08-07 Ivan Frade * src/libtracker-db/tracker-db-index.c: Fixed min_bucket condition. It should be bigger than 0. * tests/tracker-indexer/tracker-index-test.c: Updated tests. 2008-08-07 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (tracker_indexer_set_running): Fix typo. Also try to flush the index before pausing. 2008-08-07 Martyn Russell * utils/qdbm/print-words.c: (main): * utils/qdbm/search-word.c: (main): Fixed printing help when args are broken. 2008-08-07 Martyn Russell * configure.ac: * tests/libtracker-common/tracker-type-utils-test.c: * tests/tracker-indexer/Makefile.am: * tests/tracker-indexer/tracker-index-test.c: Removed dirty hacks for testing the index API and cleaned up the code a little. * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-index-item.[ch]: * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-index-item.[ch]: * src/libtracker-db/tracker-db-index.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-query-tree.c: Renamed TrackerIndexItem to TrackerDBIndexItem and TrackerSearchHit to TrackerDBIndexItemRank. Also moved those both to libtracker-db from libtracker-common. * src/tracker-indexer/tracker-index.[ch]: Removed in favour of the libtracker-db version. * utils/qdbm/Makefile.am: * utils/qdbm/print-words.c: * utils/qdbm/search-word.c: Fixed tools. 2008-08-07 Martyn Russell * src/libtracker-common/tracker-index-item.h: Added TrackerSearchHit typedef here from the TrackerQueryTreeModule. * configure.ac: * src/libtracker-db/tracker-db-index-manager.[ch]: * src/libtracker-db/tracker-db-index.[ch]: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.[ch]: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-query-tree.[ch]: * src/trackerd/tracker-search.[ch]: * src/trackerd/tracker-xesam.[ch]: Moved tracker-index.[ch] in the daemon and indexer into libtracker-db/tracker-db-index.[ch] combining the APIs and code. * tests/trackerd/tracker-index-test.c: * tests/trackerd/Makefile.am: Disabled the index test, it is broken. * utils/qdbm/print-words.c: * utils/qdbm/search-word.c: Fixed warnings. 2008-08-06 Martyn Russell * src/libtracker-common/tracker-index-item.[ch]: * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-index-manager.[ch]: * src/libtracker-db/tracker-index-manager.[ch]: * src/trackerd/Makefile.am: * src/trackerd/tracker-index.[ch]: Moved tracker-index.[ch] from the trackerd directory to the libtracker-db library. 2008-08-06 Martyn Russell * src/libtracker-db/Makefile.am: * src/trackerd/Makefile.am: * src/trackerd/tracker-index-manager.c: * src/trackerd/tracker-index-manager.h: Moved index manager to the libtracker-db. 2008-08-06 Martyn Russell * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-index-manager.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-search.[ch]: Removed the email index since it is unused now. 2008-08-06 Carlos Garnacho * src/tracker-indexer/modules/evolution.c: Index IMAP attachments. 2008-08-06 Ivan Frade * src/trackerd/tracker-index.c: Using g_param_spec_boolean to set a boolean parameter. * tests/trackerd/tracker-index-test.c: Updated test. 2008-08-06 Ivan Frade * data/services/default.service: Set HasMetadata to False in Folder category. It is not necessary to call tracker-extractor for folders. 2008-08-06 Ivan Frade * src/trackerd/tracker-index-manager.c (tracker_index_manager_init): Dont force reindex if one file is missing. It was removing file-index.db every time we started trackerd. 2008-08-06 Martyn Russell * AUTHORS: Sorted the AUTHORS file alphabetically and added Me, Carlos, Ivan, Mikael and Phillip. 2008-08-05 Carlos Garnacho * src/tracker-indexer/tracker-module.h (tracker_module_file_get_service_type): * src/tracker-indexer/tracker-indexer-module.[ch] (tracker_indexer_module_file_get_service_type): Modify to receive a TrackerFile. * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/files.c: Adapt to this change. * src/tracker-indexer/modules/evolution.c: Implement this method to get the correct service type for attachments. 2008-08-05 Ivan Frade * data/services/default.metadata: User:Keywords is not filtered. * src/tracker-indexer/tracker-indexer-db.[ch]: (tracker_db_get_property_values): Implemented new method to obtain the values of a property. Needed to unindex those values before remove the property. (tracker_db_set_metadata): Handle deletion of keyword properties without specified value (for instance, to remove all User:Keyword properties of a file. * src/tracker-indexer/tracker-indexer.c: Now takes into acount if the field has multiple values. Set a field with no-multiple values remove the old value and set the new one. * src/trackerd/tracker-keywords.c (tracker_keywords_remove_all): Implemented calling to the indexer directly, instead retrieving the old values from the DB and calling the indexer for each one. * src/trackerd/tracker-metadata.c (tracker_metadata_set_property): Removed useless service type check. 2008-08-05 Carlos Garnacho * src/tracker-indexer/modules/evolution.c: Add attachments indexing for mboxes. Now the module iterates through messages, and through the contained identifiable mime parts (if any). 2008-08-05 Carlos Garnacho * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-metadata-utils.[ch]: Added files, generic utility functions for extracting metadata from a file. * src/tracker-indexer/modules/files.c: Use these functions to get metadata from files. 2008-08-05 Ivan Frade * src/libtracker-db/tracker-db-dbus.[ch]: Added new method (tracker_dbus_result_set_numeric_to_strv) needed to retrieve data from the numeric metadata table. 2008-08-05 Martyn Russell * src/trackerd/tracker-processor.c: Don't send items to the indexer if we are manually paused. This was caused by receiving monitor events and just blindly sending them without checking if we should or not. 2008-08-05 Martyn Russell * src/tracker-indexer/tracker-main.c: Make sure we don't just exit when we have processed items. ALWAYS wait at least 10 seconds before quitting after EVERY "finished" signal. The indexer was being started/stopped constantly for small monitor event groups. Now it runs constantly. * src/trackerd/tracker-monitor.c: Make some of the logging debug level so we don't spam the console so much. * src/trackerd/tracker-processor.c: Set state as indexing in the queue handler callback. 2008-08-05 Martyn Russell * src/trackerd/tracker-monitor.[ch]: Add property to enable and disable monitor events from being processed. * src/trackerd/tracker-processor.c: Make sure we disable monitor events while crawling the file system and enable then once done. This way we can't get monitor events causing the daemon to signal "indexing" state up before we have finished processing each module for crawling. Also, when we start processing new files from monitor events, put us into "indexing" state instead of staying "idle". 2008-08-05 Martyn Russell * src/trackerd/tracker-crawler.c: (tracker_crawler_is_path_ignored): Add to the comment in this function so people know why we have an internal function and an external function doing the same thing. * src/trackerd/tracker-monitor.c: * src/trackerd/tracker-processor.[ch]: Changed the way we get *Private data in these modules so we don't do type checking on the GObjects for every function just to get the private struct. This should improve speed slightly. This is exactly what the crawler does. 2008-08-05 Martyn Russell * src/tracker-indexer/modules/evolution.c: Use g_try_malloc0 instead of just g_malloc0 so we don't try to allocate rediculous lengths of memory and abort. Also, if we can't parse the file, we now return NULL metadata and continue as usual. * src/tracker-indexer/tracker-indexer.c: Improved messaging. 2008-08-04 Ivan Frade * src/tracker-indexer/tracker-indexer.c: Using GError in the metadata handlers to report proper error to the daemon. 2008-08-04 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (delete_item): Do not try to delete items that don't exist in the database. 2008-08-04 Ivan Frade * src/libtracker-common/tracker-dbus.c (tracker_dbus_request_failed): If the format of the message is null and the error is set, we log the existing message. This allows tracker to log the errors coming from the indexer. * tests/libtracker-common/tracker-dbus-test.c: Unit test to the implementation. 2008-08-04 Ivan Frade * src/trackerd/tracker-metadata.c: Now uses the indexer to write metadata in the database. * src/trackerd/tracker-db.[ch] (tracker_db_metadata_get_array): Added this new method moving code from tracker-metadata. Removed old commented code. 2008-08-04 Ivan Frade * data/services/audio.metadata: The embedded properties cannot be written by the user. Marked "PlayCount" and "Last play date" as not embedded. 2008-08-04 Ivan Frade * src/libtracker-common/tracker-type-utils.[ch] (tracker_string_to_string_list): new helper function. 2008-08-04 Martyn Russell * src/trackerd/tracker-monitor.c: Added black listing. This works slightly differently to TRUNK. Files are given a black list count for the number of times an event is seen. If a file gets an event more than 5 times they are black listed for 30 seconds, after that time the item is taken off the black list and the indexer is prompted to reindex the file. The 30 second period has to be completely clear of events for that file during that time. If an event occurs in the mean time, the timestamp is reset. 2008-08-04 Martyn Russell * src/trackerd/tracker-crawler.[ch]: * src/trackerd/tracker-processor.c: Removed TrackerHal dependency, it is unused in this module now. 2008-08-04 Ivan Frade * src/tracker-indexer/tracker-indexer-module.[ch] (tracker_indexer_module_file_get_service_type): Call the function tracker_module_file_get_service_type in the module. If this function doesnt exist, use the module name as service type of the uri. * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/tracker-module.h * src/tracker-indexer/modules/dummy.c * src/tracker-indexer/modules/files.c (tracker_module_file_get_service_type): New function to obtain the service type of an uri. Implementation in the files module and explanation in "dummy" module. 2008-08-04 Martyn Russell * src/trackerd/tracker-crawler.[ch]: Make the is_path_ignored() function we used internally available externally as an API for the processor to call when we get new monitor events. This is to make sure we don't monitor files newly created just because they are in some directory. They too adhear to the filtering. * src/trackerd/tracker-daemon.c: Fixed referencing so we now actually finalize the daemon and the processor modules. * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-monitor.c: Added "is_directory" boolean to monitor events. * src/trackerd/tracker-processor.c: Now we create a TrackerCrawler for each module and we don't clean them up after the module is processed, we keep them around for the duration of the daemon's life. The reason being, we need to make sure we can call on the crawler for monitor event path filtering. 2008-08-04 Ivan Frade Reverted previous commit. 2008-08-04 Ivan Frade * src/trackerd/Makefile.am * src/trackerd/tracker-index-searcher.[ch]: Added * src/trackerd/tracker-query-tree.[ch]: Removed * src/trackerd/tracker-index.c * src/trackerd/tracker-search.c * src/trackerd/tracker-xesam.c * src/trackerd/tracker-db.c: Renamed tracker-query-tree to tracker-index-searcher 2008-08-01 Ivan Frade * src/trackerd/tracker-keywords.c: Use sync calls to the indexer. Tracker-search-tool query for the tags just after setting them. 2008-08-01 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-main.c: Add check for low disk space, which pauses the indexer when it detects the available space at the home partition is below some configurable threshold. 2008-08-01 Ivan Frade * src/tracker-indexer/tracker-indexer.c: (tracker_indexer_property_remove) (tracker_indexer_property_add): Return a dbus error if something fails. 2008-08-01 Carlos Garnacho Make tracker-indexer delete items if the module returns NULL metadata, instead of getting requests from tracker. This is necessary to delete mails and contents of other container files. * src/tracker-indexer/tracker-module.h (tracker_module_file_get_uri): New method for modules to optionally implement. It will return dirname/basename for the current item. * src/tracker-indexer/tracker-indexer-module.[ch] (tracker_indexer_module_file_get_uri): Added wrapping method. * src/tracker-indexer/tracker-indexer.c: Do not pass the ItemAction around, instead take the decision based on whether the module returns metadata or not for the current item. Use new module API to know the item URI, instead of looking it up in the metadata. * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_get_service_type) (tracker_db_create_service) (tracker_db_check_service): Modify API to pass directly the dirname/basename. * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/evolution.c: Implement new method where necessary, also return NULL metadata if the item doesn't exist, was deleted, etc... 2008-08-01 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Mere whitespace/formatting fixes. 2008-08-01 Ivan Frade * src/tracker-indexer/tracker-indexer-db.c: (tracker_db_delete_metadata): It is neccesary to specify the value to remove a keyword property. * src/trackerd/tracker-keywords.c: Use the indexer to set and remove tags 2008-07-31 Ivan Frade * data/dbus/tracker-indexer.xml * src/tracker-indexer/tracker-indexer-db.[ch] * src/tracker-indexer/tracker-indexer.[ch]: New methods ("PropertySet" and "PropertyRemove") in tracker-indexer. 2008-07-31 Ivan Frade * src/tracker-indexer/tracker-index.c * tests/tracker-indexer/tracker-index-test.c: When we added and removed a word before indexing, the word was saved with score 0 (and it is wrong). Test and fix. 2008-07-31 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Add back some leak fixes, and fix some trailing whitespaces. 2008-07-31 Ivan Frade * src/trackerd/tracker-processor.c: (crawler_processing_directory_cb): Send the folders as regular file to the indexer. 2008-07-31 Ivan Frade * data/sqlite-stored-procs.sql * src/tracker-indexer/tracker-indexer-db.[ch] * src/tracker-indexer/tracker-indexer.c: Added deletion superpowers to the indexer. 2008-07-31 Ivan Frade * tests/libtracker-common/tracker-parser-test.c: Added test to tracker_parser_text_fast 2008-07-31 Ivan Frade * utils/qdbm/Makefile.am * utils/qdbm/print-words.c * src/libtracker-common/tracker-index-item.[ch] * src/libtracker-common/tracker-index-item.h: (tracker_index_item_get_id): New method to access id. Using the common tracker-index-item instead a local copy in the utility program. 2008-07-30 Carlos Garnacho * src/libtracker-common/tracker-utils.c (tracker_seconds_to_string): * src/tracker-indexer/tracker-indexer.c (index_text_contents) (process_file): Plug a few leaks. 2008-07-30 Carlos Garnacho * src/tracker-indexer/tracker-metadata.[ch]: Make it accept just strings and lists of strings at the moment, strings are anyways needed to insert values through stored DB procedures, and there are some metadata types that will be difficult to store in a generic way. Since this API will be used from third party code, any failure in there will be quite hard to debug if we use a generic API, (it will probably crash inside tracker-indexer code, making things harder). By using strings we guarantee that at least sloppy third party module developers will get compiler warnings, which is safer. * src/tracker-indexer/tracker-indexer.c (index_metadata_item): Adapt to API change. * src/tracker-indexer/modules/files.c (tracker_metadata_get_embedded): Remove unnecessary check. 2008-07-30 Carlos Garnacho * data/services/audio.metadata: Genre and Performer shouldn't have multiple values. 2008-07-30 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (process_func): Reset the number of processed items after committing a transaction. 2008-07-29 Ivan Frade * tests/libtracker-common/tracker-file-utils-test.c * src/libtracker-common/tracker-file-utils.c: Set correct mime type to directories. * data/services/default.service: Lined x-directory/ mime with Folders category. * tests/libtracker-common/tracker-ontology-test.c: Test for the previous fix. 2008-07-29 Carlos Garnacho * src/libtracker-common/tracker-ontology.c (tracker_ontology_metadata_key_in_service): Valid metadata keys start from number 1. * src/tracker-indexer/tracker-indexer-db.c (tracker_db_set_metadata): Store corresponding metadata into the Services table. 2008-07-29 Martyn Russell * src/trackerd/tracker-index-manager.[ch]: Rework the code here to initialize a bit more thoroughly and to print what is going on more clearly similar to how we do the db manager. Also make sure we remove indexes on reindex, not just temporary files. 2008-07-29 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_metadata_for_mbox) (get_imap_message_body) (get_metadata_for_imap): Index message body for both mbox and imap. 2008-07-29 Carlos Garnacho Support saving metadata with multiple items. * src/tracker-indexer/tracker-metadata.[ch]: Old code was removed, these files now contain a TrackerMetadata struct, which is used to store metadata, taking care of the type, whether it has multiple items, how data must be freed, ... * src/tracker-module.h: * src/tracker-indexer-module.[ch]: Adapt modules API to return a TrackerMetadata instead of a GHashTable for metadata. * src/tracker-indexer/tracker-indexer-db.c: Use TrackerMetadata API. Also support storing metadata with multiple values. * src/tracker-indexer/modules/*.c: Adapt to module API changes, also store metadata lists where appropriate (mimetypes/categories for applications, recipients for mail). 2008-07-28 Ivan Frade * src/tracker-search-tool/tracker-search-tool.c: (g_search_app_create): Remove hardcoding in the category -> service description hash table. This fixes the categories in tracker-search-tool. 2008-07-28 Ivan Frade * src/tracker-indexer/tracker-indexer.c: (index_text_contents): Added function to add the contents of the file into QDBM. 2008-07-28 Philip Van Hoof * src/trackerd/tracker-index-manager.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-index-manager.h: Removing the QDBM indexes in case of force-reindex 2008-07-28 Ivan Frade * src/libtracker-common/tracker-language.c: (tracker_language_stem_word): Return always a valid word, the input or the stemmed one. * src/libtracker-common/tracker-parser.c: (analyze_text): Added stop words checking * tests/libtracker-common/tracker-parser-test.c: Updated tests with stop words. 2008-07-28 Ivan Frade * src/libtracker-common/tracker-language.c: (tracker_language_new): Set stop words on creation. (language_get_stopword_filename): Build correct filename. (language_add_stopwords): Dont free contents of g_mapped_file * tests/libtracker-common/Makefile.am * tests/libtracker-common/tracker-parser-test.c: Added tests to tracker_parser_ 2008-07-28 Ivan Frade * tests/libtracker-common/tracker-ontology-test.c: (test_get_db_for_service): Updated to new default value. Used proper namespace for tests. * src/libtracker-common/tracker-parser.c: (tracker_parser_text): Fixed max words to index 2008-07-28 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Added compress and uncompress functions for attached database connections 2008-07-28 Philip Van Hoof * src/trackerd/tracker-metadata.c: * src/libtracker-db/tracker-db-dbus.h: * src/libtracker-db/tracker-db-dbus.c: Make tracker_metadata_get return the columns as a GStrv, not the rows. This patch fixed tracker-search-tool's crash 2008-07-28 Carlos Garnacho * src/trackerd/tracker-crawler.c (file_enumerate_next_cb): Do not leak file infos and the enumerator. (tracker_crawler_start): Free remaining elements in the list. * src/trackerd/tracker-main.c (main): The index objects are owned by the index manager. Do not free them there. * src/trackerd/tracker-monitor.c (tracker_monitor_init): Do not leak the test monitor. 2008-07-28 Philip Van Hoof * utils/qdbm/print-words.c: Open the qdbm file in DP_ONOLCK mode, like the application itself does 2008-07-28 Philip Van Hoof * src/tracker-indexer/tracker-index.c: * src/tracker-indexer/tracker-index.h: * src/tracker-indexer/tracker-indexer.c: Open and close the QDBM file during pause and continue 2008-07-28 Carlos Garnacho * src/libtracker-common/tracker-config.c (config_load_string_list) (tracker_config_add_watch_directory_roots) (tracker_config_add_crawl_directory_roots) (tracker_config_add_no_watch_directory_roots): Plug some leaks. * src/libtracker-db/tracker-db-manager.c (db_get_static_data) (db_get_static_xesam_data): Same here. * src/tracker-indexer/modules/evolution.c (get_account_name_from_imap_uri): Do not try to parse the wrong mail URIs. * src/tracker-indexer/tracker-index.c (tracker_index_free): Fix invalid memory reads. * src/tracker-indexer/tracker-indexer (tracker_indexer_finalize): Fix invalid free(). 2008-07-25 Martyn Russell * src/libtracker-db/tracker-db-dbus.c: (tracker_dbus_query_result_to_ptr_array): Make sure we rewind result sets before trying to create GStrv, GPtrArray or GHashTable pointers from them. This means the tracker-search-tool now shows a list of categories with the indexed count next to them - still not sure why the content is not listed but the service types are all wrong. 2008-07-25 Martyn Russell * src/trackerd/tracker-db.c: Finding a dud hit is no longer a warning, just a regular message. * src/trackerd/tracker-index-manager.c: Reworked the way we get indexes so we remember them to avoid creating too many TrackerIndex objects. Also fixed a nasty bug here which was getting one for EVERY time the status callback was triggered by the indexer :O * src/trackerd/tracker-index.c: Cleaned up the code a bit and put some more locking in place. This is redundant for now since we don't have a multithreaded approach at the moment. 2008-07-25 Martyn Russell * tests/trackerd/Makefile.am: * tests/trackerd/tracker-index-test.c: (test_created_file_in_the_mean_time): Fixed compilation errors. 2008-07-25 Martyn Russell * src/trackerd/tracker-processor.c: (indexer_status_cb), (indexer_finished_cb): Call the index reload function when we get status updates from the indexer. * tests/trackerd/tracker-indexer-test.c: Renamed to reflect new TrackerIndex name. 2008-07-25 Martyn Russell * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-index-manager.[ch]: * src/trackerd/tracker-index.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-query-tree.[ch]: * src/trackerd/tracker-search.[ch]: Renamed TrackerIndexer->TrackerIndex, since it is the index not the indexer. 2008-07-25 Martyn Russell * configure.ac: * src/trackerd/Makefile.am: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-db.h: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-index-manager.h: * src/trackerd/tracker-index.c: * src/trackerd/tracker-indexer.[ch]: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-metadata.[ch]: * src/trackerd/tracker-query-tree.h: * src/trackerd/tracker-search.[ch]: * src/trackerd/tracker-xesam.[ch]: Renamed tracker-indexer to tracker-index. 2008-07-25 Martyn Russell * src/trackerd/tracker-index-manager.[ch]: * src/trackerd/tracker-indexer.h: Code clean ups. 2008-07-25 Ivan Frade * src/trackerd/tracker-indexer.[ch]: Added "reload" capabilities to the indexer. * tests/trackerd/Makefile.am * tests/trackerd/tracker-indexer-test.c: Tests to the new functionality. This tests use GIO to copy a file. 2008-07-25 Philip Van Hoof * src/trackerd/tracker-dbus.c: Don't try to pause the indexer if it's not running 2008-07-25 Philip Van Hoof * src/libtracker/tracker-query.c * src/libtracker/tracker-search.c * src/libtracker/tracker-tag.c * src/libtracker/tracker-stats.c * src/libtracker/Makefile.am * src/libtracker/tracker-get-meta-for-folder.c * src/libtracker/tracker-files.c * src/libtracker/tracker-status.c: Various code improvements to the clients 2008-07-25 Martyn Russell * src/libtracker-common/tracker-hal.c: If we can't get the property for a device that no longer exists, then don't make that a critical, just set the device as unmounted and print a regular message. * src/trackerd/tracker-crawler.[ch]: Move the removable media path check to the processor since we should be filtering paths before the crawler even starts. Also, make it possible to crawl special locations set with the API instead of the module-config paths. * src/trackerd/tracker-monitor.c: (monitor_event_cb): On unmount, tell the indexer that the directories has gone. Not sure yet if the indexer will be clever enough to remove all files below it. * src/trackerd/tracker-processor.c: Handle removable media now. This work is working on a basic level, there are some issues still to be ironed out. 2008-07-24 Carlos Garnacho * data/modules/files.module: Remove service type, so the indexer uses file mimetype. 2008-07-24 Carlos Garnacho Store things in the correct DB based on the service type. * src/libtracker-common/tracker-ontology.c (tracker_ontology_get_db_for_service_type): Return TRACKER_DB_TYPE_FILES by default, as most of the services want to end up there. * src/libtracker-db/tracker-db-manager.[ch] (tracker_db_manager_get_db_interface_by_type): New function, returns a non-attached interface given the service type and the data content we want to deal with (contents/metadata). * src/tracker-indexer/tracker-indexer-db.[ch]: Pass the TrackerService instead of a TrackerDBInterface where it's relevant, so functions can guess the correct database based on it. * src/tracker-indexer/tracker-indexer.c: Adapt to API changes in tracker-indexer-db.[ch]. 2008-07-24 Martyn Russell * src/libtracker-common/tracker-config.[ch]: * src/trackerd/tracker-main.c: Make it possible to disable modules on the command line. 2008-07-24 Ivan Frade * src/tracker-extract/tracker-extract-mp3.c: Property names with ":" instead of ".". Fixed mime. Mp3 are audio/mpeg and not audio/mp3. 2008-07-24 Martyn Russell * src/trackerd/tracker-processor.c: Fixed some warnings. 2008-07-24 Ivan Frade * Makefile.am * configure.ac * utils/Makefile.am * utils/qdbm/Makefile.am: Using autotools to build helper programs. * utils/qdbm/Makefile: Removed. 2008-07-24 Martyn Russell * data/dbus/tracker-daemon.xml: * src/tracker-applet/tracker-applet.c: Signal how many items are done/remaining/total instead of files/folders. This is much more generic for whatever is being indexed. * src/trackerd/tracker-daemon.c: Don't set the daemon/indexer as "manually paused" if we get paused/continued state from the indexer, only set that when the user sets it using DBus. * src/trackerd/tracker-dbus.c: Don't synchronously continue the indexer, do it asynchronously. * src/trackerd/tracker-processor.c: When we get state from the indexer, signal it up the stack so the applet knows how many items have been indexed as we are doing it. This was completely forgotten about until now! * src/trackerd/tracker-main.c: * src/trackerd/tracker-status.[ch]: Initialize and shutdown the status module. The only reason for adding this is because we need TrackerConfig for some of the information we emit when we signal status. We now correctly signal if we are on battery or not and if we are paused for IO (i.e. if we are indexing or not). This is now correctly reflected in the tooltip in the applet. 2008-07-24 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Don't increase incorrectly the number of items processed. Also, split Files/Items processed count, so we get status signalling correctly, and we still flush when processing files with several items in it. 2008-07-24 Ivan Frade Small programs to show and search in the contests of QDBM file. Useful for testing. * utils/qdbm/Makefile * utils/qdbm/search-word.c: search a word in the QDBM file * utils/qdbm/print-words.c: print all words in the file and also their hits (pairs of service id and service type). 2008-07-23 Martyn Russell * src/libtracker-common/tracker-config.c: Don't leak from calling tracker_path_list_filter_duplicates(). * src/trackerd/tracker-crawler.[ch]: Don't just iterate the FIRST path in the list of paths and recurse paths, make sure we iterate 2,3,4,etc. too. Also make it possible to add paths to be iterated as a public API. * src/trackerd/tracker-monitor.[ch]: Put the module_name parameter before the GFile since that's how it is done everywhere else. * src/trackerd/tracker-processor.c: Implemented the old config option WatchDirectoryRoots and CrawlDirectoryRoots. 2008-07-23 Martyn Russell * src/libtracker-common/tracker-config.c: (config_dir_ensure_exists_and_return): Use file-utils functions instead of duplicating code here. Make sure we filter for duplicates no-watch-roots, watch-roots and crawl-roots. 2008-07-23 Carlos Garnacho Check that a service exists before inserting it again in the database. * src/tracker-indexer/tracker-indexer-db.[ch] (get_dirname_and_basename): New helper function. (tracker_db_check_service): New function, returns the ID for the service (if any). * src/tracker-indexer/tracker-indexer.c (process_file): Check that the service doesn't exist before trying to index it. 2008-07-23 Carlos Garnacho * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/tracker-indexer.c: Revert the "use TrackerField as metadata keys" patch, it's incomplete at the moment and adds extra lookup overhead. Probably a TrackerMetadata simple object to collect data and do some caching would be the best option. 2008-07-23 Martyn Russell * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: Changed _set_paused() API to have _pause(), _continue() and _pause_for_duration(). * src/libtracker-common/tracker-dbus.[ch]: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-search.c: * src/trackerd/tracker-xesam.c: Completely rework Phillip's patch to pause the indexer when daemon requests come in. Instead of littering the DBus code with pause/continue calls, we add a hook to the DBus request_new() and request_{success|failed)() functions so we know when a request starts and ends. We then simply pause the indexer and wait for at least 10 seconds of DBus request inactivity before allowing the indexer to continue as normal. * src/trackerd/tracker-main.c: Used the new _pause_for_duration() API when shutting down because sometimes the daemon has to wait because the indexer has the lock on the database. 2008-07-23 Martyn Russell * src/trackerd/tracker-main.c: (main): Call nice() to try and limit how much attention the daemon gets from the CPU. 2008-07-23 Martyn Russell * src/trackerd/tracker-main.c: (main), (tracker_shutdown): Make sure we signal when we shutdown and also if we are started in readonly mode make sure we set our status to IDLE. 2008-07-23 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-monitor.c: Code clean ups. * src/trackerd/tracker-processor.c: Improved efficiency of the get queue function we use in each timeout to send files to the indexer. 2008-07-23 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-monitor.c: * src/trackerd/tracker-processor.c: Don't create a gchar* for EVERY file we crawl just to move it from one queue to another, instead, just make the queue use GFile pointers and ref the one we are passed. This has halved the memory consumption of the daemon and speed things up. It also shouldn't hang while crawling now. 2008-07-23 Philip Van Hoof * src/trackerd/tracker-dbus.c: Style fixes * src/trackerd/tracker-xesam.c: Wrapped db related functions 2008-07-22 Ivan Frade * src/tracker-indexer/tracker-index.c: Use the new TrackerIndexItem instead old duplicate code. 2008-07-22 Philip Van Hoof * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-indexer.h: Moving some code around 2008-06-22 Ivan Frade * tests/trackerd/example.index: Small QDBM index to use in tests. * tests/trackerd/run-tests.sh (removed) * configure.ac: Create symbolic links in autoconf instead a bash script. 2008-07-22 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-search.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-utils.c: Wrapped all database access in the DBus implementations with two convenient functions. 2008-07-22 Ivan Frade * src/libtracker-common/Makefile.am * src/libtracker-common/tracker-index-item.[ch]: Common struct to write and read in the index. * src/trackerd/tracker-query-tree.c * tests/tracker-indexer/tracker-index-test.c: Updated to use the new index-item struct. * src/libtracker-db/tracker-db-manager.[ch]: (tracker_db_manager_are_db_too_big): Moved code here. It looks like nobody uses this function. * src/trackerd/Makefile.am * src/trackerd/tracker-index-manager.[ch]: New module to handle indexes and their directories. * src/trackerd/tracker-indexer.[ch] Refactored GObject representing one index. * src/trackerd/tracker-main.c: added _init and _shutdown to the new index manager. * tests/trackerd/Makefile.am * tests/trackerd/run-tests.sh: Script to compile the test for trackerd modules. Ugly but the only fast and easy solution. * tests/trackerd/tracker-indexer-test.c: Test for the new object 2008-07-22 Martyn Russell * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.c: Fixed HAL warning when it isn't compiled in. Fixed the indexer pausing so it works properly and has proper debugging so we know when it is called like all other DBus functions. * src/trackerd/tracker-daemon.c: Connected the "Paused" and "Continued" signals of the indexer so we know when to signal it up the stack. * src/trackerd/tracker-dbus.c: Add the prototypes for "Paused" and "Continued" for the indexer proxy. * src/trackerd/tracker-main.c: Removed some debugging which was duplicated when we changed state between paused/resumed. 2008-07-22 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c: * src/libtracker-common/tracker-ontology.c: Fixed two major problems with r1898 2008-07-22 Philip Van Hoof * data/sqlite-stored-procs.sql: * data/sqlite-cache.sql: * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer-db.h: * src/tracker-indexer/tracker-indexer.c: Removed the need for GetNewID and UpdateNewID from the indexer Replaced the GetNewEventID and UpdateNewEventID with an autoincrement 2008-07-22 Carlos Garnacho Improve data flushing to DBs/Indexes, based on a patch by Ivan Frade * src/tracker-indexer/tracker-index.c (tracker_index_free): Just flush if there are remaining items before the index is destroyed. * src/tracker-indexer/tracker-indexer.c (schedule_flush_cb): Renamed to flush_data(). Always flush the Index, which is completely unrelated to DB transactions. (schedule_flush): Call flush_data() if needed immediately * src/tracker-indexer/tracker-main.c (indexer_finished_cb): Attach the extra refcount to indexer to the timeout. So it's unreferenced when the timeout source is removed. 2008-07-22 Carlos Garnacho Several random fixes by Philip Van Hoof. * src/libtracker-db/tracker-db-dbus.c (tracker_dbus_query_result_to_hash_table): tabify. * src/libtracker-db/tracker-db-manager.c: Initialize correctly the TrackerDBDefinition structure * tests/libtracker-common/tracker-file-utils-test.c (test_path_list_filter_duplicates): Avoid compiler warning. 2008-07-22 Martyn Russell * src/trackerd/tracker-processor.c: (item_queue_handlers_cb), (crawler_finished_cb): Make it clear which module we are sending items for and also fixed the cut and paste bug I introduced which was using the _files_delete() API for new and updated files. Plus now we have some main context iteration code in the tight loop where we get back all files from the crawler. Being unresponsive for 10 seconds while the processor adds 100k items into a queue and create strings for each of them is not acceptable. 2008-07-22 Martyn Russell * src/libtracker-common/tracker-config.[ch]: * src/trackerd/tracker-processor.c: (process_module): Make it possible to disable modules from the user's config, not just in the module files which are owned by root. Added config option "disabled-modules". 2008-07-21 Philip Van Hoof * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/evolution.c: * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/tracker-indexer.c: tracker-indexer modules returned a GHashTable with field name/value pairs, we now use TrackerField pointers for the hashtable keys, so we could deal with values in their native format (instead of having to convert everything to strings) 2008-07-21 Martyn Russell * src/trackerd/tracker-crawler.[ch]: * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-processor.c: Completely rework the crawler, so we have ONE per module. It also now will crawl non-recursive directories set in the .module files. All non-recursive directories are crawled first. This also moves the "sending" of items to the indexer into the processor module so it is in ONE place not TWO. 2008-07-21 Philip Van Hoof * Reverted TrackerField instances as hash keys patch 2008-07-21 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-monitor.[ch]: * src/trackerd/tracker-processor.c: Make tracker-monitor a GObject with signalling when there are items created/updated/deleted and move all the code which sends file notifications to the indexer into the processor. 2008-07-21 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Functions for attached connections 2008-07-18 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: * src/libtracker-common/tracker-module-config.c: Added functions to remove duplicates or hierarchical conflicts between monitor directories and monitor recurse directories. * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-crawler.c: Emit a signal for each directory we process so the processor can add monitors. The bug where we don't monitor or crawl the toplevel directory/files for each module is fixed now. We now only send files to the indexer AFTER we have crawled the file system. This time is insignificant, for 100k files it takes ~10 seconds. Emitting a signal for each directory is not really the best way forward here, since the directories we crawl are the directories which are "recursive monitor directories". What we should do is set flags on the crawler before we start it so we know if we are crawling to set up monitors or to get files. We should also return the files to the processor to send to the indexer, instead of doing all that in this module too. This needs more work. * src/trackerd/tracker-processor.c: Removed add_recurse_monitors() and add_monitors(), they are not needed. Added the code to handle adding monitors from the process-directory callback in the crawler. 2008-07-18 Philip Van Hoof * src/trackerd/tracker-search.c: Fixed assertions that are not necessary (and even wrong). 2008-07-18 Ivan Frade * src/libtracker-db/tracker-db-manager.c: Commented out the code to load xesam categories in tracker_ontology. It overwrittes the real categories because the IDs are not unique. * src/tracker-indexer/tracker-indexer.c Obtain the mimetype and service type from the file, instead from the module name. 2008-07-18 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-indexer.h: * data/dbus/tracker-indexer.xml: Added a SetPaused DBus API to the indexer 2008-07-17 Ivan Frade * src/libtracker-common/tracker-ontology.[ch]: (tracker_ontology_registered_service_types) (tracker_ontology_registered_field_types): new functions to obtain services and field type names registered in the ontology. * src/trackerd/tracker-metadata.c: (tracker_metadata_get_registered_types) (tracker_metadata_get_registered_classes): Use the new functions instead accessing to the DB. * tests/libtracker-common/tracker-ontology-test.c: Tests for the new methods. 2008-07-17 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-main.c: Initialize module config before initializing the monitor module. The monitor module uses the module config to set up queues and hash tables. * src/trackerd/tracker-monitor.[ch]: Make all API calls require a module name. This is because now we have separate queues for each module and 3 queues for each type of event (created, updated, deleted). This means we now don't just send "Files" as the service type when telling the indexer about monitor events. 2008-07-17 Philip Van Hoof * src/trackerd/tracker-search.c: * data/dbus/tracker-search.xml: Async search API. 2008-07-17 Ivan Frade * data/dbus/tracker-files.xml * src/trackerd/tracker-files.[ch]: Async files API. 2008-07-17 Martyn Russell * src/libtracker-common/tracker-log.[ch]: Cleaned up the code here a bit and only open the file descriptor on init and close on shutdown, instead of once per write. This should fix the error we get when we can't open the file because too many files are already open. It should also be marginally quicker. If we can't open the file, we print everything to stderr too now. 2008-07-17 Ivan Frade * data/dbus/tracker-metadata.xml * src/trackerd/tracker-metadata.[ch]: Async metadata API. 2008-07-17 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Add the functions for the combine-attached db connections 2008-07-16 Ivan Frade * src/libtracker-common/tracker-field.[ch]: (tracker_field_type_as_string): Added method to translate field types in readable format. * data/sqlite-stored-procs.sql: Removed SelectMetadataClasses and added SelectRegisteredClasses. * src/trackerd/tracker-db.c: (tracker_db_service_get_by_entity): Reimplemented using an easier DB query and tracker_ontology to translate the result to string. (tracker_db_metadata_set_single): Added NULL at the end of the array. Renamed service -> service_type and id -> service_id * src/trackerd/tracker-metadata.c: (tracker_metadata_get_type_details): Implemented using tracker_ontology instead accessing to the DB. Fixed things here and there. Now the metadata API actually works. 2008-07-16 Martyn Russell * src/libtracker-common/tracker-utils.[ch]: Make it possible to have a shortened version of the time string. * src/libtracker-db/tracker-db-manager.c: When setting up multiple interfaces, don't assume we ALWAYS want to "add_functions", instead use the array value for that database type (as we do normally). * src/tracker-indexer/tracker-indexer.c: Don't print a status message if there are 0 items remaining and change the transaction limit to 200. * src/trackerd/tracker-dbus.c: Added signal prototypes for the indexer for module-started, module-finished and started signals. * src/trackerd/tracker-processor.c: Use nicer debugging and include the time elapsed now in the status update. * src/trackerd/tracker-xesam-manager.c: Disable live search event updates during indexing. This causes havoc with the cache. The cache is already being written to by the indexer so the daemon becomes completely unresponsive. This is Enabled after indexing is finished. 2008-07-16 Martyn Russell * data/dbus/tracker-indexer.xml: Add argument information about signals. * src/libtracker-common/tracker-utils.[ch]: Change the time estimation function and added a function to convert seconds into a readable string format. * src/tracker-indexer/tracker-indexer-module.[ch]: * src/tracker-indexer/tracker-module.h: Added module_name to the PathInfo->file type. This isn't so great, it means a lot of string duplication. For now this is probably best, but ultimately we should have separate queues in indexer like we do in the daemon so we know by queue which module_name we are processing and we can do them in the order they are sorted by (which is unsorted right now but a potential future design). * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-main.c: Changed the flush time to 5 seconds from 10 and the transaction limit to 100 from 50. Also make sure we reset the timer when restarting an index so the estimated time is correct. Added elapsed time to the "Finished" and "Status" signals. Plus the current module name is in the "Status" signal too. * src/trackerd/tracker-dbus.c: Add signal signatures for the indexer proxy and remove som unused code. * src/trackerd/tracker-db.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-xesam-manager.[ch]: Don't initialize the indexer signal set up for XESAM here, do it in tracker-xesam-manager's init function. Also, only disconnect the signal on shutdown and make sure that is done BEFORE we shutdown the dbus module to avoid warnings. * src/trackerd/tracker-marshal.list: Added Indexer signal marshals. * src/trackerd/tracker-processor.c: Set up signal handlers to know when the indexer is finished and to get status updates. This way we can now effectively signal the daemon status as IDLE when we have finished indexing, not before as we did do. 2008-07-15 Ivan Frade * src/libtracker-db/tracker-db-interface.c: (tracker_db_result_set_get): Check that the result set was initialized before getting results. * src/libtracker-db/tracker-db-dbus.c: (tracker_dbus_query_result_to_strv): Fixed crash when the result set contains a NULL result. * tests/libtracker-db/Makefile.am * tests/libtracker-db/tracker-db-dbus-test.c: Added unit test to tracker_dbus_query_result_to_strv. 2008-07-15 Martyn Russell * data/dbus/tracker-indexer.xml: Removed GetRunning and SetRunning since these are quite pointless because DBus spawns the process if it isn't running. Added signals for "status" and "module-started"/"module-finished" to replace "index-updated". * src/libtracker-common/tracker-type-utils.c: Use gsize instead of gint to fix some compiler warnings. * src/libtracker-common/tracker-utils.[ch]: Added function to estimate time left in the indexer based on elapsed, items done and items remaining. * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-marshal-main.c: * src/tracker-indexer/tracker-marshal.list: Added marshalling for unique function signatures in signal emissions. * src/tracker-indexer/tracker-indexer.[ch]: Added more signals to know what is going on here. Also cleaned up the flusher so we do it either on a timeout OR maximum items reached per transaction. Also optimized the way we get TrackerIndexerPrivate, so the object->private pointer is used (this avoids casting and type checking internally to make things quicker). * src/tracker-indexer/tracker-main.c: Removed unused code in the indexer_initialize() and moved that code to the main() function since it was quite small. Implemented the "LowMemoryMode" by checking the config and passing the flag to the database manager when initializing that. * src/trackerd/tracker-monitor.c: Don't check if the indexer is running, simply do what the crawler does, which is to readd items to the queue if the indexer isn't running or couldn't be contacted. 2008-07-14 Ivan Frade * data/dbus/tracker-keywords.xml * src/trackerd/tracker-keywords.c * src/trackerd/tracker-keywords.h: Keywords dbus interface async. * src/libtracker-common/tracker-dbus.c * src/libtracker-common/tracker-dbus.h * tests/libtracker-common/tracker-dbus-test.c: (tracker_dbus_results_ptr_array_free): new function to free GPtrArrays in the dbus API. 2008-07-14 Laurent Aguerreche * src/trackerd/tracker-crawler.c: (tracker_crawler_new): Fix crawler->private->hal that was initialized with g_object_ref (config). Use g_object_ref (hal) instead. 2008-07-14 Martyn Russell * src/tracker-indexer/tracker-index.c: * src/tracker-indexer/tracker-indexer.c: Give better debugging and messaging information and add some detail about how long is estimated to be left before complete. Also, don't spam the console with EVERY file we process, make that a debug message. Instead update the console with every transaction flush. 2008-07-14 Martyn Russell * src/libtracker-db/tracker-db-manager.[ch]: Make it possible to remove all databases using a public API and use that when shutting down and reindexing (instead of removing the WHOLE directory where databases reside). * src/trackerd/tracker-crawler.c: Added a signal to know when all items have been sent to the indexer. * src/trackerd/tracker-daemon.[ch]: Use the new tracker-main API instead of setting tracker-> members ourselves. * src/trackerd/tracker-db.[ch]: Write the init and shutdown functions to require config, language and the file index which are used in a lot of db functions. * src/trackerd/tracker-dbus.[ch]: Use the _new() functions to create objects we register here and pass all the object we need instead of the Tracker pointer. * src/trackerd/tracker-main.[ch]: Completely remove the Tracker structure. Now we have APIs for everything that is needed externally and we make the rest private. * src/trackerd/tracker-processor.[ch]: Added state signalling so clients know if we are indexing, pending, etc. This needs a little more work so the indexer itself tells us what it is doing. * src/trackerd/tracker-search.[ch]: Fixed crasher where we didn't get the private struct from the TrackerSearch before dereferencing it for _get_count(). Also, removed _set_{config|language|...} functions which are used only when the object is created. Instead pass these to the _new() function. Fixed a memory leak here too, where we didn't unref all objects we ref when the object is created (in finalize). * src/trackerd/tracker-status.[ch]: Make it possible to signal state change without needing all the parameters that are sent in the function signature. * src/trackerd/tracker-utils.[ch]: Remove unused functions. 2008-07-14 Martyn Russell * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-main.c: Commit patch from Ivan to make the indexer DBus API completely asynchronous. 2008-07-14 Martyn Russell * src/trackerd/tracker-daemon.c: (tracker_daemon_get_services), (tracker_daemon_get_stats): Small code clean ups. 2008-07-04 Ivan Frade * src/tracker-indexer/tracker-index.c * tests/tracker-indexer/tracker-index-test.c: Added "remove" functionality in the indexer including unit tests. Delete a word from a document means to add the word with weight = -1. 2008-07-04 Philip Van Hoof * src/trackerd/tracker-daemon.c: Error handling for some DBus Apis 2008-07-04 Ivan Frade * data/dbus/tracker-daemon.xml * src/trackerd/tracker-daemon.[ch]: Tracker daemon dbus API is now async. 2008-07-04 Martyn Russell * src/trackerd/tracker-crawler.c: Don't check if the indexer is running first, just send files. Also, don't send the next batch until the last patch was sent successfully. Make sure we add files back onto the queue if they couldn't be sent. 2008-07-04 Ivan Frade * src/libtracker-db/tracker-db-dbus.c: (tracker_dbus_query_result_to_hash_table): Fixed warning caused by uninitialized GValues. 2008-07-04 Martyn Russell * src/trackerd/tracker-main.c: (check_runtime_level): Fixed this function so it sets the daemon to readonly mode depending on battery use + config and if there is a reindex needed. 2008-07-04 Martyn Russell * src/trackerd/tracker-main.c: (main): Make the message clearer as to why we are not running the crawler/indexer when in read only mode. 2008-07-04 Martyn Russell * src/libtracker-common/tracker-hal.h: Define TrackerHal as a void pointer if it is disabled and just don't use it anywhere, this is so function signatures can include it but it will be NULL where it is called. Can't think of a better way to do this really. * src/trackerd/tracker-crawler.[ch]: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-processor.[ch]: Create TrackerHal in main again and pass it around the processor and crawler to use. It is need in main now to detect if we are using the laptop battery or not to put the daemon into readonly mode. 2008-07-04 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (index_metadata_foreach): Avoid a crash. 2008-07-04 Carlos Garnacho * src/tracker-indexer/modules/evolution.c: Fix typo. 2008-07-04 Carlos Garnacho * src/tracker-indexer/modules/evolution.c (get_account_name_from_imap_uri): Avoid potential invalid memory reads. (account_text_handler): Check that we're getting the right url tag contents. (get_imap_accounts): Avoid potential leaks. 2008-07-04 Martyn Russell * src/libtracker-common/tracker-log.c: (log_output): Use g_strerror() and errno when we can't open the log file so we know why. * src/trackerd/tracker-main.c: Removed the throttle command line option, it is only used by the indexer which loads the config file separately. Also, plugged a leak in the check_runtime_level() function which checks if we are already running. 2008-07-04 Martyn Russell * src/tracker-indexer/modules/files.c: Fixed warning. * src/libtracker-common/tracker-config.[ch]: * src/tracker-indexer/tracker-main.c: (sanity_check_option_values): Removed config options we now no longer have, "OptimizationSweepCount", "Divisions", "BucketRatio" and "Padding". 2008-07-04 Philip Van Hoof * src/tracker-indexer/modules/evolution.c: Avoid a crash in case the url string of a Evolution account is empty. 2008-07-04 Martyn Russell * src/libtracker-common/tracker-log.c: If we can't open the log, add a "\n" to the error so we don't get 2 messages on the same line. * src/trackerd/tracker-crawler.c: Make sure we set module_name to NULL when getting the next queue with data and recheck the next queue in the running callback in case things have changed. 2008-07-03 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (tracker_indexer_files_check) (tracker_indexer_files_update) (tracker_indexer_files_delete): Return module name in case of error. 2008-07-03 Martyn Russell * src/trackerd/tracker-crawler.c: Make sure we have a queue PER module name, this way we don't get the "module not loaded" error when we stop crawling one module and start another (cause we were freeing the priv->module_name and the queues are handled AFTER crawling has stopped). 2008-07-03 Ivan Frade * src/libtracker-common/tracker-nfs-lock.c: using username instead of PID to the nfs lock filename. * src/trackerd/tracker-main.c: Updated code to handle multiple instances. 2008-07-03 Martyn Russell * src/libtracker-common/tracker-config.c: Don't set the LowMemoryMode to True by default! 2008-07-03 Martyn Russell * src/libtracker-common/tracker-config.[ch]: Removed ThreadStackSize since it is no longer used. * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Improved startup option sanity check output so we only show daemon or indexer options, not everything. 2008-07-03 Martyn Russell * src/libtracker-common/tracker-hal.c: (hal_setup_batteries), (hal_device_property_modified_cb): Fixed some debugging. * src/tracker-indexer/tracker-indexer.c: (set_up_throttle): Make sure we set to the right the default when we come off battery only use. 2008-07-03 Martyn Russell * src/libtracker-common/tracker-hal.c: (hal_setup_batteries), (hal_device_property_modified_cb): Make sure we call g_object_notify() when properties change. 2008-07-03 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Added throttling support. 2008-07-03 Philip Van Hoof * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: LowMemoryMode for the new generation! 2008-07-03 Philip Van Hoof * src/trackerd/tracker-files.c: Using the indexer to implement deleting files from the index 2008-07-02 Ivan Frade * src/tracker-indexer/tracker-index.c * tests/tracker-indexer/tracker-index-test.c: Implemented the addition of words to the index. Added unit tests to the new functionality. 2008-07-02 Martyn Russell * src/trackerd/tracker-main.c: * src/libtracker-common/tracker-config.[ch]: Removed the email client option, it is redundant now. Removed the index-modules since that is now going to be changed to be ignore-modules. * src/libtracker-common/tracker-log.c: Use gsize for log size and remove perror, instead use g_fprintf(stderr, ...) when we get an error so we don't recurse. * src/trackerd/tracker-crawler.c: Only add monitors when we process directories, so they are added breadth ways not depth ways. Also, make the debugging ALWAYS available, this changes with the -v option or the config setting. * src/trackerd/tracker-monitor.c: Don't add any monitors if it is disabled in the config. Also, make the debugging ALWAYS available. 2008-07-02 Philip Van Hoof * src/tracker-indexer/tracker-main.c * src/trackerd/tracker-main.c * src/libtracker-db/tracker-db-manager.c * src/libtracker-db/tracker-db-manager.h * tests/libtracker-db/tracker-db-manager-test-attach.c * tests/libtracker-db/union-performance.c * tests/libtracker-db/tracker-db-manager-test-unattach.c * tests/libtracker-db/tracker-db-manager-test-custom.c Removing the dir in the temp dir must always happen at startup, never at shutdown 2008-07-02 Carlos Garnacho * src/tracker-indexer/modules/files.c (tracker_metadata_get_embedded): * src/tracker-indexer/modules/evolution.c (get_imap_accounts): Plug some leaks. 2008-07-02 Carlos Garnacho * src/tracker-indexer/tracker-module.h: Remove get_directories() and get_ignore_directories() from modules API. The data specified in the .module file will be used. * src/tracker-indexer/tracker-indexer-module.[ch]: Remove internal API for these as well. * src/tracker-indexer/applications.c: * src/tracker-indexer/dummy.c: * src/tracker-indexer/evolution.c: * src/tracker-indexer/files.c: * src/tracker-indexer/gaim-conversations.c: Remove the corresponding functions in modules. 2008-07-02 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: Remove at the moment the code to ignore directories. I must be replaced with TrackerModuleConfig and would be used only if --process-all is specified. 2008-07-02 Carlos Garnacho * data/modules/evolution.module: Add local and IMAP storage directories. 2008-07-02 Carlos Garnacho * src/tracker-indexer/tracker-module.h: Add tracker_module_init() and tracker_module_shutdown() to modules API. This is needed since we now don't have an entry point that will be called just once, as happened with tracker_module_get_directories(). * src/tracker-indexer/tracker-indexer-module.[ch]: Updated. * src/tracker-indexer/tracker-indexer.c (close_module) (tracker_indexer_init): Ensure the initialization/shutdown methods are called for the modules. * src/tracker-indexer/modules/evolution.c: Use these functions to manage persistent data. 2008-07-02 Carlos Garnacho * src/libtracker-common/tracker-module-config.c (module_config_load_file): * src/libtracker-common/tracker-ontology.c (tracker_ontology_shutdown): * src/tracker-indexer/tracker-indexer.c (tracker_indexer_finalize): Plug some leaks. 2008-07-02 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: Get TrackerModuleConfig to get available modules, directories to scan, etc... 2008-07-02 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: * src/libtracker-db/tracker-db-dbus.c: * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-monitor.c: * tests/libtracker-common/tracker-dbus-test.c: Use a GQueue instead of a GAsyncQueue. We don't have any threads so there is no need for the extra locking overhead. 2008-07-02 Philip Van Hoof * src/trackerd/tracker-db.c: * src/trackerd/tracker-db.h: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: Commented out code that is simply never called 2008-07-02 Martyn Russell * src/trackerd/tracker-crawler.c: (crawler_finalize): Don't use g_free() to free a GFile. This is a hangover from when the files and directories queues had strings in them, now they have GFiles. 2008-07-02 Philip Van Hoof * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-db.c: Various database connection usage improvements * src/libtracker-common/tracker-log.c: Added a perror() to find out about a race condition while writing to the log file 2008-07-02 Ivan Frade * tests/Makefile.am * tests/tracker-indexer/Makefile.am * tests/tracker-indexer/tracker-index-test.c: Added tests to tracker-index. 2008-07-02 Martyn Russell * src/libtracker-common/tracker-module-config.c: * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-monitor.c: Plugged leaks which took the memory lost from 1.8Mb (33,498 blocks) to 36 bytes (1 block). Good old valgrind! 2008-07-02 Martyn Russell * src/trackerd/tracker-crawler.c: (tracker_crawler_start): Actually set the path before checking if it exists or not, eek. 2008-07-02 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Memory leak fix 2008-07-02 Philip Van Hoof * src/trackerd/tracker-search.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-manager.c: * src/libtracker-db/tracker-db-manager.h: Replaced a few strings with defines 2008-07-02 Philip Van Hoof * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer-db.h: * src/tracker-indexer/tracker-indexer.c: Transactions per TRANSACTION_MAX items One possible cause for the constraint errors fixed 2008-07-01 Philip Van Hoof * src/tracker-indexer/tracker-indexer.h: * src/trackerd/tracker-search.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-db.h: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: * src/libtracker-common/tracker-service.h: * src/libtracker-common/tracker-ontology.c: * tests/libtracker-db/tracker-db-manager-test-attach.c: * data/sqlite-stored-procs.sql: Removes attach_iface and attach_all as this was broken by design Adds "Xesam" as possible service for get_db_interface_by_service Removes tracker_db_manager_get_db_interface_by_service's content boolean since ALL users of it require the content db attached Makes tracker_db_manager_get_db_interface always return just a connection to just the requested file. Making it ideal for the indexer Makes the Xesam code always use get_db_interface_by_service Makes some of the tracker_db_manager_get_db_interface users that expected an attached connection use get_db_interface_by_service instead Makes some of the tracker_db_manager_get_db_interface users request the right db file. Some of these requested FILE_META while the tables that they influence or request from reside in common. Prepares for preferred use of get_db_interface_by_service over tracker_db_manager_get_db_interface Commit reviewed and approved by Ivan Frade 2008-07-01 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: Added a function to convert n GQueue GFile items to a gchar**. * src/tracker-indexer/tracker-indexer.[ch]: Include the number of items that were indexed in the finished signal. * src/tracker-indexer/tracker-main.c: Don't quit immediately, wait 10 seconds or so, otherwise if the daemon calls "are we running" it replies and quits before the daemon can send the next message. * src/trackerd/tracker-crawler.c: Added back the code to handle sending files to the indexer. * src/trackerd/tracker-processor.c: Removed commented out code. 2008-07-01 Carlos Garnacho Generate email:// uris for IMAP in the Evolution module. * src/libtracker-common/tracker-utils.[ch] (tracker_string_remove): New function, removes a substring from a string in place. * configure.ac: * src/tracker-indexer/modules/Makefile.am: Add optional dependency on GConf, compile the Evolution module if it's available. * src/tracker-indexer/modules/evolution.c: Parse and find out correct email:// uri for IMAP messages from the /apps/evolution/mail/accounts GConf key. 2008-07-01 Martyn Russell * src/libtracker-common/tracker-module-config.[ch]: Added index_file_patterns to the API and generate the patterns for the crawler to use for pattern matching files to index. * src/trackerd/tracker-crawler.c: Make sure we check the file_index_patterns now. Improve statistics. * src/trackerd/tracker-marshal.list: Added to extend finished signal to include some statistics. * src/trackerd/tracker-processor.c: Make use of the enable/disable flag in the module config. 2008-07-01 Ivan Frade * tests/common/tracker-test-helpers.[ch] * tests/libtracker-common/tracker-dbus-test.c: (tracker_test_helpers_get_nonutf8) Moved to common helper functions. * tests/libtracker-common/non-utf8.txt: Updated test string to look like a file. * tests/libtracker-common/Makefile.am * tests/libtracker-common/tracker-file-utils-test.c: Test for (tracker_path_list_filter_duplicates) and (tracker_path_evaluate_name) 2008-07-01 Martyn Russell * src/trackerd/tracker-crawler.c: (crawler_finalize): * src/trackerd/tracker-main.c: (main): Fixed some shutdown warnings and turned off the debugging in the crawler. 2008-07-01 Martyn Russell * data/modules/files.module: Added $HOME to the list of recursive monitored directorys. * src/libtracker-common/tracker-file-utils.c: Add comment to the source so we know if memory is created or if a new list is the only thing that is created from the tracker_path_list_filter_duplicates() function. * src/libtracker-common/tracker-module-config.[ch]: Push all paths returned from config into a hash table not a list, this way we can have APIs to look up strings more quickly. Also added APIs to get directory and file ignore patterns (these patterns are created by the module config now). * src/trackerd/tracker-crawler.[ch]: Make the crawler crawl ALL locations according to the module configuration details. The ignore patterns for files and directories are now retrieved from this config too. Also, stole the code from the indexer to handle directory crawling breadth wise instead of depthwise. This means all the top level files are monitored and indexed first since they are usually the most important. * src/trackerd/tracker-processor.c: Added code to iterate all modules and crawl each of them in turn. More work is needed here to do other things like setting up monitors. This shouldn't be done in the crawler on EVERY directory as it currently is. 2008-06-30 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-db.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process.c: * src/trackerd/tracker-process.h: * src/trackerd/tracker-processor.c: * src/trackerd/tracker-utils.c: Renamed tracker-process to tracker-processor 2008-06-30 Carlos Garnacho * src/libtracker-common/tracker-module-config.c (module_config_load): Do not call g_file_info_get_name() twice. 2008-06-30 Carlos Garnacho Change tracker-indexer DBus methods, now they also take a string for the module name to use when indexing a path. * data/dbus/tracker-indexer.xml: Add new argument to functions. * src/tracker-indexer/tracker-indexer.[ch] (tracker_indexer_files_check) (tracker_indexer_files_update) (tracker_indexer_files_delete): Lookup the passed module name instead of just assuming the "files" module. * /src/trackerd/tracker-crawler.c (indexer_get_running_cb): * /src/trackerd/tracker-monitor.c (indexer_get_running_cb): Update callers, at the moment it just assumes the "files" module. 2008-06-30 Carlos Garnacho Make tracker-indexer just process petitions through DBus by default, add a --process-all parameter to allow standalone testing. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_process_all): Added, queues all known modules in the modules list, so all data is processed. * src/tracker-indexer/tracker-main.c: Add a --process-all commandline argument, which triggers all modules processing without need of DBus petitions. 2008-06-30 Martyn Russell * data/modules/applications.module: Changed the location to $prefix/share/applications for now, it was just $prefix/share, there are too many files there and we need the appropriate ignore patterns in place before we can really do this. * src/trackerd/tracker-main.[ch]: Removed the HAL and Crawler from the Tracker struct. Now they are created and stored in the TrackerProcessor object. * src/trackerd/tracker-process.[ch]: Added the initial workings from the indexer code which Carlos wrote and copied over to the daemon to start iterating all locations according to the module config. 2008-06-27 Ivan Frade * tests/libtracker-common/tracker-type-utils.c: (string_to_date): Using GDate instead of time_t to compare the result without timezone. 2008-06-27 Ivan Frade * tests/**: Added license in .c/.h files. 2008-06-27 Philip Van Hoof * svn merge -r 1769:1798 ../xesam-support 2008-06-27 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.c (tracker_db_create_service): Allow modules to specify a custom dirname and basename for the service. * src/tracker-indexer/modules/evolution.c: And use it for local mail. IMAP has yet to come. 2008-06-27 Ivan Frade * test/libtracker-common/tracker-type-utils-test.c: (test_date_to_string): now it doesnt depend on the timezone of the tester. 2008-06-27 Philip Van Hoof * tests/libtracker-db/union-performance.c: Added a performance test for a UNION query structure vs. views that me and ottela want to start using for certain Xesam related queries 2008-06-27 Philip Van Hoof * src/trackerd/tracker-xesam-query.c: * src/trackerd/tracker-rdf-query.c: Incorrect queries (user input) should never crash the service (critical assertions) 2008-06-27 Martyn Russell * src/libtracker-common/tracker-module-config.[ch]: Add API to get all modules. Fixed the module naming now we don't use the .xml extension. * src/trackerd/tracker-main.c: * src/trackerd/tracker-process.[ch]: Start by setting up monitors and recursive monitors. The recursive monitors are still not finished, this requires some work. 2008-06-27 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-module-config.c: Added tracker_path_evaluate_name() to convert $HOME and "~/foo" into real paths. This is now used by the module config and the main config module when loading directory strings or string lists. 2008-06-27 Philip Van Hoof * src/tracker-indexer/Makefile.am: Fixed a LIBS in an INCLUDES * tests/libtracker-db/tracker-db-manager-test-attach.c: Fixed the tests, the reinit tests made a few incorrect assumptions. Hence why they failed. I just removed them for now. 2008-06-26 Carlos Garnacho * data/modules/Makefile.am: * data/modules/*.xml: rename to *.module. * data/modules/evolution.module: Added. 2008-06-26 Martyn Russell * data/modules/applications.xml: * data/modules/files.xml: * data/modules/gaim-conversations.xml: Use "true" not "True", breaks the GKeyFile. * src/libtracker-common/tracker-module-config.c: Don't set the modules to NULL and set GError to NULL before using it. 2008-06-26 Martyn Russell * src/libtracker-common/tracker-module-config.c: Make sure we set the separator as the right thing when building the path here. 2008-06-26 Martyn Russell * configure.ac: * data/Makefile.am: * data/modules/Makefile.am: * data/modules/applications.xml: * data/modules/files.xml: * data/modules/gaim-conversations.xml: Added these module files which should get read on startup. * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-module-config.[ch]: Added this module to load the .xml files which get installed into $prefix/share/tracker. * src/libtracker-common/tracker-type-utils.[ch]: Added tracker_gslist_to_string_list(). * src/trackerd/tracker-crawler.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process.[ch]: Use the new module config code when initialising the process module. 2008-06-26 Ivan Frade * tests/libtracker-db/run-test-in-tmp-dir.sh * tests/libtracker-db/tracker-db-manager-test-attach.c: Added more tests. 2008-06-26 Martyn Russell * src/trackerd/tracker-db.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process.c: * src/trackerd/tracker-process.h: Remove all functions in tracker-process and clean up any place that depends on functions from there currently. 2008-06-26 Philip Van Hoof * src/trackerd/tracker-query-tree.c: Replaced a g_value_get_pointer with a g_value_get_object. It seems that the indexer instance is nowadays a GObject rather than a arbritary pointer. 2008-06-26 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Giving out correct ifaces with correct attachments for service-specific database connections 2008-06-26 Martyn Russell * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-indexer.[ch]: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-monitor.c: * src/trackerd/tracker-query-tree.[ch]: * src/trackerd/tracker-search.[ch]: Refactored the TrackerIndexer code and API so we now use GObject and do proper type checking in the query tree code. The indexer API has been cut down to cater JUST the daemons needs here. All the indexing code is in the indexer instead now. 2008-06-26 Philip Van Hoof * svn merge -r 1726:1769 ../xesam-support 2008-06-26 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-email.h: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-plugin.h: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-email-utils.h: * src/trackerd/tracker-email.c: * src/trackerd/tracker-email.h: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process.c: Remove all email modules here, this code is all done in the indexer now or is in the process of being moved over. It is redundant in the daemon. 2008-06-26 Martyn Russell * src/tracker-indexer/tracker-indexer.c: Cleaned up some code. * src/trackerd/Makefile.am: * src/trackerd/tracker-db.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-process-files.h: * src/trackerd/tracker-process.c: * src/trackerd/tracker-utils.c: Renamed tracker-process-files.[ch] to tracker-process.[ch] since this module will be stripped and used to process all categories of data not just files. 2008-06-25 Ivan Frade * tests/libtracker-db/Makefile.am * tests/libtracker-db/tracker-db-manager-common.c * tests/libtracker-db/tracker-db-manager-common.h * tests/libtracker-db/tracker-db-manager-test-custom.c: Added test creating "custom attach" connections 2008-06-25 Carlos Garnacho * src/tracker-indexer/modules/Makefile.am: Do not put libs in INCLUDES. 2008-06-25 Michael Biebl * filters/application/vnd.*: Use odt2txt instead of o3totxt. o3read has been deprecated and superseded by odt2txt. See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477311 * README: Add odt2txt to the list of recommended dpendencies. * configure.ac: * src/Makefile.am: * src/text-filters/*: Remove inlined sources of o3totxt. They are no longer used. 2008-06-24 Martyn Russell * src/tracker-indexer/modules/Makefile.am: Use "Tracker" as the domain (not NULL) for modules. 2008-06-24 Martyn Russell * src/libtracker-common/tracker-log.c: (log_output), (tracker_log_handler), (tracker_log_init): Actually make sure we log to disk, we were just printing to screen. * src/tracker-indexer/Makefile.am: Change the domain for the indexer to just "Tracker", the libraries are this too, makes sense to stay consistent. 2008-06-24 Ivan Frade * tests/libtracker-db/Makefile.am * tests/libtracker-db/run-test-in-tmp-dir.sh * tests/libtracker-db/tracker-db-manager-common.c * tests/libtracker-db/tracker-db-manager-common.h: Common functions to -attach and -unattach tests * tests/libtracker-db/tracker-db-manager-test-unattach.c: new test to tracker_db_manager with no attach_all * tests/libtracker-db/tracker-db-manager-test.c: renamed to -attach.c * tests/libtracker-db/tracker-db-manager-test-attach.c: 2008-06-24 Carlos Garnacho * src/tracker-indexer/modules/dummy.c: Update API, also add more thorough comments about what should be going on in each method. 2008-06-24 Carlos Garnacho * src/tracker-indexer/modules/Makefile.am: * src/tracker-indexer/modules/evolution.c: Module for Evolution, initially it supports local and IMAP mailboxes. It's still missing message body and attachments retrieval. 2008-06-24 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.c (tracker_indexer_module_file_iter_contents): return FALSE if file->data is NULL, since there is no possibility the module implements this function for such a file, since it has to keep state internally. 2008-06-24 Carlos Garnacho Extend/Change indexer modules API. From now on, modules will deal with TrackerFile structs instead of paths. This struct, besides the path, contains a pointer to private data that modules can attach/free through tracker_module_file_get_data() and tracker_module_file_free_data(). In order to deal with files that are potential containers for sets of metadata, tracker_module_file_iter_contents() has been added, for modules that implement this call, tracker-indexer will be able to collect data through tracker_module_file_get_metadata(). If iter_contents() returns FALSE, the indexer assumes no more data is left in the file, moving on to the next one. * src/tracker-indexer/tracker-module.h: New header, modules must conform to the API described in it. * src/tracker-indexer/tracker-indexer-module.[ch]: Use definitions from tracker-module.h (tracker_indexer_module_file_new) (tracker_indexer_module_file_free): New functions to create/free TrackerFile structs. (tracker_indexer_module_file_iter_contents): New function to iterate through a file contents, the meaning of this will depend on the module implementation. * src/tracker-indexer/tracker-indexer.c: Deal with TrackerFile structs. (process_file): Iterate through file contents, once the file doesn't have more elements to process, the file will be removed from the queue. * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/files.c: Adapt to the new API. 2008-06-24 Philip Van Hoof * src/tracker-indexer/tracker-indexer.c: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: First piece of the puzzle for transactions in the indexer 2008-06-24 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-config.c: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/modules/Makefile.am: Monitor config file for changes and reload if it does. 2008-06-24 Ivan Frade * tests/common/Makefile.am * tests/scripts/Makefile.am * tests/trackerd/xesam/Makefile.am: Including Makefile.decl to allow "make test" to run smoothly. * tests/Makefile.am * tests/libtracker-db/Makefile.am * tests/libtracker-db/run-test-in-tmp-dir.sh * tests/libtracker-db/tracker-db-manager-test.c: Initial tracker_db_manager test files. 2008-06-24 Martyn Russell * src/libtracker/tracker.c: (tracker_search_metadata_by_text_async): Re-added the async DBus API we removed which breaks tracker being installed to /usr due to applications depending on this API. 2008-06-24 Martyn Russell * src/tracker-indexer/tracker-index.[ch]: * src/tracker-indexer/tracker-indexer.c: Added a timer and a count so we know when we are finished how long it took and how many items were indexed. Also, don't flush after every item, flush every 10 seconds or so. 2008-06-24 Martyn Russell * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-monitor.[ch]: Now we detect the backend used for monitoring and set the limits accordingly. We also now provide the warning (if we reach the limit) only once and make the number of monitors we couldn't add available by API. 2008-06-24 Philip Van Hoof * src/trackerd/tracker-db.c: * src/trackerd/tracker-xesam-manager.c: * src/libtracker-db/tracker-db-manager.c: * data/sqlite-stored-procs.sql: Fix for a warning about table Events not existing 2008-06-24 Philip Van Hoof * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: * src/libtracker-db/tracker-db-manager.c: * src/libtracker-db/tracker-db-manager.h: tracker_db_manager_shutdown must not remove the directory in tmp with cache.db in case the indexer calls it. 2008-06-24 Philip Van Hoof src/tracker-indexer/tracker-indexer.c: The table Events for tracker_db_create_event only exists in cache.db, not in common.db, therefore patched it to use a priv->cache instead of priv->common 2008-06-24 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Normalizing attachments (for example cache.db was attached twice, which gave warnings). 2008-06-23 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Fix for "database cache is already in use" warning (removing a hack that is no longer needed, this hack was put in place because before fixes that were done today was tracker-indexer removing cache.db after some time. The hack caused an unwanted warning, though) 2008-06-23 Martyn Russell * src/libtracker-db/tracker-db-interface-sqlite.c: Improve error reporting here so we say if the query used is foobar OR if it is a geniune error. * src/libtracker-db/tracker-db-manager.c: Strip whitespace before trying to load queries from SQL files. Also, present a count when done so we know how many we loaded as a measure of testing it worked properly. 2008-06-23 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Also setting DB parameters in case of attach_all=true. Fixes load_sql_file for sqlite-services.sql for file-meta.db and email-meta.db (UTF8 collate function was not set) 2008-06-23 Martyn Russell * src/libtracker-db/tracker-db-manager.[ch]: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Make the force_reindex, remove cache and attach all settings into a flag we pass when initialising the database manager. 2008-06-23 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Putting a warning in case of problems while loading a .sql file 2008-06-23 Philip Van Hoof * tests/scripts/dummy_data_start.sh.in * tests/scripts/data/email-contents.sql * tests/scripts/data/file-meta.sql * tests/scripts/data/common.sql * tests/scripts/data/file-contents.sql * tests/scripts/data/email-meta.sql * tests/scripts/data/xesam.sql: Cleaned up the test data now that the databases are (more or less) initialized correctly 2008-06-20 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: * data/sqlite-service-triggers.sql: * data/sqlite-tracker-triggers.sql: Using a transaction around database initializations. This speeds up initialization, makes it more robust (what if we get killed while initializing) and it seems to avoid a call for fsync() when we have PRAGMA synchronous = NORMAL (which we currently do have for all database connections). Point of opinion about this commit: we should utilize transactions more often in the code. It helps us avoid corruption and massively speeds up INSERTs and UPDATEs: http://www.sqlite.org/speed.html: At Executive Summary: SQLite works best if you group multiple operations together into a single transaction. * svn merge -r 1683:1726 ../xesam-support 2008-06-20 Martyn Russell * src/libtracker-db/tracker-db-manager.c: Default to attach_all = TRUE for database creation. * src/trackerd/tracker-main.c: Don't remove the cache directory on startup and shutdown, let the database manager handle that. 2008-06-20 Martyn Russell * src/libtracker-db/tracker-db-manager.c: Keep a reference to each TrackerDBInterface and set the attach_iface to be the first one we create and use that to attach all new interfaces we create. Also don't create the XESAM database unless we have an attach_iface because that is needed. This all works except now the Services and Events tables are no longer created so the indexer spits out warnings. If we DON'T attach_all when creating the databases, the Services table is created but the Events table still is not. This needs fixing. 2008-06-20 Martyn Russell * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: Removed DatabaseReindex and DatabaseCheck, now the daemon ALWAYS makes sure the database is ready instead of the indexer. * data/sqlite-tracker.sql: Remove the ANALYZE statement after creating the tables, this is what was causing the hang when attaching ALL databases during creation. * src/libtracker-db/tracker-db-manager.[ch]: Reworked the way we initialise so we create all databases on startup and check for each database file too. If even one of them doesn't exist we recreate all databases (with the exception of the cache). We also don't remove directories now, just the database files when cleaning up. * src/tracker-indexer/tracker-main.c: No need to check if a reindex is required now and removed all reindex command line options. * src/trackerd/tracker-main.c: Don't call the indexer over dbus, just rely on tracker_db_manager_init() to set up the databases correctly and to check if they exist properly. 2008-06-19 Martyn Russell * src/libtracker-db/tracker-db-manager.c: * src/trackerd/tracker-main.c: Again, create the databases when needed on demand and don't create them when we initialise the database manager so the trackerd doesn't try to create the databases. Also, make sure we create the directories we need for the nfs locking before we do it. 2008-06-19 Martyn Russell * src/libtracker-db/tracker-db-manager.[ch]: Clean up the API a bit, separate the functionality so we have an API to create the databases, delete the databases and close them all. * src/trackerd/tracker-dbus.[ch]: Removed tracker_dbus_indexer_start(), it is unused now. * src/tracker-indexer/tracker-metadata.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: DON'T use PID, since it is shared between the indexer and the daemon. * src/trackerd/tracker-main.c: Added a call to the blocking version of the DBus API to check the database state from the indexer so we make sure the indexer ALWAYS creates the database if it doesn't exist in the first place. Plus if we force a reindex on start up, the indexer is the one that does it. Also, when creating the system temporary directory, * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-monitor.c: Updated to renamed API. * data/dbus/tracker-indexer.xml: * src/tracker-indexer/tracker-indexer.[ch]: Renamed some API calls and also added a call to check the database state and return if it is the first time it will be indexed. Plus the user can force a reindex while checking. This is meant to be called from the daemon on start up to make sure the database is ready to use. 2008-06-19 Martyn Russell * data/dbus/tracker-files.xml: * data/dbus/tracker-keywords.xml: * data/dbus/tracker-metadata.xml: * data/dbus/tracker-search.xml: Re-added the Nautilus API we commented out and set all API which is to be removed as deprecated. * src/libtracker/tracker.c: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-files.[ch]: * src/trackerd/tracker-metadata.c: Readded and fixed APIs relating to XML file changes. 2008-06-19 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (set_up_databases): Fix typo. 2008-06-19 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (set_up_databases): Create databases on DB manager initialization. (tracker_db_manager_init): Ensure the tmp dir is created. (tracker_db_manager_shutdown): And removed here. (tracker_db_manager_get_db_interface): No need to create the database lazily here. 2008-06-18 Martyn Russell * src/libtracker-common/tracker-ontology.c: Make sure we finalize properly by setting all lists and hash tables to NULL. Also, when returning a TrackerService or any other GObject from the hash tables, don't return it as a gpointer*, it is just a gpointer. * src/libtracker-db/tracker-db-interface-sqlite.c: Added some messaging to know when the databases are opened and closed. * src/libtracker-db/tracker-db-manager.c: Initialise and shutdown the ontology module in this module since we depend on it. We also shut it down and reinitialise it when we reindex the database because there is information we check against there when adding new tables to the new databases. * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Don't initialise and shutdown the ontology module now the tracker-db-manager does it. * src/tracker-indexer/modules/files.c: Fixed crasher where service type is returned as NULL before using strcmp. * src/tracker-indexer/tracker-indexer.c: Added some sliff and sloff :) * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-utils.c: Removed tracker_db_close() and tracker_db_refresh_all() they are unused or do nothing. 2008-06-17 Martyn Russell * data/dbus/tracker-indexer.xml: * src/libtracker-db/tracker-db-manager.[ch]: * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-main.c: Initial work to make reindexing the database done ONLY by the tracker-indexer, not by the daemon. Needs a little more work. But command line -r works nicely for the indexer so far, just need the dbus part to work properly. 2008-06-17 Martyn Russell * src/libtracker-common/tracker-dbus.c: Improved the tracker_dbus_async_queue_to_strv() function so it doesn't crash when handling large numbers of files. 2008-06-17 Martyn Russell * src/trackerd/tracker-monitor.c: Turned off debugging. 2008-06-17 Martyn Russell * data/dbus/tracker-indexer.xml: * src/libtracker-common/tracker-dbus.c: (tracker_dbus_async_queue_to_strv): Don't wait if there is no data in the async queue with g_async_queue_timed_pop(). * src/tracker-indexer/tracker-indexer.[ch]: Added functions to be notified of created, deleted or updated files from the daemon. * src/trackerd/tracker-crawler.c: Don't block when shutting down by calling g_async_queue_pop() on an empty queue. * src/trackerd/tracker-monitor.c: Push all events to the indexer after queueing them first. 2008-06-17 Philip Van Hoof * tests/scripts/dummy_data_start.sh.in: * tests/scripts/xdg_dirs.source: * tests/scripts/xdg_dirs.unsource: * tests/scripts/dummy_data_stop.sh.in: * tests/scripts/data/email-contents.sql: * tests/scripts/data/file-meta.sql: * tests/scripts/data/common.sql: * tests/scripts/data/file-contents.sql: * tests/scripts/data/email-meta.sql: * tests/scripts/data/xesam.sql: * configure.ac: Added dummy test data for the unit tests 2008-06-17 Martyn Russell * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-crawler.c: * src/trackerd/tracker-main.c: Use the config initial_sleep setting for the daemon only, not the indexer, this way we don't wait for the indexer to be "running". 2008-06-17 Martyn Russell * src/libtracker-common/tracker-hal.c: * src/libtracker-common/tracker-log.c: * src/libtracker-common/tracker-nfs-lock.c: * src/libtracker/tracker-files.c: * src/libtracker/tracker-get-meta-for-folder.c: * src/libtracker/tracker-query.c: * src/tracker-applet/tracker-applet.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-main.c: Changed all locations to use "initialize" and "finalize" instead of the en_GB version for consistency. 2008-06-17 Martyn Russell * src/trackerd/tracker-crawler.c: (path_should_be_ignored): Do UTF-8 validity check here instead of later on when we have wasted more time processing files and folders. 2008-06-16 Philip Van Hoof * src/trackerd/tracker-crawler.c: Bugfix, no longer freeing up already freed GStrv 2008-06-16 Martyn Russell * src/trackerd/tracker-crawler.c: (crawler_finalize): Make sure we clean up the async queue if we finalise the crawler and that means cleaning up the data on the queue too. 2008-06-16 Martyn Russell * src/trackerd/tracker-crawler.c: Make all calls to GIO asynchronous. This has increased the speed of traversing the file system. Also we now only get the name and type of every file we traverse, this significantly improved performance. Debug statements are turned off now by default to improve performance. * src/trackerd/tracker-monitor.c: Debug statements are turned off now by default to improve performance. 2008-06-16 Ivan Frade * configure.ac * tests/Makefile.am * tests/common/Makefile.am * tests/common/tracker-test-helpers.c * tests/common/tracker-test-helpers.h: New library with common code for all tests. * tests/libtracker-common/tracker-ontology-test.c * tests/libtracker-common/Makefile.am * tests/libtracker-common/tracker-type-utils-test.c: Added unit tests to tracker-type-utils. * src/libtracker-common/tracker-type-utils.c: Minor fixes to pass the tests. 2008-06-13 Philip Van Hoof * svn merge -r 1656:1683 ../xesam-support 2008-06-13 Philip Van Hoof * src/trackerd/tracker-crawler.c: No more blocking of the mainloop 2008-06-13 Ivan Frade * src/libtracker-common/tracker-dbus.c: Replaced g_warning with g_message. g_warning abort unit tests. * tests/libtracker-common/Makefile.am * tests/libtracker-common/non-utf8.txt * tests/libtracker-common/tracker-dbus-test.c: Unit tests to tracker-dbus helper methods, using non-utf8 strings. 2008-06-13 Martyn Russell * src/libtracker-common/tracker-dbus.c: (tracker_dbus_slist_to_strv), (tracker_dbus_async_queue_to_strv): * src/libtracker-db/tracker-db-dbus.c: (tracker_dbus_query_result_to_strv), (tracker_dbus_query_result_to_hash_table), (tracker_dbus_query_result_to_ptr_array): Now we UTF-8 check ALL strings in these functions since they are sent over DBus and we don't want DBus calling _exit() for us if the string is invalid UTF-8. 2008-06-13 Philip Van Hoof * tests/trackerd/tracker-xesam-test.c: * tests/trackerd/tracker-xesam-session-test.c: * tests/trackerd/tracker-xesam-hit-test.c: * tests/trackerd/tracker-xesam-hits-test.c: * tests/trackerd/tracker-xesam-test.h: Making the Xesam unit tests work 2008-06-13 Philip Van Hoof * tests/trackerd/tracker-xesam-test.c * tests/trackerd/tracker-xesam-hit-test.c * tests/trackerd/Makefile.am * tests/trackerd/tracker-xesam-hits-test.c * tests/trackerd/tracker-xesam-hit-test.h * tests/trackerd/xesam/xesam-g-globals-private.h * tests/trackerd/xesam/Makefile.am * tests/trackerd/tracker-xesam-hits-test.h Ported two more tests from xesam-glib's tests repository over. These tests are not fully functional at the moment of writing (we need to make them succeed in order to support Xesam, the tests themselves are or should be ~ correct). 2008-06-13 Philip Van Hoof * tests/trackerd/tracker-xesam-test.c: * tests/trackerd/tracker-xesam-session-test.c: * tests/trackerd/Makefile.am: * tests/trackerd/tracker-xesam-session-test.h: * tests/trackerd/xesam/xesam-g-testsearcher.h: * tests/trackerd/xesam/xesam-g-debug-private.h: * tests/trackerd/xesam/xesam-g-utils.h: * tests/trackerd/xesam/xesam-g-test-query-builder.c: * tests/trackerd/xesam/gtestextensions.c: * tests/trackerd/xesam/Makefile.am: * tests/trackerd/xesam/xesam-g-test-query-builder.h: * tests/trackerd/xesam/gtestextensions.h: * tests/trackerd/xesam/xesam-g-testsearcher.c: * configure.ac: Added infrastructure and first test example (ported from xesam-glib's tests repository) for testing Xesam 2008-06-12 Mikael Ottela * src/trackerd/tracker-main.c * src/trackerd/tracker-crawler.c * src/libtracker-db/tracker-db-manager.c * src/libtracker-common/tracker-xesam-field.c * src/libtracker-common/tracker-xesam-field.h * src/libtracker-common/tracker-xesam-ontology.c * src/libtracker-common/tracker-field.h * src/libtracker-common/tracker-xesam-ontology.h * src/libtracker-common/Makefile.am * data/sqlite-stored-procs.sql * data/sqlite-xesam.sql Switched xesam to use standard XesamField and XesamOntology. * src/trackerd/tracker-xesam-live-search.c Bugs in handling of list-type return values fixed. 2008-06-13 Martyn Russell * src/libtracker-common/tracker-file-utils.[ch]: * src/trackerd/tracker-crawler.c: Moved tracker_path_list_filter_duplicates() to the file utils. * src/trackerd/tracker-monitor.[ch]: Use GFile instead of strings in the API and added work to print file changes to the console. * src/libtracker-common/tracker-dbus.[ch]: Added a new function to convert 'n' items from a GAsyncQueue to a GStrv for sending files to the indexer process. * src/trackerd/tracker-crawler.c: Use the new tracker_dbus_async_queue_to_strv() API to generate the GStrv instead of using a GPtrArray. * src/trackerd/tracker-monitor.c: Save the config variable on initialisation. * src/trackerd/tracker-db.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-process-files.c: Removed all tracker_monitor_() calls, this shouldn't be done from here. 2008-06-12 Martyn Russell * src/libtracker-common/tracker-dbus.[ch]: Added a new function to convert 'n' items from a GAsyncQueue to a GStrv for sending files to the indexer process. * src/trackerd/tracker-crawler.c: Use the new tracker_dbus_async_queue_to_strv() API to generate the GStrv instead of using a GPtrArray. * src/trackerd/tracker-monitor.c: Save the config variable on initialisation. 2008-06-12 Philip Van Hoof * svn merge -r 1538:1656 ../xesam-support 2008-06-12 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (tracker_indexer_process_files): Queue files that get through DBus calls. At the moment we just assume we want the files module. 2008-06-12 Martyn Russell * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-crawler.c: Change all instances of g_strfreev() on dynamically allocated GPtrArrays, since they grow, the strings should be freed separately and the array itself after that, this is also better than g_strfreev() in case one or the other changes to a GSlice implementation. * src/trackerd/tracker-main.c: * src/trackerd/tracker-monitor.[ch]: Pass the TrackerConfig since we need it to know if we shouldn't monitor certain locations. 2008-06-12 Philip Van Hoof * svn merge -r 1538:1656 ../xesam-support 2008-06-12 Philip Van Hoof * tests/trackerd/tracker-xesam-test.c: * tests/trackerd/Makefile.am: * tests/Makefile.am: * configure.ac: Added unit test infrastructure for Xesam 2008-06-12 Martyn Russell * src/libtracker-common/tracker-hal.c: Always initialise the hash tables to avoid errors when we can't contact the HAL DBus service. * src/trackerd/linux-inotify-syscalls.h: Removed now we don't need it thanks to the GIO file monitoring. * src/trackerd/tracker-crawler.c: Get the locations to crawl from the config now and add a default of $HOME. Also added function to check that we don't crawl the same location more than once and added more locations to the ignore list. * src/trackerd/tracker-db.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-process-files.c: Removed the need for the TrackerDBInterface when adding or removing monitors. * src/trackerd/tracker-main.c: Added back the initial_sleep command line argument so we can at least inspect the startup details and logging before the console is spammed with file crawling information. * src/trackerd/tracker-monitor.[ch]: Implemented the basics of file monitoring here using the new GFileMonitor API. 2008-06-12 Ivan Frade * tests/libtracker-common/tracker-ontology-test.c: Added unit test to tracker-ontology 2008-06-12 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c: Actually deal with a single TrackerDBInterface if attach_all is TRUE. 2008-06-12 Ivan Frade * Makefile.decl: Make rules to build unit tests. Copied from glib. * configure.ac: Added rules to build unit tests when the glib installed version supports it. 2008-06-12 Carlos Garnacho * src/libtracker-common/tracker-ontology.c (ontology_hash_lookup_by_str) (tracker_ontology_add_service_type) (tracker_ontology_add_field): Use collation keys for hashtable lookups. 2008-06-12 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (db_get_static_data) (db_row_to_service): Plug a few leaks * src/libtracker-common/tracker-ontology.c (tracker_ontology_init): Set the GDestroyNotify handler for mime/metadata keys, as these hashtables have to take ownership of the strings passed. 2008-06-11 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/libtracker-common/tracker-xesam-field.c: *src/libtracker-common/tracker-xesam-field.h: List-field values in get_hit_data 2008-06-11 Mikael Ottela * src/trackerd/tracker-db.c * src/trackerd/tracker-main.c * src/trackerd/Makefile.am * src/trackerd/tracker-xesam-live-search.c * src/tracker-indexer/tracker-indexer.c * src/tracker-indexer/tracker-indexer-db.c * src/tracker-indexer/tracker-indexer-db.h * src/libtracker-common/tracker-parser.c * src/libtracker-common/Makefile.am * src/libtracker-common/tracker-xesam-ontology.c * src/libtracker-common/tracker-xesam-ontology.h * src/libtracker-common/tracker-xesam-field.c * src/libtracker-common/tracker-xesam-field.h * src/libtracker-db/tracker-db-manager.c * data/sqlite-stored-procs.sql * data/services/xesam-metadata.mmapping Added framework for xesam field handling. 2008-06-11 Martyn Russell * src/trackerd/tracker-crawler.c: (tracker_crawler_start): Changed jthe default location to $HOME from some testing directory of mine. 2008-06-11 Martyn Russell * src/tracker-indexer/tracker-main.c: Removed commented out code. * src/trackerd/tracker-crawler.c: Renamed internal functions better and fixed a nasty crasher because we weren't NULL terminating the GStrv we send to the indexer to process. * src/trackerd/tracker-main.c: Don't initiate and shutdown the process-files module, it is no longer used. Also make sure we shutdown properly when using Ctrl+C. Now when we initiate the db manager we set the attach_all to TRUE now that Carlos has fixed that bug. This means we use one connection for all transactions in the daemon now. 2008-06-11 Martyn Russell * src/trackerd/tracker-crawler.c: Make sure we set the ignored file types each time the TrackerConfig object is set for the TrackerCrawler. This fixes the warning about TrackConfig not existing for tracker_config_get_no_index_file_types(). * src/trackerd/tracker-main.c: Removed the initial sleep from the daemon, this is only meant for the indexer which implements the feature and this also means that we don't respond to dbus events in that interval. 2008-06-11 Martyn Russell * src/trackerd/tracker-crawler.[ch]: Added a _stop() function and also iterate main context events after each file is iterated. This means we respond to DBus events. Fixed a nasty crash where we were fixing static strings added to the database when the TrackerCrawler was created. * src/trackerd/tracker-daemon.c: Changed message from "restarting" to "shuting down" when shutting down the daemon. * src/trackerd/tracker-main.[ch]: Create the crawler in the Tracker struct so the shutdown function can stop it immediately. 2008-06-10 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: Preserving the sort order in get_hit_data 2008-06-10 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db.c: Further preparations for get_hit_data, support for fields that contain a list-value. Added the ServiceID field to the query so that you can distinguish between actual items-to-return and records (lines) that will add a item to the list-value field 2008-06-10 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db.c: * src/libtracker-db/tracker-db-manager.c: Fixed the ATTACH statements in tracker-db-manager.c Fixed an invalid assertion on fields for tracker_db_live_search_get_hit_data 2008-06-10 Martyn Russell * configure.ac: Bumped the version dependency of GLib to 2.16 for the new GIO API and remove the old backend code checks. * data/dbus/tracker-indexer.xml: Added a "ProcessFiles" API call and updated the "GetRunning" to return the state as a function parameter. * src/tracker-indexer/tracker-indexer.[ch]: Update all DBus functions to include the GError and other parameters so we return valid errors when functions fail. * src/trackerd/Makefile.am: * src/trackerd/tracker-crawler.[ch]: * src/trackerd/tracker-monitor.[ch]: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-process-files.c: Added to handle directory monitoring and for crawling the file system. The crawler module now contacts the indexer and sends files it finds across DBus. * src/trackerd/tracker-db.c: Use tracker_monitor_() instead of tracker_watcher_(). * src/trackerd/tracker-dbus.[ch]: Added a function to get the DBusGProxy for the indexer client connection. * src/trackerd/tracker-main.c: Initialise the TrackerCrawler object so it crawls $HOME for now for testing. * src/trackerd/tracker-watcher*.[ch]: Removed in favour of tracker-monitor.[ch]. 2008-06-10 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (db_interface_get): Run "analyze" here, before actually attaching any database. This prevents sqlite from blocking when running this command after having attached a database. (db_interface_get_common) (db_interface_get_cache) (db_interface_get_file_metadata) (db_interface_get_file_contents) (db_interface_get_email_metadata) (db_interface_get_email_contents) (db_interface_get_xesam): Do not analyze the DB here. It's already done in db_interface_get(). 2008-06-10 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_set_metadata): Add argument to pass the parsed string for a value. Store data in the correct tables depending on the field data type. * src/tracker-indexer/tracker-indexer.c (index_metadata_foreach): pass the parsed value string to tracker_db_set_metadata(). 2008-06-10 Carlos Garnacho * src/libtracker-common/tracker-parser.c (tracker_parser_text_to_string): Return a stripped string. 2008-06-10 Martyn Russell * configure.ac: * src/libtracker-gtk/tracker-metadata-tile.c: * src/libtracker/tracker-search.c: (main): * src/libtracker/tracker-tag.c: (main): * src/tracker-indexer/tracker-main.c: (main): * src/trackerd/tracker-main.c: (main): * src/trackerd/tracker-watcher.h: Removed the RECENT_GLIB definition, it was checking for GLib 2.12, when we depend on 2.14 anyway. Also removed all places where we uses #if statements for RECENT GLIB. 2008-06-09 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: get_hit_data improvements 2008-06-09 Ivan Frade * src/libtracker-db/tracker-db-dbus.[ch]: (tracker_dbus_query_result_to_strv) Added new parameter to select the column. * src/trackerd/tracker-files.c * src/trackerd/tracker-keywords.c * src/trackerd/tracker-metadata.c * src/trackerd/tracker-search.c: Updated method calls This fixes the get_registered_metadata method. 2008-06-09 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_set_text): New function, saves text into the content database. * src/tracker-indexer/tracker-indexer.c (init_indexer): create content database. (process_file): get text content and store it in the database. (tracker_indexer_finalize): Do not unref here the database connections, they're already taken care of by the DB manager. 2008-06-09 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (function_compress_string) (function_compress): Added, database function to compress a passed string using zlib. (db_interface_get_file_contents) (db_interface_get_email_contents): Create that function for these database connections. * data/sqlite-stored-procs.sql (SaveServiceContents): Use compress(), so the indexer code doesn't have to compress the contents itself. 2008-06-09 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (set_up_databases) (db_interface_create) (tracker_db_manager_init) (tracker_db_manager_shutdown) (tracker_db_manager_get_db_interface) (tracker_db_manager_get_db_interface_content): Allow creating databases lazily, instead of creating them all on initialization. 2008-06-09 Martyn Russell * src/libtracker-db/tracker-db-manager.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.[ch]: Removed more unused members from the Tracker struct. 2008-06-09 Martyn Russell * src/trackerd/tracker-daemon.c: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-utils.c: * src/trackerd/tracker-watcher-inotify.c: Removed unused threading code. 2008-06-09 Ivan Frade * src/trackerd/tracker-main.c: initialise_directories before tracker_db_manager_init. Removed second call to tracker_watcher-init. * src/trackerd/tracker-db.c: Fixed assert. Offset must be equal or greater than 0. 2008-06-09 Martyn Russell * src/libtracker-db/tracker-db-manager.[ch]: Removed a lot of public API here because it is no longer needed. Simplified the way we set up TrackerDBInterface objects. Improved the logging. Added support for attaching all databases to one connection. Fixed the odd bug found. * src/tracker-indexer/tracker-main.c: Initialise the database manager without attaching all databases. * src/trackerd/tracker-main.c: Initialise the database manager with attach_all_dbs set to FALSE for now, setting this to TRUE causes problems when running the daemon with --reindex. 2008-06-09 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (db_manager_row_to_field_def): Plug a leak. 2008-06-09 Martyn Russell * src/libtracker-common/tracker-utils.h: * src/trackerd/Makefile.am: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-utils.h: * src/trackerd/tracker-files.c: * src/trackerd/tracker-keywords.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-search.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-query.c: * src/trackerd/tracker-xesam.h: Removed tracker-db-sqlite.[ch] and merged it with tracker-db.[ch]. 2008-06-09 Martyn Russell * src/libtracker-db/tracker-db-manager.[ch]: * src/trackerd/tracker-daemon.[ch]: * src/trackerd/tracker-db-email.[ch]: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-plugin.h: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.[ch]: * src/trackerd/tracker-email.[ch]: * src/trackerd/tracker-files.[ch]: * src/trackerd/tracker-keywords.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-metadata.[ch]: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-rdf-query.[ch]: * src/trackerd/tracker-search.[ch]: * src/trackerd/tracker-watcher-fam.c: * src/trackerd/tracker-watcher-inotify.c: * src/trackerd/tracker-watcher.h: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-xesam-query.[ch]: * src/trackerd/tracker-xesam.[ch]: Changed DBConnection into TrackerDBInterface. This is interesting because the DBConnection contained ALL connections. The TrackerDBInterface doesn't, it is ONE connection to ONE database. This means we have to know which database to use to call certain database API. This is less than helpful to the application. This should be changed over time so that all DB functions don't take a TrackerDBInterface and we just get it automatically from the tracker-db-manager. This is the first stage in removing DBConnection. The attach statements and threadding have yet to be finished here. 2008-06-06 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: Memory leak fixes * src/trackerd/tracker-xesam-live-search.c: SearchDone's delayer correction 2008-06-06 Philip Van Hoof * src/libtracker-db/tracker-db-interface-sqlite.c: * src/trackerd/tracker-xesam-live-search.c: Some minor bugfixes. Delaying the SearchDone for a second (maybe we can remove this later) * data/sqlite-stored-procs.sql: Two syntax errors in the SQL queries 2008-06-06 Carlos Garnacho * data/services/*.metadata: Change DataType to match TrackerFieldType enum nicks. 2008-06-06 Carlos Garnacho * src/libtracker-db/tracker-db-manager.c (load_metadata_file): Try to find enum value based on the nick, not the name. (db_manager_row_to_field_def): Set data type when creating TrackerField objects. 2008-06-05 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.c (tracker_db_create_service): Take into account directories when marking services as disabled. 2008-06-05 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: Fixed a crash for searches that yield no results. 2008-06-05 Ivan frade * src/libtracker-db/tracker-db-action.[ch] * src/trackerd/tracker-watcher-inotify.c: (is_delete_event) moved to tracker-db-action 2008-06-05 Ivan Frade * src/libtracker-db/tracker-db-file-info.[ch] * src/trackerd/tracker-db.c * src/trackerd/tracker-process-files.[ch] * src/trackerd/tracker-watcher-inotify.c: (tracker_process_files_is_file_info_valid) moved to tracker-db-file-info (tracker_db_file_info_is_valid). 2008-06-05 Carlos Garnacho * src/tracker-indexer/modules/files.c (check_exclude_file): Exclude also *.bak files. (tracker_module_get_file_metadata): Insert missing things in the metadata table, they're strings at the moment, although there should be some way to deal with them as integer/times/boolean, etc... * src/tracker-indexer/tracker-indexer-db.c (tracker_db_create_service): Insert some missing data in the Services table. 2008-06-05 Ivan Frade * src/trackerd/tracker-email-plugin.h: Email plugin interface. * src/trackerd/tracker-email.c: Consistent function names. _init is now _start_watching_emails and _shutdown is now _end_watching_emails. * src/trackerd/tracker-email-[modest,kmail,evolution,thunderbird].c: Renamed method names to "implement" the plugin interface. * src/trackerd/tracker-main.c: Use the new (_start,_end)_watching_emails functions. 2008-06-04 Mikael Ottela * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.c Initial xesam get_hits implementation 2008-06-04 Philip Van Hoof * src/libtracker-db/tracker-db-manager.c: Fixed the db-names of certain ATTACH statements 2008-06-04 Carlos Garnacho * filters/application/*: * filters/text/*: Dump text in stdout instead of a temp file. 2008-06-04 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.[ch] (tracker_indexer_module_get_text): New function, returns the contained/extracted text for a file. * src/tracker-indexer/modules/files.c (tracker_module_get_file_text) (tracker_metadata_call_text_filter): Added, either get the text for text/development files, or call the external filter, which returns the contained text. 2008-06-04 Carlos Garnacho * src/tracker-indexer/modules/files.c (tracker_metadata_get_embedded): Check ontology to see whether the file could contain embedded metadata. (check_exclude_file) (tracker_module_get_file_metadata): Check whether the file should be excluded for any kind of data extraction. 2008-06-04 Carlos Garnacho * src/libtracker-db/tracker-db-interface-sqlite.c (tracker_db_interface_sqlite_execute_procedure) (tracker_db_interface_sqlite_execute_procedure_len): Do not choke with NULL arguments, instead trust the caller on the number of arguments passed and allow passing NULL values to these functions. 2008-06-03 Martyn Russell * src/libtracker-common/tracker-type-utils.h: Fixed glib include build warning. * src/libtracker-db/tracker-db-manager.[ch]: * src/tracker-indexer/tracker-indexer-db.[ch]: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-main.c: Added functions from tracker-indexer/tracker-indexer-db.c[ch] which set up databases. So now when we request a database type like the common database or the file metadata database, we return an interface and it is already set up if it had to be created first, etc. * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-indexer.c: Changed the TrackerDB type names for metadata from "META" to "METADATA". 2008-06-03 Martyn Russell * src/trackerd/tracker-db-sqlite.h: * src/trackerd/tracker-rdf-query.c: Cleaned up some uses of FieldData and changed them to TrackerFieldData instead. 2008-06-03 Martyn Russell * src/libtracker-common/tracker-file-utils.c: * src/libtracker-common/tracker-os-dependant-unix.c: * src/libtracker-common/tracker-os-dependant-win.c: * src/libtracker-common/tracker-os-dependant.h: * src/trackerd/tracker-process-files.c: Removed tracker_check_uri(), it is hardly used and it is only a pointer check. * src/trackerd/tracker-db.c: Refactored the code in places. 2008-06-03 Martyn Russell * src/libtracker-common/tracker-file-utils.h: Fixed includes so we don't get warnings if glib isn't already included. * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-files.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-watcher-inotify.c: Removed a lot of tracker_db_() API which is only needed by the indexer. 2008-06-03 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-index-stage.[ch]: * src/trackerd/tracker-main.h: Removed tracker-index-stage, it is no longer used. 2008-06-02 Michael Biebl * src/trackerd/Makefile.am: * src/libtracker-common/Makefile.am: The accent stripping functionality using unac, is now in libtracker-common, so link libtracker-common against unac, not trackerd. 2008-06-02 Philip Van Hoof * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-xesam-manager.h: Waking up the LiveSearches for not-yet refactored methods that also (still) insert, delete and update the database 2008-06-02 Philip Van Hoof * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer-db.h: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-indexer.h: * src/trackerd/tracker-main.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-xesam-manager.h: * data/dbus/tracker-indexer.xml: IndexerUpdated signal emitted by the indexer-process to notify trackerd about changes it should act on in case LiveSearches are active that are influenced by said changes. Events table updating reinstalled after refactoring the indexing to a separate process removed this functionality. 2008-06-02 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-fam.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-poll.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-watch.h: * src/trackerd/tracker-watcher-fam.c: * src/trackerd/tracker-watcher-inotify.c: * src/trackerd/tracker-watcher-poll.c: * src/trackerd/tracker-watcher-win.c: * src/trackerd/tracker-watcher.h: * src/trackerd/tracker-win-fs-changes.c: Moved all watch files so they use the prefix tracker-watch-*. Updated the API to have a consistent tracker_watcher_() prefix. Refactored the FAM, inotify, poll and windows backends. 2008-06-02 Carlos Garnacho * src/libtracker-common/tracker-field.h: Add TRACKER_TYPE_FIELD_TYPE define for the TrackerFieldType enum GType. * src/libtracker-common/tracker-ontology.c (tracker_ontology_init) (tracker_ontology_shutdown): Make the class for the TrackerFieldType enum is created during the ontology lifetime. * src/tracker-indexer/tracker-indexer-db.c (load_metadata_file): Moved from trackerd. (tracker_indexer_db_get_common): Load all necessary sql/metadata/services definitions into the common DB. 2008-06-02 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-cache.[ch]: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-utils.c: Removed tracker-cache.[ch] now used in the tracker-indexer code and cleaned up all places that call cache functions. * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-watch.h: * src/trackerd/tracker-inotify.c: Refactored the code here and changed the API to be more consistent. * src/trackerd/tracker-main.[ch]: Updated the shutdown process so we initialize and shutdown the process-files module which will scan the disk for files to index. Also removed the tracker->shutdown member, there is no point in having that AND the ->is_running member. * src/trackerd/tracker-process-files.[ch]: Removed a lot of the indexer functionality and just left most of the directory processing functions. * src/trackerd/tracker-utils.c: Removed the _add_io_grace() function now it is no longer used. 2008-06-02 Philip Van Hoof * src/tracker-indexer/tracker-indexer-db.c: * src/tracker-indexer/tracker-indexer-db.h: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-indexer.h: * src/trackerd/tracker-main.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-xesam-manager.c: * src/trackerd/tracker-xesam-manager.h: * data/dbus/tracker-indexer.xml: IndexerUpdated signal emitted by the indexer-process to notify trackerd about changes it should act on in case LiveSearches are active that are influenced by said changes. Events table updating reinstalled after refactoring the indexing to a separate process removed this functionality. 2008-06-02 Carlos Garnacho * src/libtracker-utils/tracker-file-utils.[ch] (tracker_dir_remove): Renamed to tracker_path_remove(). Use g_remove() instead of g_rmdir(), so it can be used too on files. * src/tracker-indexer/tracker-indexer.c: * src/trackerd/tracker-main.c: Replace all occurrences. 2008-06-02 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.c (load_sql_file): Moved from trackerd, executes the queries contained in a text file. (tracker_indexer_db_get_file_metadata): Load sql files necessary to create the tables/triggers if the DB file didn't exist. * src/tracker-indexer/tracker-indexer.c (init_indexer): Create the DB directory if it didn't exist or was deleted. 2008-06-02 Martyn Russell * src/tracker-indexer/tracker-index.c: (cache_flush_foreach): Fixed some warnings. 2008-05-30 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.[ch] (tracker_db_set_metadata): Added, stores metadata values into Service*MetaData tables. * src/tracker-indexer/tracker-indexer.c (index_metadata_foreach): use tracker_db_set_metadata() to store metadata contents. 2008-05-30 Carlos Garnacho * src/tracker-indexer/tracker-index.[ch]: New files. Provide methods to store data in the QDBM index. * src/tracker-indexer/Makefile.am: Added these files to build. * src/tracker-indexer/tracker-indexer.c: Pass all metadata contents through the parser and store all the results with TrackerIndex. 2008-05-30 Carlos Garnacho * src/libtracker-db/Makefile.am: Do not force -g. 2008-05-30 Carlos Garnacho * src/libtracker-common/tracker-parser.c (tracker_parser_text_into_array): reverse wrongly passed arguments to tracker_parser_text_to_string(). Also strip leading and trailing whitespaces in order not to end with "\0" strings in the array. 2008-05-30 Carlos Garnacho * tracker-indexer-db.[ch] (tracker_db_increment_stats) (tracker_db_create_service): * tracker-indexer.c (process_file): Pass around the TrackerService instead of having to look it up in the ontology several times. 2008-05-30 Philip Van Hoof * Merged indexer-split with xesam-support svn merge -r 1495:1538 ../xesam-support 2008-05-30 Philip Van Hoof * data/sqlite-stored-procs.sql: Fixed syntax error of a stored procedure (LiveSearchStopSearch) * src/trackerd/tracker-xesam-manager.c: Unneeded casting removed 2008-05-30 Philip Van Hoof * tracker-xesam-live-search.h: * tracker-xesam-ontology.c: * tracker-xesam-ontology.h: * tracker-xesam-query.c: * tracker-xesam-query.h: Normalizing copyright notes and original author names to the respective authors of the files involved in this patch (i.e. Ottela Mikael for xesam-query and xesam-ontology) 2008-05-29 Philip Van Hoof * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-dbus-xesam.h: Refactored tracker_dbus_xesam_emit_search_done to tracker_xesam_live_search_emit_done 2008-05-30 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-live-search.h: * src/trackerd/tracker-xesam-manager.c: Making it possible to pass which exact events occurred, to better finetune the periodic LiveSearch query in future 2008-05-29 Philip Van Hoof * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-dbus-xesam.h: Refactored tracker_dbus_xesam_emit_search_done to tracker_xesam_live_search_emit_done 2008-05-29 Philip Van Hoof * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-dbus-xesam.h: Refactored tracker_dbus_xesam_emit_search_done to tracker_xesam_live_search_emit_done 2008-05-29 Martyn Russell * configure.ac: * data/Makefile.am: * data/dbus/Makefile.am: * data/org.freedesktop.Tracker.Indexer.service.in: * data/org.freedesktop.Tracker.service.in: * data/tracker-dbus-daemon.xml: * data/tracker-dbus-files.xml: * data/tracker-dbus-keywords.xml: * data/tracker-dbus-metadata.xml: * data/tracker-dbus-search.xml: * data/tracker-dbus-xesam.xml: * data/tracker-indexer.xml: Moved to data/dbus/ and the -dbus- prefix has been removed from the daemon xml files. * data/tracker.cfg: Removed, it is generated initially now. * src/libtracker/Makefile.am: * src/libtracker/tracker.c: Used the new data/dbus/*.xml files and removed the -dbus- name space from the included generated files. * src/tracker-indexer/Makefile.am: * src/trackerd/Makefile.am: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-daemon.[ch]: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus-daemon.[ch]: * src/trackerd/tracker-dbus-files.[ch]: * src/trackerd/tracker-dbus-keywords.[ch]: * src/trackerd/tracker-dbus-metadata.[ch]: * src/trackerd/tracker-dbus-search.[ch]: * src/trackerd/tracker-dbus-xesam.[ch]: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-status.c: * src/trackerd/tracker-utils.c: Renamed all tracker_dbus_ files and functions to tracker_ to make things simpler. * src/trackerd/tracker-xesam-manager.[ch]: Moved the old tracker-xesam.[ch] to tracker-xesam-manager.[ch]. * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-session.[ch]: Improved the code here as well as changed all tracker_xesam_() to tracker_xesam_manager_(). 2008-05-29 Martyn Russell * src/libtracker-common/Makefile.am: Don't include the HAL files twice, this was causing some serious headaches today. * src/libtracker-common/tracker-hal.h: Put the HAVE_HAL check after the already included check. * src/libtracker-db/Makefile.am: Make sure we depend on libtracker-common because we need some of the dbus API calls there. * src/tracker-indexer/modules/Makefile.am: Remove commented out libtracker-common include. Not needed. * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-main.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.c: Some logging/debugging updates. Now we say where the log file is and print it to the terminal so users know where to look. Also state when we are done loading so the user knows we aren't hanging for some startup processes. 2008-05-29 Martyn Russell * src/libtracker-common/tracker-hal.[ch]: Consistency fixes. * src/tracker-indexer/modules/Makefile.am: Reorder some of the linking so it is done in the right order. This doesn't matter on Linux, but it does on Windows. Linking must occur with the system deps last. Yes that sucks. * src/trackerd/Makefile.am: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-main.c: Added the tracker-indexer.xml file to the Makefile here but to produce the client side API so we can call _set_running() on the indexer to exec() the binary and start indexing when we are ready. So now we start the indexer when it is needed through DBus. 2008-05-29 Carlos Garnacho * src/tracker-indexer/tracker-dbus.[ch] (tracker_dbus_register_object): Added, registers to the bus an already created object. (tracker_dbus_register_object) (tracker_dbus_get_object): Removed, no longer necessary. (dbus_register_object): Modify to register an already created object. * src/tracker-indexer/tracker-main.c: Create the TrackerIndexer prior to registering it in DBus, so we can pass it construct only properties. 2008-05-29 Carlos Garnacho * src/tracker-indexer/tracker-indexer-db.[ch]: Added, These files are going to contain all DB related functions. * src/tracker-indexer/Makefile.am: Added these files to build. * src/tracker-indexer/tracker-main.c: Initialize DB manager and ontology. * src/tracker-indexer/tracker-indexer.c: Added initial support to data indexing. 2008-05-29 Carlos Garnacho * src/libtracker-db/tracker-db-interface-sqlite.c: Make sure the procedures table is unreferenced when setting a new one. Also, don't create one during initialization. 2008-05-29 Martyn Russell * src/libtracker-common/tracker-dbus.h: * src/libtracker-db/tracker-db-dbus.h: * src/tracker-indexer/tracker-dbus.h: Forgot to svn add these files for the last commit! 2008-05-28 Martyn Russell * data/Makefile.am: * data/org.freedesktop.Tracker.Indexer.service.in: * data/org.freedesktop.TrackerIndexer.service.in: * src/tracker-indexer/tracker-indexer.h: Changed name TrackerIndexer to Tracker.Indexer. * src/tracker-indexer/Makefile.am: * data/tracker-indexer.xml: Add introspection support for the indexer. * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-main.c: Make sure we register the DBus objects properly on startup. 2008-05-28 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-dbus.c: Added this for the most common DBus functionality, such as creating requests and logging request comments, etc. * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-dbus.c: Added for converting TrackerDBResultSet information into Glib types to be transported over DBus. * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-dbus.c: * src/tracker-indexer/tracker-indexer.h: * src/tracker-indexer/tracker-main.c: Added initial DBus support to register the tracker-indexer name on startup to start receiving requests from the daemon. * src/trackerd/Makefile.am: * src/trackerd/tracker-dbus-daemon.[ch]: * src/trackerd/tracker-dbus-files.[ch]: * src/trackerd/tracker-dbus-keywords.[ch]: * src/trackerd/tracker-dbus-metadata.[ch]: * src/trackerd/tracker-dbus-search.[ch]: * src/trackerd/tracker-dbus-xesam.[ch]: * src/trackerd/tracker-dbus.[ch]: * src/trackerd/tracker-main.c: * src/trackerd/tracker-xesam-live-search.c: Cleaned up the includes which were overly bloated. Also improved the tracker-dbus API so it is obvious we initialise it first (for registering the name) and we register objects later. Before with init() and preinit() it wasn't clear why we needed that. 2008-05-28 Martyn Russell * data/Makefile.am: * data/tracker-indexer.service.in: * data/trackerd.service.in: Renamed these files to the name they will use on the session bus (i.e. org.freedesktop.Tracker...). 2008-05-28 Martyn Russell * data/Makefile.am: * data/tracker-indexer.service.in: * data/tracker.service.in: Added a service for the indexer to start when we try to communicate with it. This is an initial step, there launching the binary will not associate itself with the DBus name in the session just yet. 2008-05-28 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-apps.c: * src/trackerd/tracker-apps.h: * src/trackerd/tracker-db.h: * src/trackerd/tracker-process-files.c: Removed the src/trackerd/tracker-apps.[ch] files because there is a module to do that now in the src/tracker-indexer code. The process-files module now won't try to index applications, but the process-files module is obsolete now anyway. All commented out code is marked with the comment FIXME-indexer-split. 2008-05-28 Martyn Russell * src/tracker-indexer/Makefile.am: * src/tracker-indexer/main.c: Renamed to tracker-main.c 2008-05-28 Martyn Russell * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-metadata.[ch]: * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.h: * src/trackerd/tracker-dbus-files.c: Moved the tracker-metadata.[ch] to the tracker-indexer directory, this also is a transitional state for some of this code. Some of the code from tracker-db.c has been commented out with #if 0 since it is being moved to the indexer at some point. All of this code is marked with the comment FIXME-indexer-split. 2008-05-28 Martyn Russell * configure.ac: Changed the IOPRIO_SUPPORT to HAVE_IOPRIO since thats more consistent with naming conventions. * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-indexer.c: * src/tracker-indexer/tracker-ioprio.[ch]: * src/trackerd/Makefile.am: Moved the tracker-ioprio.[ch] to the indexer directory, they are only needed there. Also, moved the nice() function call to the indexer, the daemon doesn't need jthat either. * src/tracker-indexer/main.c: Removed all command line options except verbosity and reindex, these will not be needed except for debugging generally. Also use the same jargon about copyright, etc when starting up as the daemon. Added log support, we write to the same place as the daemon does, except it is called tracker-indexer.log. * src/trackerd/tracker-main.c: Changed the log to trackerd.log from tracker.log. 2008-05-28 Martyn Russell * data/Makefile.am: * data/sqlite-service-stored-procs.sql: Removed this, it is no longer used. 2008-05-28 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db-sqlite.h: * data/sqlite-stored-procs.sql: Detecting Creates, fixed the initial HitsAdded after StartSearch 2008-05-28 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db-sqlite.h: * data/sqlite-stored-procs.sql: The initial HitsAdded after a search is activated. Updated the stored-proc executers to also remove and add items into the LiveSearches table New TODO item: we are only detecting the Updates and Deletes for the live searches, not the creates 2008-05-27 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-interface.[ch]: * src/libtracker-db/tracker-db-manager.[ch]: * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.c: Moved the tracker-db-manager.[ch] over to libtracker-db and improved some parts of it. 2008-05-27 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-hal.[ch]: * src/libtracker-common/tracker-ontology.[ch]: * src/libtracker-common/tracker-parser.[ch]: * src/libtracker-common/tracker-service.[ch]: * src/libtracker-common/tracker-field.[ch]: * src/libtracker-common/tracker-field-data.[ch]: * src/tracker-indexer/Makefile.am: * src/trackerd/Makefile.am: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-dbus-metadata.c: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-query-tree.c: * src/trackerd/tracker-xesam-ontology.[ch]: * src/trackerd/tracker-xesam-query.c: Moved tracker-hal, tracker-ontology, tracker-service, tracker-parser, tracker-field and tracker-field-data modules to libtracker-common because they are shared by the indexer and the daemon. 2008-05-27 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c * src/trackerd/tracker-xesam-query.c * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-dbus-xesam.h: Xesam behaviour fixes: Emit HitsAdded after StartSearch Emit StartDone after StartSearch is finished searching 2008-05-27 Philip Van Hoof * src/trackerd/tracker-xesam-query.c: Memory corruption fix in tracker_xesam_query_to_sql 2008-05-27 Philip Van Hoof * Merged indexer-split with xesam-support svn merge -r 1481:1495 ../xesam-support 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-ontology.[ch]: * src/tracker-indexer/tracker-service.[ch]: * src/tracker-indexer/tracker-field.[ch]: Copied here meanwhile we decide where should they go. 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: Add "reindex" property, to begin indexing from scratch at startup. * src/tracker-indexer/main.c: connect reindex to command line option. 2008-05-27 Philip Van Hoof * src/trackerd/tracker-dbus.c: On/Off configuration of Xesam 2008-05-27 Philip Van Hoof * Fixed the Xesam DBus namespaces for Xesam r0.95 2008-05-27 Philip Van Hoof * Fixes some bugs with xesam search structures and field definitions * Patch by Ottela Mikael 2008-05-27 Philip Van Hoof * Merged indexer-split with xesam-support svn merge -r 1481:1495 ../xesam-support 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-ontology.[ch]: * src/tracker-indexer/tracker-service.[ch]: * src/tracker-indexer/tracker-field.[ch]: Copied here meanwhile we decide where should they go. 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: Add "reindex" property, to begin indexing from scratch at startup. * src/tracker-indexer/main.c: connect reindex to command line option. 2008-05-27 Philip Van Hoof * src/trackerd/tracker-dbus.c: On/Off configuration of Xesam 2008-05-27 Philip Van Hoof * Fixed the Xesam DBus namespaces for Xesam r0.95 2008-05-27 Philip Van Hoof * Fixes some bugs with xesam search structures and field definitions * Patch by Ottela Mikael 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-ontology.[ch]: * src/tracker-indexer/tracker-service.[ch]: * src/tracker-indexer/tracker-field.[ch]: Copied here meanwhile we decide where should they go. 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: Add "reindex" property, to begin indexing from scratch at startup. * src/tracker-indexer/main.c: connect reindex to command line option. 2008-05-26 Ottela Mikael * src/trackerd/tracker-xesam-live-search.c * src/trackerd/tracker-xesam-ontology.c * src/trackerd/tracker-xesam-ontology.h * src/trackerd/tracker-xesam-session.c * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-xesam.c * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db-manager.c * src/trackerd/Makefile.am * src/trackerd/tracker-db-manager.h * data/services/xesam-metadata.mmapping: Various improvements to the database handling Added Xesam ontology mapping helper functions 2008-05-27 Philip Van Hoof * Fixed the Xesam DBus namespaces for Xesam r0.95 2008-05-27 Philip Van Hoof * Fixes some bugs with xesam search structures and field definitions * Patch by Ottela Mikael 2008-05-26 Philip Van Hoof * src/trackerd/tracker-dbus-search.c: Bugfix in dbus_search_highlight_terms * Merged xesam-support with indexer-split svn merge -r 1475:1479 ../indexer-split svn merge -r 1479:1481 ../indexer-split 2008-05-26 Philip Van Hoof * src/trackerd/tracker-dbus-search.c: Bugfix in dbus_search_highlight_terms * Merged xesam-support with indexer-split svn merge -r 1481:1487 ../indexer-split 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-ontology.[ch]: * src/tracker-indexer/tracker-service.[ch]: * src/tracker-indexer/tracker-field.[ch]: Copied here meanwhile we decide where should they go. 2008-05-26 Carlos Garnacho * src/tracker-indexer/tracker-indexer.[ch]: Add "reindex" property, to begin indexing from scratch at startup. * src/tracker-indexer/main.c: connect reindex to command line option. 2008-05-26 Ottela Mikael * src/trackerd/tracker-xesam-live-search.c * src/trackerd/tracker-xesam-ontology.c * src/trackerd/tracker-xesam-ontology.h * src/trackerd/tracker-xesam-session.c * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-xesam.c * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db-manager.c * src/trackerd/Makefile.am * src/trackerd/tracker-db-manager.h * data/services/xesam-metadata.mmapping: Various improvements to the database handling Added Xesam ontology mapping helper functions 2008-05-26 Philip Van Hoof * Merged xesam-support with indexer-split svn merge -r 1475:1479 ../indexer-split svn merge -r 1479:1481 ../indexer-split 2008-05-26 Philip Van Hoof * src/trackerd/tracker-dbus-search.c: Bugfix in dbus_search_highlight_terms 2008-05-26 Philip Van Hoof * src/trackerd/tracker-main.c/h: Fixed the build for --disable-hal * svn merge -r 1423:1480 ../xesam-support 2008-05-23 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db-sqlite.h: * src/trackerd/tracker-dbus-metadata.c: * src/trackerd/tracker-field-data.[ch]: * src/trackerd/tracker-field.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-xesam-query.c: Added the tracker-field-data.[ch] to handle all FieldData code that used to exist. Also fixed up some errors in the tracker-xesam-query.c module where is_end_operator() and is_operator() were not proper logic statements. 2008-05-23 Martyn Russell * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-field.[ch]: * src/trackerd/tracker-ontology.[ch]: Don't use "const" for TrackerField, it is unnecessary. When cleaning up the TrackerFieldData, there is no need to check the pointer value before calling g_free() either, since g_free() does this for us. 2008-05-23 Martyn Russell * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-main.h: Removed tracker->request_waiting, it was only ever set, not used. Moved tracker->black_list_timer_active, it is only used in the tracker-db module. 2008-05-23 Martyn Russell * src/libtracker-common/tracker-nfs-lock.[ch]: * src/libtracker-db/Makefile.am: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-manager.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-hal.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-utils.c: * src/trackerd/tracker-xesam.[ch]: Added 2 API calls, tracker_get_sys_tmp_dir() and tracker_get_data_dir() for other modules to request when they need it. Other directory information is calculated when and where it is needed. All directory information in the tracker struct has been removed now in favour of this. 2008-05-21 Carlos Garnacho * src/trackerd/tracker-parser.c (strip_word): Also, don't check for tracker->strip_accents, it doesn't exist anymore, and was always set to TRUE. 2008-05-21 Carlos Garnacho * src/trackerd/tracker-parser.c (strip_word): use GLib API to issue a warning. 2008-05-20 Martyn Russell * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-main.h: * src/trackerd/tracker-process-files.[ch]: * src/trackerd/tracker-utils.c: Moved the tracker->file_process_queue and tracker->file_metadata_queue to tracker-process-files.c and wrapped the GAsyncQueue with an API for external modules to push TrackerDBFileInfo pointers into the queue. 2008-05-20 Carlos Garnacho * src/tracker-indexer/modules/files.c (tracker_metadata_get_embedded): Added here, calls the external extractor. 2008-05-20 Martyn Russell * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-process-files.c: Moved the tracker->dir_queue to tracker-process-files.c since it is only used there. 2008-05-20 Martyn Russell * src/libtracker-common/tracker-log.[ch]: Changed tracker_log_term() to tracker_log_shutdown() and removed the domain parameter when initialising because we want to log ALL domains. * src/libtracker-common/tracker-nfs-lock.[ch]: * src/trackerd/tracker-db-manager.[ch]: * src/trackerd/tracker-ontology.[ch]: Changed _term() function to _shutdown() to be consistent. * src/libtracker-db/Makefile.am: * src/trackerd/Makefile.am: Make sure we define the G_LOG_DOMAIN correctly. * src/trackerd/tracker-db.[ch]: Added an _init() and _shutdown() function to handle the GQueue creation and clean up. * src/trackerd/tracker-main.[ch]: Moved the file_change_queue out of the Tracker struct and into tracker-db.c since that's the only place it is used. 2008-05-20 Martyn Russell * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-main.[ch]: Moved the database connections only used in the tracker-dbus module out of the Tracker struct. 2008-05-20 Ivan Frade * src/trackerd/tracker-db-sqlite.[ch]: (tracker_db_search_text_mime) (tracker_db_search_text_location) (tracker_db_search_text_mime_location): Not used anywhere in the code. Removed. 2008-05-20 Martyn Russell * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-thunderbird.c: Fixed some tracker_log() calls to use g_message() and the same for tracker_error(), etc. * src/trackerd/tracker-ontology.h: Renamed the header #define to ONTOLOGY and lined up functions. 2008-05-20 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-file-utils.c: * src/libtracker-common/tracker-language.c: * src/libtracker-common/tracker-log.c: * src/libtracker-common/tracker-log.h: * src/libtracker-common/tracker-nfs-lock.c: * src/libtracker-common/tracker-os-dependant-unix.c: * src/libtracker-common/tracker-os-dependant-win.c: * src/libtracker-common/tracker-type-utils.c: * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-file-info.c: * src/libtracker-db/tracker-db-interface-sqlite.c: * src/tracker-indexer/modules/files.c: * src/trackerd/Makefile.am: * src/trackerd/tracker-apps.c: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-daemon.c: * src/trackerd/tracker-dbus-keywords.c: * src/trackerd/tracker-dbus-metadata.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-fam.c: * src/trackerd/tracker-hal.c: * src/trackerd/tracker-index-stage.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-ioprio.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-service-manager.c: * src/trackerd/tracker-utils.c: * src/trackerd/tracker-xesam-query.c: Use the g_{message|debug|warning|critical|error}() functions instead of the tracker_log_() variants instead. Fixes bug #529373 (Carlos Garnacho, Martyn Russell). 2008-05-19 Ivan Frade * src/trackerd/Makefile.am * src/trackerd/tracker-service-manager.[ch] (removed) * src/trackerd/tracker-ontology.[ch] Renamed tracker-service-manager to tracker-ontology. Added logic to handled Fields. * src/trackerd/tracker-field.[ch] Old FieldDef struct is now TrackerField GObject * src/trackerd/tracker-apps.c * src/trackerd/tracker-db-email.c * src/trackerd/tracker-db-sqlite.[ch] * src/trackerd/tracker-db.[ch] * src/trackerd/tracker-dbus-files.c * src/trackerd/tracker-dbus-keywords.c * src/trackerd/tracker-dbus-metadata.c * src/trackerd/tracker-dbus-search.c * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-email-utils.c * src/trackerd/tracker-indexer.c * src/trackerd/tracker-metadata.c * src/trackerd/tracker-process-files.c * src/trackerd/tracker-query-tree.c * src/trackerd/tracker-rdf-query.c * src/trackerd/tracker-xesam-query.c * src/trackerd/tracker-main.c: Using new tracker-ontology. * src/trackerd/tracker-main.h: (tracker->metadata_table removed) 2008-05-19 Carlos Garnacho * src/tracker-indexer/tracker-indexer-module.[ch]: add tracker_indexer_module_get_ignore_directories(). * src/tracker-indexer/modules/files.c: implement it to ignore the directories specified in the config file. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_add_directory): Ignore files specified by the module. * src/libtracker-db/Makefile.am: do not link libtracker-db with libtracker-common, it's not necessary. 2008-05-16 Philip Van Hoof * DBus initialization. We must be more early at detecting whether or not another DBus trackerd service is already running. Else during the creation of the SQLite tables, a client that makes the DBus trackerd service start would cause two trackerd instances to be running. 2008-05-16 Philip Van Hoof * Fixed a few g_warnings about tracker_log not being initialized yet 2008-05-16 Philip Van Hoof * Merge from our own repository back to GNOME's Subversion server. We did this because caused by the SSH exploit, the GNOME Subversion servers were closed for commit access. 2008-05-16 Martyn Russell * src/tracker-search-tool/tracker-search-tool.c: Add other email services so they are recognised when requesting hit counts. It used to be just "Emails" as the service type, now we have "ThunderbirdEmails", "EvolutionEmails", etc. * src/trackerd/tracker-main.c: (main): Fix the command line option parsing so we actually set the verbosity and some of the other options. Also, don't start the indexer thread if it is disabled. 2008-05-16 Philip Van Hoof * data/sqlite-stored-procs.sql: Prepended a query with its db-name * src/trackerd/tracker-main.c: * src/trackerd/tracker-main.h: * src/trackerd/tracker-dbus.c: Renamed index_db to mainloop_db * src/trackerd/tracker-process-files.c: Gave the indexer thread its own DBConnection 2008-05-16 Philip Van Hoof * Reverted the GThreadPool trick to exclude it from being the possible cause of various problems * Added tracker->xesam_db, it seems that using index_db in a GMainLoop's idle handler ain't working without the GThreadPool trick * Bugfix GetStats is not supposed to use db_con->common (it's attached to db_con already) * Same bugfix for GetRelatedServiceIDs 2008-05-16 Martyn Russell * src/libtracker-common/tracker-config.c: Fixed two bugs, one where the padding was being set when setting the thread stack size. The second was that the max text to index was being set when setting the max words to index. This meant 0 words were being indexed. * src/trackerd/tracker-main.c: Added more configuration to the sanity check list so we can confirm things are starting up correctly. 2008-05-16 Philip Van Hoof * Applied a patch that fixes the DBConnection tracker->index_db 2008-05-14 Philip Van Hoof * src/tracker-indexer/modules/Makefile.am: Linker error fix * src/trackerd/tracker-dbus.c: Corrected a GStrv to be NULL terminated * src/trackerd/tracker-db-sqlite.c: Corrected tracker->index_db to be the one which as the ATTACH statements done 2008-05-14 Carlos Garnacho * src/tracker-indexer/tracker-indexer.c (process_module): just print one warning when some module couldn't be loaded. 2008-05-14 Carlos Garnacho * src/tracker-indexer/modules/files.c: get mimetype. * src/tracker-indexer/modules/Makefile.am: make files module link to the necessary libraries. 2008-05-14 Martyn Russell * src/libtracker-common/tracker-config.c: * src/libtracker-common/tracker-language.[ch]: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-main.c: * src/trackerd/tracker-query-tree.c: Use a GObject for TrackerLanguage so we can keep reference counts on it. It is becoming increasingly used now. 2008-05-14 Martyn Russell * src/trackerd/tracker-query-tree.c: (tracker_query_tree_new): Make sure we set the "query" after setting the "config" and "language" properties since they are required in the _set_query() function. This fixes several warnings to the console. 2008-05-14 Martyn Russell * src/trackerd/tracker-email.[ch]: Fix crash where we wouldn't pass TrackerConfig to the _init() function of email modules and it would return due to TRACKER_IS_CONFIG() failing on a NULL pointer. 2008-05-14 Martyn Russell * src/trackerd/tracker-main.h: * src/trackerd/tracker-process-files.c: Moved the indexer time taken information from the Tracker struct to the process-files module. This information is not used publically. 2008-05-14 Philip Van Hoof * Merged xesam-support to indexer-split -> svn merge -r 1398:1423 ../xesam-support 2008-05-14 Martyn Russell * src/trackerd/tracker-db-sqlite.[ch]: Removed unused functions. * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email.[ch]: Pass the TrackerConfig to the init() function to avoid using tracker->config. * src/trackerd/tracker-main.[ch]: Make sure we call all the missing _shutdown() functions for modules, like tracker_service_manager_shutdown(), etc. * src/trackerd/tracker-process-files.c: Don't try to set up signal handlers for the HAL object if we don't have HAL support compiled in to Tracker. * src/trackerd/tracker-service-manager.[ch]: Renamed tracker_service_manager_term() to _shutdown(). * src/trackerd/tracker-xesam.[ch]: Added a _shutdown() function and moved the GHashTable of sessions to this module and out of the Tracker struct. 2008-05-14 Philip Van Hoof * src/libtracker-db/tracker-db-interface-sqlite.c: No reply queries must not immediately return for their arguments might otherwise be freed by the caller context, before the GThreadPool thread reached reading the argument. 2008-05-14 Martyn Russell * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-daemon.c: Changed the "config" property to be an object spec instead of a pointer spec. Also fixed the way we set the object. * src/trackerd/tracker-dbus-search.[ch]: Added "config" and "language" properties to be used with the TrackerQueryTree API. * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-session.h: Fix includes. * src/trackerd/tracker-dbus.[ch]: Use Tracker pointer instead of gpointer for dbus initialisation and set the config/language for TrackerDBusSearch. * src/trackerd/tracker-main.[ch]: Removed the "stop_words" member of the Tracker struct, it is not used. Also removed the "index_number_min_length" member and replaced the one time it is used for a #define in tracker-parser.c. * src/trackerd/tracker-parser.[ch]: Refactored this module and made it not depend on TrackerConfig and TrackerLanguage, instead, we parse the values in that we need in the public API. * src/trackerd/tracker-query-tree.[ch]: Add properties for TrackerConfig and TrackerLanguage so we can use them when using the tracker-parser API. * src/trackerd/tracker-xesam.[ch]: Use proper GQuarks for the xesam error system and reordered the functions in the header to be more logical and inline with the .c file. 2008-05-14 Ivan Frade * src/trackerd/tracker-db-sqlite.c: File loaders using TrackerDBInterface instead of DBConnection. 2008-05-14 Ivan Frade * data/Makefile.am * data/sqlite-contents.sql: SQL code to create Contents table. * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db-sqlite.c: Using SQL file instead of hardcoded SQL to create ServiceContents table. (open_common_db): Removed. Using directly open_db_interface. (tracker_db_exec_proc): New. tracker_exec_proc but using TrackerDBInterface. (tracker_exec_no_reply) (tracker_metadata_is_key): Now static functions only in .c (tracker_db_integrity_check): Removed. Unused function. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.c: Don't initialise Tracker members unnecessarily. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.[ch]: Removed the log_filename from the Tracker struct, it didn't need to be there. Also added a function to clean up the directory locations separately to actually physically removing particular directories when we exit the daemon. 2008-05-13 Martyn Russell * src/tracker-indexer/tracker-indexer-module.[ch]: * src/tracker-indexer/tracker-indexer.[ch]: Added indentation information to the top of each file. * src/trackerd/Makefile.am: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-index-stage.[ch]: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-process-files.c: Added TrackerIndexStage type to hold the current indexer state and type information. 2008-05-13 Carlos Garnacho * src/libtracker-common/tracker-config.c (config_finalize): Free all allocated data. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_finalize): Instead, do not free unowned memory here. 2008-05-13 Carlos Garnacho Initial work on the separate indexer executable, implemented as a modular, single-threaded state machine. * src/tracker-indexer/main.c: * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-indexer-module.[ch]: Added, this is the indexer core. * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/gaim-conversations.c: Added, independent modules, called out by the indexer core. * src/libtracker-common/tracker-config.[ch] (tracker_config_class_init) (config_get_property) (config_set_property) (config_load_string_list) (tracker_config_get_index_modules): Added configuration option, plus methods to know which modules to query. (config_create_with_defaults): ensure TrackerConfig contains the default values if the configuration file didn't exist. * src/tracker-indexer/modules/Makefile.am: * src/tracker-indexer/Makefile.am: * configure.in: autofoo glue to make this build. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.h: Removed function definitions which are redundant. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.h: Use proper pointer types instead of gpointer for TrackerConfig, etc. 2008-05-13 Martyn Russell * src/trackerd/tracker-convert-file.c: Removed, it is not in use. 2008-05-14 Philip Van Hoof * Merged with indexer-split (rev 1417) -> svn merge -r 1409:1417 ../indexer-split -> svn merge -r 1417:1422 ../indexer-split * Fixed Xesam error reporting * Fixed a few warnings 2008-05-13 Philip Van Hoof * src/trackerd/*xesam*: Various infrastructure for Xesam added * Merged with indexer-split (Rev 1410) -> svn merge -r 1398:1410 ../indexer-split/ 2008-05-13 Ottela Mikael * Initial patch for Xesam queries * Committed by Philip Van Hoof 2008-05-13 Philip Van Hoof * First removed xesam-support branch * Branchpoint from indexer-split to xesam-support 2008-05-14 Philip Van Hoof * src/libtracker-db/tracker-db-interface-sqlite.c: No reply queries must not immediately return for their arguments might otherwise be freed by the caller context, before the GThreadPool thread reached reading the argument. 2008-05-14 Martyn Russell * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-daemon.c: Changed the "config" property to be an object spec instead of a pointer spec. Also fixed the way we set the object. * src/trackerd/tracker-dbus-search.[ch]: Added "config" and "language" properties to be used with the TrackerQueryTree API. * src/trackerd/tracker-dbus-xesam.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-session.h: Fix includes. * src/trackerd/tracker-dbus.[ch]: Use Tracker pointer instead of gpointer for dbus initialisation and set the config/language for TrackerDBusSearch. * src/trackerd/tracker-main.[ch]: Removed the "stop_words" member of the Tracker struct, it is not used. Also removed the "index_number_min_length" member and replaced the one time it is used for a #define in tracker-parser.c. * src/trackerd/tracker-parser.[ch]: Refactored this module and made it not depend on TrackerConfig and TrackerLanguage, instead, we parse the values in that we need in the public API. * src/trackerd/tracker-query-tree.[ch]: Add properties for TrackerConfig and TrackerLanguage so we can use them when using the tracker-parser API. * src/trackerd/tracker-xesam.[ch]: Use proper GQuarks for the xesam error system and reordered the functions in the header to be more logical and inline with the .c file. 2008-05-14 Ivan Frade * src/trackerd/tracker-db-sqlite.c: File loaders using TrackerDBInterface instead of DBConnection. 2008-05-14 Ivan Frade * data/Makefile.am * data/sqlite-contents.sql: SQL code to create Contents table. * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db-sqlite.c: Using SQL file instead of hardcoded SQL to create ServiceContents table. (open_common_db): Removed. Using directly open_db_interface. (tracker_db_exec_proc): New. tracker_exec_proc but using TrackerDBInterface. (tracker_exec_no_reply) (tracker_metadata_is_key): Now static functions only in .c (tracker_db_integrity_check): Removed. Unused function. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.c: Don't initialise Tracker members unnecessarily. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.[ch]: Removed the log_filename from the Tracker struct, it didn't need to be there. Also added a function to clean up the directory locations separately to actually physically removing particular directories when we exit the daemon. 2008-05-13 Martyn Russell * src/tracker-indexer/tracker-indexer-module.[ch]: * src/tracker-indexer/tracker-indexer.[ch]: Added indentation information to the top of each file. * src/trackerd/Makefile.am: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-index-stage.[ch]: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-process-files.c: Added TrackerIndexStage type to hold the current indexer state and type information. 2008-05-13 Carlos Garnacho * src/libtracker-common/tracker-config.c (config_finalize): Free all allocated data. * src/tracker-indexer/tracker-indexer.c (tracker_indexer_finalize): Instead, do not free unowned memory here. 2008-05-13 Carlos Garnacho Initial work on the separate indexer executable, implemented as a modular, single-threaded state machine. * src/tracker-indexer/main.c: * src/tracker-indexer/tracker-indexer.[ch]: * src/tracker-indexer/tracker-indexer-module.[ch]: Added, this is the indexer core. * src/tracker-indexer/modules/applications.c: * src/tracker-indexer/modules/dummy.c: * src/tracker-indexer/modules/files.c: * src/tracker-indexer/modules/gaim-conversations.c: Added, independent modules, called out by the indexer core. * src/libtracker-common/tracker-config.[ch] (tracker_config_class_init) (config_get_property) (config_set_property) (config_load_string_list) (tracker_config_get_index_modules): Added configuration option, plus methods to know which modules to query. (config_create_with_defaults): ensure TrackerConfig contains the default values if the configuration file didn't exist. * src/tracker-indexer/modules/Makefile.am: * src/tracker-indexer/Makefile.am: * configure.in: autofoo glue to make this build. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.h: Removed function definitions which are redundant. 2008-05-13 Martyn Russell * src/trackerd/tracker-main.h: Use proper pointer types instead of gpointer for TrackerConfig, etc. 2008-05-13 Martyn Russell * src/trackerd/tracker-convert-file.c: Removed, it is not in use. 2008-05-12 Martyn Russell * src/trackerd/tracker-cache.[ch]: Reworked this module and cleaned up the code a bit. * src/trackerd/tracker-db.c: Fix some build warnings. * src/trackerd/tracker-email-utils.c: Renamed Tracker member. * src/trackerd/tracker-main.[ch]: More clean ups, also made the main thread wait for the process-files thread to finish before exiting. For some reason, we can't clean up the mutexes after that though because they are busy? Looks like the threading here needs looking at more thoroughly. * src/trackerd/tracker-process-files.c: Log when the thread exits. 2008-05-12 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c * src/trackerd/tracker-xesam-live-search.h * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-dbus-xesam.h * data/tracker-dbus-xesam.xml: Support for range queries 2008-05-12 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-main.c: (tracker_db_close): Now uses TrackerDBInterface instead of DBConnecion. (tracker_db_needs_data): Now called tracker_db_common_need_build 2008-05-10 Ivan Frade * src/libtracker-common/tracker-type-utils.c * src/libtracker-common/tracker-type-utils.h: (tracker_boolean_as_text_to_number): New function. * src/libtracker-common/tracker-utils.c * src/libtracker-common/tracker-utils.h (tracker_escape_string): Moved from tracker-db-sqlite to here. * src/trackerd/tracker-db-sqlite.c (tracker_db_load_service_file): Splitted in three functions, for .metadata, .services and .extensions files. Renamed to load_service_configuration_file, and now it is an static function. Removed duplicate code betwwen load_sql_file and load_sql_trigger. * src/trackerd/tracker-db-sqlite.h: (tracker_db_load_service_file) removed from the public API. * src/trackerd/tracker-db.c: Commented unused lines. 2008-05-09 Ivan Frade * src/trackerd/Makefile.am * src/trackerd/tracker-db-manager.c * src/trackerd/tracker-db-manager.h: New module to handle databases locations, names and parameters. * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-indexer.c: Using new module. (open_db) is now open_db_interface. * src/trackerd/tracker-indexer.h: DB filenames moved to new module. * src/trackerd/tracker-main.c: Init/term the new module * src/trackerd/tracker-main.h: (tracker->services_dir): Removed 2008-05-09 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h: (tracker_db_set_default_pragmas): Now static function called set_default_pragmas and using TrackerDBInterface (set_params): Uses TrackerDBInterface instead of DBConnection. 2008-05-09 Ivan Frade * src/trackerd/tracker-main.c * src/trackerd/tracker-process-files.c * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h: (tracker_db_exec_no_reply): Uses TrackerDBInterface instead of DBConnection. 2008-05-09 Philip Van Hoof * src/trackerd/tracker-db-sqlite.c: * src/libtracker-db/tracker-db-interface.h: * src/libtracker-db/tracker-db-interface-sqlite.c: * src/libtracker-db/tracker-db-interface.c: Improvement for queries that have no reply 2008-05-09 Ivan Frade * src/libtracker-common/tracker-config.c * src/libtracker-common/tracker-config.h * src/libtracker-common/tracker-nfs-lock.c * src/libtracker-common/tracker-nfs-lock.h * src/trackerd/tracker-main.c * src/trackerd/tracker-main.h: NFS locking activated from config file. * src/trackerd/tracker-db-sqlite.c: Code style 2008-05-08 Martyn Russell * src/libtracker-common/tracker-nfs-lock.c: Improve logging. * src/trackerd/tracker-dbus-daemon.c: Renamed _do_cleanup() to _shutdown() and make it ONLY stop the main loop so we clean up every time after the mainloop stops. * src/trackerd/tracker-main.[ch]: Refactored this heavily to make the code start up and shut down flow easier to follow. * src/trackerd/tracker-process-files.c: Removed tracker->update_count since it was redundant. 2008-05-08 Martyn Russell * src/libtracker-common/tracker-nfs-lock.[ch]: Cleaned up code to be consistent. * src/trackerd/tracker-db-sqlite.c: Fixed warning. * src/trackerd/tracker-dbus-search.c: Always call tracker_dbus_query_result_to_ptr_array() since it creates the return value even if the result set is empty. 2008-05-08 Philip Van Hoof * src/trackerd/tracker-db-sqlite.c: * src/libtracker-db/tracker-db-interface-sqlite.h: * src/libtracker-db/tracker-db-interface-sqlite.c: Corrected the GThreadQueue to have ALL sqlite_* calls in the same thread. This work needs some refactoring later. Especially the changes in tracker-db-sqlite.c are not quite the way I eventually want them. 2008-05-08 Philip Van Hoof * src/trackerd/tracker-dbus-search.c: Bugfix when the amount of search results was 0 2008-05-08 Ivan Frade * src/libtracker-common/Makefile.am * src/libtracker-common/tracker-nfs-lock.c * src/libtracker-common/tracker-nfs-lock.h * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-main.c: Moved NFS lock code to his own module in libtracker-common. 2008-05-08 Martyn Russell * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus-daemon.c: * src/trackerd/tracker-main.[ch]: * src/trackerd/tracker-process-files.c: Cleaned up the Tracker structure by removing members which are not used. Also removed the structures in the tracker-main.h file which are not used. 2008-05-08 Philip Van Hoof * src/trackerd/tracker-db-sqlite.c: * src/libtracker-db/tracker-db-interface.h: * src/libtracker-db/tracker-db-interface-sqlite.c: * src/libtracker-db/tracker-db-interface.c: Improvement for void returning queries 2008-05-08 Philip Van Hoof * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db-sqlite.h: * data/sqlite-stored-procs.sql: * data/sqlite-cache.sql: * data/Makefile.am: * data/sqlite-temp-tables.sql: Moved LiveSearches and Events to the cache db 2008-05-08 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus-daemon.h: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-parser.c: * src/trackerd/tracker-process-files.h: * src/trackerd/tracker-utils.c: * src/trackerd/tracker-xesam.c: * src/trackerd/trackerd.[ch]: Renamed trackerd.[ch] to tracker-main.[ch]. 2008-05-08 Philip Van Hoof * src/libtracker-db/tracker-db-interface-sqlite.c: Moved all sqlite3 queries to one thread in GThreadPool, prepared the ground for future asynchronous calling back. 2008-05-07 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db.c * src/trackerd/tracker-db-sqlite.h: Removed DBConnection from ServiceTypeInfo struct. 2008-05-07 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/trackerd.c: (tracker_db_initialize -> tracker_db_load_prepared_queries) (tracker_create_db -> tracker_create_common_db) Removed duplicate code. Databases are opened using open_db and set_params. 2008-05-07 Martyn Russell * src/libtracker-common/tracker-config.h: * src/libtracker-common/tracker-configuration.[ch]: * src/libtracker-common/tracker-file-utils.h: * src/libtracker-common/tracker-language.h: * src/libtracker-common/tracker-log.h: * src/libtracker-common/tracker-os-dependant.h: * src/libtracker-common/tracker-type-utils.h: * src/libtracker-common/tracker-utils.h: * src/libtracker-db/tracker-db-action.h: * src/trackerd/tracker-apps.h: * src/trackerd/tracker-cache.h: * src/trackerd/tracker-db-email.h: * src/trackerd/tracker-db-sqlite.h: * src/trackerd/tracker-db.h: * src/trackerd/tracker-dbus-daemon.h: * src/trackerd/tracker-dbus-files.h: * src/trackerd/tracker-dbus-keywords.h: * src/trackerd/tracker-dbus-metadata.h: * src/trackerd/tracker-dbus-search.h: * src/trackerd/tracker-dbus-xesam.h: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-email-utils.h: * src/trackerd/tracker-email.h: * src/trackerd/tracker-hal.h: * src/trackerd/tracker-indexer.h: * src/trackerd/tracker-ioprio.h: * src/trackerd/tracker-metadata.h: * src/trackerd/tracker-parser.h: * src/trackerd/tracker-process-files.h: * src/trackerd/tracker-query-tree.h: * src/trackerd/tracker-rdf-query.h: * src/trackerd/tracker-service-manager.h: * src/trackerd/tracker-service.h: * src/trackerd/tracker-status.h: * src/trackerd/tracker-watch.h: * src/trackerd/tracker-xesam-live-search.h: * src/trackerd/tracker-xesam-session.h: * src/trackerd/tracker-xesam.h: Updated the header files to be more consistent and make sure we use the namespace of the binary we are creating to avoid two header files with the same name/definitions causing each other to not be included properly. 2008-05-07 Martyn Russell * src/libtracker-common/tracker-utils.h: Fixed #ifndef issue where this utils file had the same name that the trackerd utils file had. * src/trackerd/Makefile.am: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-daemon.h: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-parser.c: * src/trackerd/tracker-process-files.h: * src/trackerd/tracker-utils.[ch]: * src/trackerd/tracker-xesam.c: * src/trackerd/trackerd.[ch]: Added trackerd.h for all stuff related to the Tracker struct. Kept all other utils based functions in tracker-utils.h. Fixed all the places where this broke things based on everything being included from tracker-utils.h and everwhere including that. 2008-05-07 Martyn Russell * src/trackerd/tracker-utils.[ch]: * src/trackerd/tracker-xesam-session.c: * src/trackerd/tracker-xesam.[ch]: Moved tracker_unique_key() here from tracker-utils since it is an xesam thing only at the moment. 2008-05-07 Martyn Russell * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus-daemon.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-indexer.[ch]: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-utils.[ch]: * src/trackerd/trackerd.c: Removed tracker_is_index_too_big() from tracker-utils.c to tracker-indexer.c and also made all database filenames in the code use a defined filename. The tracker_pause() and tracker_pause_on_battery() now has been renamed to tracker_should_pause...() and cleaned up. 2008-05-06 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h: (tracker_db_fsync): Removed function. Never used. Removed temporal variable: Easier to know who is using what in DBConnection. 2008-05-06 Ivan Frade * src/trackerd/tracker-db-email.c * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db.c * src/trackerd/trackerd.c: Removed DBConnection->index. It was always a pointer to the struct itself. 2008-05-06 Ivan Frade * src/trackerd/tracker-parser.c: Renamed WordType to TrackerParserWordType to avoid conflicts. * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-utils.h * src/trackerd/trackerd.c: (tracker_db_connect_all): Removed unused param. Replaced gpointer with Indexer in Tracker struct. * src/trackerd/tracker-indexer.c * src/trackerd/tracker-indexer.h: Removed unused code. 2008-05-06 Martyn Russell * src/trackerd/tracker-apps.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-service-manager.[ch]: * src/trackerd/tracker-utils.[ch]: * src/trackerd/trackerd.c: Moved all tracker_add_service_dir() API to tracker-service-manager and renamed it accordingly. This was moved out of tracker-utils.[ch]. * src/libtracker-common/tracker-file-utils.[ch]: Moved the function which removes directory roots to here from the daemon. 2008-05-06 Philip Van Hoof * Bumped the version of SQLite from 3.4 to 3.5 because - We require --enable-threadsafe - This version allows concurrent access from different threads sharing the same connection 2008-05-06 Philip Van Hoof * Xesam property setters and getters 2008-05-05 Martyn Russell * src/trackerd/tracker-utils.[ch]: * src/trackerd/tracker-db-sqlite.c: Removed tracker_timer_start() and tracker_timer_end() since they are only used in one place. Used a GTimer instead of GTimeVal and also optimised the loading of the prepared queries by using the GMappedFile API. 2008-05-05 Ivan Frade * src/trackerd/tracker-cache.c * src/trackerd/trackerd.c * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h: Removed unused fields in DBConnection 2008-05-05 Ivan Frade * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h: Removed unused code and empty functions. * src/trackerd/tracker-db.c * src/trackerd/tracker-db.h: * src/trackerd/tracker-dbus-files.c: (tracker_db_get_field_def) Removed db_con parameter (unused) 2008-05-05 Philip Van Hoof * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-xesam.c * src/trackerd/tracker-db-sqlite.c: Added proper locking for the db while dealing with Events for LiveSearches 2008-05-02 Philip Van Hoof * src/trackerd/tracker-xesam-live-search.c * src/trackerd/tracker-xesam-live-search.h * src/trackerd/tracker-dbus.c * src/trackerd/tracker-dbus-xesam.c * src/trackerd/tracker-dbus-xesam.h * src/trackerd/tracker-xesam.c * src/trackerd/tracker-xesam.h * src/trackerd/tracker-db-sqlite.c * src/trackerd/tracker-db-sqlite.h * src/libtracker-common/tracker-config.c * src/libtracker-common/tracker-config.h * data/sqlite-stored-procs.sql * data/sqlite-tracker.sql * data/Makefile.am: Xesam support infrastructure 2008-04-30 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-file-utils.[ch]: Added to handle IO operations. * src/libtracker-db/Makefile.am: * src/libtracker-db/tracker-db-action.[ch]: * src/trackerd/Makefile.am: * src/trackerd/tracker-action.[ch]: Moved TrackerAction to libtracker-db and renamed to TrackerDBAction. * src/trackerd/tracker-apps.[ch]: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email.c: * src/trackerd/tracker-email.h: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-process-files.[ch]: * src/trackerd/tracker-status.[ch]: * src/trackerd/tracker-utils.[ch]: * src/trackerd/trackerd.c: Moved FileInfo and WatchTypes to libtracker-db and renamed to TrackerDBFileInfo and TrackerDBWatch. 2008-04-30 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-os-dependant-unix.c: * src/libtracker-common/tracker-os-dependant-win.c: * src/libtracker-common/tracker-os-dependant.h: Moved to libtracker-common from trackerd. * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-os-dependant-unix.c: * src/trackerd/tracker-os-dependant-win.c: * src/trackerd/tracker-os-dependant.h: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-utils.c: * src/trackerd/tracker-utils.h: Moved file utility functions to libtracker-common. 2008-04-29 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-action.[ch]: Added to handle TrackerAction type. * src/trackerd/tracker-db-sqlite.h: * src/trackerd/tracker-db.[ch]: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-fam.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-utils.[ch]: * src/trackerd/tracker-win-fs-changes.c: Renamed TrackerChangeAction to TrackerAction and moved it to tracker-action.[ch]. 2008-04-29 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-dbus-xesam.[ch]: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-xesam-live-search.c: * src/trackerd/tracker-xesam-search.[ch]: * src/trackerd/tracker-xesam-session.h: * src/trackerd/tracker-xesam.[ch]: Renamed tracker-xesam-search to tracker-dbus-xesam. 2008-04-29 Martyn Russell * data/Makefile.am: * data/tracker-xesam-search.xml: Renamed to tracker-dbus-xesam.xml. * src/trackerd/tracker-xesam-live-search.[ch]: * src/trackerd/tracker-xesam-search.[ch]: * src/trackerd/tracker-xesam-session.[ch]: * src/trackerd/tracker-xesam.[ch]: Code clean ups. 2008-04-29 Martyn Russell * Reverted Philips changes. 2008-04-28 Martyn Russell * src/libtracker-common/tracker-type-utils.c: * src/libtracker-common/tracker-type-utils.h: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-rdf-query.c: Clean up the tracker-type-utils function names to be more consistent. 2008-04-28 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-type-utils.[ch]: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-utils.[ch]: Created tracker-type-utils.[ch] to handle type a to type b conversions (e.g. GSList* to gchar **). 2008-04-28 Martyn Russell * configure.ac: * src/Makefile.am: * src/libtracker-db/Makefile.am: Created new libtracker-db to handle the shared database API between daemon and other components of Tracker. * src/trackerd/tracker-db-interface-sqlite.[ch]: * src/trackerd/tracker-db-interface.[ch]: Moved to libtracker-db. * src/trackerd/Makefile.am: * src/trackerd/tracker-db-sqlite.[ch]: * src/trackerd/tracker-dbus.h: * src/trackerd/tracker-indexer.h: Updated files to include new libtracker-db files. 2008-04-28 Philip Van Hoof * Merged branches/xesam-support back to brances/indexer-split 2008-04-25 Philip Van Hoof * Adapted the TrackerXesamSearch DBus proxy to use org.freedesktop.DBus.GLib.Async 2008-04-23 Philip Van Hoof * Added error reporting * Added some more ad-hoc implementations in TrackerXesamSearch 2008-04-22 Philip Van Hoof * Branched as xesam-support * Added Xesam skeleton * Introduced TrackerXesamSearch * Introduced TrackerXesamLiveSearch * Introduced TrackerXesamSession 2008-04-21 Martyn Russell * src/trackerd/Makefile.am: Fixed make distcheck issues. 2008-04-21 Martyn Russell * src/libtracker/tracker.[ch]: Fixed some left over issues from the DBus patch which were caused by left over cruft in $prefix/include. 2008-04-21 Carlos Garnacho * src/trackerd/tracker-db-interface.[ch]: * src/trackerd/tracker-db-interface-sqlite.c: Implement API to start/end a transaction. Do not allocate (and later free) any memory if a stmt doesn't return any rows. Add a GError parameter to all query methods. * src/trackerd/tracker-db-sqlite.h: do forward declaration for DBConnection, so it can hold pointers to structures of the same type instead of just gpointers. * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-dbus-keywords.c: * src/trackerd/tracker-dbus-metadata.c: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-process-files.c: * src/trackerd/trackerd.c: Update to use new API. 2008-04-21 Martyn Russell Added DBus introspection support for the DBus API and reworked the code to use the glib bindings. * configure.ac: Added check for DBus bindings tool to create server side and client side glue header files. * data/Makefile.am: * data/tracker-dbus-daemon.xml: * data/tracker-dbus-files.xml: * data/tracker-dbus-keywords.xml: * data/tracker-dbus-metadata.xml: * data/tracker-dbus-search.xml: Added to separate DBus interfaces into their respective files. * data/tracker-introspect.xml: Removed in favour of new DBus interface files. * src/libtracker-common/tracker-language.[ch]: * src/libtracker-common/tracker-log.[ch]: Fixed copyright information. * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-utils.[ch]: * src/trackerd/tracker-db-sqlite.c: Added tracker-utils.[ch] to handle some of the commonly shared utility functions which are used across more than just the tracker daemon. * src/libtracker/Makefile.am: * src/libtracker/tracker.c: Fixed object paths for DBus connectivity to the various interfaces we use. * src/libtracker/tracker.h: For the typedef enum MetadataTypes, use METADATA_ as the prefix to all these values so we don't cause namespace issues elsewhere. * src/tracker-preferences/tracker-preferences.c: Don't depend on the tracker daemon DBus definitions for the various interfaces we connect to, instead define them specifically ourselves. * src/trackerd/Makefile.am: * src/trackerd/tracker-dbus-daemon.[ch]: Added to handle daemon specific DBus requests like shutting down and getting the current status, etc. * src/trackerd/tracker-dbus-files.[ch]: * src/trackerd/tracker-dbus-keywords.[ch]: * src/trackerd/tracker-dbus-metadata.[ch]: * src/trackerd/tracker-dbus-search.[ch]: Rewritten to use the DBus glib bindings. This results in less code and a nicer way to implement DBus APIs with introspection thrown in for free. * src/trackerd/tracker-dbus.[ch]: Updated to just initialise DBus support in the tracker daemon and host utility functions needed for each interface. * src/trackerd/tracker-dbus-methods.[ch]: * src/trackerd/tracker-process-requests.[ch]: Removed. None of these functions are necessary any longer. * src/trackerd/tracker-cache.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-modest.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-process-files.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/trackerd.c: Updates reflecting the new DBus changes. * src/trackerd/tracker-marshal.list: * src/trackerd/tracker-marshal-main.c: Added to include generated marshal files built for extended signalling with unique callback signatures. * src/trackerd/tracker-status.[ch]: Added to handle the current state and to also signal changes when the global tracker daemon state changes. * src/trackerd/tracker-utils.[ch]: Moved functions to relevant modules and removed all other unused code. 2008-04-17 Philip Van Hoof * src/trackerd/tracker-email-modest.c * src/trackerd/tracker-utils.c * src/trackerd/tracker-utils.h * src/trackerd/trackerd.c * src/trackerd/tracker-email-evolution.c * src/trackerd/tracker-process-files.c * src/trackerd/tracker-indexer.c Introduced tracker_set_status 2008-04-16 Patch from Szilveszter Farkas * src/libstemmer/src_c/stem_UTF_8_hungarian.c * src/libstemmer/src_c/stem_UTF_8_hungarian.h * src/libstemmer/Makefile.am * src/libtracker-common/tracker-language.c * src/tracker-preferences/tracker-preferences.glade * data/languages/stopwords.hu * data/languages/Makefile.am Added hungarian stemmer and stopword list 2008-04-14 Carlos Garnacho Implement a database abstraction interface, with a sqlite implementation. Queries/procedures return a TrackerDBResultSet object, which simplifies result data extraction. * src/trackerd/tracker-db-interface.[ch]: Added. Interface to access databases. * src/trackerd/tracker-db-interface-sqlite.[ch]: Added. Sqlite implementation. * src/trackerd/Makefile.am: add these files. * src/trackerd/tracker-db-email.[ch], tracker-db-sqlite.[ch], tracker-db.c, tracker-dbus-files.c, tracker-dbus-keywords.c, tracker-dbus-metadata.c, tracker-dbus-search.c, tracker-email-evolucion.c, tracker-email-modest.c, tracker-inotify.c, tracker-process-files.c, trackerd.c: Use the new API. * src/trackerd/tracker-dbus-methods.[ch]: Modify to build a DBusMessage from a TrackerDBResultSet. 2008-04-14 Martyn Russell * configure.ac: * src/Makefile.am: * src/tracker-indexer/Makefile.am: * src/tracker-indexer/tracker-indexer.c: Created initial binary for tracker-indexer. 2008-04-11 Martyn Russell * configure.ac: * src/libtracker-common/tracker-config.[ch]: Added options "index-mounted-directories" and "index-removable-devices". * src/trackerd/Makefile.am: * src/trackerd/tracker-hal.[ch]: Added to do all things HAL. * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-methods.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-fam.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-process-files.[ch]: * src/trackerd/tracker-utils.[ch]: * src/trackerd/trackerd.c: Moved a LOT of code out of tracker-utils.[ch] and into tracker-process-files.[ch] since that's the only place they were used. Moved HAL code out to new module. Fixes bug #503725. 2008-04-11 Philip Van Hoof * src/trackerd/tracker-email-modest.c * src/trackerd/tracker-utils.c * src/trackerd/tracker-utils.h * src/trackerd/tracker-email-utils.c * src/trackerd/tracker-email-utils.h * src/trackerd/trackerd.c: Added stopping watching E-mail service paths. Also fixes a potential memory leak with the Hashtable service_directory_table 2008-04-10 Carlos Garnacho * src/trackerd/tracker-email.c (tracker_email_index_file): Revert last change, it was already fixed in r1261. 2008-04-10 Carlos Garnacho Add a query extension tree, at the moment supports And and Or operations. Fixes #509607. * src/trackerd/tracker-query-tree.[ch]: New files, implement the expression tree, and return a hit list based on the evaluation of the search terms with the logical expressions. * src/trackerd/Makefile.am: Added these files. * src/trackerd/tracker-indexer.[ch]: Remove SearchQuery related code, implemented now by TrackerQueryTree. * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-dbus-search.c: Use new TrackerQueryTree API. 2008-04-10 Philip Van Hoof * python/deskbar-handler/tracker-module.py * python/deskbar-handler/tracker-handler.py * src/trackerd/tracker-db-email.c * src/trackerd/tracker-db-email.h * src/trackerd/tracker-email-thunderbird.c * src/trackerd/tracker-dbus-search.c * src/trackerd/tracker-email-modest.c * src/trackerd/tracker-email-modest.h * src/trackerd/tracker-email-utils.c * src/trackerd/tracker-email.c * src/trackerd/tracker-email-utils.h * src/trackerd/tracker-email-evolution.c * src/trackerd/tracker-email-kmail.c * src/trackerd/Makefile.am * src/libtracker-common/tracker-configuration.c * src/tracker-search-tool/tracker-search-tool-callbacks.c * src/tracker-preferences/tracker-preferences.glade * src/tracker-preferences/tracker-preferences.c * docs/tracker.cfg.5 * data/services/default.service: Added support for the mobile E-mail client Modest 2008-04-09 Carlos Garnacho * src/trackerd/tracker-process-files.c (process_index_entity): Use the correct database when indexing mail archives. 2008-04-08 Ivan Frade * data/sqlite-stored-procs.sql: Fixed names in stored proc. 2008-04-08 Claude Paroz * src/tracker-applet/tracker-applet-prefs.glade: Removed translatable property from stock label. 2008-04-08 Ivan Frade Hide indexer struct to improve modularity. Fixes bug #525403. * src/trackerd/tracker-utils.h: WordDetails moved to the indexer. * src/trackerd/tracker-dbus-search.c: Levenshtein algorythm moved to the indexer. * src/trackerd/tracker-cache.c: * src/trackerd/trackerd.c: Updated to new functions * src/trackerd/tracker-indexer.[ch]: Hide indexer struct implementation. Added Levenshtein code and WordDetails struct. 2008-04-08 Ivan Frade * src/trackerd/tracker-service.h * src/trackerd/tracker-service-manager.c * src/trackerd/tracker-service-manager.h * src/trackerd/tracker-service.c: Added files missing in previous commit. 2008-04-08 Ivan Frade Service type information encapsulated in TrackerService GObject. Service-type/mime/mime prefixes relations in tracker_service_manager. Fixes bug #523200. * data/services/default.service: Add HasFulltext, HasMetadata, HasThumbs properties with proper values. * data/sqlite-stored-procs.sql: Add method to obtain service type related mimes. * src/trackerd/Makefile.am: Add new files for compilation. * src/trackerd/tracker-process-files.c: * src/trackerd/trackerd.c: * src/trackerd/tracker-dbus-keywords.c * src/trackerd/tracker-dbus-search.c * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-dbus-metadata.c * src/trackerd/tracker-dbus-methods.c: * src/trackerd/tracker-rdf-query.c * src/trackerd/tracker-db-sqlite.h * src/trackerd/tracker-db.c * src/trackerd/tracker-db-email.c: Use new methods. * src/trackerd/tracker-db-sqlite.c: Use new methods. (tracker_db_mime_query): New helper function to obtain mime and mime prefixes for a service type. (tracker_db_get_mimes_for_service_id): (tracker_db_get_mime_prefixes_for_service_id): New wrapper functions to tracker_db_mime_query. (db_row_to_service): Convert a service type row in the database to a new TrackerService object. * src/tracker-preferences/tracker-preferences.c: * src/trackerd/tracker-dbus.[ch]: renamed TRACKER_SERVICE to TRACKER_DBUS_SERVICE * src/trackerd/tracker-indexer.c: Reformatted code. * src/trackerd/tracker-metadata.c: Removed hardcoded mimes and logic to solve mime->service_type * src/trackerd/tracker-service-manager.[ch]: Code handling service types, mimes and mime prefixes. * src/trackerd/tracker-service.[ch]: GObject representing a service type * src/trackerd/tracker-utils.[ch]: Removed ServiceDef struct and related methods. 2008-04-08 Michael Biebl * NEWS: Revamp the NEWS file. Patch by Tshepang Lekhonkhobe. * README: Update the documentation about compilation, runtime requirements, configuration and usage. Patch by Tshepang Lekhonkhobe. 2008-04-07 Ivan Frade Using standard C functions to parse dates. Fixes bug #526727. Replaced iso8160 with iso8601 * tracker-extract.[ch]: Replaced tracker_generic_data_extractor and his auxiliar functions with tracker_generic_date_to_iso8601, strftime and strptime. * tracker-extract-ps.c: * tracker-extract-png.c: * tracker-extract-exif.c: Updated to use the new function. 2008-04-07 Carlos Garnacho Make Mail indexing modular. Fixes bug #526761. * src/libtracker-common/tracker-config.[ch]: Add a string configuration parameter instead of a boolean value for each mail client. * src/trackerd/Makefile.am: Build mail client dependent code in separate modules * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-thunderbird.c: Modified to run as a module. * src/trackerd/tracker-email-evolution.h: * src/trackerd/tracker-email-kmail.h: * src/trackerd/tracker-email-thunderbird.h: Removed, no longer necessary. The three modules share now the same public interface, and these are called through GModule. * src/trackerd/tracker-email.[ch]: Use GModule to load the selected mail client code and call the module methods. * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-process-files.c: * src/trackerd/trackerd.c: * src/trackerd/tracker-dbus-methods: Change to work with modular mail indexing. 2008-03-29 Laurent Aguerreche * src/tracker-preferences/tracker-preferences.c: avoid tracker-preference crashes when configuration file does not have a "/Indexing/Language" entry. 2008-03-28 Jerry Tan * src/libtracker-common/tracker-configuration.c: to make it build on solaris with sunstudio. 2008-03-27 Martyn Russell * src/trackerd/tracker-parser.c: Fix compiler warning. 2008-03-27 Martyn Russell * data/sqlite-stored-procs.sql: * src/trackerd/tracker-dbus-files.c: (tracker_dbus_method_files_get_text_contents): Implemented the GetTextContents method. This fixes bug #514553. 2008-03-26 Martyn Russell * src/trackerd/Makefile.am: * src/trackerd/tracker-process-files.[ch]: * src/trackerd/tracker-process-requests.[ch]: * src/trackerd/trackerd.c: Added these files to split out the indexing functionality which was in trackerd.c. Fixes bug #521803. * src/trackerd/tracker-utils.h: Removed two members of the Tracker struct which are not used globally. 2008-03-17 Martyn Russell * src/libtracker-common/tracker-log.c: (tracker_log_init): Safe guard initialising the tracker log more than once. Patch by Ivan Frade. 2008-03-10 Martyn Russell * src/libtracker-common/tracker-configuration.c: (string_replace): * src/libtracker-gtk/tracker-keyword-store.c: (tracker_keyword_store_drag_data_get): * src/libtracker-gtk/tracker-metadata-tile.c: (_int_to_label): * src/qdbm/myconf.c: (_qdbm_mmap): * src/text-filters/ooo_converter/ChangeLog: * src/text-filters/ooo_converter/o3read.c: * src/tracker-applet/tracker-applet.c: (reindex): * src/tracker-search-tool/tracker-search-tool.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-indexer.c: * src/trackerd/trackerd.c: (get_update_count): Fixed all warnings generated when building the tracker project with the exception of xdgmime which is imported. This fixes bug #520789. 2008-03-10 Martyn Russell * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-methods.c: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-utils.h: Fix missing libtracker-common/tracker-config.h and libtracker-common/tracker-log.h dependencies which requires it. 2008-03-10 Martyn Russell * src/libtracker-common/tracker-log.c: (tracker_log_term): * src/libtracker-common/tracker-log.h: * src/trackerd/trackerd.c: Remove the dependency on tracker-config by the tracker-log module. 2008-03-07 Jamie McCracken * Fix for possible email crasher 2008-03-06 Martyn Russell * src/libtracker-common/tracker-configuration.c: * src/qdbm/myconf.c: * src/text-filters/ooo_converter/o3read.c: * src/tracker-applet/tracker-applet.c: Fixed compiler warnings. * src/libtracker-gtk/tracker-keyword-store.c: (tracker_keyword_store_drag_data_get): Change gtk_selection_data_set() to gtk_selection_data_set_text() instead, saves us casting to a guchar pointer. * src/libtracker-gtk/tracker-metadata-tile.c: Removed unused date_to_str() function. * src/tracker-search-tool/tracker-search-tool.c: Removed unused tracker_search_select_service_type_by_string() function. * src/trackerd/tracker-email-thunderbird.c: Remove unused get_boolean_from_string() function. * src/trackerd/tracker-indexer.c: Include ISO definitions before including math.h so we don't get warnings about lrintf() usage. * src/trackerd/trackerd.c: Removed unused set_update_count() function. 2008-03-06 Martyn Russell * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-config.[ch]: * src/libtracker-common/tracker-language.[ch]: Moved these files here from src/trackerd so the API can be shared by all components. * src/libtracker-common/tracker-log.[ch]: Created by taking these functions from the src/trackerd/tracker-utils.c log functions. This is based on a patch from Ivan Frade. * src/trackerd/Makefile.am: * src/trackerd/tracker-apps.c: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-email.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-files.c: * src/trackerd/tracker-dbus-keywords.c: * src/trackerd/tracker-dbus-metadata.c: * src/trackerd/tracker-dbus-methods.c: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-kmail.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-email.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-inotify.c: * src/trackerd/tracker-ioprio.c: * src/trackerd/tracker-metadata.c: * src/trackerd/tracker-parser.c: * src/trackerd/tracker-rdf-query.c: * src/trackerd/tracker-utils.c: * src/trackerd/trackerd.c: Update the include statments in most of these files to use libtracker-common's config/log headers. 2008-03-05 Martyn Russell * src/trackerd/tracker-config.[ch]: Added. * src/trackerd/tracker-language.[ch]: Added. * src/trackerd/tracker-stemmer.[ch]: Removed. * src/trackerd/Makefile.am: * src/trackerd/tracker-cache.c: * src/trackerd/tracker-db-sqlite.c: * src/trackerd/tracker-db.c: * src/trackerd/tracker-dbus-methods.c: * src/trackerd/tracker-dbus-search.c: * src/trackerd/tracker-dbus.c: * src/trackerd/tracker-email-evolution.c: * src/trackerd/tracker-email-thunderbird.c: * src/trackerd/tracker-email-utils.c: * src/trackerd/tracker-email.c: * src/trackerd/tracker-indexer.c: * src/trackerd/tracker-parser.c: * src/trackerd/tracker-utils.[ch]: * src/trackerd/trackerd.c: Moved all configuration options to their own module for type and limit checking combined with property notification and signalling. This fixes bug #513486. 2008-03-04 Saleem Abdulrasool * src/libtracker-common/Makefile.am: libtracker-common is really a private library, dont install it to the system. Thanks to Michael Biebl for noticing. 2008-03-04 Martyn Russell * autogen.sh: * configure.ac: Make build work for Maemo platform, changes autoconf prereq to 2.59 not 2.59c and uses 1.9 instead of 1.7. This fixes bug #511752. 2008-03-03 Saleem Abdulrasool * configure.ac: * src/Makefile.am: * src/libtracker-common/Makefile.am: * src/libtracker-common/tracker-configuration.c: (get_default_language_code), (write_default_config), (string_replace), (tracker_configuration_load), (tracker_configuration_save), (tracker_configuration_free), (tracker_configuration_get_string_list), (tracker_configuration_set_string_list), (tracker_configuration_get_list), (tracker_configuration_set_list): * src/libtracker-common/tracker-configuration.h: * src/tracker-preferences/Makefile.am: * src/tracker-preferences/tracker-configuration.c: * src/tracker-preferences/tracker-configuration.h: * src/tracker-preferences/tracker-preferences.c: (tracker_preferences_init), (tracker_preferences_finalize), (set_bool_option), (set_int_option), (setup_page_general), (setup_page_performance), (setup_page_files), (setup_page_ignored_files), (setup_page_emails), (name_owner_changed), (restart_tracker), (tracker_preferences_cmd_apply), (tracker_preferences_cmd_cancel): Beginings of libtracker-common. Migrate tracker-preferences to it. 2008-03-02 Jamie McCracken * Lots of minor tweaks * make aplet prefs more hig compliant 2008-02-27 Jamie McCracken * stopped applet respawn of trackerd (via dbus activation unpause method) when killed whilst smart paused * Made progress/animation of email indexing in step * Added index merging progress to tooltip * Fixed clean exiting of trackerd when paused and in index merge state * Fixed final index replacing main index at startup if no tmp merge indexes exist 2008-02-27 Jamie McCracken * fixed applet * added pref screen for applet * aded reindex option to applet * fixed bugs in blacklists 2008-02-26 Carlos Garnacho * src/trackerd/tracker-db-sqlite.c (sqlite3_get_service_name): * src/trackerd/tracker-dbus-metadata.c (tracker_dbus_method_metadata_set) (tracker_dbus_method_metadata_get): * src/trackerd/tracker-dbus-search.c (tracker_dbus_method_search_get_hit_count_all) (tracker_dbus_method_search_text_detailed): Plug some leaks. Fixes #518882. 2008-02-25 Carlos Garnacho * src/trackerd/tracker-db-sqlite.c (tracker_exec_proc) (tracker_exec_proc_ignore_nulls): Plug 2 memleaks introduced by the switch to GPtrArray. 2008-02-25 Jerry Tan * add firefox extension for web history indexing 2008-02-24 Jamie McCracken * added tmp black list of frequently changing files 2007-02-24 patches from Jerry Tan * added web history 2008-02-22 Luca Ferretti * src/tracker-applet/tracker-applet.c: (set_status_hint), (create_context_menu): More strings for translation and fix capitalization. 2008-02-21 Jamie McCracken * Updated applet * removed popup window and replaced with tooltip to indicate status/progress * added smart pause by tracking X events for mouse and keyboard * added more options to not show animation and hide icon 2008-02-17 Saleem Abdulrasool * src/tracker-applet/tracker-applet.c: (set_progress), (index_finished), (index_state_changed), (tray_icon_show_message), (main): Inline translatable strings and fix some whitespace issues 2008-02-16 Jaap Haitsma * src/tracker-applet/tracker-applet.c: (create_context_menu), (statistics_menu_activated), (open_uri), (about_url_hook), (about_email_hook), (about_menu_activated), (main): Add about dialog to applet. Fixes bug #507339 2008-02-14 Carlos Garnacho * src/trackerd/tracker-metadata.c (tracker_metadata_get_embedded): Rewrite function so it's less indented, and copies a bit less memory around. Bug #513688. 2008-02-14 Carlos Garnacho * src/trackerd/tracker-db-sqlite.c (tracker_exec_proc): Store directly results in a GPtrArray. Fixes bug #513691. 2008-02-14 Carlos Garnacho * src/trackerd/tracker-db-sqlite.h: * src/trackerd/tracker-utils.h: Pack booleans in guints to make most used structs smaller. Fixes bug #513692. 2008-02-08 Rich Burridge * src/libtracker-gtk/tracker-utils.h: * src/libtracker-gtk/tracker-utils.c: * src/libtracker-gtk/tracker-tag-bar.c: Fix for Fixes bug #494892 - Label for/labeled by relation missing for add tag button. * src/libtracker-gtk/tracker-metadata-tile.c: From Wendy Hu Fixes bug #494907 – Labels should be set as focusable. * src/tracker-search-tool/tracker-search-tool.c: From Patrick Wade Fixes bug #495205 – Warning message label should be accessible to at-tools. * src/tracker-search-tool/tracker-search-tool-support.c: * src/tracker-search-tool/tracker-search-tool-support.h: * src/tracker-search-tool/tracker-search-tool.c: Fixes bug #494878 – Search hit number can not be reported by Orca. 2008-02-05 Rich Burridge * src/tracker-preferences/tracker-preferences.glade: Fixes bug #503215 – The time unit is not reported by default. 2008-02-03 Carlos Garnacho * Fixes bug #509601. Make tracker-extract more modular using dynamically loaded libraries. 2008-01-30 Luca Ferretti * src/tracker-preferences/tracker-preferences.c: (tracker_preferences_cmd_apply): Fix my bad English, courtesy of A. Walton and Michael Biebl. 2008-01-30 Luca Ferretti * src/tracker-preferences/tracker-preferences.c: (tracker_preferences_cmd_apply): HIGfication of reindex/restart alerts. 2008-01-29 Carlos Garnacho * src/trackerd/tracker-db-sqlite.c (tracker_db_search_text): Avoid doing too many relocations of data in memory. Fixes bug #511781. * src/trackerd/tracker-utils.c (array_to_list): Same here. 2008-01-28 Carlos Garnacho * src/trackerd/tracker-db-sqlite.c (tracker_exec_proc_ignore_nulls): Store directly results in a GPtrArray. Fixes bug #511788. 2008-01-27 Patches from from Thiago Marcos P. Santos * Fixed missing gobject ldadd in libtracker * Made thread stack size configurable 2008-01-23 Halton Huo Implement explicit apply for t-p. * src/tracker-preferences/tracker-preferences.c: * src/tracker-preferences/tracker-preferences.glade: 2008-01-21 Halton Huo * src/trackerd/trackerd.c: (process_files_thread): Refresh index when deleting files 2008-01-17 Michal Pryc * Patch from Mathieu Dimanche Fixed character encoding problems between Thunderbird and trackerd, a.k.a. UTF-8 encoded TMS files 2008-01-11 Laurent Aguerreche * Patch from Dan Bryant Implements access to imap accounts with MD5-DIGEST authentication 2008-01-05 Jaap Haitsma * src/tracker-preferences/tracker-preferences.c: Change CamelCase function name to lowercase seperated by _ 2008-01-05 Jaap Haitsma * src/tracker-applet/tracker-applet.c: * src/tracker-applet/tracker-applet.h: Add license file to top of file 2008-01-05 Jaap Haitsma * src/tracker-applet/Makefile.am: * src/tracker-applet/tracker-applet-private.h: * src/tracker-applet/tracker-applet.c: * src/tracker-preferences/Makefile.am: * src/tracker-preferences/tracker-configuration-private.h: * src/tracker-preferences/tracker-configuration.c: * src/tracker-preferences/tracker-preferences-private.h: * src/tracker-preferences/tracker-preferences.c: Remove *-private.h files. Just put these declarations in the respective *.c files 2007-12-13 Jamie McCracken * Fixed issue with log file being null * Fixed typo of metadata name Audio:PeakTrackGain in the gstreamer extractor * fix for crasher where index name is null during merging * make initial indexing on battery off by default * Fixed prevention of multiple instances of trackerd causing infinite loop and 100% cpu * Fixed reentrant signals to prevent loops by dying quickly 2007-12-09 Jamie McCracken * Increased startup sleep for applet to prevent race condition * Made applet handle trackerd being stopped gracefully * Fixed GetHitCount service type * updated hit counts when duds are present in TST 2007-12-09 Jamie McCracken * Strengthed indeing of emails (utf-8 check on addresses) * Stop indexing if index or db is too large (>2GB) * Fixed notification of tag delete so index is updated * set low disk space to 1% by default * added kill timeout if not shutdown cleanly within 20 secs 2007-12-03 Marcus Fritzsch * python/deskbar-handler/tracer-module.py Even more defensively programmed add_all_actions () to get around *older* deskbar releases (prior rev 1701). Fixes bug #474131. 2007-11-30 Jerry Tan * src/tracker-search-tool/tracker-search-tool.c: Fixes bug #495528. Disable Save Result As when search type like email, applications. 2007-11-28 Jerry Tan * src/trackerd/tracker-utils.h: * src/trackerd/tracker-utils.c: * src/trackerd/trackerd.c: implement the feature to set ignore filename pattern. 2007-11-26 Marcus Fritzsch * pause on low disk space support * unified pause call: tracker_pause () * added config option LowDiskSpaceLimit=int - set to < zero to disable, default is 5 (for default cfg) and as default value if not in cfg. 2007-11-25 Halton Huo Fix several problems for trackerd reload when changing preferences through t-p: 1. Check/uncheck evolution email(maybe more) does not make trackerd restart 2. Trackerd restart will report another trackerd is running. 3. Key for BatteryIndex BatteryIndexInitial and FastMerges does not initialized t-p GUI. * src/tracker-preferences/Makefile.am: Add TRACKER_BINDIR * src/tracker-preferences/tracker-preferences.c: (spin_value_changed_cb), (check_toggled_cb), (setup_page_general), (setup_page_performance), (setup_page_files), (name_owner_changed), (cmdClose_Clicked): * src/trackerd/tracker-dbus-methods.c: (tracker_dbus_method_set_bool_option): Add some bool option here. (tracker_dbus_method_set_int_option): Add some int option here. 2007-11-24 Michael Biebl * filters/*/*_filter: Fix the shell scripts for the external filters - Use mktemp to create safe temp files. - Make all scripts respect the TMPDIR environment variable. - Remove unnecessary output to stdout. - Change the working directory of the msword filter before calling wvText to avoid creating temporary files in $HOME. 2007-11-23 Saleem Abdulrasool * src/tracker-preferences/tracker-preferences.glade: Add accessibility tags for lists in tracker-preferences. Fixes bug #495201 (Patrick Wade). Patch from Patrick Wade. Also add accessibility tags for throttling. Fixes bug #195188 (Patrick Wade). 2007-11-19 Marcus Fritzsch * python/deskbar-handler/tracker-{handler,module}.py Fixed KMail identifier to the correct value * Updated docs/trackerd.1 and docs/tracker.cfg.5 2007-11-18 Jamie McCracken * Added Get Hit Count call to libtracker * Fixed GetServices call * Added KeywordAdded and KeywordRemoved signals 2007-11-18 Laurent Aguerreche * Read some keys from tracker.cfg file: - BatteryIndexInitial, BatteryIndexInitial, - MaxBucketCount, MinBucketCount, BucketRatio, Divisions - Padding (but not used anywhere in tracker's code...) 2007-11-17 Jamie McCracken * implemented power management options * fixed bug with embedded Auth in IMAP URI 2007-11-16 Marcus Fritzsch * python/deskbar-handler/tracker-module.py: Fixed URI quoting issues. Fixes bug #495512. * src/trackerd/tracker-dbus-search.c: Additional error check, fixes bug #495810. 2007-11-13 Jamie McCracken * Added confirmation dialog to prefs when it needs to be restarted or reindexed * fixed error msg when stopwords are passed for searching 2007-11-11 Patch from Tshepang Lekhonkhobe * updated README file * fix for configure.ac (libglade not needed for tst) 2007-11-11 Patch from Wendy Hu * extract keywords from html * fix metadata child relationships 2007-11-11 Jamie McCracken * Added more widgets to tracker-preferences for power management and fast index merges * Made throttle and most of the checkboxes change settings in trackerd in real time (without needing to restart trackerd) * Fixed deletion of entries 2007-11-09 Saleem Abdulrasool * src/tracker-preferences/tracker-configuration.c: (_g_utf8_make_valid), (g_key_file_parse_value_as_double), (g_key_file_get_double), (g_key_file_set_double), (g_key_file_get_double_list), (g_key_file_set_double_list), (get_default_language_code), (create_config_file), (tracker_configuration_init), (tracker_configuration_get_list), (string_replace), (_write), (_set_string), (_get_string_list), (_set_string_list): * src/tracker-preferences/tracker-configuration.h: * src/tracker-preferences/tracker-preferences-main.c: (main): * src/tracker-preferences/tracker-preferences-utils.h: * src/tracker-preferences/tracker-preferences.c: (tracker_preferences_init), (setup_page_general), (setup_page_performance), (setup_page_files), (setup_page_emails), (name_owner_changed), (if_trackerd_start), (cmdClose_Clicked), (cmdAddCrawledPath_Clicked), (cmdAddIndexPath_Clicked), (append_item_to_list), (treeview_get_values), (populate_list): * src/tracker-preferences/tracker-preferences.glade: * src/tracker-preferences/tracker-preferences.h: Run indent on the configuration tool, and fix the init to hide the help button properly. Edit the preferences layout slightly to arrange the tabs in order of usefulness and simplify the email tab. 2007-11-06 Saleem Abdulrasool * src/tracker-applet/tracker-applet-private.h: * src/tracker-applet/tracker-applet.c: (tray_icon_class_init), (tray_icon_set_tooltip): * src/tracker-applet/tracker-applet.h: Drop set_tooltip, there is no reason for this to be a virtual function. 2007-11-05 Laurent Aguerreche * Fix infinite loops while indexing in directories containing a single quote in their name * Fix "merging of indexes" messages which appear again, and again, and again, etc. 2007-11-04 Patch from Halton Huo * Added shutdown and restart of trackerd to refresh config settings to tracker-preferences 2007-11-03 Jamie McCracken * made corruption scan active only if trackerd was not cleanly shutdown * also repair qdbm index files * mutex safeguards around cache * allow readonly mode for trackerd when another process is present but on another machine (NFS) * bomb out trackerd if not primary owner of tracker dbus name * made use of sqlite3_free where needed to by sqlite 3.5 2007-10-31 Saleem Abdulrasool * src/libtracker/tracker-files.c: (main): * src/libtracker/tracker-get-meta-for-folder.c: (main): * src/libtracker/tracker-query.c: (main): * src/libtracker/tracker-stats.c: (main): * src/tracker-search-tool/tracker-search-tool.c: (display_error_dialog): Patch from Bruce Cowan Fix spelling error 'occured' -> 'occurred'. Fixes bug #481651. 2007-10-31 Michael Biebl * Merge tracker-inotify.h, tracker-fam.h and tracker-win-fs-changes.h into a single file called tracker-watch.h. * Remove redundant declarations of the tracker watch functions from tracker-db-sqlite.h. * Extract the poll implementation of the watch functions from trackerd.c into a new file called tracker-poll.c. * Update files to #include "tracker-watch.h". * Update Makefile.am to build the correct file monitoring backend. Drop removed files like tracker-inotify.h, tracker-fam.h, tracker-win-fs-changes.h and add tracker-watch.h to trackerd_SOURCES. 2007-10-31 Michal Pryc * extensions/thunderbird-extension/content/trackerMailWindow.xul: Fixes opening proper mail within Thunderbird. * extensions/thunderbird-extension/tracker.xpi: new xpi with the applied patch. 2007-10-31 Patch from Tshepang Lekhonkhobe * updated README file 2007-10-31 Patch from Thiago Marcos P. Santos * escape string in sql fix 2007-10-29 Jamie McCracken * Check sqlite dbs for corruption on startup and force reindex if necessary * mem leak fix * improve debug of index creation failure * Fixed emails not being indexed if index has been stopped prior to completion of first run * reduce inotify max watch count by 500 to leave some spare for other apps * made sure only regular files get indexed * check dir is not watched before attmpting to watch it again * fixed hang when a directory is moved or renamed while indexing is going on 2007-10-20 Marcus Fritzsch * tracker-extract, added support for application/x-gzpostscript files 2007-10-19 Marcus Fritzsch * deskbar handlers, Fixed gnome bug #487444. Fixes bug #486733. * added some more exception catchers, in general where actions are executed 2007-10-15 Patch from Halton Huo * fixed crasher on solaris 2007-10-09 Luca Ferretti * src/tracker-applet/tracker-applet.c: (create_context_menu): Mark strings in rigth click menu translatable and fix capitalization and ellipsizing as per GNOME HIG. 2007-10-09 Jamie McCracken * Fixed deletions of words from index 2007-10-08 Jamie McCracken * Fixed applet so that progress and pause options work * Implemented fast_merges option * Fixes to remove dud hits so a research corrects wrong hit counts * Cause tracker to die and delete indexes when corruption is detected * Check for overlapping watch dirs * Correct email folders count in applet progress * TST - display warning when searching while indexing * TST - ellipsize first column in search results 2007-10-07 Luca Ferretti * src/tracker-preferences/tracker-preferences.desktop.in.in: Change the name of capplet launcher, to remove "Preferences" 2007-10-06 Jamie McCracken * Renamed and rephrased tracker-applet source * Removed unneeded stuff and merged source files in the applet * Made the applet statistics window live and self updating every 2 seconds * Integrated signal handlers for state changed, progress and IndexFinsihed into applet * Made more translatable strings in applet 2007-10-04 Jamie McCracken * Added in_merge to StateChangeSignal * Fixed crasher when merging indexes 2007-10-01 Jamie McCracken * Made battery and pause checks tickless * Added signals for index progress ans state changes * added dbus methods for setting options and shutdown/reindex * renamed tracker-monitor to tracker-applet 2007-10-01 Laurent Aguerreche * Make index statistic window a little bit sexier 2007-09-30 Laurent Aguerreche * Cleanups for KMail and Thunderbird code * KMail emails are indexed but not removed when user move one to trash 2007-09-29 Patch from Wendy Hu * Fixed missing category from tst search 2007-09-27 Mikkel Kamstrup Erlandsen * Richer display of hits in deskbar module This was intended all along, but broke with DBA 2.20. 2007-09-27 Jamie McCracken * Added intial tracker-monitor notification applet * fixed excessive busy count issue 2007-09-25 Patch from Halton Huo * Enable search of words beginning with a number 2007-09-24 Laurent Aguerreche * KMail emails are not indexed twice anymore because date of indexing is now checked... * Some work need to be done to update infos of a maildir email when needed * In tracker.h, prefer G_BEGIN_DECLS/G_END_DECLS than direct use of extern "C" * Remove some warnings in libtracker-gtk 2007-09-23 Jamie McCracken * Fixed memory leaks * Optomised index merging * Fixed and tuned battery checking * Fixed bug on file read where partial utf-8 crept through * Fixed CJK check * Replaced GSList based cache with byteArray 2007-09-22 Jamie McCracken * Added index merging * Fixed disk IO issues * Restored Qdbm as the main index * Fixed File move crasher 2007-09-13 Jamie McCracken * Added automatic index pause on battery * Check files exist before including in search results * Fixed disabling of indexing option * Fixed bug where could not open files when O_NOATIME is not supported 2007-09-12 Jamie McCracken * Added basic support for index merging 2007-09-12 Patch from Michal Pryc * added initial thunderbird support (experimental and requires separate thunderbird-extension) * added solaris build fixes 2007-09-11 Patch from Marcus Fritzsch * Split legacy deskbar handler into two files, static and live. * Don't show static tracker search option when only live search is enabled This fixes Gnome #474660. * Introduce support for MUAs Thunderbird and KMail in both legacy and new deskbar handlers * Check that t-s-t is installed before showing static handler as available extension. This closes Debian #441889. It should be noted that recent deskbar work has closed Gnome #474131 as well. Commited and approved by kamstrup. 2007-09-11 Laurent Aguerreche * Do not assume that gint32 or guint32 are gint or guint in tracker-db-sqlite.c 2007-09-10 Christian Persch * src/tracker-preferences/tracker-preferences.glade: Use the right capitalisations, and add/change some mnemonics. Bug #474339. 2007-09-10 Patch from Marko Anastasov * Made tracker.h c++ friendly 2007-09-09 Jamie McCracken * Improved memory usage * Optimised text filter reading io using posix_fadvise and O_NOATIME * Print out memory usage (linux only) when flushing words 2007-09-08 Laurent Aguerreche * Try to use O_NOATIME everywhere is possible in tracker-extract * Use O_NOATIME to open Evolution's summary files 2007-09-08 Laurent Aguerreche * Use O_NOATIME mode to read emails with GMime 2007-09-07 Patch from Christian Persch * Fixed HIG violations in tracker-preferences 2007-09-07 Laurent Aguerreche * Remove some useless calls to g_slist_length() * Use g_slice_new/free() for SearchQuery and SearchWord * Split things like g_return_if_fail(item1 && item2) into: g_return_if_fail(item1); g_return_if_fail(item2); in tracker-indexer.c and tracker-dbus-search.c 2007-09-06 Jamie McCracken * Added initial support for index merging * Made sure stats no longer reset * Fixed runaway memory usage of sqlite in indexer 2007-09-04 Jamie McCracken * removed qdbm completly * replaced with sqlite indexer * split up files/emails into separate dbs (meta, content and index) * tuned caching * tuned indexer to pause when non-tracker disk activity is detected * made email indexing 5x faster and lessened iowait times * Improved parser * Fixed restore of user metadata on reindex (keywords are auto-restored) * added source code reserved words to english stopwords * added english stopwords on top of non-english stopword lists 2007-09-03 Mikkel Kamstrup Erlandsen * python/deskbar-handler/tracker-module.py Add additional standard actions 2007-09-03 Laurent Aguerreche * Work on KMail support * Support of MBox files seems to work well. So indexing works when MBox storage is used with local emails (= sent + POP3 emails) and IMAP emails (but not cached-IMAP emails since they are always stored in a maildir hierarchy) * Still issues with mails in maildir directories (trackerd try to index those emails twice!) * Indexing of KMail emails is still turned off 2007-09-03 Laurent Aguerreche * Make TST able to open KMail emails 2007-08-19 Patch from Marcus Fritzsch * Added option to skip mounted directories when indexing * added safeguards to html and imagemagick extractors to prevent crashers * added safeguard to app indexing 2007-08-19 Michael Biebl * Fixed gettext support in deskbar-applet plugin * Update autofoo to automatically install the correct version of the deskbar-applet plugin. Can be overriden with --enable-deskbar-applet=(handler|module) "handler" is for deskbar-applet < 2.19 "module" is for deskbar-applet >= 2.19 2007-08-19 Patch from Marcus Fritzsch * Reorganization of tracker-handler.py * Added support for GaimConversations and Applications * Fixed gnome bugs: #403752, #359307 * Fixed ubuntu bugs: #131247, #130889 * New deskbar-applet 2.19 module tracker-module.py, fixes ubuntu bug #132921 * Fixed emails categorization * Better display of GaimConversations hits 2007-08-13 Laurent Aguerreche * Fix bug #131842 from Ubuntu 2007-08-13 Laurent Aguerreche * Replace "g_slist_length(list)>0" with "list!=NULL" to check whether a list is empty or not in trackerd.c * Cosmetic changes in trackerd.c 2007-08-12 Laurent Aguerreche * Escape filenames containing character "'" to make xdg_open() working with them 2007-08-11 Jamie McCracken * Put back alarm call to tracker spawn as safeguard 2007-08-10 Laurent Aguerreche * Fixed bug #465176 (IMAP e-mail indexing does not work after first crawl) * Code cleanups in tracker-db-email.{h,c} 2007-08-09 Laurent Aguerreche * Remove an error message while loading file sqlite-stored-procs.sql due to bad checking of returned value of fgets() 2007-08-09 Laurent Aguerreche * Close feature request #397210 (Desensitize Find button when search entry is empty) * Remove warnings at building time in TST * Code cleanups in TST 2007-08-09 Michael Biebl * Add missing function prototype definitions 2007-08-07 Jamie McCracken * Fixed memory leaks * Fixed crasher due to non valid utf-8 creeping through emails 2007-08-07 Laurent Aguerreche * Remove some warnings at building of tracker-extract * Adds more recognized date formats for Postscript files in tracker-extract * Code cleanups in tracker-extract 2007-08-07 Michael Biebl * Generate the D-Bus client-side bindings automatically from the introspection XML file 2007-08-06 Laurent Aguerreche * Adds copyright headers in tracker-preferences' files * Remove some code duplications in tracker-configuration.c * Code cleanups in tracker-preferences 2007-08-05 Marko Anastasov * Implemented tracker_dbus_method_search_get_hit_count. 2007-08-04 Patch from Marcus Fritzsch * fixed crasher in email indexing when parsing mimes * updated applet * added tracker-preferences man page 2007-08-04 Patch from Anders Rune Jensen * Made tracker compilable on windows 2007-08-02 Patch from Marcus Fritzsch * Made generic error display window * fixed crasher in tsts - added check for error when calculating hit count 2007-07-29 Laurent Aguerreche * Makes tracker-extract to export dates only in ISO-8601 format * Fixed dates for emails * cosmetic changes 2007-07-29 Patch from Marcus Fritzsch * Removed small chunk of whitespace from being parsed into indexer 2007-07-26 Laurent Aguerreche * Fixed printing of date for audio files in TST 2007-07-25 Patch from Jerry Tan * updated applet to 0.6.0 settings * fixed crasher and made read tags case insensitive for html extractor 2007-07-25 Jamie McCracken * Based on patch by Marcus Fritzsch * Fixed crawled directory indexing when they are not a subset of watched directories * Removed forced indexing of home dir when no watch dirs specified (home is default in cfg file) 2007-07-24 Michael Biebl * Include the deskbar-applet plugin on make dist * Show if deskbar-applet support is enabled in the ./configure summary 2007-07-18 Patch from Jerry Tan * Fixed command line tracker-tag 2007-07-23 Jamie McCracken * Fixed metadata dates display * Revamped tracker-preferences * added missing prefs * fixed bug with additional growing lines 2007-07-22 Patch from Marcus Fritzsch * fixed service names on command line tools * updated man pages 2007-07-22 Laurent Aguerreche * Fixed potential crasher in tracker_set_language() function * Cosmetic changes 2007-07-22 Jamie McCracken * Fixed deleting of no watch dirs from index * Fixed date formats * Added Crawl directory support (indexing without watching) * Added missing filters for csv, excel, spreadsheets (requires ssindex/gnumeric) and oo draw 2007-07-22 Laurent Aguerreche * Not-named email attachments are not ignored anymore * Fixed removing of saved email attachments from spam emails in Tracker's TMP dir * Fixed message "saved email attachment..." * Added "tracker->email_attachements_dir" variable * Added email_make_tmp_name_for_mail_attachment() function * Added tracker_is_empty_string() function * Fixed SEGFAULT when SIGTERM is sent to Tracker while emails are being indexed * Fixed heuristics to detect a text file * Fixed calls to pango_get_log_attrs() * Unified error messages formats 2007-07-21 Patch from Marcus Fritzsch * updated man pages 2007-07-21 Jamie McCracken * Fixed origin of initial sleep in tracker-prefs - based on patch by Tshepang Lekhonkhobe * Fixed resetting icon in metatile * Always made sure an icon is available in tst * Fixed launch of applications (filtered out %U) 2007-07-18 Jamie McCracken * Fixed crasher in tst * Fixed tagging * created config file if not present when running tracker-prefs 2007-07-18 Patch from Jerry Tan * Added initial sleep to tracker-prefs * fixed email setting too 2007-07-17 Patch from Alexandre Rostovtsev * Fixed poppler extractor * Fix for AMD64 setrlimit 2007-07-17 Patch from Andreas Eckstein * Made tracker.h more c++ compatible 2007-07-17 Jamie McCracken * Queued snippets for generation to prevent delays * Made all tracker calls async * Gconf settings for separator position * Fixed bug in tagbar where instruction text would be saved as keywords 2007-07-17 Laurent Aguerreche * Fixed build of TST * Some cleanups in libtracker-gtk 2007-07-17 Patch from Tshepang Lekhonkhobe * updated README * fixed xdg-open order 2007-07-17 Patch from Marcus Fritzsch * Added MaxTextWords limit to config * small compiler warning fixes 2007-07-17 Jamie McCracken * Fixed metadata tile to display for all cats * Fixed TST to display all cats * Fixed various bugs for the above 2007-07-15 Patch from Marcus Fritzsch * Fixed mem leak and some cleanups * added initial sleep config variable 2007-07-13 Patch from Luca Ferretti * cosmetic changes to tst 2007-07-13 Patch from Jerry Tan * Fixed build for Sun compiler 2007-07-13 Jamie McCracken * Replaced tabs in GUI with a sidebar * Fixed update of metadata tile when navigating with keys instead of mouse * Used theme text colours for snippets 2007-07-12 Patch from Jerry Tan * Added NULL to terminate some string arrays in tracker-metadata-tile.c 2007-07-10 Patch from Jerry Tan * Added GetStatus Dbus nmethod and tracker-status app 2007-07-10 Luca Ferretti * src/tracker-search-tool/tracker-search-tool.c: (do_search): show GtkNotebook labels translated 2007-07-09 Patch from Halton Huo * Fixed various crashers (solaris specific only) 2007-07-09 Luca Ferretti * src/tracker-search-tool/tracker-search-tool.desktop.in.in: mark Name and Comment as translatable * trackerd.desktop.in.in: update Comment 2007-07-09 Patch from Jerry Tan * Fixed crasher on solaris for null mimes 2007-07-09 Patch from Michael Biebl * Removed test-tracker-indexer * small fix to Makefile 2007-07-09 Luca Ferretti * src/trackerd/trackerd.c: (main): inizialize g_thread earlier 2007-07-09 Patch from Tshepang Lekhonkhobe * README: updates * Low Memory mode added to config file * Deskbar handler README 2007-07-09 Jamie McCracken * Optimized tracker_debug and related logging funcs * Made use of Setrlimit for limiting memory specific to i386 arch (its buggy on amd64) * updated to latest gtk xdgmime * modded patch from Halton Huo to fix free problem in tracker_get_vfs_name * bug fixes for email indeixng on solaris * Fixed saving of key metadata so they show up in search tool and UI 2007-07-09 Patch from Jason Kivlighn * Added XMP sidecar support * Added XMP support to extractors 2007-07-07 Jamie McCracken * Added tracker_unlink that converts to filesystem locale before unlinking * fixed crasher in email attachment indexing by using locale encoding for attachemnt files 2007-07-04 Jamie McCracken * removed calls to g_mime_stream_close as they appear to be crashing tracker 2007-07-03 Luca Ferretti * src/tracker-preferences/tracker-preferences.desktop.in.in: Add X-GNOME-Bugzilla-* stuff, remove .png from Icon key, set StartupNotify to true. NOTE: I can't access to bugzilla.gnome.org (??), so "X-GNOME-Bugzilla-Component=general" could be wrong. 2007-07-03 Luca Ferretti * Makefile.am: really remove tracked.desktop on make clean and include trackerd.desktop.in on make dist 2007-07-03 Luca Ferretti * configure.ac: * src/tracker-preferences/Makefile.am: * src/tracker-preferences/tracker-preferences.desktop.in: * src/tracker-preferences/tracker-preferences.desktop.in.in: * src/tracker-search-tool/tracker-search-tool.desktop.in: * src/tracker-search-tool/tracker-search-tool.desktop.in.in: Cleanup .desktop files generation for tracker-search-tool and tracker-preferences, just like trackerd. Now, configure generates .desktop.in from .desktop.in.in replacing @VERSION@ variable, then make generate .desktop from .desktop.in adding translations for Name and Comment keys. Besides, make clean remove .desktop files and make dist includes .desktop.in in released packages. Or, at least, this is the desider behavior... 2007-07-03 Luca Ferretti * Makefile.am: add CLEANFILE to remove tracked.desktop on "clean" rule 2007-07-02 Luca Ferretti * data/icons/Makefile.am: run gtk-update-icon-cache on install-hook and uninstall-hook. See http://live.gnome.org/GnomeGoals/AppIcon 2007-07-02 Luca Ferretti * src/tracker-preferences/Makefile.am: Add -DTRACKER_LOCALEDIR in INCLUDES * src/tracker-preferences/tracker-preferences-main.c: (main): Enable localization at runtime. 2007-07-02 Luca Ferretti * Makefile.am: * configure.ac: Enable localization for trackerd.desktop file. It's useful for gnome-session-properties 2.19/2.20. I'm not sure 'make dist' will include the right files :-( * trackerd.desktop.in: moved... * trackerd.desktop.in.in: ...here, plus changes to enable translations and removal of spurious fr translation. 2007-06-30 Patch from Jason Kivlighn * Added initial XMP support for images to tracker-extract 2007-06-30 Patch from Michael Biebl * fixed typo and removed redundant stuff from configure.ac * moved qdbm into private lib and added option to use system version 2007-06-30 Patch from Eric Lesh * Fixed date display when date is missing in the metadata tile 2007-06-30 Patch from Laurent Aguerreche * Evolution mail fixes * fix bad parsing of summary file * used g_slice * fixed mime type of attachments 2007-06-30 Patch from B Berteh * Downgraded gtk and glade requirements * Added missing functions for those with gtk 2.10 2007-06-30 Patch from Marcus Fritzsch * Fixed invalid double free in tracker-extract * made sure time elapsed returns floating point value 2007-06-30 Patch from Jerry Tan * Fixed crasher in image extractor * fixed coredump in ps extractor on solaris 2007-06-30 Patch from asubedi * Added djvu filter 2007-06-30 Patch from Deji Akingunola * Added OnlyShowIn to desktop file * Added missing config var in configure.ac 2007-04-28 Tshepang Lekhonkhobe * src/trackerd/trackerd.c: * src/trackerd/trackerd-utils.c: Fix verbosity code * README: added a note on how to change inotify limits 2007-06-30 Patch from Anders Rune Jensen * Fixed crasher when getting metadata 2007-06-30 Patch from Luca Bellonda * added use of ~ and realpath for all config filename based variables 2007-06-30 Patch from Tshepang Lekhonkhobe * updated README and ToDo 2007-06-06 Jamie McCracken * Reworked ranking and hit selection * Added support for And/Or * Added IDF (inverse document frequency) ranking for multiple word searches * added preliminary support for wildcards (not fully operational yet) 2007-06-06 Mikkel Kamstrup Erlandsen * python/deskbar-handler/tracker-handler.py: Fix bug 430252, crash on conversion to ascii. 2007-05-26 Claude Paroz * src/tracker-preferences/tracker-preferences.glade: Corrected typo. 2007-05-07 Jamie McCracken * bug fix for crashers in gaim indexing * fixed get metadata method to return original data 2007-05-05 Jamie McCracken *Added application and gaim log indexing * application indexing based on patch by Marcus Rosell 2007-04-30 Jamie McCracken * fixed reset of stats on reindex * removed libmagic from build 2007-05-01 patch from Michael Biebl * updated po/linguas 2007-05-01 Patch from Bjoern Gruening * updated tracker-preferences to use XDG config location 2007-04-30 Jamie McCracken * Reverted to using multiple db connections over one virtual (virtual is 3x slower) * Got stats working * renabled backup of user defined metadata * fixed crashers in email indexing * fixed too many open file descriptors by closing them 2007-04-28 Tshepang Lekhonkhobe * src/trackerd/trackerd.c: * src/trackerd/trackerd-utils.c: Fix verbosity code * README: added a note on how to change inotify limits 2007-04-27 Jamie McCracken * Restructured Database to be more extensible * Made use of triggers in sqlite * Cleaned and restructured code to be more extensible and make use of new DB structure * Moved Metadata and Services to desktop files * Backed all user defined data so that they can be restored on reindex * Added --reindex param to trackerd * Moved all database files to XDG dirs * Separated expendable embedded data (in $Home/.cache) from user defined ones (in $HOME/.local/share/tracker/data) * Imporved stat collation * make process thread do the watching for fast startup * added 5 second delay prior to watch/index so as not to slow down boot time * Removed libmagic support * Fixed file move issues * Default Verbosity is to output almost nothing so as not to pollute xsession-errors * Fixed bugs in Dbus interfaces * Fixed bugs/crashes during indexing * Fixed bug whereby directories exceeding the max number of watches would not be indexed (also fixed/applicable to NFS mounts) * Fixed email attachment indexing * Improved text parsing 2007-04-05 Edward Duffy * src/tracker-search-tool/tracker-search-tool.c: "xalign" property given an int, instead of float. Thanks to Jay Langseth for point this out. 2007-03-23 Wouter Bolsterlee reviewed by: Jamie McCracken * src/tracker-search-tool/tracker-search-tool-callbacks.c: (show_file_selector_cb): Default to $HOME for saved searches. Fixes bug #421535. 2007-03-15 Pema Geyleg * configure.ac: Added 'dz' to ALL_LINGUAS 2007-03-11 Edward Duffy * src/tracker-extract/tracker-extract-imagemagick.c: Don't send '-ping' to GIMP xcf files (#416905) 2007-03-08 Jamie McCracken * Revamped parsing of text * Now uses pango automatically for CJK texts * Added optional accent stripper 2007-03-08 patch from Michael Biebl * Added new icons * Removed old and installed in correct places for themes 2007-03-07 Edward Duffy * src/tracker-extract/tracker-extract-imagemagick.c: Check exit code of 'identify' 2007-03-07 Josep Puigdemont i Casamajó * configure.ac: Added "ca" to ALL_LINGUAS. 2007-03-06 Mikkel Kamstrup Erlandsen * python/deskbar-handler/tracker-handler.py: Check that Tracker is available via dbus activation or don't mark the handler as available. 2007-03-05 Edward Duffy * src/trackerd/tracker-dbus-search.c: * src/tracker-search-tool/tracker-search-tool.c: Added tracker_dbus_method_search_suggest and support in the GUI 2007-03-04 Jamie McCracken * Removed polling functionality * Startup checks now include test for deletions in dirs that have changed * Index directories bottom up so indexing resumes from where it left off if stopped * made sure tmp dir and /proc and /dev are not indexed 2007-03-04 Mikkel Kamstrup Erlandsen * python/deskbar-handler/tracker-handler.py: Work around dependency for deskbar 2.18. We can do with 2.16 now (hopefully). 2007-03-03 Edward Duffy * src/tracker-search-tool/tracker-search-tool.c: Preserve search terms when switching tabs (#399022) 2007-03-03 Edward Duffy * configure.ac: * trackerd.desktop.in: * src/tracker-search-tool.desktop.in: Add X-GNOME-Bugzilla-* keys to the .desktop files (#407348) 2007-03-03 Edward Duffy * src/trackerd/tracker-db-sqlite.c: Fix tracker_db_get_files_by_mime (#409729) 2007-03-03 Patch from jerry tan * Replaced stdout with tmp_stdout so it compiles under solaris 2007-03-03 Patch from Neil Patel * Fixed drag and drop of an email create a desktop file * Fixed crasher with tile 2007-03-03 Edward Duffy * src/tracker--search-tool/tracker-search-tool.c: Update metadata tile when tabs change. Closes #413971 * inotify limit now uses system setting 2007-03-03 Luca Ferretti * src/tracker-search-tool/tracker-search-tool.c: (update_page_count_label): Fix some HIG, i18n and icon issue in Tracker search too. See bug #412255 for details. 2007-03-02 Mikkel Kamstrup Erlandsen * Add email support to deskbar handler 2007-03-01 Patch from Neil Patel * Made drag and drop of an email create a desktop file * desktop file launches evolution with correct uri. * made thumbs bigger in tile 2007-03-01 Jamie McCracken * Made configure auto build stuff like libtracker-gtk if dependencies are met * changed --enable-preferences to --disable-preferences 2007-03-01 patch from Michael Biebl * Cleaned up libtracker-gtk with John Stowers * removed optional dependency on libtracker-gtk for tst * added localisation 2007-03-01 patch from John Stowers * Add libtracker-gtk 2007-02-28 Jamie McCracken * Removed superflous subfolders from imap uri 2007-02-28 Patch from Tshepang Lekhonkhobe * Patch for README file 2007-02-28 Patch from Anders Rune Jensen * Fix mem leak in Fam handler 2007-02-28 Patch from Michael Biebl * added realpath support to thumbnailer 2007-02-26 Jamie McCracken * Fixed email issues * Now handles deleted and junk emails (these are removed when trackerd is next started) * Fixed bugs with text Files not being detected 2007-02-26 Luca Ferretti * src/trackerd/trackerd.c: Use "VALUE" not "value" in --help for -t and -v explanation as any other option 2007-02-18 Jamie McCracken * made sure we call gmime_stream_close before unreffing to release file descriptors * a few memory leaks plugged 2007-02-13 Patch from Tshepang Lekhonkhobe * tracker.cfg: replaced the unused EnableDebugLogging entry with Verbosity * remove unnecessary checks for tracker->verbosity * some spelling corrections and other minor changes * lowered tracker-preferences' GTK+2.0 version requirement from 2.10 to 2.8 * README fixes 2007-02-12 Patch from Gergan Penkov * Added missing function prototype 2007-02-12 Jamie McCracken * lots of bug fixes to get imap email support functional 2007-02-11 Luca Ferretti * src/tracker-preferences/tracker-preferences.c: (tracker_preferences_init): Fix the glade name of buttonbox area. 2007-02-10 Jamie McCracken * finished adding evolution email support * added revamped tab interface to tracker-search-tool * added email searching support to tst * added new methods to get hit counts by service * added cropping to tst display * split up sql scripts * added evolution display of emails in tst 2007-02-10 Patch from Saleem Abdulrasool * Added preferences capplet 2007-01-29 Jamie McCracken * fixed bug for service types * fixed mplayer bug with audio/video.Duration 2007-01-28 Jamie McCracken * fixed bug where moving a file would not update index of the new filename * made some of the db data static 2007-01-28 Patch from Michael Biebl * removed python header from deskbar module * changed Max results to 10 2007-01-28 Patch from Laurent Aguerreche * email fixes * improved imap4 support * memory leak fix in indexer 2007-01-27 Patch from Saleem Abdulrasool * Made deskbar-handler installation optional 2007-01-27 Nickolay V. Shmyrev * configure.ac: added ru to ALL_LINGUAS. 2007-01-25 Jamie McCracken * fixed update of embedded keywords * added deskbar handler to tarball and installation * updated man page for trackerd 2007-01-24 Patch from Michael Biebl * converted xdgmime to private lib 2007-01-24 Jamie McCracken * Added magic.h to check_headers in configure.ac * Created tracker_info and tracker_debug and replaced all the g_log functions that were polluting xsession-errors 2007-01-23 Jamie McCracken * Improved message display * Made sure all external stuff is fully protected from excessive memory/cpu * Repaired mplayer backend and make it used when gstreamer returns nothing * Added libmagic for extra mime checks 2007-01-22 Patch from Michael Biebl * Fix to get test suite built 2007-01-22 Luca Ferretti * src/libtracker/tracker-stats.c: Port tracker-stats to GOption and mark translatable strings. Fix bug 397940. 2007-01-21 Patch from Daniel Fullmer * fix for parallel make 2007-01-21 Patch from Michael Biebl * Updated License info * added LGPL Copying.Lib to libtracker 2007-01-21 Jamie McCracken * Completed optimisation of indexing * Added a verbosity command line param * Made sure all indeixng occurs under a single transaction * removed superflous code 2007-01-21 Kjartan Maraas * configure.ac: Added nb to ALL_LINGUAS. 2007-01-19 Jamie McCracken * changed mmap back to shared as optimisation would destroy the index * made indexing super fast * smoothed out indexing so that it (virtually) never slows the system down * made default full throttle (turbo) * Added new high speed index flusher * Improved word descriminator 2007-01-14 Jamie McCracken * added throttling param to control speed of indexing (--throttle) * adjusted default throttling so that cpu ~50% during heavy indexin * throttled tracker daemon at strategic points * removed erroneous cache word deletion when delete_directry * removed problem statement that was somehow deleting the cache db * Improved word breaker and fixed index roots not being indexed * changed shared mmap to private for qdbm to work on FUSE 2007-01-12 Patch from Michael Biebl * Fixed make distcheck * added bzip2 build * fix for configure.in -> configure.ac move 2007-01-12 Jamie McCracken * Sped up word breaker and made it use less memory * Fixed bug where root dirs were not getting indexed properly * Added some sleeping to reduce stress on machine when heavily indexing 2007-01-11 Patch from Saleem Abdulrasool * Detect dbus service directory 2007-01-11 Patch from Michael Biebl * based on patch from Saleem Abdulrasool * removed mysql files * cleaned up build for sqlite 2007-01-10 B Berteh * added README for deskbar handler and nautilus tags * remove temporary included image files left by wvText 2007-01-10 Jamie McCracken * Merged all extraction into one thread to lessen queueing overhead * disabled some code in the emails section * added some more email db support routines * improved support for email attachments indexing 2007-01-10 Patch from Saleem Abdulrasool * Build fixes * fixed build of test suite * fixed --enable-debug-code configure arg * made libpng a mandatory dependency * added check for thumbnail directory and create it if necessary 2007-01-09 Ignacio Casal Quinteiro * configure.in: Added 'gl' to ALL_LINGUAS. 2007-01-07 Tshepang Lekhonkhobe * README: Ensured all lines over 79 colums were reduced for readability * README: Added xdg-utils, libpng, libexif, and libgsf as dependencies * t-s-t: Added xdg-open to 'Open Folder' with a fallback to gnome-open 2007-01-07 Priit Laes * configure.in: Added 'et' (Estonian) to LINGUAS. 2007-01-03 Tshepang Lekhonkhobe * Added a note on the reason why SQLite is statically-linked 2007-01-03 Laurent Aguerreche * improved email support * added imap support * linked in db email support 2007-01-02 Jamie McCracken * Added new crawler to speed up indexing 2007-01-02 Matic Zgur * configure.in: Added sl to ALL_LINGUAS. 2007-01-01 Patch from Bjoern Gruening * Added tex filter support 2007-01-01 Jamie McCracken * Added db support for emails * added indexing support for emails * optimised metadata insertion 2007-01-01 David Lodge * configure.in: Added en_GB 2006-12-23 Jamie McCracken * Added debug compile option * fixed memory leaks during indexing * Made Database changes to support new Metadata engine * Changed metadata to reflect RDF style (using colon instead of fullstop for class/metadata) * Added Dublin Core metadata * modified code to use new metadata names and also Dublin Core * added support for metadata relationships * made metadata support more than one value per item * made keywords use the new metadata engine. * changed keyword metadata to "DC:Keywords" * Applied some Dublin Core relationships to existing metadata * Made RDF QUery function with new metadata engine and also metadata relationships * Used file command to check to see if files are plain text or not * split filenames by hyphen and underscore so individual parts will show up in searches * index meaningful numbers (IE all numbers at least 5 digits long so searchers can now be done for things like telephone no.s, bank accounts, ISBN etc) * modified snippet to start/end on a word break if possible 2006-12-19 Francisco Javier F. Serrador * configure.in: Added 'es' to ALL_LINGUAS 2006-12-16 Luca Ferretti * src/tracker-search-tool/tracker-search-tool.desktop.in: Update launcher description to match GNOME HIG. 2006-12-16 Luca Ferretti * src/tracker-search-tool/tracker-search-tool.c: (update_search_counts), (update_constraint_info), (get_desktop_item_name): Comment out some unused strings from gnome-search-tool and change other "Search for Files" window title strings to "Tracker Search Tool". But those should be unused too. Now all strings marked as translatable should really appears in the GUI. 2006-12-14 Ilkka Tuohela * configure.in: Added 'fi' and 'sv' to ALL_LINGUAS 2006-12-03 Eugenio * added a QT based search tool to python directory 2006-11-30 Luca Ferretti * src/trackerd/trackerd.c: Add a missing : in --help message to match other tools. 2006-11-30 Luca Ferretti * src/trackerd/trackerd.c: Change command line options and enable i18n. Fore more info about changes, see http://mail.gnome.org/archives/tracker-list/2006-November/msg00382.html 2006-11-29 Patch from Michael Biebl * cleaned up makefiles for debian compliance * removed debian subfolder from cvs * fixed make dist 2006-11-29 Jamie McCracken * Cleaned up Makefiles * set executable scripts to libdir and not datadir * added missing license/copyright info to files 2006-11-27 Edward Duffy * made thumbnailing fdo compliant 2006-11-27 Jamie McCracken * fixed crasher in snippet generator and made it more utf-8 friendly 2006-11-26 Eugenio * updated fuse based trackerdfs * omplete support for move/copy/create dir/file 2006-11-26 Gergan Penkov * Updated configure.in to support more distro firendly options 2006-11-21 Deji Akingunola * removed extra trackerd.desktop file * fixed t-s-t desktop file 2006-11-21 Luca Ferretti * python/FUSE/trackerfs.py: Updated by Eugenio Cutolo. 2006-11-21 Luca Ferretti * src/libtracker/tracker-search-tool.c: Reduce the number of translable messages using C style comment blocks to exclude unused functions and remove _() macros from unused strings. Change the window title to match the launcher label. 2006-11-21 Luca Ferretti * src/libtracker/tracker-tag.c: * src/libtracker/tracker-search.c: Fix a couple of typos in translatable messages. 2006-11-21 Luca Ferretti * src/libtracker/tracker-tag.c: * src/libtracker/tracker-search.c: Standardized error messages. 2006-11-20 Luca Ferretti * configure.in: Add a check for glib >= 2.12.0 and define HAVE_RECENT_GLIB. * src/libtracker/tracker-tag.c: Use g_option_context_set_summary only if HAVE_RECENT_GLIB is defined. 2006-11-20 Jamie McCracken * updateded desktop files * fixed t-s-t to let back/forward buttons to remain sensitive if applicable * fixed resizing of columns in t-s-t * improved snippet generation * made snippet call async in t-s-t * made use of tracker's mime instead of slower Gnome-vfs mime detection in t-s-t 2006-11-19 Jamie McCracken * fixed snippets so that multiple terms are highlighted * used a copied version of function g_utf8_strcasestr from gtksourceview to provide caseless utf-8 searching * used utf-8 casefold and normalization in parser * tidied up t-s-t * made font colour of snippet much clearer * made snippets wrap around when resizing t-s-t * added icon to both t-s-t and desktop file * reduced sqlite cache usage 2006-11-18 Jamie McCracken * Limited tracker-extracts memory usage using setrlimit * prevents unreasonable memory usage (especially mistaken treatment of large binary files as video files) * fixed rdf bug where a search term without a query could not be executed 2006-11-18 Laurent Aguerreche * added more tmeplate filters * improved use of tmp directory for temporary stuff 2006-11-16 Laurent Aguerreche * added missing OOO templates to our filters 2006-11-16 Eugenio * added fuse based trackerdfs to our python tools 2006-11-16 Edward Duffy * added timeout to all external processes used by tracker 2006-11-16 Luca Ferretti * src/libtracker/tracker-tag.c: Add l10n/i18n support, changing some messages for a better translation experience. 2006-11-15 Edward Duffy * added xdg-open to t-s-t with fallback to gnome-open 2006-11-15 Laurent Aguerreche * added desktop files to debs 2006-11-15 Luca Ferretti * */.cvsignore: Add cvs ingore files. 2006-11-12 Laurent Aguerreche * changed html filter to use w3m 2006-11-12 Gergan Penkov * fixed dbus warning 2006-11-12 Edward Duffy * added abiword and xml text filters 2006-11-12 Deji Akingunola * added tracker.spec file * added trackerd.desktop file 2006-11-12 Jamie McCracken * fixed fam backend 2006-11-11 Jamie McCracken * fixed bug in rdf query so that non file objects are supported by default * fixed gstreamer extractor to time out after a few seconds (this prevents it hanging with some movie files) 2006-11-10 Edward Duffy * Downgraded libpoppler requirements 2006-11-10 Deji Akingunola * added .desktop file for tracker-search-tool 2006-11-10 Luca Ferretti * configure.in: Replace AM_GLIB_DEFINE_LOCALEDIR with a custom test and AC_DEFINE due to the bug #343825 (glib vs. autoconf >= 2.60). See also http://lists.debian.org/debian-gtk-gnome/2006/06/msg00001.html (from Laurent Aguerreche) 2006-11-10 Luca Ferretti * debian/tracker-dev.docs: * debian/tracker-dev.install: Removed from cvs (from Laurent Aguerreche) 2006-11-09 Luca Ferretti * src/libtracker/tracker-search.c: Restore #include (maybe needed on some systems) and move setlocale() before *textdomain() (from Laurent Aguerreche) 2006-11-09 Luca Ferretti * Makefile.am: * debian/tracker-utils.manpages: * dedian/tracker.manpages: Add missing manpages for deb packages which have to be distributed by "make dist" (patch by Laurent Aguerreche) 2006-11-09 Hendrik Richter * configure.in: Added "de" to ALL_LINGUAS 2006-11-09 Luca Ferretti * src/libtracker/tracker-search.c: Restore "setlocale" call. Now localization should work at runtime for this tool (by Laurent Aguerreche) 2006-11-09 Luca Ferretti * fixed "make dist" for intltool-* stuff (by Laurent Aguerreche) 2006-11-07 Luca Ferretti * added internationlisation support to tracker and t-s-t 2006-11-07 Laurent Aguerreche * fixed bad comment tag in mplayer extractor 2006-11-07 Julien * fixed bug in tracker-query so that service types are enabled 2006-11-07 Jamie McCracken * fixed bug in plain text sniffer 2006-11-05 * cleanups to remove compiler warnings 2006-11-05 Laurent Aguerreche * improved use of tmp directory * added gstreamer based extractor for audio and video tags * cleaned up other extractors 2006-11-01 Jamie McCracken * emebedded sqlite with threadsafe mode enabled * inlined sqlite code and made it a prvate non-installable lib which is statically linked in * fixed initilaisations of vars in mp3-extract to prevent segfaults 2006-11-01 Luca Ferretti * fixed build (Makefile, not MakeFile) 2006-10-30 Laurent Aguerreche * fixed and cleaned debian build * fixed build of man pages 2006-10-30 Samuel Cormier-Iijima * created python based notification applet for tracker 2006-10-29 Bastien Nocera * totem parsing speedup 2006-10-29 Laurent Aguerreche * Updated debian build * cleaned up process * added new package for tracker-search-tool 2006-10-29 Jamie McCracken * fixed tag error when setting a new tag on a file 2006-10-29 Eskil Bylund * fixed window sizing of tracker-search-tool * added buttonbox for prev/next buttons in t-s-t 2006-10-29 Ulrik Mikaelsson * fixed leak in GetMetadataForFilesInFolder * fixed field checking in GetMetadataForFilesInFolder * added dbus argument error handling * fixed issue with tracker-tag not reporting file not found * added comamnd line args to t-s-t 2006-10-29 tobutaz * imporved ioprio detection and operation 2006-10-29 Mikkel Kamstrup Erlandsen * added grey lettering for snippet 2006-10-29 Baptiste Mille-Mathias * added initial manpages for the tracker command line tools 2006-10-22 Richard Quirk * fixed potential crasher in tracker_db_search_text 2006-10-22 Jamie McCracken * updated debian folder and files to build debs * fixed tracker.pc to use libtrackerclient * fixed bug where data flushing to qdbm could end up in an infinite loop 2006-10-22 Eskil Bylund * build fix for make dist * fix for tracker-search-tool's handling of filenames by escaping them 2006-10-16 Jamie McCracken * Fixed gui * added buttons * cleaned up code * created dbus methods to get snippets 2006-10-17 Edward Duffy * Made a totem extractor * Fix for pdf extractor 2006-10-16 Jamie McCracken * Added optional periodic fsync and fast mode to make tracker more background friendly * Added intermediate temp storage of words so that most common words are applied at the end to prevent fragmentation * Added sheduling * Made sure tracker daemon is now really smooth * fixed a few leaks 2006-10-16 Edward Duffy * Made an mplayer extractor * Fix for potential crasher in tracker-extract * Fix for autotools 2006-10-11 Jamie McCracken * Fixed crasher by applying a mutex to guard non-threadsafe stemmer 2006-10-12 Marcus Fritzsch * Patch to make sure ignore dirs argument is treated as an array 2006-10-11 Jamie McCracken * Created command line options for trackerd * Created more extensive options for tuning performance/memory and disk space usage - new config file format * Removed LibExtractor dependency * created new mp3 extractor for id3 id3v21, id3v22, id3v23 and id3v24 * added snowball stemmers (as a static library) * added multi language stopword files * added support for determining which language to use by default based on locale * made sure only lstat is used to prevent symlink directories from being followed 2006-10-11 Jedy Wang * Patch to improve compilation on Solaris 2006-10-08 Jamie McCracken * Created tracker-search-tool (based on gnome-search-tool) * Bug fix for handling uri's without a leading backslash in indexing * tuned indexer 2006-10-07 Laurent Aguerreche * Made Thunderbird backend aware of vfolders 2006-10-05 Laurent Aguerreche * Email uri fixes 2006-10-05 Jamie McCracken * blocked extraction of non-regular files 2006-10-05 Marcus Fritzsch * Patch to make sure NULL is returned if no date is available in tracker_db_get_field_def 2006-10-03 Laurent Aguerreche * Cleaned up tracker-db-sqlite source * Fixed potential crasher where g_free was being used on a g_lice allocation 2006-10-03 Jamie McCracken * fixed retrieval of metadata types * fixed Metadata.Get method * fixed Files.GetByMimeType * added python stuff to repository * added lyrics.py ripped from rhythmbox and modded by Samuel Cormier-Iijima * added nautilus tag tabs written by Edward Duffy 2006-10-03 Edward Duffy * added libgsf extractor for ms office files * added open document thumbnailers * fix for sqlite sql * fixed auto tagging 2006-10-03 Anders Aagaard * added ionice support 2006-10-02 Laurent Aguerreche * Force email body to return plain text instead of html * Fixed signedness warnings in xdgmime 2006-10-02 Jamie McCracken * restructured database for email support * Fixed RDF Query to work with sqlite * Added sqlite sql functions (display of dates) * Added keywords support to rdf query * Changed most of the a{sv} dbus methods to aas * Modified command line tools to use aas * removed redundant dbus methods and parameters 2006-10-01 Laurent Aguerreche * Added Kmail email support * Added fixes for sqlite 2006-10-01 Jamie McCracken * restructured database * Used Curia instead of Depot for inverted index as its more scalable * Fixed issues with new indexer * Fixed keywords to update indexer properly * Fixed keyword search and list methods * Added auto tag support for Doc.Keywords and Image.Keywords (based on patch by Edward Duffy) * Auto optimize index after first run and automatically after user settable no of updates 2006-09-27 Edward Duffy * made internal extractors external and intgrated into tracker-extract * added extractors for images 2006-09-27 Jamie McCracken * fix bug with search text (correct no of results now returned) * got search mime , search location and search mime location working * replaced bzip compression with zlib 2006-09-26 Samuel Cormier-Iijima * Added #ifdefs to make libpoppler usage optional 2006-09-26 Jamie McCracken * fix bug with get_metadata routine expecting metadata name and not metadata id 2006-09-25 Jamie McCracken * Integrated new indexer and parser into tracker/sqlite * Added support for insert, update and delete * performs differential indexing for updates * got tracker-search to function with it 2006-09-25 Edward Duffy * added internal extractors for pdf, OpenDocument, Abiword and Postscript 2006-09-25 Fabien VALLON * Did an initial ogg extractor 2006-09-25 Laurent Aguerreche * Added thunderbird email support * Added fixes for detecting deleted and junk emails in Evolution mail parser 2006-09-21 Laurent Aguerreche * Added detection of deleted and junk messages to email indexing 2006-09-21 Edward Duffy * added jpeg and png thumbnailers 2006-09-21 Samuel Cormier-Iijima * Inotify patch to clean up code * Also made sure inotify timeout for file move detection is removed when no moved files are pending (this prevents tracker from peridoically waking up) * added g_message support for logging messages 2006-09-21 Laurent Aguerreche * Added initial email indexing support * Added indexing of evolution emails * Added indexing of email attachments 2006-09-21 Jamie McCracken * Created Test suite for new indexer * fixed bugs in indexer 2006-09-19 Jamie McCracken * Finished tracker's new indexer 2006-09-19 Fabien VALLON * Added retrieval of tracke number to tracker-extract 2006-09-18 Samuel Cormier-Iijima * Added search by service option to tracker-search 2006-09-17 Samuel Cormier-Iijima * Added Goption and limit option to tracker-search 2006-09-16 Jamie McCracken * Fixed erroneous rdf query where returned values were null 2006-09-16 Samuel Cormier-Iijima * Patch to fix sqlite sql * Patch to fix race condition in request thread 2006-09-16 Jamie McCracken * More work on tracker-indexer 2006-09-12 Samuel Cormier-Iijima * Patch to fix segfault when retrieveing metadata * Patch to use g_slice_new0 instead of g_slice_new 2006-09-11 Samuel Cormier-Iijima * Patch to fix sending of null values on Dbus * Also fix for erroneous g_free on a g_slice allocation 2006-09-13 Jamie McCracken * Tidied up tracker-GUI * Inline libsexy widget * extended parser to support line by line indexing * added more functionality to new indexer 2006-09-13 Edward Duffy * Enhanced tracker GUI * fixed display of sexy icon entry 2006-09-13 Jaime Frutos Morales * Patch to add skeleton for tracker GUI 2006-09-11 Samuel Cormier-Iijima * Patch to add Goption support for tracker-tag 2006-09-11 Laurent Aguerreche * Added option to disable thumbnail generation 2006-09-11 Jamie McCracken * Added bug fixes to sqlite functionality 2006-09-10 Jamie McCracken * Added rough sqlite support 2006-09-10 Laurent Aguerreche * Fixed symlink problem * More code cleanup 2006-09-07 Laurent Aguerreche * Handled Dbus Connection shutdown gracefully * tracker deamon now shuts down smoothly when dbus session bus is stopped * Big code cleanup 2006-09-06 Jamie McCracken * Finishsed db abstractions * Added initial sqlite support 2006-09-02 Laurent Aguerreche * Fix for Rdf-query parser to allow "contains" function to be called more easily 2006-09-02 Laurent Aguerreche * Added locale handling for non utf-8 files * Made sure all filenames passed to posix system calls are translated to user's locale * made sure all results are displayed in user's locale * cleaned up code 2006-09-02 Jamie McCracken * Added more abstractions for db calls 2006-08-25 Jamie McCracken * Improved thread synchronisation speed * Fixed potential deadlock as pointed out by Laurent Aguerreche * Improved exiting 2006-08-21 Gergan Penkov * Fix sql for an SP 2006-08-21 Jamie McCracken * Improved thread synchronisation using G_COND and g_cond_signal and g_cond_wait * Eliminated redundant mutexes (file available/metadata available) * Restructured threads to be more efficient * Added two phase program halt so that stuff ends gracefully and all threads are exited smoothly 2006-08-21 Laurent Aguerreche * Patch to fix signal handling amongst threads * Jamie McCracken heavily modified this patch to make sure it avoids deadlocks and race conditions 2006-08-19 Laurent Aguerreche * Patch to fix debain build * split up tracker into several debs * Fixed make dist in autofoo 2006-08-19 Jamie McCracken * Abstracted all mysql specific stuff into tracker-db-mysql * Paved the way to support alternative backends like sqlite/qdbm 2006-08-13 Jamie McCracken * Added new tracker-file-convert to convert text file into list of unique words with associated counts * Added support for stemming * Added new parsing word breaker * Added experimental (but currently disabled) qdbm indexing (tracker-indexer c) 2006-08-13 Marcus Fritzsch * Patch to make sure a dbus reply is sent if the rdf query string is NULL or erroneous 2006-08-03 Marcus Fritzsch * Patch to make sure query is not null in tracker_exec_sql 2006-08-03 Jamie McCracken * Added new Dbus methods for File Exists and File GetServiceType 2006-08-02 Jamie McCracken * Added new command line tool tracker-files 2006-08-02 Edward Duffy * Patch for small fix to XdgMime 2006-08-02 Jedy Wang * Patch to add build instructions for Solaris to README file 2006-08-02 Laurent Aguerreche * Patch to fix sql 2006-08-01 Jamie McCracken * Added offset parameter to search methods 2006-07-31 Jedy Wang * Patch to improve compilation on Solaris 2006-07-31 Jamie McCracken * Added realpath for file parameters in command line tools * Improved search terms to *and* them by default * added support for OR in search terms * added support for excluding a search term * added bugfixed XDGMIME from Beagle to prevent crashes 2006-07-30 Marcus Fritzsch * Patch to make build more debian friendly 2006-07-30 Jedy Wang * Patch to fix crasher on solaris 2006-07-30 Christoph Laimburg * Patch to replace deprecated dbus call (dbus_connection_disconnect) 2006-07-30 Samuel Cormier-Iijima * Patch to add RegExp rdf query extension support 2006-07-30 Samuel Cormier-Iijima * Modified patch to make no watch directories parameter functional 2006-07-30 Jamie McCracken * Added new command line tools (tracker-tag) * Fixed bugs in tracker-search methods * Fixed bugs in tracker-query 2006-07-25 Jamie McCracken * Sorted out libtracker * updated to reflect new dbus interfaces * Added new command line tools 2006-07-22 Jamie McCracken * Created new dbus interface for Search and Files * Added new methods to create richer dbus functionality * Ported over existing metadata methods to new interface 2006-07-18 Jamie McCracken * Created new dbus interface for Keywords * Added new methods for adding, removing and searching keywords 2006-07-11 Jamie McCracken * Created new dbus interface for Metadata * Added new methods for registering and querying metadata types * Ported over existing metadata methods to new interface 2006-06-30 Jamie McCracken * Added New Dbus Interface Methods * Added GetStats, GetServices and GetVersion 2006-06-12 Jamie McCracken * Reworked rdf query functionality * Optimised it for performamce * Added new extensions for Contains and StartsWith 2006-05-17 Gergan Penkov * Fix for conifgure in (added ssl linking due to bug in mysql) 2006-05-14 Jamie McCracken * Improved metadata support for Exif fields * Created new stats for indexed files * Created new file orientated services 2006-05-07 Jamie McCracken * Fixed crasher in date parser * Improved UTF-8 conversion of metadata * Improved Inotify header checks (now looks for sys/inotify h as well as linux/inotify h) * Fixed build issues on FC5 2006-05-05 Jamie McCracken * Hugely optimised indexing when many files are waiting to be indexed * Mass queueing of files no longer blocks the main thread * Fixed minor memory leak in new date parser 2006-05-01 Jamie McCracken * Migrated embedded database to mysql 5 * Removed all parameterized queries and replaced with stored procedures * New stored procedures to encapsulate DB functionality and remove most DB logic from application * Simplified C code when interfacing with DB * Added support for parsing dates in various formats including conversion to/from ISO 8601 format * Fixed MsWord filter to prevent looping (WvText causes inotify to report file write change causing endless looping) * Redesigned DB structure to be more generic and service orientated * Added support for service types (first class objects) to DB * Renamed tables to be more service orientated * Added DB versioning data to DB so future DB changes can be implemented painlessly (and without requiring a rebuild of all indexed data) 2006-04-22 Dan Nicolaescu * Patch to fix correct use of argv * Ensure correct message printed if wrong no of arguments supplied 2006-04-22 Dan Nicolaescu * Patch to fix build for Fedora Core 5 2006-04-22 Nate Nielsen * Fix compile warnings, crasher 2006-03-28 Jamie McCracken * Redesigned Dbus Interface to be more generic and cleaned up code * Corrected search results of hyphenated search terms * Added support for maximum hit count to search queries * Added optional support for sorting search results by relevance score 2006-03-12 Jamie McCracken * Updated to latest XDGMime * Fixed bugs with filename metadata type not being updated in a file move operation * Improved speed of some intoify operations 2006-02-27 Jamie McCracken * Added inotify support * Optimised inotify move support * Improved Build system * Can use an external libextractor if found during compilation * Fixed some leaks * Fixed threading issues with new inotify backend 2006-01-14 Jamie McCracken * Updated libtracker to be more usable especially for Nautilus search 2006-01-11 Jamie McCracken * Improved file change handling by creating a pending file queue and a pending File Database table This allows changes awaiting processing by the tracker daemon to be handled much more efficiently with respect to memory usage 2006-01-06 Jamie McCracken * Added fallback polling mechanism to trackerd c This kicks in if iNotify/FAM is not available (IE if home directory is on an NFS mount) or if iNotify/FAM watch limits have been exceeded 2005-12-13 Jamie McCracken * Imported initial version of Tracker into CVS 2005-09-15 Jamie McCracken * Tracker Project started 0707010000000D000081A400000000000000000000000166339107000013B7000000000000000000000000000000000000001900000000tracker-3.7.3/HACKING.md# Tracker HACKING guide This file contains information useful for developers who want to improve the tracker and tracker-miners projects. ## Automated testing You can run the Tracker testsuite using the `meson test` command. Tracker runs the tests automatically in GitLab CI. The .gitlab-ci.yml file controls this. Here are the latest tests that were run: * https://gitlab.gnome.org/GNOME/tracker/pipelines * https://gitlab.gnome.org/GNOME/tracker-miners/pipelines Some distros also run the test suite, including these: * Ubuntu autopkgtest: * https://autopkgtest.ubuntu.com/packages/tracker/ * https://autopkgtest.ubuntu.com/packages/tracker-miners/ * Debian builds: * https://buildd.debian.org/status/package.php?p=tracker * https://buildd.debian.org/status/package.php?p=tracker-miners * Debian reproducible-builds: * https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/tracker.html * https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/tracker-miners.html OpenSuSE do automated whole-system testing that includes the GNOME desktop for their Tumbleweed rolling release distro: https://openqa.opensuse.org/group_overview/1 ## Logging The following environment variables control logging from Tracker daemons: * `G_MESSAGES_DEBUG`: controls log output from all GLib-based libraries in the current process. Use `G_MESSAGES_DEBUG=Tracker` to see Tracker related messages, or `G_MESSAGES_DEBUG=all` to see everything. * `TRACKER_DEBUG`: takes a comma-separated list of keywords to enable extra debugging output. Use the keyword 'help' for a list of keywords. Options for libtracker-sparql include: - collation - ontology-changes - sparql - sqlite - sql-statements See the relevant `man` page for options relevant to tracker-miner-fs. You can set these variables when using `tracker-sandbox`, and when running the Tracker test suite. Note that Meson will not print log output from tests by default, use `meson test --verbose` or `meson test --print-errorlogs` to enable. You can use `TRACKER_DEBUG=tests` to see logging from the test harness, including full log output from the internal D-Bus daemon for functional-tests. Note that by default, functional tests filter output from the D-Bus daemon to only show log messages from Tracker processes. Anything written directly to stdout, for example by `g_print()` or by the dbus-daemon itself, will not be displayed unless `TRACKER_DEBUG=tests` is set. When working with GitLab CI, you can use the [Run Pipeline dialog](https://gitlab.gnome.org/GNOME/tracker/pipelines/new) to set the values of these variables and increase the verbosity of the tests in CI. ## Attaching a debugger to Tracker daemons Tracker daemons are not started directly. Instead they are started by the D-Bus daemon by request. When using the run-uninstalled script or the functional-tests, it's difficult to start the daemon manually under `gdb`. Instead, we recommend adding a 10 second timeout at the top of the daemon's main() function. In Vala code, try this: print("Pausing to attach debugger. Run: gdb attach %i\n", Posix.getpid()); Posix.usleep(10 * 1000 * 1000); print("Waking up again\n"); Run the test, using the `meson build --timeout-multiplier=10000` option to avoid your process being killed by the test runner. When you see the 'Pausing' message, run the `gdb attach``command in another terminal within 10 seconds. ## Running Tracker daemons under Valgrind The Tracker daemons are launched using D-Bus autolaunch. When running them from the source tree using the run-uninstalled script or the functional-tests, the commandline is controlled by the D-Bus .service.in files stored in `./tests/services`. Just change the `Exec=` line to add Valgrind, like this: Exec=/usr/bin/valgrind @abs_top_builddir@/src/tracker-store/tracker-store By default the run-uninstalled script and the functional-tests will only show output from Tracker code. For the functional-tests, set TRACKER_DEBUG=tests to see output from Valgrind. For tracker-sandbox use the `--debug-dbus` option. ## Updating the database internal format Any code change affecting the internal format of the database, ancillary tables, indexes, triggers, etc... Should be accompanied by: * An update to TrackerDBVersion enum and TRACKER_DB_VERSION_NOW define at `src/libtracker-sparql/core/tracker-db-manager.h` * Code to transparently update databases from the prior version at `tracker_data_manager_update_from_version()` * An additional set of version tests at `tests/core/tracker-initialization-test.c` for the new old version. Created with the nepomuk ontology, and the fts/non-fts ontologies available at `tests/core/initialization`, e.g.: ``` $ cd /tmp $ tracker3 endpoint -p .../tests/core/initialization/fts -d . $ xz -z meta.db $ mv meta.db.xz .../fts.db.26.xz ``` This is not required for changes to the ontologies (core, nepomuk). 0707010000000E000081A40000000000000000000000016633910700000077000000000000000000000000000000000000001A00000000tracker-3.7.3/MAINTAINERSCarlos Garnacho E-mail: carlos@lanedo.com Userid: carlosg Sam Thursfield E-mail: sam@afuera.me.uk Userid: sthursfield 0707010000000F000081A4000000000000000000000001663391070004C5DB000000000000000000000000000000000000001300000000tracker-3.7.3/NEWSNEW in 3.7.3 - 2024-05-02 ========================= * Bump database version to fix SQLite 3.45.3 issues in existing installs * Fixed possible infinite loop on incomplete/unterminated Turtle/Trig data. NEW in 3.7.2 - 2024-04-24 ========================= * Fix runtime issue introduced by SQLite 3.45.3 * Fix possible inconsistency in the handling of DELETE WHERE queries. Translations: ca, fur, kab, pt_BR NEW in 3.7.1 - 2024-03-27 ========================= * Fix possible stalls in D-Bus endpoint batch updates * Better API documentation around handling of corrupted databases * Test improvements NEW in 3.7.0 - 2024-03-16 ========================= * Handle POST requests in HTTP endpoints * Fix a number of Coverity and static scan reports * Drop deprecated SQLite API * Test improvements Translations: da, de, fr, it, lv Highlighted changes since 3.6.0: * New TrackerEndpoint access control API * New API to map language tagged strings to rdf:langString * Better handling of corrupted databases * Many HTTP endpoint improvements * Better performance * Improved test coverage NEW in 3.7.rc - 2024-03-04 ========================== * Improve database integrity checks so they don't necessarily happen after unclean exit, and so there are greater guarantees to repair the damage. * Handle HTTPS in SERVICE syntax * Fixes for 32-bit platforms * Fixes to bash completion Translations: cs, en_GB, es, eu, fa, gl, he, hu, id, ka, ko, lt, lv, nl, pl, ru, sl, sv, tr, zh_CN NEW in 3.7.beta - 2024-02-12 ============================ * Add Avahi support to the TrackerEndpointHttp API object. This only announces endpoints explicitly exposed (i.e. via code) through an HTTP port and does not happen out of the box. The only currently existing user of this API is the `tracker3 endpoint --http-port` CLI subcommand. * There is now an --arg argument in `tracker3 sparql` subcommand to assign values to parameters in queries. * CLI subcommands are now split into their own executables * Improvements in SPARQL handling * Code cleanups and refactors * Build/CI improvements Translations: uk NEW in 3.7.alpha - 2024-01-08 ============================= * New TrackerEndpoint access control API * New API to map language tagged strings to rdf:langString * Embed Nepomuk ontology as a GResource * Allow using TrackerEndpoint on private D-Bus connections * Cache SPARQL statements in D-Bus endpoints * Reduce heap memory usage in large transactions over D-Bus endpoints * Make internals future proof wrt handling of string literals in SQLite * Threading improvements for direct connection SELECT queries * Performance improvements * CI, build and test improvements Translations: el, eo, fa, ka NEW in 3.6.0 - 2023-09-16 ========================= Translations: eo Highlighted changes since 3.5.0: - Use BM25 as ranking algorithm - Better and more cohesive documentation - Add tracker_batch_add_rdf() API call to insert RDF data as part of an update batch. NEW in 3.6.rc - 2023-09-05 ========================== * Documentation updates Translations: fa, tr NEW in 3.6.beta - 2023-08-11 ============================ * Use BM25 as FTS ranking algorithm * Add tracker_batch_add_rdf() call to add RDF as a batch operation. * Fix warnings with newer glib * Adapt tests to SQLite >= 3.42 * Build improvements Translations: ro NEW in 3.6.alpha - 2023-07-04 ============================= * Improved threading guarantees of TrackerNotifier signal callbacks. * Add tracker-await-file tool to trackertestutils * A number of build system fixes * Build fixes around strftime() bug workarounds on some architectures/platforms. * Improved compatibility of JSON cursor readers * Leaks plugged Translations: en_GB, it, pt_BR, sk NEW in 3.5.2 - 2023-05-12 ========================= * Fix several possible crashers * Fix bashisms in doc generation scripts * Fix ISO8601 date strings in cursors on Darwin * Plug leak NEW in 3.5.1 - 2023-04-25 ========================= * Reintroduce order/distance independent handling of FTS terms. * Documentation improvements * Do not prune too early content of failed batches for error processing purposes NEW in 3.5.0 - 2023-03-19 ========================= * Documentation improvements * Dark theme fixes in documentation Translations: cz, da, fr Highlighted changes since 3.4.0: * It is now possible to use TrackerSparqlStatement for SPARQL updates for massive performance improvements. * JSON-LD is now supported as a RDF format * New auto-generated VAPI file. Updates might be necessary. * Reworked documentation, based on gi-docgen NEW in 3.5.0.rc - 2023-03-05 ============================ * Reworked documentation, based on gi-docgen * Make unicode library runtime loadable as a module * Memory leak fixes Translations: bg, de, es, eu, hu, ko, pl, sl, sr, sv, tr NEW in 3.5.0.beta - 2023-02-15 ============================== * VAPI generation fixes * Fixes for possible FTS index corruptions * Fixes for tracker_sparql_connection_load_statement_from_gresource with UPDATE statements * Refurbished and modernized functional tests * Documentation improvements * Increased test coverage Translations: be, el, gl, he, id, lt, pt, ru, tr, uk NEW in 3.5.0.alpha - 2023-01-11 =============================== * New auto-generated VAPI file. This file is not compatible with the previous VAPI, updates may be necessary. * TrackerSparqlStatement may now be used with SPARQL updates * JSON-LD is now supported as a RDF format * Improved gobject-introspection annotations * Improved generic handling of RDF data types * Build GVDB as a meson subproject * Performance improvements * Fix some printf format strings * Build fixes NEW in 3.4.2 - 2022-12-05 ========================= * Warn if IRIs are not absolute. This will turn into a query error in future releases. * Handle slight type affinity changes in SQLite 3.40.0 in some operations that broke Tracker expectations. * Close file descriptors asynchronously in TrackerEndpointDBus Translations: ab, nl NEW in 3.4.1 - 2022-10-26 ========================= * Fixes to VAPI file * Fixes to IRI escaping checks in TrackerResource * Move fts: prefix definition to base ontology * Improve memory usage of already executed TrackerBatch objects for GC languages * Replace deprecated egrep tool usage in bash completion script * Fixes for memory leaks and invalid memory access * Fix endpoint-side cancellation of client-side D-Bus cancelled queries Translations: ab, bg, hr, sk, tr NEW in 3.4.0 - 2022-09-17 ========================= Translations: fr Highlighted changes since 3.3.0: * Added tracker_sparql_connection_deserialize_async() API to deserialize RDF content. * Library is no built monolithically, Vala dependency is removed * Improved performance of database updates NEW in 3.4.0.rc - 2022-09-05 ============================ * Big performance improvements to inserts, updates and deletes * Escape IRIs in TrackerResource as per IRIREF definition * Update minimum meson version to 0.53 * Specify better ICU dependency in internal static library * Plug a small memory leak * Add missing include * Fix/silence build time warnings Translations: ab, ca, cs, da, de, gl, hr, hu, ko, lt, lv, pl, pt_BR, sl NEW in 3.4.0.beta - 2022-08-08 ============================== * Fix issues with URI expansion inserting TrackerResource data * Rewrite bus connection to use C and stream-based cursors, vala dependency is no longer necessary. * Fix handling of nrl:InverseFunctionalProperty during database updates. Translations: ab, es, eu, fur, he, sr, tr, zh_CN NEW in 3.4.0.alpha - 2022-07-13 =============================== * Add tracker_sparql_connection_deserialize() API to load RDF data. * Add tracker_resource_print_rdf() to print RDF data. * Implement TrackerNamespaceManager for remote connections * SPARQL compliance fixes * Ensure blank node ROWIDs are integer types * Fixes for MacOS * Reimplement libsoup 1/3 support to rely on minimal loadable modules * Build libtracker-sparql as a monolithic library * Fix handling of partial FTS deletions * Fix handling of nrl:modified sequences * Avoid redundant URN queries in TrackerNotifier for D-Bus endpoints. * Documentation improvements Translations: id, ka, pt, sv, ru, uk NEW in 3.3.0 - 2022-03-19 ========================= * Fix storage of subsecond information in date/time properties * Add more tests NEW in 3.3.0.rc - 2022-03-06 ============================ * Fix cursor column names for date and resource types * Fix possible crasher * Added non-installable benchmark utility * Added build option to pick libsoup versions to build support for * Added build option to disable tests * Fixed generation of man pages with newer asciidoc NEW in 3.3.0.beta - 2022-02-14 ============================== * Add API to serialize data into various RDF formats * Add API to map a TrackerSparqlConnection as a SERVICE of another TrackerSparqlConnection * Fixed possible warnings and missed notifications in TrackerNotifier * Updated "tracker3 export" to use serialization API * Documentation fixes * Added internal TrackerRowid type to represent ROWIDs NEW in 3.3.0.alpha - 2022-01-09 =============================== * Add more specific error codes for problems found updating a database to new ontology changes. * Add method to create a TrackerStatement from a GResource file * Fix 0-len matches in ? and * property path operators * Handle query cancellation in TrackerEndpointDBus * Consistency fixes to TrackerSparqlStatement API in all connection types * Deprecate tracker_namespace_manager_get_default(), use tracker_sparql_connection_get_namespace_manager() instead * Fix rare crash when concurrently querying the database while a graph is being created/deleted. * Add TRACKER_SPARQL_CONNECTION_ANONYMOUS_BNODES flag to optionally enable a treatment of blank nodes that is compliant with the SPARQL 1.1 specs. * Documentation improvements * Fix spurious locking errors with in-memory databases * Fixes to CLI tools detection on NixOS Translations: fur, id NEW in 3.2.1 - 2021-10-30 ========================= * Better, more understandable errors when parsing the ontology * Compare doubles with an epsilon in tests * Fixes for issues spotted by Coverity Translations: he, lv NEW in 3.2.0 - 2021-09-18 ========================= * Fuller docs, with updated examples Highlighted changes since 3.1: * Improved developer experience when designing ontologies, better handling of inconsistent ontologies, and more accurate error reporting. * Added new GDateTime helper API to resources, cursors and statements. * Several fixes to build and run on MacOS, with a brew recipe now available. * Added support for libsoup 3.x. * Fresher and more complete documentation, built with hotdoc. * Many other code fixes and performance improvements. Translations: da NEW in 3.2.0.rc - 2021-09-05 ============================ * Dropped bogus files from pre-generated documentation NEW in 3.2.0.beta - 2021-09-01 ============================== * Improved error reporting when parsing ontologies * Improvements to database rollback on ontology errors * Ontology parsing crash fixes * Make soup 2.x/3.x chosen at runtime * Disable GVFS in functional tests * Check accessible graphs when looking up resource URIs/IDs * Port documentation to hotdoc * Avoid "UPDATE ... FROM ..." SQL syntax only present in recent SQLite versions. * Multiple build, ci, website and maintenance improvements Translations: fi, ru, sk NEW in 3.2.0.alpha.1 - 2021-06-12 ================================= * Brown paper bag release NEW in 3.2.0-alpha - 2021-06-11 =============================== * Add support for libsoup 3.x * Add missing autocleanup functions * Support empty array updates * VAPI fixes * Add missing G_BEGIN_DECLS/G_END_DECLS guards * Build fixes for macOS * Code cleanups * Manpage fixes * CI & unit test improvements * Documentation fixes and updates * Fix crash in "tracker3 export --2to3" subcommand * Handle arbitrary order of SERVICE and regular graph patterns * Added new GDateTime helper API to resources, cursors and statements * Implement missing TrackerSparqlConnection methods in bus connections * Many code cleanups and improvements * Fix rare bug that lead to triples being silently eaten * Improvements to datetime comparisons Translations: el, ne, oc, zh_TW NEW in 3.1.1 - 2021-04-02 ========================= * Better error handling during database initialization * Implemented tracker_sparql_connection_update_array_async over TrackerBatch, resulting in lower memory usage. * VAPI updates * Updated tracker_sparql_connection_update_array docs * Leak and double free fixes Translations: en_GB, nl, zh_CN NEW in 3.1.0 - 2021-03-20 ========================= * Add build-time warning for SQLite 3.35.[01] * Workaround other SQLite 3.35 bug Highlighted changes since 3.0: * New, faster API for updates, see TrackerBatch and tracker_sparql_connection_update_resource * New API to create HTTP endpoints, see tracker_endpoint_http_new * New tracker:strip-punctuation SPARQL function * Multiple performance improvements * Several SPARQL 1.1 correctness fixes NEW in 3.1.0.rc - 2021-03-14 ============================ * Add tracker_sparql_connection_bus_new_async() * Fix TrackerNotifier signal subscriptions across the portal * Fix race condition / crash when performing SELECT queries * Propagate errors better when updating the database * Do not miss valid prefixed names in TrackerResource * Sparql 1.1 correctness fixes * Handle nesting of multivalued property functions * CI improvements in JUnit test results Translations: fr, gl, hr, ko, pl, sr, tr NEW in 3.1.0.beta - 2021-02-14 ============================== * Fix possible crash in fts:offsets function * Handle variables as service URIs, e.g. SERVICE ?s { ... } VALUES ?s { ... } * Add more g-i-r annotations * Improve ellipsizing in CLI tools Translations: cs, fur, hu, id, pt_BR, sl, sr, sv, tr NEW in 3.1.0.alpha - 2021-01-10 =============================== * Add TrackerBatch, object made to hold multiple updates (in SPARQL string form, or TrackerResource) that will be performed atomically. * Add TrackerEndpointHttp, a TrackerEndpoint subclass to implement a (readonly) SPARQL HTTP endpoint as per https://www.w3.org/TR/2013/REC-sparql11-protocol-20130321/ * Add tracker:strip-punctuation SPARQL function * Specify that nfo:duration is expressed in seconds * Fix portal initialization order * Improve TTL parser * Improve date/time parsing * Make handling of large series of UPDATEs iteratively to avoid stack size limits * Improve parallelization of queries * Optimize idempotent DELETE operations * Optimize insert operations * Optimize database resource refcount management * Fix tracker_notifier_signal_subscribe annotation * Fix possible race conditions handling ontology objects * Handle NULL arguments in tracker:uri-is-parent * Avoid FTS5 table inconsistency with SQLite >= 3.34.0 * Memory leak fixes * Documentation improvements Translations: ca, de, es, eu, fur, gl, lt, ro, uk, zh_TW NEW in 3.0.1 - 2020-10-02 ========================= * Reference Discourse instead of the mailing list * Use specific Meson options to enable debug flags * Reduce in use by TrackerSparqlStatement * Fix tracker:title-sort * Fix stale graphs with WITH clauses * Cleanup libtracker-common * Several fixes for Coverity warnings * More tests * Build fixes Translations: he, nl, pt, sk NEW in 3.0.0 - 2020-09-13 ========================= Translations: da, de, it, kk, ko, lv NEW in 2.99.5 - 2020-09-07 ========================== * Fix DBus logging in tracker-sandbox test helper * Removed programming terms from English stop word list * Handle empty input correctly * Fix possible database locks when using "tracker3 sql" on a running database * Fixes for SERVICE clauses in UNIONs * Handle empty group graph patterns as per the spec * Fixes to property paths being used in different graphs * Release memory on inactivity * Fix build/linking with 2.x in the system * Add "tracker3 export --2to3" helper for data migrations * Hide FTS5 search syntax from fts:match Translations: cs, fr, fur, gl, hr, id, lt, pt_BR, zh_CN NEW in 2.99.4 - 2020-08-24 ========================== * CLI modernization - integration with pager - bash completion for endpoints * Use curly quotes consistently in CLI options * SPARQL parsing fixes * Multiple fixes around 'VALUES' SPARQL syntax * Fix race conditions around graph creation * Better use of asserts in tests Translations: en_GB, es, eu, gl, pl, pt_BR, ro, sl, tr, uk NEW in 2.99.3 - 2020-08-10 ========================== * Add portal * Use WAL on all database connections * Fix race conditions in reusable statements * Documentation fixes and improvements * Better errors from library function calls * Test fixes * CI improvements NEW in 2.99.2 - 2020-06-26 ========================== * Dropped priority argument from tracker_sparql_connection_update*() * Better parser error messages * SPARQL correctness fixes * Fixes to tracker_sparql_cursor_is_bound() checks * Ontology clean ups and sync ups with Nepomuk * Fixed lifetime of blank node labels * Fixes to recursive property paths * Ensure property functions pick non NULL values * Several fixes merge SERVICE{} data with the local graph pattern * Add `tracker export --show-graphs` CLI subcommand to show available graphs * Parameter bindings within SERVICE{} clauses are now allowed * Fixes to single/double quote escaping * Fixes to make tracker-sandbox more usable in tests * Many cleanups, memory leak and performance fixes NEW in 2.99.1 - 2020-05-03 ========================== Highlighted updates compared to 2.x: ------------------------------------ * A full implementation of SPARQL 1.1 * A change of paradigm. There is no central store, services are free to create their own, and to make those an endpoint for public access. Applications may syndicate queries across external endpoints through the SERVICE syntax. * No tracker-store * No libtracker-miner * No libtracker-control * API changes - Explicit API to create a local store, or proxy a DBus/remote one - TrackerEndpoint proxies local stores out of process - separate python library to write tests * A base and reference ontologies of our own - Officially it's no longer Nepomuk - No more broken links * An extensible CLI tool, with a generic set of core subcommands * Parallel installable to tracker 2.x * Documentation * Tests * Many many others NEW in 2.3.0 - 2019-09-09 ========================= Highlighted changes since 2.2.x: -------------------------------- * Support for storing external references for other services (eg. musicbrainz) NEW in 2.2.99.1 - 2019-09-05 ============================ * Handle circular references in TrackerResource * Removed stress tests * Handle application/x-zero-size * Refactors and cleanups in functional testing infrastructure * Documentation improvements * Make tracker_sparql_escape_string() escape single quotes * Don't make tracker:referenceSource a subproperty of nie:identifier Translations: eu NEW in 2.2.99.0 - 2019-08-07 ============================ * Support for storing Musicbrainz metadata in the multimedia ontology. * Doc cleanups * Test suite improvements * Build fixes * Fix detection of files that need writeback * Fix crashes and invalid memory writes NEW in 2.2.2 - 2019-05-02 ========================= * Fixed initialization of virtual tables * Fixed segmentation fault in libtracker-miner * Don't try to create JSON-LD nodes with unsigned integers * Handle correctly backreferences in TrackerResource tree * Many documentation fixes * Fixed handling doubles with exponents in SPARQL * Don't limit to specific desktop environments * Build and test fixes Translations: hr NEW in 2.2.1 - 2019-03-06 ========================= * Fix unichar unescaping * Correctly Handle BIND in first place of a triples block * Fix possible deadlock on WAL checkpoint * Fix some double values not being deleted * Fixed CHANGES_DONE_HINT handling in TrackerMonitor * Ported data generator utilities to python3 * Ported functional tests to python3, reformatted to PEP-8 * Correctly apply ignored-directories-with-content filter on monitor updates * Build and test fixes Translations: de, eo, fur, fr, it, ko, lv, nl, ru, sr NEW in 2.2.0 - 2019-02-20 ========================= * Multiple memory leak and corruption fixes * Bumped glib minimum version to 2.46, it already was in practical terms * Test suite improvements * Restore log domain Translations: ca, cs, da, kk, lt, pt_BR, sv, zh_TW Highlighted changes since 2.1.x: -------------------------------- * New SPARQL parser, able to generate SQL that is generally more readable and at places performs better. Multiple buglets fixed in the process * Much improved support of SPARQL1.1 features and syntax that was missing: - Property paths: Allowing to match connectivity between two resources by an arbitrary length path. There is a number of supported operators (alternative, sequence, oneOrMany, ...) that can be combined, e.g: SELECT ?s ?p { ?s ^(nfo:belongsToContainer*)/(nie:url|nie:title) ?p } Only the negated path operator (!) is not supported at the moment. - Support for fully unrestricted queries, eg: SELECT ?s ?p ?o { ?s ?p ?o } ORDER BY ?o ?p ?s Queries with unrestricted predicate (?p in the example above) were just supported in a very restricted set of situations. All those limitations are gone. - MINUS allows subtracting the solutions that match the given triples template, eg: SELECT ?s { ?s a nfo:Media } MINUS { ?s a nfo:MusicPiece } * Support for prepared statements. TrackerSparqlStatement can be built with SELECT queries containing (custom) ~var syntax, and updating their values before obtaining a cursor. * Many tests were added, and Tracker is generally much better tested thanks to CI. * tracker-store now automatically shuts down on inactivity. NOTE TO PACKAGERS: This release might trigger ABI checks, as TrackerSparqlConnectionClass struct size grew. This object can only be subclassed within Tracker and instantiated through Tracker API, so the change is inconsequential. NEW in 2.2.0-alpha2 - 2019-02-06 ================================ * More property paths supported, new operators supported are *, +, ? and |, only the ! operator is not supported yet. * Multiple fixes to the new sparql parser. * Improve error handling in DBus backend * Many improvements and additions to the test suite * Fixed potential crash in TrackerMonitor. Translations: el, es, fur, fr, gl, id, pl, ro, sl, sv, tr NEW in 2.2.0-alpha1 - 2018-11-13 ================================ * New SPARQL parser, able to support more 1.1 features and generating friendlier SQL at places. There is initial support for property paths (/ and ^), and other missing 1.1 syntax (MINUS, SHA384, ...). More improvements are expected to happen in the future thanks to this. * Support for prepared statements. TrackerSparqlStatement can be built with SELECT queries containing (custom) ~var syntax, and updating their values before obtaining a cursor. * Added global libtracker-sparql call to change the used DBus connection at runtime. * Made tracker-store to automatically shutdown when unneeded. * Fixed ontology updates to work with behavioral changes in sqlite >=3.25. * Support for building through autotools has been removed. * Other many build and code cleanups and fixes Translations: pl, sl, sr NEW in 2.1.4 - 2018-09-04 ========================= * Fix build with format-security flag Translations: da, hr, lv NEW in 2.1.3 - 2018-08-30 ========================= * Fix resource refcounting issues in database. Reset is advised. * Drop cardinality from nie:copyright, nie:license, nie:legal and dc:rights * Fix superfluous ontology checks on second tracker-store run * Use more SPARQL1.1 correct syntax. * Allow use of domain rules outside prefix * Compatibility fixes with C++ Translations: gl, id, ko NEW in 2.1.2 - 2018-08-15 ========================= * libtracker-sparql: Delete TrackerResource elements one by one * libtracker-sparql: Fix compilation with C++ * build: Fixes for FreeBSD * build: Fixes on meson Translations: cs, el, fr, fur, hu, sl, tr, zh_TW NEW in 2.1.1 - 2018-08-01 ========================= * libtracker-direct: Plug leaks * libtracker-sparql-backend: Fix fallback from direct to bus connection for queries. Translations: es, lt, ro NEW in 2.1.0 - 2018-07.22 ========================= * Brown paper bag release * All features from unreleased 2.0.5 apply * One feature was missed: TrackerResource is now able to output JSON-LD. This is a new API call, so a minor bump should happen as per Semantic Versioning. From 2.0.5 NEWS: * build: Make tarballs able to build with meson. Future releases will eventually phase out Autotools * build: Various meson build fixes * tests: Many fixes to functional tests * libtracker-miner: Fixed race conditions that may result in spurious "parent not indexed yet" warnings. * libtracker-direct: Majorly rewritten * tracker-store: Streamlined to use a libtracker-direct connection instead of reimplementing most of it. NEW in 2.0.5 - 2018-07.22 ========================= * build: Make tarballs able to build with meson. Future releases will eventually phase out Autotools * build: Various meson build fixes * tests: Many fixes to functional tests * libtracker-miner: Fixed race conditions that may result in spurious "parent not indexed yet" warnings. * libtracker-direct: Majorly rewritten * tracker-store: Streamlined to use a libtracker-direct connection instead of reimplementing most of it. NEW in 2.0.4 - 2018-06-25 ========================= * libtracker-miner: Fix event emission order of the root folder when a recursive directory is found through monitor events. * libtracker-data: Perform VACUUM only past a database file size limit * libtracker-miner: Improvements to attribute-only update handling * build: Improvements in meson support * build: Fix build with --disable-fts * build: Drop automatic versioning of parser files, only showstopper for meson adoption * build: Fixes when building tracker-miners as subproject * build: Vala compiler warning fixes * build: Update sqlite dep to reflect practical reality NEW in 2.0.3 - 2018-02-07 ========================= * build: Improvements in meson support. * build: Remove stale dependencies after Tracker miners split * tests: Many fixes to functional tests * tests: Remove old checks for maemo-specific features * libtracker-miner: Small code improvements. * libtracker-sparql: use gint32 to unpack 'i' GVariant format Translations: is, nb NEW in 2.0.2 - 2017-11-14 ========================= * tests: Cleanups and Coverity fixes. A testsuite for libtracker-miner's TrackerMinerFS object was added. * meson: Many small improvements. * libtracker-common: Preparation work to be able to build tracker/tracker-miners as a bundle. * libtracker-direct: Implement update_array_async() * libtracker-miner: Multiple cleanups and code simplifications. * libtracker-miner: Properly honor lack of CHECK_MTIME flag, resulting on faster startup times if it's not set. Translations: ca@valencia NEW in 2.0.1 - 2017-10-04 ========================= * libtracker-fts: Fix FTS queries that included stop words * libtracker-sparql: Fix introspection annotations for TrackerNotifier * libtracker-miner: Fix cancellation of TrackerDecorator * libtracker-miner: Several fixes to causes of nie:url UNIQUE constraint errors, and better resilience against prior stale data. * Meson fixes * Compiler warning fixes Translations: sl, tr NEW in 2.0.0 - 2017-09-12 ========================= * Tracker shall from now on use semantic versioning * Drop --all from "tracker status" subcommand, it is the default behavior now. * TrackerDecorator internal operations are now cancelled on shutdown * Add cancellable argument to sync libtracker-control call * Build fixes and minor cleanups Translations: ca, da, eu, fi, fur, it, ko, lt, lv, nl, pt_BR, sk, sv, zh_TW Overview of changes since 1.12: * Tracker core (store, libraries) and miners have been split, this source tree contains the former. * Added support for domain ontologies, these can be used to set up private databases managed and populated by a standalone set of daemons. It was devised for sandboxing environments like Flatpak, but can be used independently. * Added API to manage application-private databases with (optional) custom ontologies. The application is in charge of content population as well as queries. No daemons are required for this usecase, so this becomes a SPARQL endpoint equivalent to SQLite. * libtracker-miner objects can now be used on the application side in combination with application-private endpoints. An additional object has been added to make TrackerMiner implementations exported through DBus. * The filesystem TrackerMiner base implementation has received some notable speedups. * Running multiple concurrent SELECT queries is now lock-free on most situations. * Meson build instructions have been added. NEW in 1.99.3 - 2017-08-22 ========================== WARNING: This is unstable development towards 2.0. There are API and ABI incompatibilities that might affect you. * Mandate that SQLite >= 3.20.0 must have --enable-fts5. SQLite devs made forwards and backwards incompatible changes to the FTS5 module, it is not sustainable anymore to ship a FTS5 module for all combinations. The current FTS5 module in Tracker is preserved for older SQLite versions. * Fixed a Coverity warning (CID #1453480) * Misc code and build fixes. Translations: fr, gl, ml, ne, pl, sr, sr@latin NEW in 1.99.2 - 2017-08-07 ========================== WARNING: This is unstable development towards 2.0. There are API and ABI incompatibilities that might affect you. * Miners have been split from the Tracker package, they can be found at https://git.gnome.org/browse/tracker-miners. * Sqlite 3.20 introduced incompatible changes in the way FTS5 can be extended, compile/runtime checks were added to adapt to the new safer way if Sqlite >= 3.20.0 is found. * Elements are no longer leaked in the base Resource table. A refcounted approach ensures no longer needed elements are cleaned up from that table. The database will no longer indefinitely grow, it will be cleaned up and vacuumed periodically. * Fixed several Coverity warnings (CIDS: 1452447, 1188417, 1188418, 1188428, 1452443, 1452445, 1452449) * Misc code and build fixes. * Documentation improvements Translations: de, hu NEW in 1.99.1 - 2017-07-19 ========================== WARNING: This is unstable development towards 2.0. There are API and ABI incompatibilities that might affect you. * Notable speedups to tracker-miner-fs, main loop overhead was greatly reduced by processing elements in batches. Indexing has been observed to be up to 2x faster, and startup on an indexed and up-to-date filesystem up to 3x. * More notable speedups to tracker-miner-fs startup, this applies only to filesystems where the number of indexed folders exceed the amount of inotify handles. Inotify monitoring is temporarily disabled during filesystem mtime checks, resulting in up to 4x faster startup. (In addition to the previous point). * Refurbished the allocation scheme for underlying DB interfaces. The benefit is twofold, this makes TrackerSparqlConnections truly isolated instances, and results in much reduced mutex contention on stress situations. * Dropped deprecated API to get direct/bus connections. Use tracker_sparql_connection_get(). * Deprecated TrackerSparqlBuilder. Use TrackerResource. * Added tracker_sparql_connection_get_namespace_manager() to fetch the namespaces as per the ontology of the connection. * Dropped support for non-standard SPARQL syntax "AS var", the right syntax is "AS ?var", defined in SPARQL1.1 and accepted by Tracker for a long time. * Added tracker:title-order() sparql function, only meant to be used in "ORDER BY" clauses. It drops the common articles at the beginning of the given variable for sorting purposes. * Fix shutdown issues on tracker-store introduced in 1.99.0. No more spurious integrity checks on startup. * Misc code and build fixes. Translations: fur, id, sk NEW in 1.99.0 - 2017-07-06 ========================== WARNING: This is unstable development towards 2.0. There are API and ABI incompatibilities that might affect you. * Domain ontologies: it is now possible to create domain-specific SPARQL endpoints with customizable ontologies and data locations. It is possible to do so either in-process using the traditional Tracker daemons to do the work (Note: miners rely on Nepomuk ontology). * Deleted nautilus/firefox/evolution/thunderbird plugins. They were in a pitiful state of maintainership, the latter 2 being known broken for some time already. * Deleted tracker-needle. It has been in strict maintenance state for years, since then other UIs have integrated Tracker search and offer a more compelling and modern experience. * Deleted tracker-preferences. Tracker has been using GSettings for years, so doesn't specifically require an UI for it, there's of course room for desktop integrated configuration, gnome-control-center does this for example. * Made portions of libtracker-miner useful on the client side. Miners don't mandate anymore an org.freedesktop.Tracker1.Miner DBus interface/name, this is instead delegated on TrackerMinerProxy. TrackerMinerFS has been made largely independent of the ontology in use, all high level operations that do require SPARQL updates are now exposed in TrackerMinerFSClass. * Removed deprecated and duplicate API on libtracker-miner * Added documentation about creating and maintaining ontologies. * Removed maemo leftovers. * libtracker-sparql: Protect sqlite3_bind* with interface lock * Improvements to meson build Translations: ca, sr NEW in 1.13.0 - 2017-05-23 ========================== * Added support for the Meson build system, autotools will be eventually discontinued. * Compile fixes * Fixed introspection annotations * libtracker-sparql: Support osinfo ontology in TrackerNamespace * Fix possible source of stale files in TrackerFileSystem * Whitelist some more syscalls Translations: fur, ru NEW in 1.12.0 - 2017-03-20 ========================== * Multiple compile warning fixes * Fix compilation on older vala Overview of changes between 1.10 and 1.12: * The extractors are now sandboxed * Small improvements towards full sparql 1.1 compliance * Many fixes for Coverity warnings * Thread contention in direct-access tracker clients has been eliminated, concurrent queries are now significantly faster. * Many small fixes all over the place. Translations: da, id, it, ko, lt, lv NEW in 1.11.4 - 2017-02-23 ========================== * tracker-extract: More sandboxing stability fixes, more whitelisted inocuous syscalls. Compile fixes for any older kernel not providing any of the specified syscalls. Fixed dconf warnings when it accidentally hit the sandbox. * libtracker-sparql: Fixed date format generated by TrackerResource * drop libgee dependency * Coverity fixes all over the place Translations: da, de, eu, fi, fr, gl, nb, pl, sk, sr, sr@latin, sv, zh_TW NEW in 1.11.3 - 2017-01-02 ========================== * tracker-extract: Whitelist multiple inocuous syscalls that were reported to raise false positives in the extraction sandbox. * Make libseccomp dependency only mandatory on Linux * Fix several leaks and Coverity warnings * Fixed tracker-extract insertion of pre-defined resources * Fixed TrackerResource SPARQL generation of rdfs:Resource properties with cardinality>1 NEW in 1.11.2 - 2016-12-08 ========================== * tracker-extract: Sandbox extractor threads. Filesystem and network access are limited to being read and local only. * tracker-miner-fs: Fixed high CPU use when receiving many writeback notifications at once. * tracker-extract, libtracker-sparql, libtracker-miner: plug leaks * tests: cleanups and improvements Translations: hu NEW in 1.11.1 - 2016-11-21 ========================== Brown paper bag release, revert BIND() fix as it breaks other legit cases. NEW in 1.11.0 - 2016-11-21 ========================== * libtracker-sparql: Added TrackerNotifier, helper object to receive notifications of changes to the Tracker database. All users of the GraphUpdated DBus signal are recommended to switch to it. * libtracker-sparql: Added client-side support for HTTP SPARQL endpoints. * libtracker-direct: Much reduced mutex contention during threaded/async queries on the direct access backend. * libtracker-sparql: Using BIND() after OPTIONAL{} now works properly * tracker-extract: Many improvements to music extraction, better labeling of albums, nmm:albumArtist metadata is more faithful to the file metadata. * libtracker-data: Fixed possible overflows in tracker:normalize/unaccent * Other fixes and cleanups. Translations: ca, cs, de, es, eu, hu, lt, fur, pl, sv, zh_CN NEW in 1.10.0 - 2016-09-19 ========================= Translations: da, el, en_GB NEW in 1.9.2 - 2016-09-14 ========================= * Restore trailing colon in nfo:Equipment URIs * Add new mime-types for comic books Translations: da, fur, fr, gl, kk, ko, lv, pl, pt_BR, sr, sr@latin, sv, vi NEW in 1.9.1 - 2016-08-23 ========================= * Tracker-resource: New API to describe RDF resources that can be serialized into SPARQL updates and various data formats. TrackerSparqlBuilder will be eventually phased out by this API. * Tracker-extract: * Use tracker resource integrally. * Fixed blacklisting of crashy files. * Fixes in gstreamer module for 32-bit platforms * Libtracker-control: * Expose "index for process" miner API * Command line tools: * Add "tracker extract" subcommand * SPARQL: * Accept INSERT DATA, DELETE DATA and DELETE WHERE syntax again. * Libtracker miner: Fix accounting in TrackerPriorityQueue when removing elements. Translations: cs, de, es, fr, hu, id, lt, pl, pt, sk NEW in 1.9.0 - 2016-06-21 ========================= * Adapt to new GKqueue monitor mapping. * Remove build time dependency on gnome-common * Fix error handling of tracker-extract-persistence * Fix tracker-miner-fs to honor all configuration options at runtime. * Stop recommending hard resets all through * tracker reset -r will now warn and request the user to explicitly allow the operation. * tracker-preferences won't show anymore a big "reset and restart" button. * Added "tracker reset -f $filename" subcommand. This will recursively reset all indexed content for the given filename/uri, and trigger reindexing if appropriate, so contents are just like freshly indexed. * Fixed possible crash in MP3 extractor * Favor embedded/external cue sheets before flac files' TOC. * store albumArtist from TPE2 tag in MP3 extractor * Avoid possible integer overflow in GIF extractor * Support regular expressions for fn:replace * Mark most internal functions as SQLITE_DETERMINISTIC * Logging changes in tracker-miner-fs, sparql errors no longer end up with full insert queries being logged, but a loud warning with instructions to get more info will be printed instead. * Fix FS size calculations on OpenBSD * Add MS Office "owner files" to ignored-files * Add systemd user services corresponding to D-Bus session services * Handle DjVu files * Fixes in handling of BIND() * miner-fs: Fix handling files moved soon after creating * Improved console output of tracker subcommands Translations: de, es, oc, pt, pt_BR, sk NEW in 1.8.0 - 2016-03-21 ========================= Changes since 1.7.5: * libtracker-miner: Adapt to libcue 2.0 * translations: da Overview of changes since 1.6.x: * Better support of the Sparql 1.1 syntax: - Support for many builtin functions: * String: CONCAT, CONTAINS, LCASE, UCASE, STRLEN, SUBSTR, STRSTARTS, STRENDS, STRBEFORE, STRAFTER, ENCODE_FOR_URI. * Numeric: ABS, ROUND, CEIL, FLOOR, RAND. * Date/Time: YEAR, MONTH, DAY, HOUR, MINUTES, SECONDS, NOW. * Checksum: MD5, SHA1, SHA256, SHA512. * Support for Sparql 1.1's DELETE {} INSERT {} WHERE {} syntax. This allows for performing complex updates in a single operation, without the shortcomings of the tracker specific INSERT OR REPLACE {} syntax. * Support for Sparql 1.1's BIND(). This allows mapping complex evaluations to a variable within the triple pattern, so usable within it. * The latter two applied allowed tracker-miner-fs to halve the time spent in handling move operations. * Many fixes to tracker-miner-fs and libtracker-miner, it is now a lot more robust esp. around cancellation situations (eg. deleting/unmounting the folder currently being indexed). * Many fixes to tracker-extract modules, many consistency fixes have been fixed where modules would produce invalid Sparql (eg. breaking cardinality limits of certain variables) if given files with unexpected metadata. * As a result of the last two points, 1.8.0 fixes most of the warnings/criticals that have been reported as "spamming journald". * Tracker now uses GTask, except for vala code. NEW in 1.7.5 - 2016-03-14 ========================= * Add back .trackerignore match to ignored-directories-with-content * tracker-extract: Fix gstreamer module cuesheet handling * libtracker-miner: Avoid querying file type in crawling queries * libtracker-data: Handle inserts where the subproperty cardinality is larger than the parents' * tracker-extract: Protect all single-valued properties in abiword extractor * tracker-extract: Protect all single-valued properties in EPUB extractor * tracker-extract: Protect all single-valued properties in ooxml extractor * tracker-extract: Protect all single-valued properties in oasis extractor * tracker-extract: Protect all single-valued properties in HTML extractor * tracker-extract: Check string length before parsing XMP in PDF extractor * tracker-extract: Add missing application/msword mimetype * libtracker-miner: Cut some slack on the reentry counter * libtracker-miner: Avoid changing order of elements in processing queue * libtracker-extract: Delete TrackerExtractClient * tracker-extract: Remove old dbus interface xml * tracker-extract: propagate urn to the TrackerExtractInfo * tracker-extract: Use safer method to insert tags in PDF module * tracker-extract: Use safer method to insert tags in GIF module * tracker-extract: Use safer method to insert tags in JPEG module * tracker-extract: Use safer method to insert tags in TIFF module * tracker-extract: Use safer method to insert tags in PNG module * libtracker-miner: Initialize all NodeData memory * libtracker-miner: Ensure the directory root is removed when its indexing root is NEW in 1.7.4 - 2016-03-01 ========================= * Update to FTS5. * libtracker-miner: Many fixes to TrackerFileNotifier cancellation * libtracker-direct: Handle cancellable argument in queries * libtracker-miner: Plug fd leak on TrackerCrawler cancellation * libtracker-extract: Fix year-only date extraction in gstreamer module * libtracker-extract: Use tracker-guarantee to ensure a title in playlists * tracker-miner-fs: Ignore git repositories. Modify the ignored-directories-with-content setting if you found this convenient. * tracker-miner-fs: Ignore #*# vim backups Translations: oc NEW in 1.7.3 - 2016-02-16 ========================= * libtracker-miner: Many indexing fixes leading to stale elements in the database. If "UNIQUE constraint failed: nie:DataObject.nie:url" errors are seen in journald, running tracker-miner-fs once with the TRACKER_MINER_FORCE_CHECK_UPDATED envvar is recommended. you will need to terminate miners before that with tracker daemon -t * libtracker-miner: Do not insert partial/empty sparql on error * libtracker-miner: Pass a builder in UPDATE state to TrackerMinerFS::remove-file * libtracker-miner: Remove children recursively from queues on directory deleted * libtracker-miner: Fix generated Sparql query in sparql_contents_compose_query() * libtracker-miner: Fix some memory leaks of TrackerTask * libtracker-miner: Invalidate files iri recursively in case of file removal * libtracker-miner: Reset of reentry counter is not needed anymore * libtracker-fts: Fix invalid blob length calculation * libtracker-common: Use guint64 for free space calculations * libtracker-data, docs, libtracker-miner: Fix compile warnings * libtracker-data: misc code fixes * libtracker-data: Fix g_warning() missing argument * Update AppData to spec version 0.7+ Translations: lv NEW in 1.7.2 - 2016-01-17 ========================= * Many leak fixes. * libtracker-data: Reverted code to clean up stale Resources, can't just be done yet. * tracker tool: Removed tracker-compatibility CLI wrapper for older commands. * libtracker-common: Fix possible warnings on libicu unaccent code * ontology: Set domain index on nie:contentCreated for nmo:Message * libtracker-miner: Add ::remove-file signal vfunc * libtracker-common: Return total available space if running as admin. Translations: lt NEW in 1.7.1 - 2015-12-17 ========================= * libtracker-data: Support for Sparql 1.1 BIND and DELETE {...} INSERT {...} WHERE {...} syntax. * libtracker-data: Support for Sparql 1.1 functions: NOW, RAND * libtracker-miner: Improved performance of move operations in TrackerMinerFS * libtracker-data: Silence criticals on REGEX() with empty strings * libtracker-miner, libtracker-extract: Fix double frees Translations: sl, sv NEW in 1.7.0 - 2015-11-25 ========================= * libtracker-data: Support for Sparql 1.1 functions: CONCAT, CONTAINS, LCASE/UCASE, STRLEN, SUBSTR, STRSTARTS/STRENDS, ABS, ROUND, ENCODE_FOR_URI, STRBEFORE/STRAFTER, CEIL/FLOOR, YEAR/MONTH/DAY/HOUR/MINUTES/SECONDS, MD5/SHA1/SHA256/SHA512 * libtracker-miner: Move previous data deletion on file updates to TrackerMinerFS implementations * libtracker-miner/libtracker-data/libtracker-extract: Partial port to GTask * tracker tool: Fixes to UID detection * libtracker-miner: Fix cancellation of tasks during TrackerFileNotifier destruction * libtracker-miner: Handle failure to get a TrackerSparqlConnection * libtracker-common: Fix buffer overrun in libunistring-based unaccenting * libtracker-control: Documentation fixes * tracker-extract: Photo orientation extraction fixes (TIFF, XMP) * Many fixes to functional tests Translations: eu, it, sr, sr@latin, zh_CN NEW in 1.6.0 - 2015-09-22 ========================= * tracker-extract: Fix synchronization with tracker-miner-fs when wait-for-miner-fs=TRUE * tracker-miner-fs: Fix crash during startup * tracker-extract: Fix builtin dummy module struct Translations: da, de, el, fr, gl, id, ko, pl, pt_BR, nb, sl, sv, tr, ru, zh_TW NEW in 1.5.2 - 2015-08-20 ========================= * libtracker-data: Fix printf string format * libtracker-miner: Fallback to basename checks on hidden files * rss: Set website url as a nfo:WebSite * rss: Simplify GrssFeedChannel list creation * libtracker-data: Clean up stale URIs on startup * rss: Optimize deletes * rss: Perform extraction/insertion of feed items at once * ontology: Remove cardinality limits on nmo:communicationChannel * libtracker-common: String to date conversion to return with GError when null string * libtracker-extract: Add builtin dummy extractor * tracker-extract: Use dummy fastpath for svg extraction * libtracker-extract: Plug leaks * libtracker-miner: Cancellation on unmount fixes * libtracker-miner: Deprecate tracker_miner_fs_add_directory_without_parent * tracker-miner-fs: Keep cache of IndexFile requesters on directories Translations: ca, cz, lt, pl, pt_BR, pt, sk, tr NEW in 1.5.1 - 2015-07-21 ========================= * Many fixes to RSS miner: - Dumps more complete data on tracker-store. - Stability fixes. - Leak fixes. - Performs automatic maintenance of feed messages. * Bumped libgrss dependency on 0.7 * Performance improvements on tracker-store delete operations * Performance improvements on tracker-miner-fs delete operation handling. * Fix main Resource table id/urn leaks * Fix unnecessary queries in tracker-extract Translations: es, hu, pt NEW in 1.5.0 - 2015-07-13 ========================= * Fix possible scenarios for high memory consumption in tracker-extract * Ontology documentation has been revamped * Add search by tags functionality to tracker-needle * Fix spurious "out of space" checks succeeding (#748907) * Fix tracker-miner-fs not entering idle state (#751172) * File monitoring fixes (#750394) * MP3 extraction fixes (#733136, #728252, #735515) * EPUB extraction fixes (#746401) * Fixes on gstreamer-based album extraction (#748227, #732236) * GSF-based extraction fixes (#730085, #746437) * Fix various compiler warnings (#746381, #746194, #751051) * OpenBSD portability fixes (#697719) * Made tracker-needle use gsettings (#740302) * Added infrastructure to rebuild FTS tokens on tokenizer changes * Fixed first index of gnome user docs (#751992) * Allow dummy .rule files for extractors (#735610) Translations: bg, ca, cs, de, es, hu, id, it, pl, pt, pt_BR, sk, sl, sv, tr, zh_TW NEW in 1.3.6 - 2015-03-17 ========================= * Fix spurious folder deletes/reindexes (#741852) * Fix nie:url UNIQUE constraint asserts on downloaded files (RH#1192224) * Clear tracker-store watchdog timeout (#745565) * Support fn:replace (#745917) * Spam stderr less for not-so-uncommon error conditions (#746256) Translations: ko, bs, sr, sl, da NEW in 1.3.5 - 2015-03-06 ========================= * Fix major database migration bug, skip Tracker 1.3.4. (#745737) * Build only libiptc test if libjpeg is enabled (#745583) * Put absolute path in shell script (#743738) Translations: ru NEW in 1.3.4 - 2015-03-03 ========================= * Fixed playlists being processed by tracker-extract * Fixes: #743727, Account for cardinality=0 on DB migration * Fixes: #745219, mp3 passes album instead of song title to libmediaart Translations: zh_TW, sk, eo, nb, lt, eu, po NEW in 1.3.3 - 2015-02-05 ========================= * Fixes: GB#681698, Disc number may be incorrect for multi-disc vorbis / flac albums * Fixes: GB#741109, BMP extractor doesn't retrieve image height and width * Fixes: GB#743250, libmediart-2.0 support * Fixes: GB#735406, Tracker spams my log with "Unable to insert multiple values for subject ..." * Fixes: GB#742391, applications, userguides: Don't detect locale changes if we failed to create the miner * Fixes: GB#742035, 1.2.5 unit test failures * Fixes: GB#739234, Tracker sometimes ignores SIGINT/SIGTERM * Fixes: GB#663687, Missing accessible label names on tracker-needle widgets * Fixes: GB#741777, libtracker-sparql: Document requirement to escape constructed queries * Fixes: GB#678986, item_move() creates invalid SPARQL if source file does not exist * Reverted: GB#733536, Remove --enable-guarantee metadata, always guarantee nie:title and nie:contentCreated Translations: * Updated cs: Marek Černocký * Updated de: Christian Kirbach, Bernd Homuth * Updated el: Dimitris Spingos, Dimitris Spingos (Δημήτρης Σπίγγος) * Updated es: Daniel Mustieles * Updated eu: Inaki Larranaga Murgoitio, Iñaki Larrañaga Murgoitio * Updated gl: Fran Dieguez * Updated hu: Balázs Úr * Updated pt_BR: Rafael Ferreira NEW in 1.3.2 - 2014-12-11 ========================= * New Feature: 'tracker' binary: All pre-existing tracker-* command line tools have been merged into this new binary. Man pages are shown for 'help' sub-commands. This brings more of a "git" feel to the tracker's command line tools. There is a backwards compatible 'tracker-command' script and compatibility layer provided to ensure existing commands still work for a limited time. The old 'tracker-control' actions are now part of 'tracker daemon', 'tracker reset' and 'tracker index'. Additionally, the 'tracker-sql' utility has been integrated to allow SQL operations directly on the DB. * Fixes: GB#741317, miner-fs: use GFile to check for homedir * Fixes: GB#741141, Tracker crashes every 5-10 minutes * Fixes: RH#1133042, [abrt] tracker: persistence_store_file(): tracker-extract killed by SIGSEGV * all: Move all code from tracker_info() to g_info() new in GLib 2.40. * gvdb: Fixed LDFLAGS and CFLAGS, was using unused variables * gvdb: Move away from g_file_delete() to unlink() to avoid GIO dep for one line in unit tests * libtracker-fts: Make property list per-thread data to fix uninitialisation issues * libtracker-fts: Fixed compilation errors when --disable-tracker-fts is used * tracker-extract: Fixed potential use of uninitialised hash table in persistence_invalidate() * tracker-extract: Fixed possible invalid memory read/write in tracker_keywords_parse() * tracker-extract: Fixed memory leak of MediaArt object for TrackerExtractInfo * clean-tracker-prefix: Should consider lib64 as well as lib directories Translations: * Updated pl: Piotr Drąg NEW in 1.3.1 - 2014-12-03 ========================= * Fixes: GB#733536, Remove --enable-guarantee metadata, always guarantee nie:title and nie:contentCreated * Fixes: GB#739260, srcdir != builddir issue with latest git * Fixes: GB#741012, should not override "all" target * Fixes: GB#740268, System tab - very ambiguous about what is being removed * Fixes: GB#740864, Symlink target for D-Bus service files includes DESTDIR Translations: * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated hu: Balázs Úr * Updated nb: Kjartan Maraas * Updated pt: Duarte Loreto, Pedro Albuquerque NEW in 1.3.0 - 2014-11-06 ========================= The main changes since 1.2.x are: * build: Require GLib >= 2.4.0, for g_str_match_string() and g_info() * all: Migrate to GKeyfileSettingsBackend, including: * Now when using TRACKER_USE_CONFIG_FILES env var, we use this backend * MAN pages which previously didn't exist for configurations are generated from xml gschemas * libstemmer: Removed imported code and depend on external version * libtracker-miner: Major update to Vala bindings * libtracker-common: Major clean up and removal of unused internal APIs, including: * Removed os-dependent APIs (mainly process spawning GLib does now anyway) * Removed tracker_file_(un)lock() API which was unused * Removed all run-time locale management, GNOME handles this between logins, so do we * Removed TrackerConfigFile and TrackerKeyfileObject classes, use GSettings instead * Removed unused type utils functions (e.g. tracker_*_to_string() and more) * Moved tracker-ontologies.h (with prefix, etc definitions) into libtracker-sparql * Moved CRC32 API into libtracker-data (the only place it's used) * Moved TrackerStorage class to tracker-miner-fs (only place it's used) * data: Now moved into their respective binary dirs, including: * .desktop: Desktop files (moved from data/ into src/tracker-store, etc) * .pc: Pkgconfig files (moved from data/ into src/libtracker-miner, etc) * .service: DBus files (moved from data/dbus/* to src/tracker-store, etc) * .png, .svg: Moved artwork into src/tracker-needle) * .gschema.xml: GSettings files (moved from data/gschemas into src, tracker-store, etc) * .ontology: Ontologies are now in src/ontologies * stopwords.*: Stop words per language (moved from data/stopwords into src/libtracker-common for TrackerLanguage) * data: Merged all data miner .desktop files with existing DBus .service files * functional-tests: Many updates to fix broken functional tests, including: * Writeback and miner base class clean ups * Removing IgnoreNextUpdate wrapper and 'wait for miner to be idle' calls * Waiting properly for resource addition / removal * Fixes GB#737663, Avoid the use of setrlimit() causing SIGABRT in tracker-extract Translations: * Updated fi: Timo Jyrinki, Jiri Grönroos * Updated hu: Gábor Kelemen, Gabor Kelemen * Updated it: Milo Casagrande NEW in 1.2.0 - 2014-09-22 ========================= The main changes since 1.0.x are: * New Feature: Extractor now supports eBook and Comic book formats * New Feature: Extractor now supports BMP files * New Feature: Data Provider: Now there are TrackerDataProvider and TrackerEnumerator interfaces to allow 3rd parties to supply their own data to Tracker to be indexed, for example for an online or proprietary service * New Feature: Extractor is now 'crash-aware' that being, we have a separate data source for content that can't be extracted to avoid repeated failures from tracker-extract. This also survives through crashes that may occur due to attempted extractions * build: Updated doap file (added programming language and category is now "core") * build: Improve firefox and thunderbird detection to avoid warnings in console * build: Removed all GNU_SOURCE additions in sources, use AC_USE_SYSTEM_EXTENSIONS instead * build: Fixed many unit tests that were not properly isolated * build: configure now has an --enable-minimal option to ONLY build tracker-store * build: Reduce vala generated source warnings from GCC * build: Use major version only PkgConfig files. Previously, we had $library-$major-$minor (e.g. tracker-sparql-1.2, when it should be tracker-sparql-1.0) to avoid creating unnecessary work for developers using Tracker. This release corrects this and it was planned originally. * build: Include COPYING*GPL files in tarball * build: Generate Vala bindings from GIR for libtracker-miner, libtracker-control * build: Improved many GIR annotations for nullable cases in libtracker-miner, libtracker-control * build: Avoid using rpath where possible * build: Make check fails to generate test reports * build: Remove --enable-guarantee metadata, always guarantee nie:title and nie:contentCreated * build: Added CC_CHECK_FLAGS_APPEND m4 macros from xinelib/systemd projects to check GCC compiler flags we can use * ontology: nfo:hasMediaStream no longer has a max cardinality of 1, this may mean a reindex is needed * libtracker-bus: Fixed a crash in query_async() where splice async operation is cancelled * libtracker-bus: Fixed a bug where tracker-stats showed no information with Vala 0.24+ * libtracker-sparql: All TrackerSparqlConnection APIs throw GLib.Error due to GUnixFDList _append() API * libtracker-sparql: Move TRACKER_ const definitions to Tracker namespace, i.e. Tracker.DBUS_* * libtracker-miner: Fixed reference leak with TrackerTaskPool when using external data miners * libtracker-miner: Add new API tracker_decorator_fs_prepend_file() as part of 'crash-aware' feature. * libtracker-miner: PkgConfig file now requires libmediaart (when dependent) privately * libtracker-extract: Fixed broken EXIF GPS coordinate extraction * libtracker-extract: There is no longer an example in the examples/ directory as this library is now private * tracker-extract: Fixed missing TRACKER_EXTRACTORS_DIR env var that was removed at some stage * tracker-extract: Cleaned up signal handling, SIGALRM and SIGABRT no longer used * tracker-extract: [DOC] Catch more MS Office MIME types supported * tracker-extract: [MP3] Fixed mp3 parsing for ID3v24 or ID3v23 tags * tracker-extract: [ISO] Extract language, copyright and author information about ISO images using new ontology * tracker-extract: [ODT] Improved extraction of content so we don't stop on embedded tabs and line breaks * tracker-extract: [GIF] Support giflib 5.1.0 as well as earlier versions * tracker-stats: Now EXPRESSIONS can be used to filter stats shown * tracker-stats: Now only common and fallback RDF types are shown by default, --all can be used to old behaviour * tracker-info: Add --resource-is-iri or -i to avoid filename to URN lookups * tracker-info: Don't show "(null)" for nie:InformationElements with no nie:url * tracker-control: Added a lot of strings previsouly untranslated * tracker-control: Removed shorthand command line switches for less common arguments (--list-*, --pause-details) * tracker-control: Added --watch command line option to watch changes to the database. * tracker-miner-fs: By default, ignore directories with '.trackerignore' file inside * tracker-miner-apps: New process to mine data about applications, previously part of tracker-miner-fs. Can be disabled with --disable-miner-apps * tracker-miner-user-guides: New process to mine data about user guides and help content, previously part of tracker-miner-fs. Can be disabled with --disable-user-guides * tracker-writeback: Support GIFs * tracker-preferences: Removed fixed column for indexed locations, column header text was cut off * tracker-preferences: Don't use Stock.* deprecated since Gtk+ 3.10 * tracker-preferences: Added suggestion to reindex OR restart depending on configuration changes applied * tracker-preferences: General UI clean up and modernization fixing many deprecations where old GTK+ widgets were used * tracker-preferences: Added 'control' tab to allow users to enable finer control of what's indexed (e.g. numbers - which are normally disabled) * tracker-preferences: Add AppData with screenshots for app stores * tracker-needle: Add AppData with screenshots for app stores * tracker-sandbox: Setup xdg-user-dirs too Bugs Fixed (31): https://bugzilla.gnome.org/buglist.cgi?quicksearch=737023,736328,735180,735645,735636,735460,735610,735567,735317,735339,733573,733317,734464,733857,734089,734144,733316,733948,733863,733536,733439,732839,730627,728370,730111,729253,729968,729708,728252,728546,725717 Translations: Many, thank you to everyone involved. NEW in 1.1.4 - 2014-09-05 ========================= * New Feature: Extractor now supports eBook and Comic book formats * Fixes: GB#735645, EPub extractor bug fixes * Fixes: GB#735636, tracker-sandbox: Setup xdg-user-dirs * Fixes: GB#735460, ePub/eBooks indexing bugs * Fixes: GB#735610, Remove requirement on ModulePath for extractor .rule files * Fixes: GB#735567, build: include COPYING*GPL files in tarball * Fixes: GB#735317, Tracker no longer honours my 'ignore files' put on the disks * Fixes: GB#735339, undefined symbol: tracker_enumerator_get_type * Fixes: GB#733573, playlists are given RDF type nmm:MusicPiece and nfo:Audio * Fixes: GB#733317, tracker-extract: remove application/vnd.ms-* catchall from msoffice * ontology: Added new RDF type nfo:EBook for electronic books, this is not in Nepomuk yet * libtracker-fts: Fixed a memory leak for property_names variable * libtracker-data: Fixed compiler warning with tracker_db_interface_sqlite_fts_update_text() * libtracker-bus: Fixed a bug where tracker-stats showed no information with Vala 0.24+ * libtracker-bus: Fixed all TRACKER_DBUS* to Tracker.DBUS * libtracker-sparql: All TrackerSparqlConnection APIs throw GLib.Error due to GUnixFDList _append() API * libtracker-sparql: Move TRACKER_ const definitions to Tracker namespace, i.e. Tracker.DBUS_* * libtracker-miner: Generate Vala bindings from GIR * libtracker-miner: Improve GIR annotations for some nullable cases * libtracker-miner: Removed TrackerCrawlFlags and use TrackerDirectoryFlags instead * libtracker-miner: Call tracker_data_provider_end_async() when dir has been crawled * libtracker-miner: Fixed reference leak with TrackerTaskPool when using external data miners * libtracker-extract: Fixed broken EXIF GPS coordinate extraction * libtracker-control: Generate Vala bindings from GIR * libtracker-control: Improve GIR annotations for some nullable cases * tracker-stats: Now EXPRESSIONS can be used to filter stats shown * tracker-stats: Now only common and fallback RDF types are shown by default, --all can be used to old behaviour * tracker-extract: Improved error parsing and content extraction for EPub contents * tracker-extract: Now EPub files are marked as new RDF type nfo:EBook * tracker-miner-fs: By default, ignore directories with '.trackerignore' file inside * tracker-preferences: Removed fixed column for indexed locations, column header text was cut off * tracker-sandbox: Setup xdg-user-dirs too Translations: * Updated as: Nilamdyuti Goswami * Updated cs: Marek Černocký * Updated el: Tom Tryfonidis * Updated es: Daniel Mustieles * Updated fr: Alexandre Franke, Alain Lojewski * Updated gl: Fran Diéguez, Fran Dieguez * Updated id: Andika Triwidada * Updated pt_BR: Enrico Nicoletto * Updated ru: Yuri Myasoedov * Updated zh_HK: Chao-Hsiung Liao * Updated zh_TW: Chao-Hsiung Liao NEW in 1.1.3 - 2014-08-19 ========================= * New Feature: Extractor is now 'crash-aware' that being, we have a separate data source for content that can't be extracted to avoid repeated failures from tracker-extract. This also survives through crashes that may occur due to attempted extractions. * build: Reduce vala generated source warnings from GCC. * libtracker-fts: Make private functions static * libtracker-miner: Make sure we return NULL on FileDataProvider begin() errors * libtracker-miner: Add new API tracker_decorator_fs_prepend_file() as part of 'crash-aware' feature. Translations: * Updated el: Tom Tryfonidis * Updated es: Daniel Mustieles * Updated fi: Lasse Liehu, Jiri Grönroos * Updated lt: Aurimas Černius NEW in 1.1.2 - 2014-08-12 ========================= The main changes since 1.1.1 are: * New Feature: Data Provider: Now there are TrackerDataProvider and TrackerEnumerator interfaces to allow 3rd parties to supply their own data to Tracker to be indexed, for example for an online or proprietary service. * Fixes: GB#734464, tracker-guarantee-tests failure * Fixes: GB#733857, rpath is being set on tracker libraries * Fixes: GB#734089, testsuite summaries fail to report results * Fixes: GB#734144, Tracker processes fail to respond to INT or TERM while initialising * Fixes: GB#733316, writeback: support saving metadata for GIFs * Fixes: GB#733948, src/libtracker-extract/tracker-extract-info.c: Non-void function should return a value * Fixes: GB#733863, 0.5 (commit 880d09fbff1f89f4ce5ed9ee5b1d23ccc6e20da2 ) breaks tracker compilation * Fixes: GB#733536, Remove --enable-guarantee metadata, always guarantee nie:title and nie:contentCreated * Fixes: GB#733439, tracker should include COPYING.LGPL * build: Updated doap file (added programming language and category is now "core") * build: Improve firefox and thunderbird detection to avoid warnings in console * build: Removed all GNU_SOURCE additions in sources, use AC_USE_SYSTEM_EXTENSIONS instead * build: Fixed many unit tests that were not properly isolated * build: configure now has an --enable-minimal option to ONLY build tracker-store. * ontology: nfo:hasMediaStream no longer has a max cardinality of 1, this may mean a reindex is needed * libtracker-miner: PkgConfig file now requires libmediaart (when dependent) privately * libtracker-miner: Many documentation updates and fixes * libtracker-extract: There is no longer an example in the examples/ directory as this library is now private * tracker-extract-mp3: Fixed mp3 parsing for ID3v24 or ID3v23 tags * tracker-extract: Fixed missing TRACKER_EXTRACTORS_DIR env var that was removed at some stage * tracker-extract: Cleaned up signal handling, SIGALRM and SIGABRT no longer used * tracker-extract: When built with libmediaart, requires version 0.5.0 or higher. * tracker-preferences: Don't use Stock.* deprecated since Gtk+ 3.10 * tracker-preferences: Added suggestion to reindex OR restart depending on configuration changes applied * functional-tests: Improved and updated in places Translations: * Updated el: MarMav, Maria Mavridou * Updated es: Daniel Mustieles * Updated lt: Aurimas Černius * Updated pt_BR: Rafael Ferreira, Enrico Nicoletto * Updated zh_CN: YunQiang Su, Yunqiang Su NEW in 1.1.1 - 2014-07-10 ========================= The main changes since 1.1.0 are: * build: Use major version only PkgConfig files. Previously, we had $library-$major-$minor (e.g. tracker-sparql-1.2, when it should be tracker-sparql-1.0) to avoid creating unnecessary work for developers using Tracker. This release corrects this and it was planned originally. NEW in 1.1.0 - 2014-07-10 ========================= The main changes since 1.0.0 are: * build: Added CC_CHECK_FLAGS_APPEND m4 macros from xinelib/systemd projects to check GCC compiler flags we can use * tracker-miner-apps: New process to mine data about applications, previously part of tracker-miner-fs. Can be disabled with --disable-miner-apps * tracker-miner-user-guides: New process to mine data about user guides and help content, previously part of tracker-miner-fs. Can be disabled with --disable-user-guides * tracker-extract: [BMP] Added an new extractor * tracker-extract: [ISO] Extract language, copyright and author information about ISO images using new ontology * tracker-extract: [ODT] Improved extraction of content so we don't stop on embedded tabs and line breaks * tracker-control: Added a lot of strings previsouly untranslated * tracker-control: Removed shorthand command line switches for less common arguments (--list-*, --pause-details) * tracker-control: Added --watch command line option to watch changes to the database. * tracker-info: Add --resource-is-iri or -i to avoid filename to URN lookups * tracker-info: Don't show "(null)" for nie:InformationElements with no nie:url * tracker-preferences: General UI clean up and modernization fixing many deprecations where old GTK+ widgets were used * tracker-preferences: Added 'control' tab to allow users to enable finer control of what's indexed (e.g. numbers - which are normally disabled) * tracker-preferences: Add AppData with screenshots for app stores * tracker-needle: Add AppData with screenshots for app stores Translations: * Updated ca: Gil Forcada, Pau Iranzo * Updated cs: Marek Černocký * Updated de: Christian Kirbach, Benjamin Steinwender * Updated el: Dimitris Spingos, marablack3, Dimitris Spingos (Δημήτρης Σπίγγος) * Updated es: Daniel Mustieles * Updated eu: Inaki Larranaga Murgoitio, Iñaki Larrañaga Murgoitio * Updated gl: Fran Diéguez, Fran Dieguez * Updated it: Milo Casagrande * Updated ko: Seong-ho Cho * Updated lt: Aurimas Černius * Updated pl: Piotr Drąg * Updated ru: Yuri Myasoedov * Updated sr: Мирослав Николић * Updated sr@latin: Мирослав Николић, Miroslav Nikolić * Updated tr: Muhammet Kara * Updated uk: Daniel Korostil * Updated zh_CN: YunQiang Su, Yunqiang Su NEW in 1.0.0 - 2014-03-24 ========================= The main changes since 0.16.x are: * build: Require libmediaart >= 0.1.0 (soft dependency), code has been exported from Tracker to this library * build: Require libicu >= 4.8.1.1, first version with pkg-config support, no version specified before * build: Require Vala >= 0.18.0 (was 0.16.0) to avoid Vala 0.16 g_dbus_message_get_body() binding bug * build: Require GLib >= 2.38 (was 2.35.1) after removing all deprecated g_test_trap_fork() calls for _subprocess() * build: Require libosinfo >= 0.2.9 (was 0.0.2) * build: Updated GSF dependency to >=1.14.24 * build: Improve SQLite FTS feature checking for cross compilation * build: Improve description of build switches * build: Remove ALL GLib marshallers. We depend on GLib (>= 2.30) which depends on libffi enabling us to do this * build: Make sure --target-glib used with Vala is the correct GLib (was 2.34, should be $GLIB_REQUIRED), removes Vala g_type_init() warnings. * build: Do not maintain LT versioning for internal libraries libtracker-{common,data,extract} * build: GTester Makefile rules have been updated * build: Improve portability, avoid some GNUisms and #ifdef linux specific API * build: Improved portabiliy for OpenBSD and Solaris * build: Use UPower >=0.99 if available * all: Make GBusType run-time configurable with TRACKER_BUS_TYPE environment variable * New Feature: Passive extraction: Specific metadata extraction (e.g. image orientation) is done by listening for insert signals for resource metadata (e.g. file name, size, etc) and done passively rather than being required before inserting ANY information about a resource. This officially makes tracker-extract a miner of special sorts * New Feature: SPARQL functions tracker:normalize() and tracker:unaccent() * New Feature: libav extractor for extracting audio/video metadata * New Feature: tracker-store GraphUpdated signal delay now configurable: This signal is what's used to notify of resource changes in the database (e.g. new file added), previously it was always 1 second, now it can be configured * libtracker-common: Added strnlen() compatibility function * libtracker-data: Fix AS ?foo handling in FTS queries * libtracker-direct: Don't allow connection if current and db locale mismatch * libtracker-miner: Major API cleanups, - TrackerMinerWeb has been removed, replaced by TrackerMinerOnline - TrackerMinerManager has been splitted into a separate libtracker-control - TrackerCrawler, TrackerStorage and the thumbnailer/mediaart helper functions are no longer public. * libtracker-extract: This library has been made private. Implementing a TrackerDecorator is the recommended way to provide additional data. * libtracker-control: New library, containing TrackerMinerManager, it requires using tracker-control-1.0.pc * tracker-miner-fs: optional prioritization of folders has been reimplemented, used on removable volumes and DBus requests * tracker-extract: Prioritization of rdf:types has been implemented, so certain file types are extracted before others, on demand of applications. * tracker-extract: Removed support for libstreamanalyzer, xine and totem extractors, not been used or supported in a long time * tracker-extract: Removed support for obsolete GStreamer backends tagreadbin, decodebin2 in gstreamer extractor * tracker-extract: Removed the need for fork() and sub-processes with PDF extraction, no longer needed * tracker-extract: Removed --disable-shutdown command line option now that it is instantiated by DBus * tracker-extract: Fixed epub extractor so it doesn't use a broken ontology * tracker-extract: Make it clearer where MIME type came from in debug (from GIO/xdgmime or tracker-miner-fs) * tracker-extract: EPub extractor has been improved, content is now more complete. * tracker-extract: Added ICU-based encoding detection * tracker-extract: Detect GNOME screenshots and these to a category * tracker-sparql: Now has a --tree switch to print ontology classes and properties as a tree * tracker-tag: Fixed GLib-WARNING **: goption.c:2193: ignoring no-arg... * tracker-tag: Fix --list (-t) to use logical OR, not AND * tracker-needle: always show "Loading..." in the Document category * tracker-sandbox: Added utility tracker-sandbox to run tracker in isolated cases * docs/tools/ttl2sgml: Don't GError on nao:deprecated namespaces in the ontology, errors for mlo which is entirely deprecated * functional-tests: Use GraphUpdated signal from store, not miner-fs Idle status * functional-tests: Don't require miner-fs being idle for testing data inserted * functional-tests: Start/stop processes in correct order, miner after extract * functional-tests: Increase default timeout 90s->180s, 90s isn't long enough sometimes * functional-tests: Don't rely on just tracker-control -t to kill tests in time * thunderbird: Added UI localization support including translations for French, Spanish and Polish * thunderbird: Escape folder names in URIs * thunderbird: Port code to make sure it works for Thunderbird 24 Bugs Fixed (29): https://bugzilla.gnome.org/buglist.cgi?quicksearch=705315,726419,726639,726640,725689,726552,726553,680897,726421,685378,725607,725890,724984,719802,723097,696099,721455,721880,722254,722525,701259,722353,720686,719512,715040,699412 https://bugzilla.redhat.com/buglist.cgi?quicksearch=1026283%2C1034714 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675198 Translations: Many, thank you to everyone involved. NEW in 0.17.8 - 2014-03-21 ========================== The main changes are: * Fixes: GB#705315, tracker-0.16.2: configure wrongly mixes checks for enable-compile-warning while using WITH-compile-warnings * Fixes: GB#726419, tracker-extract reports sparql update errors for jpeg with dc:indenfitier * Fixes: DB#675198, tracker-store man page description needs minor cleanup Translations: * Updated cs: Marek Černocký * Updated da: Ask H. Larsen * Updated hu: Gábor Kelemen * Updated id: Andika Triwidada * Updated lv: Rūdolfs Mazurs NEW in 0.17.7 - 2014-03-19 ========================== The main changes are: * libtracker-sparql: Fix undefined reference to symbol 'tracker_ipc_bus' Translations: * Updated it: Milo Casagrande * Updated sr: Мирослав Николић * Updated sr@latin: Мирослав Николић NEW in 0.17.6 - 2014-03-18 ========================== The main changes are: * build: Improve SQLite FTS feature checking for cross compilation * build: Make libmediaart a soft dependency, not hard * build: Require libicu >= 4.8.1.1, first version with pkg-config support, no version specified before * Fixes GB#726421, fix crash in pdf extractor with parent/child process handling * Fixes GB#726639, Remove some obsolete extactors * Fixes GB#726640, tracker-extract: Add Gibest hash calculation to GStreamer * Fixes GB#725689, libtracker-extract: no longer use libtool versioning * Fixes GB#726552, Warning when running configure: "enable_tracker_miner_fs: command not found * Fixes GB#726553, Remove QT reference in configure.ac * Fixes GB#725607, Screenshots do not appear in Screenshots album * Fixes GB#725890, Miscellaneous memory fixes * all: Make GBusType run-time configurable with TRACKER_BUS_TYPE environment variable * all: Removed dead code from coverity report * libtracker-fts: Fix memory leak for GList on property names during FTS init * libtracker-data: getting FTS multivalued properties used unintialised variable in ontology_get_fts_properties() * libtracker-data: Protect potential NULL dereference in _db_cursor_iter_next() * libtracker-{common,data,extract}: do not maintain LT versioning * libtracker-miner: Do not leak the TrackerSparqlConnection in TrackerFileNotifier * libtracker-miner: Don't print uninitalised sparql variable for update_array_cb * libtracker-miner: Dispose GFileInfo objects ASAP when crawling (attempt to reduce memory footprint) * libtracker-extract: Lookup rules after initializing in get_fallback_rdf_types() to avoid empty rules lists * libtracker-extract: Fix memory leak on .rule file load errors * libtracker-extract: Fix memory leak and unref rdf_types hash table in _module_manager_get_fallback_rdf_types() * tracker-store: Remove the --low-memory option in the man pages, not used since 0.9.x * tracker-miner-fs: Fix memory leak on rdf_types GStrv in _files_add_rdf_types() * tracker-miner-fs: Fix memory leak on priv->compisite_device for UpDevice on _finalize() * tracker-extract: Removed support for libstreamanalyzer, xine and totem extractors, not been used or supported in a long time * tracker-extract: Removed support for obsolete GStreamer backends tagreadbin, decodebin2 in gstreamer extractor * tracker-extract: Don't report < 0 nfo:width for images with GStreamer discoverer * tracker-extract: Remove the need for fork() and sub-processes with PDF extraction, no longer needed * tracker-extract: Make logging clearer if we fail on no modules or no metadata * tracker-extract: Fixed epub extractor so it doesn't use a broken ontology * tracker-extract: Improve logging, too many g_debug() calls to other log levels * tracker-extract: set nfo:Video on the gstreamer guess rule for completeness * tracker-extract: Add desktop file to autostart process * tracker-extract: Make it clearer where MIME type came from in debug (from GIO/xdgmime or tracker-miner-fs) * tracker-sparql: Support listing properties with --tree and make --search case insensitive * tracker-sandbox: Set the locale properly so queries don't fail due to locale mismatch to DB Translations: * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated fr: AlainLojewski, Claude Paroz, Luis Menina * Updated gl: Fran Dieguez, Fran Diéguez * Updated it: Milo Casagrande * Updated ko: Seong-ho Cho * Updated lt: Aurimas Černius * Updated lv: Rūdolfs Mazurs * Updated pl: Piotr Drąg * Updated pt_BR: Antonio Fernandes C. Neto, Rafael Ferreira * Updated ru: Yuri Myasoedov * Updated zh_CN: Wylmer Wang * Updated zh_HK: Chao-Hsiung Liao * Updated zh_TW: Chao-Hsiung Liao NEW in 0.17.5 - 2014-03-04 ========================== The main changes are: * build: Improve description of build switches * build: Removed configure args no longer used for GdkPixbuf/Qt, Nemo and libsecret/gnome-keyring * build: Make libtracker-extract a private library * libtracker-miner: Possible use of uninitialized value in tracker_file_system_unset_property() * libtracker-miner: Unset priv->current_index_root when the TrackerFileNotifier is finished * libtracker-miner: Protect against NULL TrackerThumbnailer * libtracker-miner: clear thumbnailer internal objects on init() failure * libtracker-extract: Don't break compilation due to missing rules/modules dir * tracker-extract: Don't leak FD on tiff extractor when opening file * tracker-extract: set nfo:Document in FallbackRdfTypes for text documents * tracker-miner-fs: Fix documentation for 'low-disk-space-limit', was in MB not % * functional-tests: fix invalid SPARQL s/nao:hasTag:prefLabel/nao:prefLabel/ * functional-tests: Use GraphUpdated signal from store, not miner-fs Idle status * functional-tests: Don't require miner-fs being idle for testing data inserted * functional-tests: 400-extractor.py expects different arguments * functional-tests: Start/stop processes in correct order, miner after extract * functional-tests: Increase default timeout 90s->180s, 90s isn't long enough sometimes * functional-tests: Don't rely on just tracker-control -t to kill tests in time * functional-tests: Fix regression introduced in commit 690eecb1 Translations: * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated gl: Fran Diéguez * Updated lt: Aurimas Černius * Updated pl: Piotr Drąg * Updated pt_BR: Rafael Ferreira * Updated zh_CN: Wylmer Wang NEW in 0.17.4 - 2014-02-21 ========================== The main changes are: * rss: compile fix with the RSS miner enabled Translations: * Updated br: Rafael Ferreira * Updated lt: Aurimas Černius NEW in 0.17.3 - 2014-02-20 ========================== The main changes are: * tracker-extract: Prioritization of rdf:types has been implemented, so certain file types are extracted before others, on demand of applications. * libtracker-extract: This library has been made private. Implementing a TrackerDecorator is the recommended way to provide additional data. * libtracker-miner: Major API cleanups, - TrackerMinerWeb has been removed, replaced by TrackerMinerOnline - TrackerMinerManager has been splitted into a separate libtracker-control - TrackerCrawler, TrackerStorage and the thumbnailer/mediaart helper functions are no longer public. * libtracker-control: New library, containing TrackerMinerManager, it requires using tracker-control-1.0.pc * tracker-miner-fs: optional prioritization of folders has been reimplemented, used on removable volumes and DBus requests * tests: GTester Makefile rules have been updated * utils: tracker-sparql gained a --tree switch to print (partial) ontology trees, and longhands/shorthands for classes/properties NEW in 0.17.2 - 2014-02-14 ========================== The main changes are: * build: Use API version 1.0 instead of bumping it every stable release (affects .pc and .so filenames) * build: Require libmediaart >= 0.1.0, code has been exported from Tracker to this library * build: Make sure --target-glib used with Vala is the correct GLib (was 2.34, should be $GLIB_REQUIRED), removes Vala g_type_init() warnings. * Fixes GB#696099, tracker needle always show "Loading..." in the Document category * Fixes GB#723097, Select search results when pressing down * Fixes GB#721455, Obsolete info in license text on multiple modules * libtracker-common: Add TRACKER_TRACKER_PREFIX define for tracker: ontology prefix * libtracker-miner: Ensure the decorator nie:DataSource is queried as an IRI * libtracker-miner: Make sure we flush remaining TrackerDecorator SPARQL updates when finished, avoids loosing extracted data for last files * libtracker-miner: Fix infinite loop TrackerDecorator * libtracker-miner: Fix warning for TrackerFileSystem registering properties twice (with hash destroy function set to NULL) * libtracker-miner: Improve TrackerDecoratorInfo to be a boxed type fixing a ref-count issue and a requirement for introspection. * libtracker-miner: Avoid unnecessary query calls when tracker_decorator_next() is called consecutively, we now queue queries. * libtracker-miner: Various improvements including moving string handling from GArray to GPtrArray and code duplication in TrackerDecorator. * tracker-extract: Split generic gstreamer/libav extract rules * tracker-extract: Use fully expanded name for nie:DataSource in decorator to avoid conflicts with shorthand insert IDs * tracker-needle: Fixed GTK+ 3.x deprecations * tracker-needle: Fixed typo in Makefile.am, VALACFLAGS was not being used, avoids warnings * firefox: Added Polish translations for plugin * thunderbird: Added UI localization support including translations for French, Spanish and Polish * thunderbird: Escape folder names in URIs * thunderbird: Port code to make sure it works for Thunderbird 24 * thunderbird: Add and improve debug messages Translations: * Updated cs: Marek Černocký * Updated gl: Fran Diéguez * Updated id: Andika Triwidada * Updated it: Milo Casagrande * Updated pt_BR: Rafael Ferreira * Updated zh_HK: Chao-Hsiung Liao * Updated zh_TW: Chao-Hsiung Liao NEW in 0.17.1 - 2014-01-24 ========================== The main changes are: * build: Require Vala >= 0.18.0 (was 0.16.0) to avoid Vala 0.16 g_dbus_message_get_body() binding bug * build: Require GLib >= 2.38 (was 2.35.1) after removing all deprecated g_test_trap_fork() calls for _subprocess() * build: Require libosinfo >= 0.2.9 (was 0.0.2) * build: Use gtkdocize in autogen.sh differently to avoid "-chmod command not found", see GB#701259 * build: Remove ALL GLib marshallers. We depend on GLib (>= 2.30) which depends on libffi enabling us to do this * build: Add SQLite 3.8.1 to list of bad SQLite versions * New Feature: Passive extraction: Specific metadata extraction (e.g. image orientation) is done by listening for insert signals for resource metadata (e.g. file name, size, etc) and done passively rather than being required before inserting ANY information about a resource This officially makes tracker-extract a miner of special sorts * New Feature: SPARQL functions tracker:normalize() and tracker:unaccent() * New Feature: libav extractor for extracting audio/video metadata * New Feature: tracker-store GraphUpdated signal delay now configurable: This signal is what's used to notify of resource changes in the database (e.g. new file added), Previously it was always 1 second, now it can be configured * Fixes: GB#721880, fts:offsets returns wrong values * Fixes: GB#722525, #include is missing in src/tracker-ioprio.h * Fixes: GB#722353, #!/bin/bash in docs/tools/gen-doc.sh * Fixes: GB#720686, libtracker-extract: Link against libicu when using it * Fixes: GB#719512, Adapt to libosinfo 0.2.9 & make use of variant API * Fixes: GB#715040, Avoid starting tracker-store twice * Fixes: GB#699412, libtracker-fts/parser/nwords_6 test fails * Fixes: RH#1026283, Nautilus eating 100% cpu * libtracker-common: Added strnlen() compatibility function * libtracker-common: Fixed unit test for SCHED_IDLE expecting SCHED_OTHER by default, but jhbuild uses SCHED_IDLE as standard. * libtracker-fts: Strengthen against SQLite failures. Ensure no infinite loos in sqlite3_step() and don't use g_once_init_enter() for init * tracker-extract: Support Qt5 * tracker-extract: Removed --disable-shutdown command line option now that it is instantiated by DBus * tracker-extract: Fixed memory leak with strings processed detected as UTF16 * tracker-extract: msoffice: Fixed memory leak, calling g_free() on wrong pointer * tracker-extract: mp3: Fixed memory leak, cases where "" was found in tags were not always freed * tracker-extract: gstreamer: Fixed memory leak on error for GstDiscovererInfo structs * tracker-extract: gif: Fixed memory leak on error for filename * functional-tests: Set up XDG data and cache directories like we do in utils/sandbox/ * functional-tests: Avoid invalid calls to g_source_remove(), avoids: "GLib-CRITICAL **: Source ID 130 was not found when attempting to remove it" * utils/sandbox/tracker-sandbox: Use separate dirs for config and data because there may be file name conflicts * docs/tools/ttl2sgml: Don't GError on nao:deprecated namespaces in the ontology, errors for mlo which is entirely deprecated Translations: * Updated cs: Marek Černocký * Updated de: Christian Kirbach * Updated el: Dimitris Spingos * Updated es: Daniel Mustieles * Updated gl: Fran Diéguez * Updated it: Milo Casagrande * Updated nl: Erwin Poeze * Updated pl: Piotr Drąg * Updated pt_BR: Enrico Nicoletto, Rafael Ferreira * Updated uk: Daniel Korostil * Updated zh_CN: Tong Hui, 甘露(Gan Lu) NEW in 0.17.0 - 2013-11-22 ========================== The main changes since 0.16.x are: * tracker-tag: Fixed GLib-WARNING **: goption.c:2193: ignoring no-arg... * tracker-tag: Fix --list (-t) to use logical OR, not AND * sparql: Fix AS ?foo handling in FTS queries * portability: Avoid some GNUisms and #ifdef linux specific API * portability: OpenBSD improvements * portability: Solaris improvements * portability: kqueue fixes * build: Stopped using deprecated glib functions * build: Use UPower >=0.99 if available * build: Improve warnings generated from Vala generated C files * build: Add compile time options to enable/disable multiple extractors * build: GIO vapi was updated * build: Updated GSF dependency to >=1.14.24 * extractors: EPUB extractor has been improved, content is now more complete. * extractors: Added ICU-based encoding detection * extractors: improved media metadata in mp3 and gstreamer extractors. * extractors: detect GNOME screenshots and these to a category * utils: Added tracker-sandbox * documentation: Improved utils manpages and document some envvars * miner-fs: Improvements in indexing of removable media * libtracker-sparql-backend: Fix connection singleton mutex issue * sparql: stop using deprecated sqlite count_changes PRAGMA * libtracker-bus: allow cancellation when iterating cursor * libtracker-direct: don't allow connection if current and db locale mismatch Translations: Many, thank you to everyone involved. NEW in 0.16.0 - 2013-03-18 ========================== The main changes since 0.14.x are: * Require: GStreamer >= 1.0 (was 0.10) to follow upstream releases * Require: libgrss >= 0.5 (was 0.3) to follow upstream releases * Require: GLib 2.35.1 for GTask API (was 2.28.0) * Require: SQLite 3.7.9 (was 3.7.0) for FTS4 support * Removed: Flickr miner, it will be imported to GNOME Photos later. * Removed: Dia dependency for producing documentation. * Removed: tracker-explorer (unused and unmaintained) * Removed: tracker-search-bar (unused, useless and unmaintained) * Removed: utils/playlists (replicates tracker-extract) * Removed: utils/lyrics (not working any more, we don't store lyrics either) * Removed: utils/webhistory (unused) * Removed: utils/data-generators/deprecated/ (unused) * Removed: utils/data-generators/barnum/ (unused) * New Feature: Support GKqueueDirectoryMonitor API on BSD systems * New Feature: Full Text Search (FTS) v4 support: New SPARQL function fts:snippet(?u) - Snippets provide context around a matched query. New SPARQL function fts:offsets(?u): - Offsets provide an index where a matched query is found in context. See tracker-needle for basic use. * Build: Switched out all uses of deprecated GStaticMutex for GMutex * Build: Remove all cases of g_type_init() now it's deprecated in GLib 2.35.x * Ontology: Deprecated tracker:fulltextNoLimit and removed use in all other ontologies * libtracker-fts: Removed tracker_fts_config_min_word_length() and config option * libtracker-common: Add replacement function for flock() on Solaris * libtracker-common: Don't log to file by default, only stdout/stderr. See TRACKER_USE_LOG_FILES env var for details. * libtracker-miner: Fixed nasty stack corruption with TrackerIndexingTree filter rules * libtracker-miner: Fixed vala bindings for TrackerMinerFS * libtracker-miner: Renamed API tracker_media_art_queue_removal() to _remove() * libtracker-miner: Renamed API tracker_media_art_execute_queue() to _queue_empty() * libtracker-miner: Dispose regular files from the filesystem cache on monitor events * tracker-control: Fixed --{get|set}-log-verbosity with g_settings_sync() * tracker-miner-fs, store: Add MeeGo keys to desktop files * tracker-search: Added snippets for result hits * tracker-search: Added colored output for result hits * Nautilus: Fixed build error when supplying nautilis extensions directory * Thunderbird: Fixed extension path in configure.ac and look for correct libraries in $prefix * Firefox: Fixed extension path in configure.ac and look for correct libraries in $prefix Bugs Fixed (18): https://bugzilla.gnome.org/buglist.cgi?quicksearch=693889,694146,691847,692409,692603,691807,691804,679870,690170,695769,643388,643388,695444,693198,695061,695157,694783,660965,692210 Translations: Many, thank you to everyone involved. NEW in 0.15.4 - 2013-03-12 ========================== The changes are: * build: Fixed various compiler warnings * build: Fixed various introspection warnings * build: Switched out all uses of deprecated GStaticMutex for GMutex * Fixes: GB#643388, Sqlite constraint violation Translations: * Updated el: Dimitris Spingos Notes: * The 0.15.3 tarball uploaded was done using the wrong version of libgee for building the C sources from Vala. This is detailed in these bug reports: Tracker should build against libgee 0.8: https://bugzilla.gnome.org/show_bug.cgi?id=691807#c4 tracker 0.15.3 fails to build: g_type_init is deprecated https://bugzilla.gnome.org/show_bug.cgi?id=695470 This release fixes the tarball released AND includes the above fixes. Apologies for any inconvenience. NEW in 0.15.3 - 2013-03-08 ========================== The changes are: * build: Require GLib 2.35.1 for GTask API (was 2.28.0) * build: Remove all cases of g_type_init() now it's deprecated in GLib 2.35.x * Fixes: GB#693889, E: tracker no-return-in-nonvoid-function tracker-data-manager.c:3610 * Fixes: GB#694146, org.freedesktop.Tracker1.Miner.Progress() - wrong number of arguments introspected * Fixes: GB#660965, 100% CPU-load / segfault processing png-file * Fixes: GB#693198, tracker-miner-fs does not listen for config changes * Fixes: GB#695061, tracker-miner-fs, store: Add Unity to desktop files * Fixes: GB#694783, libtracker-miner: don't crash when first indexing files out of /home * Fixes: GB#695157, libtracker-miner: add an async version of tracker_miner_manager_index_file() * libtracker-common: Don't log to file by default, only stdout/stderr. See TRACKER_USE_LOG_FILES env var for details. * libtracker-miner: Fixed nasty stack corruption with TrackerIndexingTree filter rules * libtracker-miner: Fixed vala bindings for TrackerMinerFS * tracker-extract-msoffice: Avoid deprecated gsf_msole_metadata_read() API * tracker-search: Added snippets for result hits * tracker-search: Added colored output for result hits Translations: * Updated cs: Marek Černocký * Updated de: Christian Kirbach * Updated es: Daniel Mustieles * Updated fr: Alexandre Franke * Updated pl: Piotr Drąg * Updated pt_BR: Enrico Nicoletto * Updated sl: Matej Urbančič NEW in 0.15.2 - 2013-02-11 ========================== The changes are: * Build: Required SQLite 3.7.9 (was 3.7.0) for FTS4 support * New Feature: Full Text Search (FTS) v4 support: New SPARQL function fts:snippet(?u) - Snippets provide context around a matched query. New SPARQL function fts:offsets(?u): - Offsets provide an index where a matched query is found in context See tracker-needle for basic use. * Fixes: GB#691847, tracker-extract: Port to new gupnp-dlna API * Fixes: GB#692409, playlist extractor should index playlist title if available * Fixes: GB#692603, Search can not find pdf files using author names * Ontology: Deprecated tracker:fulltextNoLimit and removed use in all other ontologies * libtracker-fts: Removed tracker_fts_config_min_word_length() and config option * libtracker-miner: Fixed GNOME password provider, libsecret expects "user" not "username" * tracker-info: Fixed memory leak where urn wasn't freed. * tracker-info: Fixed memory leak when using prefixes for shorthand properties Translations: * None Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. Due to the deprecation of tracker:fulltextNoLimit and removal of libtracker-fts's config option to set the minimum word length, we now index ALL small words and rely on stop words to filter redundant data. We still have the maximum word length checks in place. NEW in 0.15.1 - 2013-01-24 ========================== The changes are: * build: Fixes build error when supplying nautilis extensions directory * Fixes: GB#691807, Tracker should build against libgee 0.8 * Fixes: GB#691804, tracker-cue-sheet not ported to Gstreamer 1.0 * Fixes: GB#679870, libsecret migrations * Fixes: GB#690170, Add nfo:MediaList type to .m3u playlist files * Fixes: GB#692210, miner-manager: plug some memleaks * libtracker-common: Add replacement function for flock() on Solaris * libtracker-miner: Fix libsecret password provider get call using non-NULL GError * tracker-miner-fs, store: Add MeeGo keys to desktop files Translations: * Updated pt_BR: Henrique P. Machado NEW in 0.15.0 - 2012-11-23 ========================== The changes are: * Require: GStreamer >= 1.0 (was 0.10) to follow upstream releases * Require: libgrss >= 0.5 (was 0.3) to follow upstream releases * Removed: Dia dependency for producing documentation. * New Feature: Support GKqueueDirectoryMonitor API on BSD systems Translations: Many, thank you to everyone involved. NEW in 0.14.0 - 2012-03-08 ========================== The changes are: * Require: libxml2 for --enable-maemo builds * Require: Vala >= 0.13.4 (for introspection fixes) * Require: libosinfo >= 0.0.2 for --enable-libosinfo (file ISO extractor) * Removed: ioprio_get() check in configure, now most kernels have the syscall * Removed: dbus-glib requirement (was only used in 1 or 2 cases) * Removed: GLib unicode parser, it's was sub-optimal and unused * New Feature: CUE sheet parsing is now supported * New Feature: ISO file extractor * libtracker-common: New env var TRACKER_USE_CONFIG_FILES to output ini files instead of use GSettings is available * libtracker-miner: Updated TrackerMinerFS (breaks API/ABI) * libtracker-miner: Introducing TrackerIndexingTree (to use with TrackerMinerFS) * libtracker-miner: Albumart renamed to Media art and refactored * tracker-miner-fs: Refactored, mtime checks are +50% faster and indexing slightly improved * tracker-needle: Now results are sorted nicely GNOME bugs fixed (13): https://bugzilla.gnome.org/buglist.cgi?quicksearch=670679,670778,537899,671314,670251,670294,669646,669546,666372,667786,667787,666654,666410 Nokia bugs fixed (4): https://projects.maemo.org/bugzilla/buglist.cgi?quicksearch=296488,289635,296009,290406 Translations: Many, thank you to everyone involved. NEW in 0.13.1 - 2012-02-15 ========================== The changes are: * Require: libosinfo >= 0.0.2 for --enable-libosinfo (file ISO extractor) * New Feature: ISO file extractor * Fixes: GB#669546, tracker-miner-fs: Segmentation fault * Fixes: GB#666654, unbreak compilation if the O_NOATIME flag for open(2) is not available * Fixes: GB#666410, missing gmodule detection for LIBTRACKER_EXTRACT * Fixes: GB#666678, g_str_has_prefix() called on a NULL string with tracker_config_file_new() * Fixes: GB#666372, More information about bootable ISOs * Fixes: GB#667786, Fix compile warning in tracker-file-notifier-test * Fixes: GB#667787, Fix tracker-file-notifier-test * Fixes: NB#296488, Fix crash when SIGTERM happens before mainloop is available * Fixes: NB#289635, Test for reply being NULL and don't unref in that case * Fixes: NB#296009, Add debugging aid for when opening MSOffice files fail * Fixes: NB#290406, Timeout PDF content extraction after 10s * build: Use g_thread_try_new() if GLib >= 2.31 * build: Use g_(mutex|cond)_(init|clear) if GLib >= 2.31 * build: Use GPrivate if GLib >= 2.31 (GStaticPrivate now deprecated) * build: Use GMutex if GLib >= 2.31 (GStaticMutex now deprecated) * build: Use g_atomic_int_add() if GLib >= 2.30 * build: Use GRecMutex if GLib >= 2.31 (GStaticRecMutex now deprecated) * build: Use g_format_size() if GLib >= 2.30 * build: Remove remaining g_thread_init() calls * build: Set _REQUIRED versions for giff, jpeg and tiff * build: Depend on gmodule for libtracker-extract since glib 2.31.4 doesn't depend on it * libtracker-common: Add new function tracker_file_open_fd() * libtracker-data: Fix dead code with disabled journal * libtracker-miner: Don't send sparql to tracker-store for missing/cancelled files * libtracker-miner: Ensure we deal with the canonical copy on ::directory-removed * libtracker-miner: Improve logging * libtracker-extract: Do not use tracker_coalesce_strip on constant strings in unit tests * libtracker-extract: Don't build EXIF tests if we don't have support enabled * tracker-store: Print warning if unable to initialize statistics * tracker-miner-fs: Fix crash when SIGTERM happens before mainloop is available * tracker-miner-fs: Don't index removable media on initial index if disabled * tracker-extract-msoffice: Add debugging aid for when opening file fails * tracker-needle: Fix build with GLib 2.31 * ttl2sgml: Do not call fclose if file is NULL Translations: * Updated fr: Alexandre Franke * Updated ja: Jiro Matsuzawa * Updated nb: Kjartan Maraas NEW in 0.13.0 - 2011-12-15 ========================== The changes are: * Require: libxml2 for --enable-maemo builds * Require: Vala >= 0.13.4 (for introspection fixes) * Removed: ioprio_get() check in configure, now most kernels have the syscall * Removed: dbus-glib requirement (was only used in 1 or 2 cases) * Removed: GLib unicode parser, it's was sub-optimal and unused * New Feature: CUE sheet parsing is now supported * libtracker-common: New env var TRACKER_USE_CONFIG_FILES to output ini files instead of use GSettings is available * libtracker-miner: Updated TrackerMinerFS (breaks API/ABI) * libtracker-miner: Introducing TrackerIndexingTree (to use with TrackerMinerFS) * libtracker-miner: Albumart renamed to Media art and refactored * tracker-miner-fs: Refactored, mtime checks are +50% faster and indexing slightly improved Many other fixes Translations: Many, thank you to everyone involved. NEW in 0.12.0 - 2011-09-09 ========================== The changes are: * Require: gstreamer-pbutils when using discoverer backend * Require: GSettings (not optional) * Require: GObject Introspection 0.9.5 (not optional from git, optional from tarball) * Require: GLib 2.28 was 2.26 (for modern APIs like g_slist_free_full()) * Require: GTK+ 3.0 was 2.18.0 (for UI components only) * Require: Poppler-GLib 0.16.0 was Poppler 0.12.2 (old API was no longer supported) * Require: Evolution, EDS, Camel 2.32.0 was 2.91.90 (API changes) * Require: rest 0.7 was 0.6 (for Flickr distro library updates) * Require: GStreamer 0.10.31 was 0.10.12 (for GstDateTime) * Removed: Helix extractor for Real Media (it's covered by the GStreamer extractor) * Removed: libtracker-client (was deprecated in 0.10) * New Feature: Firefox >= 4.0 support * New Feature: Thunderbird >= 5.0 support * New Feature: Add --disable-journal configure option, previously it didn't exist * New Feature: Support MeeGoTouch (for application extraction) * New Feature: SPARQL: Add support for HAVING * New Feature: SPARQL: Add support for COALESCE * New Feature: SPARQL: Add support for INSERT OR REPLACE * New Feature: Region of interest support in image formats (for example tagging people in images) * libtracker-common: Do not delete old log files when starting components * libtracker-data: Switch to manual SQLite WAL checkpointing in a separate thread * libtracker-sparql: Remove deprecated drop_graph API * tracker-miner-fs: Improve query performance for updating tracker:available on mounting * tracker-miner-fs: Handle desktop files of Type=Link * tracker-miner-fs: Support local (in $HOME) XDG directories for desktop files * tracker-extract: Completely relicensed all modules and the extractor to LGPL from GPL * tracker-extract: Use two threads now for extraction, a controller and worker thread * tracker-extract: Refactored the module management so modules can state mimes supported flexibly * tracker-extract: Support extra string for WHERE and GRAPH patterns when calling modules * tracker-extract: Added EPub extractor module * tracker-writeback: Refactor writeback so miner-fs performs more of the operation itself * tracker-writeback: Deprecate IgnoreNextUpdate API * tracker-writeback: Support longitude, latitude and altitude information to XMP files * tracker-control: Report remaining estimated time for each miner's progress * tracker-control: Added --set-log-verbsosity to change component log verbosity * tracker-control: Added --pause-for-process for potentially crash worthy processes * tracker-search: Support bookmarks with -b or --bookmarks GNOME bugs fixed (44): https://bugzilla.gnome.org/buglist.cgi?quicksearch=658588,658232,657354,655898,657161,654824,656838,655987,655789,655701,654653,654441,654407,652433,633105,397205,520670,642288,633108,632876,646834,647548,642883,644997,646365,646374,645380,611471,645934,645963,645675,642012,645000,645052,645375,644998,642868,622288,642774,643739,636375,643140,642581,643090 Nokia bugs fixed (81): https://projects.maemo.org/bugzilla/buglist.cgi?quicksearch=281201,277052,281183,281540,271437,272441,279789,256958,276858,276830,242979,278806,277799,278171,246131,247468,259325,271389,254896,274498,274181,271747,273120,269986,270774,259942,269766,269931,268105,269359,266579,251032,263203,261635,258488,258459,254855,259000,252898,244556,254154,248873,253807,249338,250959,250455,249787,249028,244787,240681,238770,245998,244267,241302,245589,245373,213419,244536,242253,229461,237582,240272,241659,241833,235445,241206,240168,240582,237176,238447,238547,237150,236387,233828,232574,235118,229713,232981,231631,230255,228760 Translations: Many, thank you to everyone involved. Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. Existing configurations should have migration paths to new GSettings based format. Of all the requirement changes listed above, the only GSettings and GObject Introspection are absolutely required to build Tracker, the others are optional depending on components being built. These are also only when building from git, not a distributed tarball (which should have the m4 macros packaged). NEW in 0.11.2 - 2011-08-16 ========================== The changes are: * Build: Bump tracker_api_version to 0.12 but keep major/miner as 0.11 (for so names) * Build: New --with-gstreamer-backend=[tagreadbin,decodebin2,discoverer] switches * Require: gstreamer-pbutils when using discoverer backend * Removed: Helix extractor for Real Media (it's covered by the GStreamer extractor) * Fixes: GB#655987, VAPI file lacks annotation for MinerManager * Fixes: GB#655789, Some TrackerMinerManager methods lack introspection annotations * Fixes: GB#655701, Fix build system for firefox/thunderbird plugins to work for packaging * Fixes: GB#654441, Rename --enable-video-extractor to --enable-generic-media-extractor * Fixes: NB#247468, Ontology missing for message delivery status when sending while remote contact is offline * functional-tests: Disable optical and removable indexing for tests * libtracker-extract: Don't install examples/ rules mock up * libtracker-extract: Added some debugging to know what rules files are loaded * tracker-extract: Make sure we check filtered modules for dbus calls too * tracker-extract: Improve checks for mimetype guessing (didn't check empty strings) * tracker-extract: Improve debugging for filtered modules and mime guessing * tracker-extract: Fix --force-module for commandline extraction * tracker-extract: Make JPEG module handle DLNA profiles * tracker-extract: Make PNG module handle DLNA profiles * tracker-extract: Make MP3 module handle DLNA profiles * tracker-extract: Let gstreamer extractor handle 'dlna/*' mimetypes * tracker-extract-gstreamer: Compiler warning fixes and code refactoring * tracker-extract-gstreamer: Assume UTC for dates * tracker-miner-fs: Disable writeback by default (was enabled accidentally) * tracker-miner-flickr: Remove deprecated Encoding key in desktop file * tracker-needle: Avoid g_markup_escape_text() critical with NULL * tracker-needle: Show email subject as primary information not sender * tracker-needle: Fix build with Vala master * thunderbird: Add desktop file so needle opens email on activation * thunderbird: Use asynchronous connection opening to avoid blocking the UI * thunderbird: Don't break on consecutive make installs, use -f with ln * firefox: Use asynchronous connection opening to avoid blocking the UI * firefox: Raise compatibility level to 5.0.* * firefox: Don't break on consecutive make installs, use -f with ln Translations: * Updated cs: Marek Černocký * Updated de: Christian Kirbach * Updated es: Daniel Mustieles * Updated ru: Yuri Myasoedov * Updated sl: Andrej Žnidaršič * Updated sv: Daniel Nylander Notes: None NEW in 0.11.1 - 2011-08-01 ========================== The changes are: * New Feature: Firefox >= 4.0 support * New Feature: Thunderbird >= 5.0 support * New Feature: Add --disable-journal configure option, previously it didn't exist * Fixes: GB#654653, miner: don't use G_CONST_RETURN * Fixes: GB#654407, sqlite: implement get_property() for n-columns * Fixes: GB#652433, Progress signal gives faulty value just before finishing * Fixes: NB#271389, Extraction of album art fails for a particular .mp3 file * Fixes: NB#254896, tracker-miner-fs should resume pause if pausing clients crash * Fixes: NB#274498, Adding tag to song causes update quad flood * Fixes: NB#274181, Attached file's album art is not extracted right * Fixes: NB#271747, [TASK] Support xsd:date * Fixes: NB#273120, After disconnecting from USB mass storage mode apps takes a long time to display content * Fixes: NB#269986, Poor performnace with different music files * Fixes: NB#270774, [TASK] Improve UpdateArray performance * Fixes: NB#259942, Corrupted symbols for Cyrillic mp3 tags * Fixes: NB#269766, Make TrackerProcessingTask refcounted to avoid double free * Fixes: NB#269931, Some particular JPG files are never indexed by Tracker * Fixes: NB#268105, [TASK] Disabled full journaling to improve user data privacy * Fixes: NB#269359, tracker-control got crashed at tracker_control_status_run when the file system is full * Fixes: NB#266579, tracker_sparql_connection_get starts emitting GLIB CRITICALS when called again after failure * Fixes: NB#251032, Corrupted thumbnails are displayed for few minutes when multiple images are deleted * Fixes: NB#263203, tracker-store fails to start when out of disk space * Fixes: NB#261635, Improve pinyin sorting * Ontology: Set tracker:writeback true for nfo:Heading * SPARQL: Add support for HAVING * SPARQL: Add support for COALESCE * libtracker-data: Fix leak in db_get_locale * libtracker-data: Do not print critical if db-locale.txt does not exist * libtracker-data: Switch to manual SQLite WAL checkpointing in a separate thread * libtracker-data: Make sure we don't leak sql_dir on multiple _init() calls * libtracker-miner: translate monitor events CREATE(a)+MOVE(a->b)=UPDATE(b) * libtracker-miner: Make sure status is set to 'Idle' on object construction * libtracker-miner: Fix inconsistent status with progress signals * libtracker-miner: Fix -0.00 progress being reported * libtracker-miner: Make sure "Processing..." is 2% or higher in progress * libtracker-extract: Use nfo:heading instead of nmm:direction * libtracker-extract: Support extraction of EXIF/XMP GPS information for images * libtracker-extract: Ignore keywords containing invalid UTF-8 * libtracker-extract: Do not use G_CONST_RETURN * tracker-store: Check XDG directories after initializing log to reduce start up stdout spam * tracker-store: Improve UpdateArray performance * tracker-extract: MP3: Use guessed ID3v1 8-bit encoding also for ID3v2 * tracker-extract: Playlist: Limit playlists to 1000 entries * tracker-extract: handle RealMedia files with the GStreamer extractor * tracker-writeback: Refactor writeback so miner-fs performs more of the operation itself * tracker-writeback: Deprecate IgnoreNextUpdate API * tracker-writeback: Support longitude, latitude and altitude information to XMP files * tracker-writeback: Always clear existing XMP fields before updating metadata * tracker-miner-fs: Check XDG directories after initializing log to reduce start up stdout spam * tracker-control: Added --pause-for-process for potentially crash worthy processes * tracker-control: Fix crash when unable to get miner pause details * tracker-search: Support bookmarks with -b or --bookmarks * tracker-preferences: Fix apply button Translations: * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated nb: Kjartan Maraas * Updated pt_BR: Gabriel Speckhahn * Updated sl: Andrej Žnidaršič * Updated sv: Daniel Nylander * Updated zh_CN: Yinghua Wang Notes: None NEW in 0.11.0 - 2011-06-07 ========================== The changes are: * Require: GSettings (not optional) * Require: GObject Introspection 0.9.5 (not optional) * Require: GTK+ 3.0 was 2.18.0 (for UI components only) * Require: Poppler-GLib 0.16.0 was Poppler 0.12.2 (old API was no longer supported) * Require: Evolution, EDS, Camel 2.32.0 was 2.91.90 (API changes) * Require: rest 0.7 was 0.6 (for Flickr distro library updates) * Require: GStreamer 0.10.31 was 0.10.12 (for GstDateTime) * Removed: libtracker-client (was deprecated in 0.8) * Removed: GConf (replaced by GSettings) * Support: MeeGoTouch (for application extraction) * libtracker-sparql: Remove deprecated drop_graph API * tracker-extract: Completely relicensed all modules and the extractor to LGPL from GPL * tracker-extract: Use two threads now for extraction, a controller and worker thread * tracker-extract: Refactored the module management so modules can state mimes supported flexibly * tracker-extract: Support extra string for WHERE patterns when calling modules * tracker-extract: Much improvement to the logging * tracker-extract: Added EPub extractor module * tracker-control: Report remaining estimated time for each miner's progress Translations: * Updated ca: Gil Forcada * Updated cs: Marek Černocký * Updated da: Joe Hansen * Updated de: Mario Blättermann, Markus Schley * Updated el: Georgios Stefanakis, Kostas Papadimas * Updated eo: Kristjan SCHMIDT * Updated es: Daniel Mustieles * Updated fr: Claude Paroz * Updated hu: Gabor Kelemen * Updated pl: Piotr Drąg * Updated pt_BR: Gabriel F. Vilar * Updated sl: Andrej Žnidaršič * Updated sv: Daniel Nylander * Updated zh_CN: Yinghua Wang Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. Existing configurations should have migration paths to new GSettings based format. Of all the requirement changes listed above, the only GSettings and GObject Introspection are absolutely required to build Tracker, the others are optional depending on components being built. These are also only when building from git, not a distributed tarball (which should have the m4 macros packaged). NEW in 0.10.0 - 2011-02-17 ========================== The changes are: * Require: libtool >= 2.2 (previously no required version) * Require: autoconf >= 2.64 was 2.59 * Require: automake 1.11 and use Vala features * Require: Vala >= 0.11.4 for GDBus / sender support * Require: GLib 2.26 * Require: D-Bus 1.3.1 or higher * Require: SQLite 3.7 (for Write Ahead Logging) * Require: libicu or libunistring (GLib unicode support has performance issues) * Require: poppler 0.12.2 instead of poppler-glib 0.4.5 * New Feature: Added GDBus support * New Feature: Added direct access library libtracker-sparql for fast read-only queries * New Feature: Added LRU (Least Recently Used) for database statement cache (huge memory footprint difference) * New Feature: Added a GUPnP DLNA extractor * New Feature: Added domain specific indexes, adding a column to DB tables to avoid full table scans/joins with larger tables for performance. * New Feature: Added metadata guarantee support when key data is missing (e.g. nie:title generation from filename) * New Feature: Added tracker-sql (in utils/) to run SQL on the databases directly (for developers) * New Feature: Added unicode compliance for FTS (Full Text Search) * New Feature: Don't do mtime checks on start up (dramatically reduces start time for miner-fs) * New Feature: Replaced tracker-search-tool with tracker-needle * New Feature: New API methods in libtracker-sparql which allow multiple inserts per DBus call (and yet get multiple errors back). * New Feature: New journal format to separate ontology from data for improved data integrity * New Feature: New journal compression and rotation using 50Mb chunk sizes * New Feature: Task pool in libtracker-miner for store updates/metadata extractions, 10-20% speed increase indexing thanks to the work from Zhenqiang Chen * New Feature: Monitor event black listing and events are condensed (less event spam up the stack) * New Feature: Return types in TrackerSparqlCursor API (previously just strings) * New Feature: Collation support * New Feature: Refactored and much more efficient signal notification API * New Feature: Use libtracker-sparql: Client library for direct/dbus access * New Feature: SPARQL, Add support for EXISTS and NOT EXISTS * New Feature: SPARQL, Add support for IN * New Feature: SPARQL, Add support for INSERT SILENT and DELETE SILENT * Updated totem plugin to use libtracker-sparql * Updated evolution plugin to recent versions of Evolution/EDS * Updated GTK+ search engine to use libtracker-sparql * Updated tracker-search bar to be GTK+ 3 / GNOME 3 compliant * Removed tracker-status-icon * Merged tracker-status into tracker-control * libtracker-client is now marked as deprecated GNOME bugs fixed (102): https://bugzilla.gnome.org/buglist.cgi?quicksearch=640845,639547,641906,640623,636074,631955,623666,639542,622918,639918,639556,639543,639552,600081,638159,636936,624041,636604,635756,636383,635794,635757,634424,630244,635652,634669,633118,633093,631391,575993,628872,628859,628090,628536,627893,613252,627281,623005,623207,624731,616199,624346,624071,623836,622702,623203,616809,511474,621070,621987,620354,620362,622351,621108,621110,621015,619244,621183,621112,621001,620353,619498,619929,619535,619826,619801,619615,619630,619271,560220,616540,526346,617812,619487,503366,619061,616845,618822,618707,618821,618544,618011,614728,616808,617515,617082,579051,615930,616493,615836,616165,616403,616329,615948,616158,615868,615035,615178,615563,615184,615313,615182 Nokia bugs fixed (154): https://projects.maemo.org/bugzilla/buglist.cgi?quicksearch=227977,208621,223536,225910,221340,180770,217610,224993,222182,224760,218525,224763,197067,223938,185309,223622,223282,223133,223148,223161,222645,222494,222664,222578,221700,220373,218092,218332,217636,218125,219309,216582,218560,211147,218123,216329,217575,198003,216350,212736,214163,214478,214413,213419,211928,212116,210217,211926,198155,207918,208420,203538,204706,202291,206752,203540,203593,195787,203632,202275,199968,202627,202581,201122,200310,199131,194908,194548,186096,197546,197097,195394,196143,194677,195547,192790,193044,194746,193061,186055,190480,192326,188031,184220,187558,189896,188494,184505,187149,174794,185950,185070,182948,184882,184823,177663,181421,181112,183307,172390,179570,180803,182788,181538,179894,180236,180679,179434,179559,179798,176090,178599,178825,178808,174590,177447,176932,175723,170915,175957,175712,174591,174333,174162,173673,172818,174248,173589,173164,172414,161449,173206,172652,171657,167647,170142,168740,164822,169460,163155,169254,169105,169119,168742,167616,166767,166717,166684,166080,164958,161047,163544,163715,163480 Translations: Many, thank you to everyone involved. Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.38 - 2011-02-10 ========================== The changes are: * Fixes: NB#208621, SEV-1: 10776 Music GSM-BTR-1-8108 Music Player: Duplicates in the store when synchronizing with Ovi Suite/WMP * Fixes: NB#223536, tracker-extract segfaults when songs without album or artist metadata is copied to device * Fixes: NB#225910, tracker-miner is crashing frequently * Fixes: NB#221340, Modified album art is not updated after synchronizing with WMP. * Fixes: NB#180770, Unusable emergency contact is found in Search application * Fixes: NB#217610, Generated album art shown for some clips with albumart metadata * Fixes: NB#224993, after ~440 smses tracker does not respond any longer * Fixes: NB#222182, tracker_sparql_connection_get_direct should fail if direct access is not possible * Fixes: NB#224760, "too many sql variables" when "filter ?sth in (long list)" * Fixes: GB#640623, Double-click on application result should start the application * ontology: Make nie:url an inverse functional property (essentially making it unique) * functional-tests: Kill/stop the store in a realistic way for backup/restore * documentation: Various fixes for libtracker-{client|miner|extract|sparql} * libtracker-data: Added unit tests for IN with > 20 elements * libtracker-data: Improve error handling on initialization (especially if the WAL PRAGMA fails) * libtracker-data: Fixed a race condition on shutdown causing criticals with g_object_unref() * tracker-store: Increase maximum D-Bus result size (1 Mb to 10 Mb) * tracker-store: Don't send unmapped errors in D-Bus replies * nautilus: Plugin has been updated to use libtracker-sparql (was libtracker-client) Translations: * Updated ar: Khaled Hosny * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated sv: Daniel Nylander Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.37 - 2011-02-03 ========================== The changes are: * New feature: Don't do mtime checks on start up (dramatically reduces start time for miner-fs) * Fixes: NB#198003, Don't crash in 'tracker_miner_init', support GInitable and handle errors gracefully * Fixes: NB#224342, tracker-control should have options to pause and resume the miners * Fixes: NB#218525, tracker-miner is too heavy to start * Fixes: NB#224763, GLIB CRITICAL ** GLib-GIO - g_dbus_proxy_call: assertion `parameters == NULL || g_variant_is_of_type (parameters, G_VARIANT_TYPE_TUPLE)' failed * Fixes: NB#197067, tracker-miner-fs crawls open files * Fixes: NB#223938, Don't crash in tracker-extract when using QImage for SVG files * Fixes: NB#185309, Extract track numbers from MP3 ID3v2.2 frames * Fixes: NB#223622, Tracker should update mtime of the "db-version.txt" stamp file after a backup restoration * Fixes: NB#223282, --enable-guarantee-metadata and PNG: no nie:contentCreated * Fixes: NB#223133, GLIB CRITICAL ** Tracker - file tracker-bus.c: line 2700: uncaught error: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._tracker_5fdate_5ferror_2dquark.Code1 * Fixes: NB#223148, Don't crash in tracker-extract when passing NULL artist/album to g_variant_new() * Fixes: NB#223161, tracker-miner-fs crashes trying to g_object_unref a GError * Fixes: NB#222645, Inserting a resource using an non-existing class, doesn't rollback completely * Fixes: NB#222494, Tracker writeback uses CPU while recording video with camera * Fixes: GB#636074, libunistring and glib collations break fn:starts-with * Fixes: GB#631955, drop status icon use * Fixes: GB#623666, Change the 3 days time for removable media information deletion to a configuration value * Fixes: GB#600081, Get rid of Bonobo * functional-tests: Added tests for interaction with applications creating content * functional-tests: Added parameter to start the tracker processes manually * libtrakcer-data: We now restore tracker:modified values after journal replay and backup restore * libtracker-data: Don't journal non-embedded data (e.g. nie:plainTextContent) Translations: * Updated cs: Marek Černocký * Updated es: Daniel Mustieles * Updated et: Ivar Smolin * Updated fr: Bruno Brouard * Updated sl: Andrej Žnidaršič Notes: The command 'tracker-status' no longer exists, its command line features have been merged into 'tracker-control'. NEW in 0.9.36 - 2011-01-27 ========================== The changes are: * Fixes NB#221700: miner-fs: Handle errors when requesting bus names * Fixes NB#222578: tracker-writeback: Add member= to the signal's subscription * Fixes NB#222645: libtracker-data: Fix resource without URI on insert after rollback * Fixes NB#222664: miner-fs: Do not access MemoryOutputStream data before finishing splice * Ontology: Added missing documentation for rdf, mtp and slo * Ontology: Remove long-deprecated classes and properties * SPARQL: Ignore CONSTRUCT/INSERT/DELETE triples with unbound variables * SPARQL: Fix SQL generated for predicate variables and deleted subjects * libtracker-data: Fix transient properties * functional-tests: Ensure nfo:belongsToContainer is changed on file moves Translations: * Updated ar: Khaled Hosny * Updated cz: Marek Cernocky Notes: None NEW in 0.9.35 - 2011-01-20 ========================== The changes are: * Require: Vala >= 0.11.4 for GDBus sender support and bug fixes * build: All D-Bus use has been ported to GDBus (except libtracker-client and tracker-writeback) * Fixes: NB#220373, nie:contentCreated is set for music files that do not have the year set in metadatas * Fixes: NB#218092, [REG][Performance] Conversation view opening time is above performance target value * Fixes: NB#218332, The song duration is always shown as 0.00 in all views, except the player view * Fixes: NB#217636, Not able to delete contact using DELETE { ?p ?v} WHERE { ?p ?v} * Fixes: NB#218125, Inconsistency between nco:photo and nco:video * Fixes: NB#219309, tracker-store reads /proc/mounts 6 times & does 6*13 stat() calls when swiping to next image in gallery * Fixes: NB#216582, Tracker-store does not handle slo:location tags inserted into virtual file * Fixes: GB#639542, tracker-needle doesn't support any argument * Fixes: GB#622918, Migrate from dbus-glib to glib's GDBus * Fixes: GB#639918, Since merge of gdbus branch, build process is broken in tracker-evolution-plugin. * Fixes: GB#639556, Tracker find only folders * Fixes: GB#639543, Ctrl+W should close the window * Fixes: GB#639552, Give needle window a name that means something * SPARQL: Add support for IF function * Ontology: Added nmo:lastSuccessfulMessageDate property * Ontology: Added domain index on nmo:sentDate to nmo:Call * Ontology: Fixed NCO cyclic dependency with NFO * Ontology: Fixed range of nco:photo and nco:video, fixed maxCardinality of nco:video * Ontology: Added county and district to postal address * Ontology: Draft the NCO documentation page * libtracker-data: Remove unused TrackerDBResultSet * libtracker-common: Use statfs instead of statvfs on Linux * libtracker-miner: Log when an event is ignored because the file is locked * tracker-writeback: unlock file after 1s of update, not 3s * tracker-writeback: xmp: Don't use XMP_CLOSE_SAFEUPDATE * tracker-extract: gupnp-dlna: Update to gupnp-dlna 0.5 API * tracker-extract: mp3: Fixed bitrate table and sample rate table usage * tracker-extract: mp3: Cope with sample_rate = 0 * tracker-needle: Support command line arguments -V and search criteria * tracker-needle: List folders in first/initial view * tracker-needle: Add Ctrl+W to close window * tracker-needle: Use a meaningful window title "Desktop Search" Translations: * Updated id: Andika Triwidada Notes: None NEW in 0.9.34 - 2011-01-13 ========================== The changes are: * Fixes NB#198003: libtracker-miner: Improve SPARQL connection error handling * Fixes NB#211147: libtracker-data: Update domain indexes on type statement insert * Fixes NB#216329: tracker-store: Reinitialize signals after failed backup or restore * Fixes NB#216350: libtracker-data: Fix double free in ontology cache code * Fixes NB#217575: libtracker-data: Update rdf:type table when deleting type statements * Fixes NB#218123: SLO: Fixed maxCardinality of some properties * Fixes NB#218560: Fix assertion failure when ontology cache fails to load * Ontology: Make SLO an ontology that is installed by default * Ontology: Fixed maxCardinality and deprecated annotations in MLO * libtracker-data: Fix double unref on shutdown * libtracker-data: Fix memory leak in gvdb writing * libtracker-data: Update statistics when bypassing buffer for deletes * libtracker-data: Fix tracker_ontologies_get_classes * libtracker-sparql: Shutdown backends when finalizing connection * libtracker-common: Improve tracker_dbus_request_* API * tracker-extract: Relicense from GPL to LGPL * tracker-extract: TIFF: SLO ontology porting * tracker-extract: PNG: SLO ontology porting * tracker-extract: PDF: SLO ontology porting * tracker-extract: JPEG SLO ontology porting * tracker-extract: GIF: SLO ontology porting * tracker-writeback: SLO ontology porting * tracker-needle: Use nco:publisher if nco:creator is not available for documents Translations: * Updated cz: Marek Cernocky * Updated de: Mario Blättermann * Updated pt_BR: Mateus Zenaide * Updated se: Daniel Nylander * Updated sl: Andrej Žnidaršič, Matej Urbančič Notes: None NEW in 0.9.33 - 2010-12-29 ========================== The changes are: * Fixes NB#211928: SPARQL: Do not use nested subquery for EXISTS / NOT EXISTS * Fixes NB#212736: SPARQL: Improve predicate variable support * Fixes NB#213419: SPARQL: Implicitly convert fn:concat arguments to string * Fixes NB#214478: libtracker-data: Fix memory leak in cursor_next_async * Fixes GB#638159: libtracker-data: Fix gvdb lookup for not existing ontology resources * Ontology: Remove tracker:isAnnotation property * SPARQL: Support graph retrieval using property functions * SPARQL: Accept semicolon as separator between update operations * SPARQL: Add support for INSERT/DELETE DATA * SPARQL: Fix WITH support * SPARQL: Drop deprecated support for DROP GRAPH * libtracker-data: Add ontology cache * libtracker-data: Bypass update buffer for rdf:type deletes if possible * tracker-store, libtracker-data: Enhance signal behaviour for batch updates * libtracker-common: Print PID of process in dbus requests * libtracker-miner: Set proper nfo:belongsToContainer on file move operations * libtracker-miner: Skip IgnoreNextUpdate requests on CREATED events * libtracker-miner: When deleting resources, first mark unavailable and then fully remove them * libtracker-miner: Make sure original monitors are removed during a move operation * libtracker-miner: On directory remove, first remove monitors, then notify event * libtracker-miner: When a moved dir event detected, cancel all monitors in the dir * libtracker-miner: Don't add monitors when renaming a directory to a hidden name * tracker-extract-gstreamer: Fix undefined references * tracker-extract-txt: Support text files encoded in UTF-16 if BOM available * tracker-writeback: XMP: Take into account mlo:asPostalAddress * tracker-writeback: Fix a memoryleak on unwanted_results and cleanup * tracker-writeback, libtracker-miner: Don't writeback non-strict mined values * tracker-explorer: Port to GDBus Translations: * Updated cs: Marek Cernocky * Updated de: Mario Blättermann * Updated es: Daniel Mustieles * Updated et: Mattias Põldaru * Updated hu: Gabor Kelemen * Updated se: Daniel Nylander * Updated sl: Andrej Žnidaršič * Updated zh_CN: Aron Xu Notes: None NEW in 0.9.32 - 2010-12-16 ========================== The changes are: * New feature: Added tracker-needle to replace tracker-search-tool * New feature: Added --enable-guarantee-metadata to ensure nie:title and other metadata when missing * build: disable functional-tests by default * Fixes: NB#210217, Notification of nmo:Call class changes needed * Fixes: NB#211926, SVG images are represented as nmm:Photo not nfo:VectorImage * Fixes: NB#198155, libtracker-sparql doesn't return results if multiple async queries are run in parallel in direct back-end * Ontology: Add tracker:notify true for nmo:Call * libtracker-data: Sort function test results to avoid test failures * libtracker-sparql: Wait for tracker-store before loading plugins Translations: * Updated cs: Petr Kovar Notes: None NEW in 0.9.31 - 2010-12-10 ========================== The changes are: * Require: autoconf >= 2.64 was 2.59 * Require: libtool >= 2.2 (previously no required version) * build: Require Dia with --enable-gtk-doc * build: Require Python >= 2.6 with --enable-functional-test * build: Binaries built now use *stable* named versions only (i.e. 0.10 not 0.9) * Fixes: GB#636936, Require dia if we want to generate the documentation * Fixes: GB#624041, Port tracker to gtk+ 3.0 * Fixes: GB#636604, tracker-0.9.30 linking errors. * Fixes: GB#635756, Include libtracker-data.vapi in tarball * Fixes: GB#636383, tracker-status-icon grabs control+alt+S keybinding unconditionally which causes issues for emacs * Fixes: GB#636520, Use upstream gettext instead the Glib one * Fixes: GB#636527, Use autoreconf instead gnome-autogen.sh * Fixes: NB#207918, ICO image formats are displayed in ... * Ontology: Added nmm:MusicAlbumDisk, nmm:musicAlbumDisk, nmm:albumDiskAlbum classes * Ontology: Changed nmm:performer rdfs:domain from nmm:MusicAlbum to nmm:MusicAlbumDisk * Ontology: Changed nmm:setNumber rdfs:domain from nmm:MusicAlbum to nmm:MusicAlbumDisk * Ontology: Changed nmm:internationalStandardRecordingCode rdfs:domain from nmm:MusicAlbum to nmm:MusicPiece * libtracker-sparql: Fixed documentation to include tracker_sparql_get_uuid_urn() * libtracker-miner: Fixed documentation missing but written * tracker-extract: Fixed GUPNP-DLNA extractor, was using "nfo.channels" not "nfo:channels" * functional-tests: Don't hardcode python version in scripts Translations: None Notes: None NEW in 0.9.30 - 2010-12-02 ========================== The changes are: * Requires Vala 0.11.2 was 0.11.1 * Fixes: NB#204706, Classes slo:Landmark, slo:LandmarkCategory and slo:GeoLocation should qualify for notifications * Fixes: NB#203538, libtracker-sparql: cannot run 2 async queries at the same time * Fixes: NB#208420, Critical in miner-fs when msyncd and Ovi Suite in operation * Fixes: GB#635757, missing test file in tarball * Fixes: GB#635794, build fails - missing .vapi files? * Ontology: Added domainIndex nie:contentCreated to nfo:Visual * Ontolgoy: Added tracker:notify true for slo:LandmarkCategory, slo:Landmark and slo:GeoLocation * SPARQL: Use WITH/INTO/FROM clause in WHERE pattern of updates * Support MeeGoTouch Locale, recalculating indexes on locale changes * data-generators: Diversify the content creation times * data-generators: Support nfo:Equipment correctly * data-generators: Small fixes to the music data * libtracker-data: Disable fn:starts-with test for !libicu cases * libtracker-data: Document the TRACKER_PRAGMAS_FILE environment variable * libtracker-direct: Make singleton connection thread-safe * libtracker-bus: Reduce D-Bus proxy initialization time * libtracker-sparql: Reduce D-Bus proxy initialization time * tracker-extract, albumart: Don't assume that g_file_get_parent() returns non-NULL * tracker-miner-applications: Re-extract desktop files when locale change detected * tracker-status: Added more granularity to the tracker-store status reporting for the journal replay Translations: * fr: Bruno Brouard * pt_BR: Mateus Zenaide Notes: None NEW in 0.9.29 - 2010-11-24 ========================== The changes are: * Fixes: GB#630244, Use MaxBytes from tracker-extract.cfg for msoffice 2007 files * Fixes: GB#634424, MsOffice metadata extractor is not unicode aware * Fixes: GB#634669, Missing test file in tarball * Fixes: GB#635652, Correction in the --enable-tracker-search-tool configuration flag management * Fixes: NB#195787, libtracker-sparql, libtracker-client: Fix URI escaping * Fixes: NB#197067, tracker-miner-fs crawls open files * Fixes: NB#200980, Ontology: Add index on tracker:added * Fixes: NB#202291, tracker-extract: Fixed nested use of anonymous blank nodes * Fixes: NB#203540, Composer label not extracted in ID3v2.3 mp3 files * Fixes: NB#203593, All libtracker-miner section names in CamelCase in documentation * Fixes: NB#206752, SPARQL: Do not ignore GRAPH around rdf:type statements * Ontology: Add index on nco:nameFamily * SPARQL: Support \u escape sequence in string literals * SPARQL: Fix INSERT/DELETE and SELECT * with WHERE without variables * SPARQL: Use proper collation for string literals and fn:starts-with * libtracker-data: Make it easier to test the PRAGMAs for SQLite * libtracker-bus: Fix handling of priority in update_async * libtracker-sparql: Add function to generate a uuid urn to the client library * tracker-store: Fix crash on client exit and task without destroy notify * tracker-extract: Split msoffice and msoffice-xml extractors and refactor code * tracker-extract-mp3: Fix memory leak * tracker-miner-applications: Fix encoding issues and handling of nie:dataSource * tracker-miner-fs: Use low priority for update_async calls * tracker-search: New --software and --software-categories options Translations: * Updated cs: Marek Cernocky * Updated de: Mario Blättermann * Updated es: Daniel Mustieles * Updated hu: Gabor Kelemen * Updated pt_BR: Djavan Fagundes * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.28 - 2010-11-11 ========================== The changes are: * Require Vala 0.11.1 * Require GLib 2.26 * Require Automake 1.11 and use Vala features * NEW feature: GDBus support * New feature: Added utils/tracker-sql to run SQL on the databases directly * Fixes: GB#633118, GIF extractor doesn't extract comments * Fixes: NB#202275, Cardinality change from 1 to N in the ontology is not working fine * Fixes: NB#199968, Use gdbus in Vala to improve communications in Tracker * Fixes: NB#202627, Cannot create backup while updates are being inserted in the journal * Fixes: NB#202581, After backup restore operation: Tracker-CRITICAL **: tracker_class_has_insert_events: assertion `TRACKER_IS_CLASS (class)' failed * Fixes: NB#201122, Tracker store segfaults during backup Restore operation * Fixes: NB#203632, Remove rdfs:subClassOf from a class is not working * build: Fixed check for tracker-preferences which used "text" not "test" * Ontology: Updated mfo:image for mfo:FeedSettings to be in domain mfo:FeedElement * Ontology: Added tracker:indexed true for nmm:artistName * Ontology: Added tracker:domainIndex for nie:title on nmm:MusicAlbum * Ontology: Deprecated nmm:albumTitle for nie:title * functional-tests: Fixed and enabled property range date->string test * functional-tests: Fixed expected failures with new journal * functional-tests: Added property promotion/relegation tests * functional-tests: Added properties in basic ontology to test new changes * functional-tests: Added changing the superclass of a class test * libtracker-data: Combine INSERT and UPDATE statements into one INSERT * libtracker-data: Fixed ontology change coping for tracker:domainIndex * libtracker-miner: Added documentation for _manager_reindex_by_mimetype() and _manager_index_file() * tracker-store: Queue queries while backup is taking place Translations: * Added pa: A S Alam * Updated cs: Marek Cernocky * Updated sl: Andrej Žnidaršič * Updated ca@valencia: Carles Ferrando * Updated es: Jorge González * Updated de: Mario Blättermann * Updated fr: Bruno Brouard Notes: None NEW in 0.9.27 - 2010-10-21 ========================== The changes are: * NEW feature: New journal format to separate ontology from data for improved data integrity * Fixes: NB#199131, Geotags are not displayed for the images * Fixes: NB#194908, Compilation albums (multiple albumArtist in the same Album) doesn't work properly * Fixes: NB#200310, BMP files should also be registered as nmm:Photo * Fixes: GB#633118, Read comments embedded in GIF files * Fixes: GB#633093, Use statvfs64() if available to check for free space * Fixes: GB#631391, MsOffice-XML content extraction doesn't work properly * build: Don't check for 'tar' command * functional-tests: Moved all IPC tests to ipc/ * libtracker-common: Use per-client timeouts to avoid unnecessary wake ups * libtracker-client: Disable deprecation warnings when building this library * libtracker-data: Identify unsupported ontology change coping more broadly * libtracker-bus: Disable dbus timeouts in updates to the store * tracker-sparql: Added --list-indexes to show database indexes * tracker-store: Use per-query watchdogs to avoid unnecessary wake ups * tracker-extract: Removed all tests, they've been commented out for some time * tracker-extract: GIF: Fixed memory leak for height and width * tracker-extract: GStreamer: Write multiple nmm:albumArtist if there are more than one * tracker-extract: MSOffice: Don't use a static var to check if nie:generator was already set * tracker-miner-fs: Removed all tests, test source file was just a main() * tracker-control: Fix runtime critical when journal file doesn't exist Translations: * de: Mario Blättermann * sl: Andrej Žnidaršič * fr: Bruno Brouard Notes: None NEW in 0.9.26 - 2010-10-21 ========================== The changes are: * NEW feature: Task pool in libtracker-miner for store updates/metadata extractions, 10-20% speed increase indexing thanks to the work from Zhenqiang Chen * Fixes: GB#629850, Undefined reference errors during build * Fixes: GB#632399, [PATCH] configure.ac: Skip `AC_CHECK_FILE` when cross compiling * Fixes: NB#194548, Property needed to link nco:Contact with ncal:Event * build: Distribute .in.in files since they're needed for dist $prefix != target $prefix * build: Fixed warning with recent autoconf versions for AC_INIT * build: Fixed POTFILES.in, missing miner desktop files (was .in, not .in.in) * Ontology: Derive from rdfs:Resource for nao:Property, nfo:Orientation, poi:ObjectOfInterest, scal:AccessLevel, nmm:Flash, nmm:MeteringMode, nmm:WhiteBalance, nmm:RadioModulation, mto:TransferMethod * functional-tests: Test adding/removing properties in the ontology * functional-tests: Test adding/removing classes in the ontology * functional-tests: Rebased test-ontologies to latest data/ontologies * functional-tests: Removed sleep() calls, since we use D-Bus Wait() methods anyway, improves test speeds. * tracker-extract: Port QuillImageFilter usage to QImage * libtracker-data: Notify locales being used also for libunistring * libtracker-data: Improved collation related debugging traces * libtracker-bus: Handle error properly in array_update_finish() * libtracker-bus: Use host endian byte order for updates in steroids interface * libtracker-bus: Fixed memory leak when updating, GAsyncResult should always be unref-ed * libtracker-miner: Fixed critical warning when calling tracker-status -i * tracker-miner-fs: Fixed MeeGo app miner, missing include for GStrv and glib collators * utils, mtp-dummy: Fixed missing locale initialization Translations: * ja: Takayuki KUSANO * es: Jorge González * et: Mattias Põldaru * nb: Kjartan Maraas Notes: None NEW in 0.9.25 - 2010-10-14 ========================== The changes are: * NEW feature: New API methods in libtracker-sparql which allow multiple inserts per DBus call (and yet get multiple errors back). * Fixes: NB#186096, X-MeeGo-logical-id not extracted from application .desktop files * Ontology: NMM: Set maximum cardinality of dlnaProfile and uPnPShared to 1 * Ontology: NCO: Set tracker:notify for nco:ContactGroup. * SPARQL: Fix build with Vala < 0.11 * SPARQL: Fix context handling for EXISTS and NOT EXISTS * SPARQL: Do not use pointers as keys in hash tables * SPARQL: Do not let SPARQL variable names influence SQL query * libtracker-sparql: Use lazy resolving for symbols in plugins * libtracker-sparql: Added missing APIs to documentation sections file * libtracker-sparql: Make new example for_update_array a bit more aesthetic * libtracker-sparql: Documented the new API methods for multi-insert * libtracker-data: Progress handling while performing integrity check * libtracker-data: Do not load superproperties on read-only access * libtracker-data: Avoid opening SQLite database twice on startup * libtracker-data: Force reindex on unsupported ontology change * libtracker-data: Fixed test cases on Fedora 14 * tracker-store: Fixed status reporting * tracker-extract: Replace quill with quillimagefilter * tracker-extract: Use posix_fadvise() when closing files * tracker-extract: gupnp-dlna: Fix to use the tracker_sparql_escape_uri_printf() * functional-tests: Tests for tracker:indexed property * functional-tests: Tests for enable/disable notifications * functional-tests: Tests for cardinality changes in the ontology * functional-tests: Tests for first ontology-changes support * functional-tests: Added closing slash in aegis manifest file generator * functional-tests: Recovered tracker_store_remove_dbs() method. Needed for a backup test. * functional-tests: Fixed extraction expectations for GIF with XMP * functional-tests: Set PNG writeback test as expected failure until itxt is enabled in libpng (NB#185070) * functional-tests: Reliable start/stop of the store. Updated Backup/Journal tests * functional-tests: Logs improved. * functional-tests: Allow to change the ontologies directory in the system abstraction * functional-tests: Ignore Common* and *Template test classes in tests.xml * functional-tests: Added performance test for multi-insert * functional-tests: Ignore tracker-tests.aegis file generated during tests * coverage: Ignore coverage/ directory * utils: mtp-dummy: Implemented renaming of all files after batch copy finishes Translations: None Notes: None NEW in 0.9.24 - 2010-10-07 ========================== The changes are: * Depend on automake 1.11 for Vala support amongst things * Depend on SQLite being compiled threadsafe (was previously a warning) * Build: Don't fail to build if Evolution headers are absent * Fixes: NB#195394, Adding a favorite tag column to a song query makes the ordering or results case sensitive, when sorted by title * Fixes: NB#196143, tracker-info core dumps with NULL cursor getting prefixes * Fixes: NB#195547, Corrupted DB prevents tracker-store from booting * Fixes: NB#192790, Music: Character (œ) is not supported in MP3 file * Ontology: Added comments to document more NMO classes and properties * Ontology: Added nmo:PhoneMessage, nmo:PhoneMessageFolder classes * Ontology: Added nmo:mmsHasContent property for nmo:MMSMessage * Ontology: Added predefined nmo:PhoneMessageFolder items for inbox, outbox, draft, sent, myfolder * Ontology: Changed domain to nmo:PhoneMessage for nmo:encoding, nmo:fromVCard, nmo:toVCard * Ontolgoy: Changed subclass to nmo:PhoneMessage for nmo:MMSMessage * Ontology: Deprecated nmo:containsSMSFolder, nmo:containsSMS, nmo:smsFolderId * SPARQL: Use COLLATE in SQL for variables and property functions * SPARQL: Use named graph of WITH clause in WHERE pattern for updates * functional-tests: Added verbosity on errors. * functional-tests: Don't start manually the store, let the miner-fs invoke it * functional-tests: Wait for the store before starting the tests * functional-tests: Create AEGIS security file at build time * libtracker-data: Add test case for ORDER BY property function * libtracker-miner: Make vapi file compatible with Vala 0.11.0 * libtracker-sparql: Assume en_US.utf8_locale for test cases for proper collation * libtracker-sparql: Support GRAPH in SPARQL builder API * tracker-miner-fs: Fixed regression when deleting nfo:FileDataObject resources for a mount point * utils: mtp-dummy: Added a test case to synthesis an mtp daemon * plugins: Evolution: Fixed build error with updated tracker_sparql_connection*() API Translations: None Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.23 - 2010-09-30 ========================== The changes are: * Fixes: NB#193061, Music; §qtn_musi_comments_md§ string is indicated incorrectly in file details for MP3 files. * Fixes: NB#193044, Device doesn't do file list updates after uploading to device or delete from device procedures. * Fixes: NB#194746, DELETE statement fails with SQL error when GRAPH pattern is used * Ontology: Added nco:AuthorizationStatus class * Ontology: Set tracker:notify for nmm:MusicAlbum * Ontology: Set tracker:notify for nmm:Artist * Ontology: Set tracker:notify for nmm:ImageList * SPARQL: Fix SQL for GRAPH with predicate variable and empty database * coverage: ignore dbus-binding-tool generated files * functional-tests: Parse correctly playlist output from the extractor * functional-tests: Include playlists tests if totem-pl-parser is enabled * functional-tests: Added GIF with XMP metadata * libtracker-data: Log failure to set journal mode to WAL * libtracker-data: Fixed unchecked pointer unref when setting journal_mode pragma * libtracker-data: Change SQLite page and cache size * libtracker-sparql: Added connection_get_{async|direct_async}() APIs * libtracker-sparql: Various documentation fixes and additions. * libtracker-miner: Added new unit tests for blacklisting and event merging * libtracker-miner: Don't create inner loop until needed * tracker-store: Fixed corruption in FD passing D-Bus implementation * tracker-extract: MP3: Fixed a huge memory leak in albumart data * tracker-extract: MP3: Support Windows-1252 character encoding * tracker-extract: MP3: Fix string handling in comment and picture tags * tracker-extract: Album art: Stop looking for cover if we already * tracker-search-tool: Fixed compilation error with the latest Vala * plugins: Evolution: Fixed the UID format of the URL Translations: * Updated pl: Piotr Drąg Notes: None NEW in 0.9.22 - 2010-09-23 ========================== The changes are: * NEW Feature: LRU for database statement cache (huge memory footprint difference) * NEW Feature: Monitor event black listing and events are condensed (less event spam up the stack) * Fixes: NB#192537, Insane memory usage in tracker-store * Fixes: NB#193796, tracker-extract crashes when extracting audio files due to an integration issue with Quill * Fixes: GB#630176, Build failure with GTK 2.90.7 (no GTK_DIALOG_NO_SEPARATOR available anymore) * SPARQL: Rework variable name support to fix regression * Ontology: NCO: Set tracker:notify to true for nco:ContactList * data-generators: Added a default value for undefined categories * functional-tests: Added collation tests * functional-tests: Set exec permissions to stats test * libtracker-data: Fixed regression SELECT ... AS ?var not being honored in ORDER BY * libtracker-data: Don't cache stmt if the query contains a regular expression * libtracker-data: Fixed memory leak in journal rotation * libtracker-sparql: Make it possible to set the max LRU cache size per connection * libtracker-sparql: Added an "environment variables" section to documentation * tracker-store: Added TRACKER_STORE_{SELECT|UPDATE}_CACHE_SIZE environment variables to control new LRU feature * tracker-store: Fixed crash when accessing variable_names array * tracker-extract: remove unneeded call to tracker_topanalyzer_shutdown() * tracker-extract: Fixed QUILLimagefilter support * tracker-miner-fs: Fixed use of uninitialized variable Translations: * Updated et: Mattias Põldaru Notes: None NEW in 0.9.21 - 2010-09-16 ========================== The changes are: * Require D-Bus 1.3.1 or higher * NEW Feature: Return types in TrackerSparqlCursor API (previously just strings) * Fixes: NB#186055, Please make nco:note multi valued * Fixes: NB#192326, Tracker-store pollutes syslog with debug messages which are mostly only useful for tracker devs * Fixes: NB#188031, Tracker-store and tracker-miner-fs are listening to all serviceOwnerChanged messages on DBus * Ontology: Added nfo:HelpDocument * Ontology: Added brief description to the ontologies documentation index page * functional-tests: Fixed signal tests by using arg0 correctly to get the right signal * functional-tests: Added tests for the stats API * functional-tests: Updated tests for the signals API * libtracker-fts: Do not use TLS for queries * libtracker-common: Reset default log handler in tracker_log_shutdown() * libtracker-data: Fixed parallel cursor_next_async() call segfaults * libtracker-miner: Removed Pango requirement in tracker-miner.pc * libtracker-miner: Improved debugging to avoid store availability confusion in log * libtracker-sparql: Added test case for cursor_next_async() segfaults * tracker-miner-flickr: Fixed desktop file not having the correct prefix for its icon * tracker-extract: On shutdown a summary is logged with extraction/failure count per module * tracker-extract: Fixed compilation error for quill support * tracker-extract: Don't extract content if config has max bytes set to 0 * tracker-extract: Use g_pattern_match() instead of g_pattern_match_simple(), ~5% speed increase * tracker-search: Do not use tracker:available for emails * tracker-status: Fixed memory leak when printing state Translations: * Updated hu: Gabor Kelemen Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.20 - 2010-09-09 ========================== The changes are: * Fixes GB#628859, Ship examples/rss-reader/initial-data.ttl in tarballs * Fixes GB#628872, tracker-control -t or -k shouldn't kill tracker-status-icon * Fixes NB#187558, nfo:belongsToContainer not set for music files synchronized from Ovi Suite to the device * Fixes NB#189896, BatchCommit doesn't send reply * Ontology: Added slo:categoryIconUrl for category icons in the location ontology * Ontology: Added slo:iconUrl for landmark icons in the location ontology * Ontology: Added nfo:manufacturer to replace nfo:make * Ontology: Updated documentation, use plainTextContent instead of plainTextMessageContent * libtracker-data: Fixed signed char comparison in SPARQL scanner * tracker-store: Fixed class-signaling rdf_types array after delete * tracker-store: Fixed class-signaling to emit all triples for rdf:type predicates * tracker-extract: MSOffice, fixed to set nfo:Presentation & nfo:Spreadsheet * tracker-extract: GStreamer, use integer division for rounding duration * tracker-extract: Tiff, updated to use canonical uris with new nfo:manufacturer ontology * tracker-miner-flickr: Fixed so tracker-search-icon doesn't show constant polling * tracker-miner-flickr: Fixed criticals for photos with no tags * tracker-miner-rss: Fixed so tracker-search-icon doesn't show constant polling Translations: * Updated de: Christian Kirbach * Updated se: Daniel Nylander Notes: None NEW in 0.9.19 - 2010-09-02 ========================== The changes are: * Require libicu or libunistring (GLib unicode support has performance issues) * NEW Feature: Collation support * NEW Feature: Refactored signal notification API * Fixes: NB#184505, Video files without audio are listed as music clips. * Fixes: NB#179465, Cannot sort lower and upper cases for under same letter * Fixes: GB#628535, "make check" fails with LDFLAGS=-Wl,--as-needed -Wl,-Bsymbolic * Fixes: GB#628536, Don't install ui files for example utils * Ontology: Added nmo:isEmergency property * functional-tests: Avoid FTS tests if FTS is disabled * functional-tests: Don't include TTL files in dist (tarball was 26Mb vs. 6Mb) * libtracker-data: Fixed memory leak when setting journal_mode pragma * libtracker-miner: If CREATED event is received from a monitor, force IRI cache update * libtracker-miner: Avoid gtk-doc warnings: multiple IDs for constraint linkend * libtracker-miner: Don't print paths as they may not be in UTF-8, print URIs * tracker-extract: Fixed xine, mplayer and totem backends * tracker-miner-fs: Removed CacheTimeout option from config, unused * tracker-miner-fs: Removed ScanTimeout from config, unused * tracker-miner-fs: Disable crawling entirely if !initial_crawl * tracker-control: Avoid compiler warning * ttl_sgml: Avoid compiler warning Translations: * Updated cs: Marek Černocký * Updated sl: Andrej Žnidaršič Notes: The unicode parser will no longer default to GLib and configure will error if no libicu or libunistring is available. This is due to serious performance issues that are witnessed using GLib. It can still be used if explicitly forced using the switch --with-unicode-support=glib NEW in 0.9.18 - 2010-08-26 ========================== The changes are: * Fixes: GB#613252, Application-driven indexing and metadata storage * Fixes: GB#627893, tracker 0.9.17 does not compile with e-d-s/evolution 2.31.90 built with gtk+ 3.0 * Fixes: NB#187148, "Not tagged, file is not indexed" message is seen when adding a tag * Fixes: NB#184505, Video files without audio are listed as music clips. * coverage: Ignore deprecated libtracker-client * coverage: Ignore generated .c files * functional-tests: Use python instead of specific python2.6 * functional-tests: Corrupted-image extraction test is no longer an expected failure, as bug was fixed * functional-tests: FTS: Improve offsets/rank tests * functional-tests, FTS: Remove rdfs:Resource, not rdf:Resource * Ontology: Renamed slo:longitudeUncertainty to slo:horizontalAccuracy * Ontology: Renamed slo:latitudeUncertainty to slo:verticalAccuracy * libtracker-data: Fixed journal reader with rotated journals * libtracker-data: Make sure tracker_fts_update_commit() is called for FTS updates * libtracker-direct: Use maximum D-Bus timeout * libtracker-direct: Wait for tracker-store to be ready * libtracker-bus: Use maximum D-Bus timeout * libtracker-bus: Fixed linking to include libtracker-sparql * libtracker-bus: Throw errors for non-FD passing when Cancellable is cancelled * libtracker-bus: Support BatchUpdate for low priority requests * libtracker-sparql: Added debugging to know what SPARQL is used with direct-access * libtracker-sparql: Added TRACKER_SPARQL_BACKEND environment variable * libtracker-sparql: Added deps file for tracker-sparql.vapi to distribution * libtracker-sparql: cursor_get_n_columns() should only be called after cursor_next() * libtracker-miner: Allow API to bypass config dir checks for user based indexing * libtracker-miner: Add method to reindex certain mimetypes * libtracker-miner: Add method to invoke tracker-miner-fs to index a file * tracker-store: Fixed race conditions with new 'Wait' d-bus interface * tracker-store: Fixed unregister_g_object() criticals * tracker-store: Small busy callback improvements, indexing speed increased * tracker-miner-fs: Remove --add-file option (now done using tracker-control -f) * tracker-miner-fs: Added debugging to know which file is requested to be indexed over D-Bus * tracker-miner-fs: Use tracker_dbus_request_failed() for error situations * tracker-miner-fs: Do not index dirs unconditionally when adding monitors, huge crawling performance improvement * tracker-miner-fs: Renamed Reindex D-Bus interface to Index * tracker-control: Make -f and -m outputs translatable * tracker-control: Print when reindexing mime types or files is successful * tracker-control: Don't print PIDs if we're reindexing mimes or a file * tracker-control: Use TrackerMinerManager to reindex mimetypes * tracker-tag: Bail out if none of the passed files exist in the store Translations: * Updated es: Jorge González * Updated fr: Bruno Brouard * Updated cs: Marek Cernocky * Updated de: Mario Blättermann * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.17 - 2010-08-19 ========================== The changes are: * Require SQLite 3.7 (for Write Ahead Logging) * Require D-Bus GLib 0.82 (for dbus_g_connection_unregister_g_object()) * Fixes: GB#627281, crash in tracker-0.8.15 ms-office extractor * Fixes: GB#623005, Remove odt2txt dependency in the OASIS extractor * Fixes: GB#623207, tracker 0.8.6/0.9.x fails to build against evolution 2.31.4 * Fixes: NB#185950, COREWEB: /usr/lib/tracker/tracker-extract '*__GI_strncmp extract_gif get_file_metadata tra * Fixes: NB#185070, Enable PNG_iTXt_SUPPORTED flag in libpng * Fixes: NB#182948, Keywords/Subject metadata not written back to the file * Fixes: NB#184882, tracker-extract is getting crashed for malformed gif files * Functional Tests: refactoring branch merged, much more comprehensive testings now * SPARQL: Improve lexer performance for strings with ASCII characters * libtracker-common: Make sure libtracker-sparql inherits verbosity * libtracker-data: Merged DataError into TrackerSparqlError, was causing miner-fs to not finish * libtracker-data: Remove unused Options database table * libtracker-sparql: Added dbus-glib-1 dependency when building Vala sources * libtracker-sparql: Added example documentation for update_blank() API * libtracker-bus: Catch SPARQL errors thrown by D-Bus * tracker-extract: MP3, Fixed extraction of certain ID3v2.3 and ID3v2.4 tags * tracker-extract: MP3, Fixed un-unsynchronisation in ID3v2 * tracker-store: Fixed some memory leaks in dbus shutdown * tracker-store: Removed plugin support (was only used by kmail) * tracker-miner-fs: Fixed memory leak when setting up volumes * tracker-search: Fixed typo, output was "Contacts:" when it should be "Files:" * tracker-search: Improved output for --contacts and --files * kmail: Removed this plugin, it was unmaintained Translations: * Updated es: Jorge González Notes: None NEW in 0.9.16 - 2010-08-12 ========================== The changes are: * Require Vala 0.9.4 (to build from git repository only) * NEW Feature: tracker-extract: Added a GUPnP DLNA extractor * NEW Feature: libtracker-sparql: Client library for direct/dbus access * Fixes: NB#184823, Unsupported ontology change prevent tracker for booting * Fixes: NB#177663, Tracker does not harvest ID3v2 tags * Fixes: NB#181421, Duplicates when monitor events processed before directory is created in store * libtracker-common: New environment variable TRACKER_VERBOSITY to override config * libtracker-data: Fixed support for IN, NOT IN with * libtracker-miner: If parent GFile being processed, serialise by waiting * libtracker-miner: Print URIs not paths for CREATE monitor event debugging Translations: * Updated zh_CN: Aron Xu * Updated nds: Nils-Christoph Fiedler Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.15 - 2010-08-05 ========================== The changes are: * Require GLib 2.24 * Fixes: NB#172390, Tracker doesn't return any content from m3u playlists * Fixes: NB#179570, FTS search of file extension doesn't always work * Fixes: NB#180803, Busy-handling race condition * Fixes: NB#181112, Fix GStreamer pipeline error handling * Fixes: NB#181538, Assume tar program is in $PATH * Fixes: NB#182131, Tracker isn't using resource tokens to protect its interfaces * Fixes: NB#182788, segfault during opendir() * Fixes: NB#183307, Crash in quit_timeout_cb when signal_handler calls it * Fixes: NB#183653, Class notification signals are lost * Ontology, MTP: Fix mtp:hidden * libtracker-data: Support for SPARQL 1.1's IN operator * libtracker-data: Implement progress indication for rotated journals * tracker-store: Queue queries while busy * Add first version of FTS functional test cases * Add functional test case for busy-handling Translations: * Updated hu: Gabor Kelemen * Updated nds: Nils-Christoph Fiedler * Updated se: Daniel Nylander * Updated sl: Andrej Žnidaršič Notes: The database version has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.14 - 2010-07-23 ========================== The changes are: * Fixes: GB#616199, tracker-extract: Avoid second nie:title in msoffice/xml and oasis documents. * Fixes: GB#624731, libtracker-miner: Don't emit signals while iterating hash table. * Fixes: GB#624747, NB#179434: Avoid double-free in send_and_splice_async_callback() * Fixes: GB#624774, Fixes memleaks in tracker-miner-fs * Fixes: NB#180679, Make sure DBusGProxy is destroyed when destroying miner * Fixes: NB#180236, Filter not removed when going into UNAVAILABLE * Fixes: NB#179894, Reset sqlite3 stmt if detected as expired, and retry * Fixes: NB#181538, Assume tar program is in $PATH * NEW Feature: SPARQL, Add support for EXISTS and NOT EXISTS * Ontology, NAO: Set maximum cardinality of propertyName and propertyValue to 1 * Ontology, maemo: Add contactGroup{Audio,Video,Vibration}Ringtone * libtracker-data: Avoid reading already disposed memory * libtracker-data: Improve logging after sqlite error, before aborting * libtracker-data: Remove the unused contents.db * libtracker-data: Remove storing of local locale for no reason * libtracker-data: Do not cope with ontology changes in read-only mode * libtracker-data: Do not reindex in read-only mode * libtracker-data: Do not fetch resource count in read-only mode * libtracker-data: Replace interrupt_thread by GCancellable * libtracker-db, journal: Fix static code analysis issues * libtracker-db: Merged into libtracker-data * libtracker-db tests: Merged into libtracker-data tests * libtracker-common: Fix double free when error splicing * libtracker-common: Fix memory leaks when receiving partial reply plus errors in DBus calls * libtracker-common: Fixed memleak in path_has_write_access() * libtracker-client: Avoid critical, file may not have parent * libtracker-client: Fix memleak, unref DBusPendingCall missing in notify callback * libtracker-client: Avoid compiler warning when using FD-passing * libtracker-client: Fix double free, error is freed in callback * libtracker-miner: Exclude some files from coverage reports * libtracker-miner: Fixed memleak in item_move() * libtracker-miner: Fixed memleak in mount_guess_content_type() * tracker-extract: Fix crash in albumart when pixbuf cannot be created * tracker-extract, msoffice: Fixed memleak in extract_msoffice() * tracker-miner-applications: Fix memleak in process_file_cb() * tracker-writeback: Fixed memleak in get_playlist_type() Translations: * Updated sl: Andrej Žnidaršič * Updated es: Jorge González * Updated zh_CN: Jessica Ban Notes: None NEW in 0.9.13 - 2010-07-16 ========================== The changes are: * Fixes: GB#624071, t-s-t: Query results is always a 2 dimensional array. * Fixes: GB#623836, Avoid crashing if table of pieces is empty in the msword file * Fixes: NB#176090, libtracker-miner: Don't use same parent GFile for both mtime and iri caches * Fixes: NB#178825, New --feeds option in tracker-search to look for feeds * Fixes: NB#178808, Default verbosity should be errors-only in tracker-store * Fixes: NB#179559, Added domainIndex on nie:title for nmm:MusicPiece * Fixes: NB#179798, Wrong detection of ignored directory as a directory * Fixes: NB#178599, extra checks for finding the problem * Fixes: NB#174590, NCO: Remove cardinality restriction in nco:title * FixeS: NB#180602, Cannot detect is a song in device's local memory or not * NEW Feature: Added domain specific indexes, adding a column to DB tables to avoid full table scans/joins with larger tables for performance. * NEW Feature: Journal compression and rotation using 50Mb chunk sizes * libtracker-fts: Fix NEAR/XX operator with more than 2 digits * libtracker-fts: Useful debugging log included, disabled by default * libtracker-fts: Avoid possible NULL dereference * libtracker-fts: Initialize all buffers before using them * libtracker-fts: Avoid segfault when using the NEAR/N operator in FTS * libtracker-data: Added important debugging when changing database (drops/alters/creates/etc) * libtracker-data: Call g_error() if getting max ID fails * libtracker-miner: Improve logging when duplicates are found for a given uri * libtracker-miner: Improved logging, instead of "Adding item", now uses "Creating"/"Updating" * libtracker-miner: Improve logging for storage reporting * libtracker-miner: Avoid unused variable warnings in test cases * libtracker-client: Fix double free in error handling * libtracker-client: Fix object_date proto in vapi * libtracker-client: Mark graph as nullable in vapi * tracker-miner-fs: Use 60s as default DBus timeout for requests to extractor * tracker-extract: MSOffice-xml: Avoid possible NULL dereference * tracker-extract: PDF: Avoid possible NULL dereference * tracker-extract: Avoid warnings when compiling C++ code with C-only warning flags Translations: * Updated de: Mario Blättermann * Updated pt: Nicolau Gonçalves * Updated cs: Marek Cernocky Notes: None NEW in 0.9.12 - 2010-07-08 ========================== The changes are: * Fixes: NB#175613, Avoid duplicate media files showing in databases when sending MMS' * Require GLib 2.24 * Removed unused PKGLIBDIR defines in Makefile.ams * Removed libinotify imported module and use GIO completely * libtracker-common: Added common functionality for D-Bus FD passing with send_and_splice API * libtracker-common: Avoid unused variable warnings in unit tests * libtracker-common: Always set last_time in D-Bus client data * libtracker-db: Remove unreachable code * libtracker-db: Avoid results->GSList->GStrv in _dbus_query_result_to_ptr_array(), just use ->GStrv * libtracker-fts: initialize all buffers before using them * libtracker-fts: Avoid unneeded check, rc is always SQLITE_OK * libtracker-fts Remove unused variable in test case * libtracker-miner: If mount has no volume, don't rely on is_blank for guessing content type * libtracker-miner: Improve logging for storage module * libtracker-miner: Added tracker-monitor test cases * libtracker-miner: Avoid dead code in mount_guess_content_type() * libtracker-miner: Avoid unused variable warning in unit test * libtracker-client: Fixed object_date bindings in VAPI file * libtracker-client: Mark graph as nullable in VAPI file * tracker-store: Fix crash when not building with glibc * tracker-store: Avoid potential pointer ptr->reply dereference where ptr is NULL * tracker-store: Avoid unused variable warning * tracker-extract: Avoid unreachable code when not using libstreamanalyzer * tracker-extract: MP3: avoid deadcode, bitrate will always be greater than 0 * tracker-extract: PDF: check if document is returned before dereferencing it * tracker-extract: Implement tracker_dbus_send_and_splice() for miner/extractor communications * tracker-writeback: Avoid unused variable warning Translations: * Updated de: Mario Blättermann * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.11 - 2010-07-01 ========================== The changes are: * Fixes: GB#511474, Remove the option to index remote mounted directories * Fixes: GB#622734, too many open files error / possible file descriptor leak * Fixes: GB#623203, Fix segfault when guessing content type in mounts without path * Fixes: GB#616809, t-s-t shows Author as urn:uuid: in metadata bar * Fixes: GB#622702, 0.8.13 does not build with gio 2.22 anymore * Fixes: NB#174202, Some .pya audio files cannot be displayed in Music application after copying to device via USB. * Fixes: NB#176932, Pure asf audio file is displayed in Video&TV application. * Fixes: NB#177447, Remove the 'error' signal from TrackerMiner object * general: Added -Wno-portability to AM_INIT_AUTOMAKE * general: Bumped version requirement for GLib from 2.20 to 2.24 * general: Bumped version requirement for D-Bus from 1.3.0 to 1.3.1 for FD passing * tracker-control: Fixed typo in --help * tracker-extract: Plug leak in JPEG extractor * tracker-extract: Plug leaks in MSOffice extractor * tracker-extract: Plug leaks in PDF extractor * tracker-extract: Plug leaks in XMP extractor * tracker-extract: Plug leaks in GStreamer extractor on pipeline creation errors * tracker-store: Avoid CPU hopping of main threads (GNU only platforms) * tracker-store: Improve memory allocation for change events and avoid duplicates * tracker-store: Always reset interrupt thread before queries AND updates * tracker-store: Fix call to tracker_store_sparql_update for FD passing API * tracker-miner-fs: Use TrackerMinerFS caches for application mining * tracker-miner-fs: Fix various SPARQL issues for application mining * libtracker-data: Fix typo in define used for FTS support * libtracker-client: Updated Vala bindings * libtracker-miner: Fix potential invalid read error * libtracker-miner: Fix compilation if UPOWER and HAL are disabled * evolution: Don't fail to add mails with spaces in the folder name * function-tests: added mass storage mode test cases Translations: * Updated et: Mattias Põldaru * Updated de: Mario Blättermann * Updated es: Jorge González * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.10 - 2010-06-24 ========================== The changes are: * Fixes: GB#621547, inconsistent messages on hard-reset * Fixes: GB#620354, make TST history persistent * Fixes: GB#621070, Re-enable volume cleanup * Fixes: GB#620828, returns no e-mail results * Fixes: GB#621987, Correctly handle applications in results * Fixes: GB#620362, mp3 extraction crashes if year string is NULL before using atoi() with libenca enabled * Fixes: GB#619868, don't recheck all monitored directories needlessly * Fixes: GB#620486, Ignored files can still be found after changing tracker-miner-fs.cfg * Fixes: GB#622351, Wrong initial detection of mounted state of the root partition * Fixes: NB#175723, Avoid duplicates if several monitor events arrive together and store is slow * Fixes: NB#170915, tracker-search for snippet is resulting in errors * Fixes: NB#175957, Properly setup non-removable mounts at startup * Fixes: NB#175712, tracker is listing the files under Ignore directories * Fixes: NB#172813, Tracker Miner polluting dbus channels upon indexing * Support --disable-tracker-fts to disable libtracker-fts and all FTS operations * Support D-Bus FD passing (avoids much memory copying) thanks to the work from Adrien Bustany * SPARQL: Fix generated SQL for triple block following simple optional * libtracker-data: Add tests for triple block following simple optional * libtracker-miner: Fixed memory leak * libtracker-miner: Minor style changes * tracker-miner-fs: Force recheck on IgnoredFiles changes * Revert index added for nfo:belongsToContainer * Revert "libtracker-data: Fixes NB#174591, Throw error on undefined variable in expressions" Translations: None Notes: Building Tracker from the git repository requires updated librest bindings not yet released. Building the Flickr miner requires master vala to be built. This can be disabled using --disable-miner-flickr. NEW in 0.9.9 - 2010-06-17 ========================= The changes are: * Fixes: GB#621547, inconsistent messages on hard-reset * Fixes: GB#621126, Status icon's progress bars should be at 0% on init * Fixes: GB#620094, tracker-status-icon shows "search" menu item even though t-s-t is not installed * Fixes: GB#621183, When mounting volume 2nd time, inotify watches don't work any more * Fixes: GB#621001, tracker-miner-fs fails to initialize active mount points if CD name has whitespaces * Fixes: NB#174162, Tracker's filesize returns integer which prevents to show correct file size for big files. * Fixes: NB#174333, Each file is listed twice in tracker search results * Fixes: NB#174591, Tracker accepts unbound variables in FILTER() expression. * Fixes: NB#173673, SMS validity period property needed in nmo ontology * Fixes: NB#172818, Tracker is not indexing new content on EMMC * Fixes: NB#173589, tracker-store is killed due to high memory usage from large INSERTs * Fixes: NB#174248, Filtering by boolean value fails * configure: Fixed summary for miners (strings were blank sometimes) * Ontology: Removed nrl:maxCardinality from nco:hasAffiliation (was 1) * Ontology: Added tracker:isRemovable and tracker:isOptical properties * libtracker-db: Database version bump (due to ontology changes) * libtracker-db: Simplify DB abstraction, it is not needed * libtracker-db: Add a "length" parameter to tracker_db_cursor_string * libtracker-fts: Fixed libicu backend memory leak in tracker_parser_reset() * libtracker-miner: Added tracker_storage_get_type_for_uuid() * libtracker-miner: Update the database when config changes for optical/removable media * libtracker-miner: Use GMount instead of GVolume which is for user-mountable devices only * libtracker-miner: Detect removable devices using GDrive API, not guessing * libtracker-miner: Ignore GMounts which are considered shadowed mounts * libtracker-miner: Import GIO's system for detecting optical media more accurately * tracker-store: Optimized memory use for class signals * tracker-store: Optimized class signals with use of GStringChunk * tracker-store: Avoid using dbus-glib for sending class signals * tracker-store: Compress SubjectsChanged signal for multi-value fields * tracker-extract: Slightly reduce SPARQL update size for playlists * tracker-miner-fs: Force re-check of mounted path ONLY if an indexed location * tracker-minre-fs: Fixed build when there is no DEVKIT or HAL Translations: None Notes: The database version up has been incremented, this will force a reindex for any existing Tracker installation. NEW in 0.9.8 - 2010-06-10 ========================= The changes are: * Fixes: NB#171657, Device manufacturer and device model XMP metadata are not extracted from mp4 video files * Fixes: NB#173206, Images and videos should both have the key 'nfo:device' with the same information * Fixes: NB#161449, Empty place holder in query result after copying new songs to device * Fixes: NB#172414, Song without any album image is shown with some random primary image in Content Manager * Fixes: NB#172652, Avoiding some missing playlists in query doesn't * return anything other exist playlists in query * Fixes --enable-maemo (had no effect) * Updated generator scripts to include data objects for emails * SPARQL: Warn instead of crash on namespaces without a prefix * SPARQL: Added test for FILTER in group graph patterns * SPARQL: Always generate SELECT around group graph patterns * SPARQL: Only clear buffer when rolling back a transaction * SPARQL: Support experimental INSERT SILENT and DELETE SILENT (don't rollback on failures during transactions) * Ontology: Added tracker:defaultValue property * Ontology: Added maemo:relevance default value of 1000000 * Functional Tests: Added script to kill store during batch commit * libtracker-data: Fix error annotations in Vala bindings * tracker-miner-fs: Fixed IRI cache invalidation * tracker-miner-fs: Use DELETE instead of DROP GRAPH for volumes * tracker-miner-fs: Separate user data from filesystem data using graphs * libtracker-common: Removed public documentation for private library * libtracker-db: Renamed crawling-timestamp to last-crawl.txt * libtracker-db: Renamed .firstindex to first-index.txt * libtracker-db: Set contents of first-index.txt to PACKAGE_VERSION Translations: * Updated sl: Andrej Žnidaršič * Updated hu: Gabor Kelemen * Updated es: Jorge González Notes: None NEW in 0.9.7 - 2010-06-03 ========================= Improvements / New: General: * Fixed _DATA include for Maemo ontologies, was missing \ * Use simple contacts instead of PersonContacts for message data generators Functional Test: * Added experimental nmo:Message query tests Ontology: * Deprecated nmm:camera for nfo:device * Added nmo:ReportReadStatus class * Added nmo:sentWithReportRead property * Added nmo:reportReadStatus property * Added nmo:read-status-read, nmo:read-status-deleted and nmo:read-status-unknown for nmo:ReportReadStatus * Added nmo:mmsId property * Don't use nie:hasPart subproperty for nco:key, nco:photo, nco:logo and nco:sound libtracker-common: * Added TrackerConfigFile and TrackerKeyfileObject Vala bindings libtracker-fts: * Removed tracker_parser_process_word() API tracker-store: * Added support for TRACKER_STORE_TASK_MAX_TIME environment variable to set maximum time allowed before interrupting a query * Process 50 Turtle statements at once, previously was 10 tracker-miner-fs: * Added 'CrawlingInterval' config option to disable or only mtime check file system after n days, default is same as previously (every startup) tracker-miner-rss: * Link against libtracker-client since we use the API Bugs: * NB#167647 - Packages built from tracker depend on python2.5 but call /usr/bin/python * GB#619498 - Check if stop word before stemming, not after * GB#619929 - tracker-search shouldn't quit if stopword found * GB#619535 - MaxWords configuration in FTS config is not used Translations: * Updated de: Mario Blättermann * Updated ja: Takeshi AIHANA Notes: None NEW in 0.9.6 - 2010-05-27 ========================= Improvements / New: General: * Fixed libtracker-client header includes for all tracker-utils Ontology: * Added SLO (Simplified Location Ontology) for testing libtracker-db: * Replaced unreliable sqlite3_interrupt() with another solution libtracker-data: * Fixed backup test to properly shutdown libtracker-data * Improved error reporting when inserting multiple values for single valued property * Don't remove temporary data asynchronously, leads to race conditions libtracker-extract: * XMP: Protect against division by zero * Updated tracker_text_validate_utf8(), text_len was gsize, now it is gssize libtracker-fts: * Make sure to not keep table locked after queries * Added README.parsers to explain libicu/libunistring/libglib parsing methods * Removed max_words_to_index, it was unused * Removed delimit_words, it was unused tracker-extract: * XMP: Fix strings that go like "n1/n2" that are xsd:double tracker-writeback: * XMP: Don't writeback fields that are typically set by the camera itself tracker-search: * Don't append "*" to all fts:match queries Bugs: * GB#619826 - don't clean-up search terms before storing them in history * GB#526346 - please add option to disable stemming * GB#560220 - New option required:ignore diacritics when indexing and searching * GB#619271 - pango dependency only needed if compiling with the glib/pango parser * GB#619487 - ensure that one can search terms with _underscores_ * GB#619630 - HTML extractor inserts several nie:title if title has an ampersand (&) character * GB#619615 - Include DC ontology in gtk-doc documentation * GB#619801 - We need SPARQL escaping for cases where we use g_file_info_get_display_name() * GB#616540 - tracker-preferences doesn't like non-UTF8 locale * NB#167449 - The attached PDF file is not displayed in the front page. * NB#168740 - Tracker-Critical **: Could not execute sparql: Unable to insert multiple values for subject * NB#169460 - Added m3u playlist is not harvested by tracker in SB1 * NB#170142 - Same tags are extracted twice if found from DC:Subject and IPTC:keywords * NB#164822 - Need property to associate a video URL with a contact Translations: * Updated fr: Claude Paroz Notes: None NEW in 0.9.5 - 2010-05-20 ========================= Improvements / New: General: * Added support for libunistring and libicu thanks for the work from Aleksander Morgado * Fixed building with VPATHS where $srcdir != $builddir SPARQL: * Added tracker:id function to return the integer ID used as last sort key in queries Ontology: * Added secondary index on nmo:communicationChannel libtracker-data: * Create new contexts per tripple now, improves variable handling * Added support for secondary indexes, creates a 2 column index in SQLite libtracker-fts: * Fixed word breaking (if using libicu or libunistring) * Fixed word normalization (if using libicu or libunistring) * Fixed word case folding (if using libicu or libunistring) * Support multi language extraction per file (if using libicu or libunistring) libtracker-miner: * Fixed IRI cache * Fixed mtime cache for config directories themselves * Added TrackerNetworkProvider for miners which need to know about connection status tracker-store: * Check idle handler after * Use exclusive thread for TTL imports, fixes remaining table locked issues tracker-extract: * Handle single null terminated strings in UCS2 and UTF-16 in mp3 extractor * Don't do word breaking to limit FTS extraction by words, instead use bytes, faster * Added specific GIF file extractor tracker-search-tool: * Fixed segfault when entering text while categories are selected Bugs: * NB#163155 - tracker-extract is crashing while extracting album art of a mp3 file * NB#169254 - GLIB CRITICAL ** GLib - g_utf8_strdown: assertion `str != NULL' failed * NB#169105 - GLIB CRITICAL ** Tracker - tracker_iptc_new: assertion `len > 0' failed * NB#169119 - GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed * GB#619061 - add search history and auto-completion * GB#616535 - miner-fs stops after crawling a little (no crash). maybe non-utf8 locale related. * GB#614870 - Open t-s-t on left click * GB#614610 - config behaviour regarding xdg-user-dirs doesn't work properly * GB#618821 - Wrong X-GNOME-Bugzilla-Components for desktop files * GB#618544 - Only install tracker-search-bar man page when enabled * GB#618011 - UI problems with tracker tray icon * GB#616808 - dist tarball fails to build twice in a row if --enable-gtk-doc is selected * GB#491850 - Allow option to ignore stopwords * GB#503366 - Cannot search number in text files * GB#579756 - Unicode Normalization is broken in Indexer and/or Search * GB#616836 - Use libunistring's u8_normalize() instead of GLib's g_utf8_normalize() Translations: * Updated cs: Petr Kovar * Updated de: Mario Blättermann * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.4 - 2010-05-11 ========================= Improvements / New: General: * Require poppler 0.12.2 instead of poppler-glib 0.4.5 * Removed many unused variables from coverity reports * Various other fixes picked up from coverity reports * RSS miner, pkg-config should look for rest-0.6, not rest Functional Tests: * Added force-sqlite-misused-batch.sh and force-sqlite-misused.sh for NB#166684 * Added for journal replay * Added for backup-restore Ontology: * Fixed typo for nfo:softwareCmdLine comment * Added tracker:notify for nco:EmailAddress * Added tracker:notify for nco:PhoneNumber * Added tracker:notify for nco:PostalAddress * Added tracker:notify for nfo:Document * Added tracker:notify for nfo:SoftwareApplication * Added tracker:indexed for nfo:belongsToContainer Data Generators: * Fixed %u use since it is deprecated in favour of %d in Python libtracker-common: * Fixed compilation error in validating ints for tracker-keyfile-object libtracker-db: * Enable read_uncommitted to fix locking issues * Properly shut down thread data on thread destruction, fixes sqlite3_close() log errors * Don't fsync/close already open databases if g_open() succeeds * Avoid strstr in uri_is_{parent|descendant} functions * Performance improvement for tracker:uri-is-parent function libtracker-extract: * Don't modify setlocale() return value, as it's statically stored * Protect against invalid values in tracker_date_guess() libtracker-miner: * Added missing .deps file for Vala bindings * Fixed memory leak in VAPI file * Fixed includes for libtracker-client in VAPI file * Updated nfo:fileLastModified query to use nfo:belongsToContainer, much faster libtracker-client: * Fixed typo in documentation for tracker_resources_sparql_query() tracker-store: * Fixed possible memory corruption * Fixed crash when client disappears * Fixed unref of TrackerDBCursor when NULL * Handle commit transaction error when importing turtle files and rollback tracker-extract: * Ported PDF extractor to not use poppler-glib, speed improvement * Don't run past genre array in mp3 extractor * Use nfo:HtmlDocument instead of nfo:Document in html extractor * Fixed compilation warning for msoffice extractor, use G_GSIZE_FORMAT not %d tracker-writeback: * Added MP4 and 3GPP video files xmp module tracker-search: * Added --emails and list subjects/dates * Added --contacts and list names/addresses * Updated --detailed so we only report URNs if this is supplied tracker-tag: * Fixed possible use of uninitialised memory tracker-info: * Show results in shortened form, added --full-namespaces for old behaviour tracker-search-tool: * Fixed segmentation fault when there are no results * Added "Folders" category * Renamed "Office Documents" category to "Documents" Bugs: * GB#616548 - DIrectory lists and de-duplication in tracker-preferences * GB#617082 - RFE Useability - Learning How to Start the Miners was a Little Unintuitive * NB#166767 - Every word in a long tag is indexed separately * NB#166684 - Database table is locked issue, SQLITE_MISUSED is reported SQLite error here * NB#167616 - Tracker's ISO 8601 timestamp implementation is not correct * NB#166717 - Only first DC:Subject and IPTC:Keywords tags are extracted Translations: * Updated cs: Petr Kovar * Updated de: Mario Blättermann Notes: Due to the HTML extractor changing the document type from nfo:Document to nfo:HtmlDocument, we would advise anyone with these files indexed to use: tracker-control --reindex-mime-type text/html This should make sure all indexed files are correctly adjusted. NEW in 0.9.3 - 2010-04-29 ========================= Improvements / New: General: * Fixed miner desktop files so they have trailing ; for Categories * Added structural view design document * Added queries for contact data generation scripts * Added queries for message data generation scripts * Added debugging to libinotify to assist in fixing GB#615965 * Updated data generation scripts and templates quite heavily * Disable inotify and tracker-storage for coverage reports Ontology: * Added nco:contactLocalUID property Functional Tests: * Fixed query used for getting image metdata * Fixed signal handling in miner file operations test * Fixed performance scripts to not use isStoredAs * Updated contact related performance queries * Updated message related performance queries * Added writeback support for PNG, TIFF, MP4 libtracker-common: * Removed tracker_power_get_battery_percentage(), it's unused * Port from libdevkit-power-gobject to libupower-glib libtracker-db: * Added tracker:uri-is-parent SQLite functions (for crawling improvements) * Added tracker:uri-is-descendant SQLite functions (for crawling improvements) * Define a maxium size for each DBusMessage libtracker-data: * Added fn:lower-case function libtracker-miner: * Improve crawling queries (3693 dirs, 27678 files, was 651s, now 166s) libtracker-client: * Added initial test cases tracker-store: * Fixed cursor iteration to make sure it is done in the thread that prepared the query * Fixed memory corruption, using DBusGMethodInvocation after freed * Create DBusMessages without dbus-glib to avoid memory duplication/fragmentation tracker-extract: * Fixed man page for -d * Fixed double free in Vorbis extractor, caused timeouts in miner-fs logs * Added tracker_getline() API for platforms without it tracker-miner-fs: * Use new libupower API in tracker-common tracker-miner-flickr: * Added new miner for Flickr web service thanks to the work from Adrien Bustany tracker-writeback: * Fixed double free in taglib module evolution: * Fixed race condition tracker-search-tool: * Removed --service (old 0.6 option which is unused) * Added support for starting queries using command line arguments Bugs: * GB#615930 - crash in evolution caused by tracker plugin * GB#616493 - Remove unzip dependency from the OASIS extractor * GB#615836 - tracker:available doesnt work: wrong dataSource for removeable drives * GB#579051 - provide getline() if not found * NB#166080 - extraction of copyright for jpg image is partially correct * NB#164958 - tracker-search for a default song doesn't work for "beautif" and "beautifu" Translations: * Updated cs: Petr Kovar * Updated sl: Andrej Žnidaršič Notes: None NEW in 0.9.2 - 2010-04-22 ========================= Improvements / New: General: * Fix build failures on none Linux platforms * Depend on SQLite >= 3.6.17 for shared cache mode (for FTS) Ontology: * nfo:isContentEncrypted was defined in nmm, not nfo * Added tracker:indexed for nfo:fileLastModified * Added tracker:fulltextIndexed for nie:subject * Added tracker:fulltextNoLimit for nie:subject * Added tracker:weight of 5 for nie:subject * Added tracker:indexed for nmm:musicAlbum * Added tracker:indexed for nmm:performer * Added tracker:indexed for mlo:location Functional Tests: * Added videos to the data generation * Added test set configuration for maximum values * Added full text queries * Added basic file operations for miner-fs and desktop environments * Added file operation tests for multilevel subfolders * Fixed writeback tests to wait for signal before testing extraction libtracker-db: * Support O_LARGEFILE when using g_open for the journal * Support cancellation (after 30 seconds) for abusive queries * Use sqlite3_config (SQLITE_CONFIG_MULTITHREAD) libtracker-data: * Fixed memory leak on journal replay libtracker-miner: * Don't translate statuses * Improve crawling queries (3693 dirs, 27678 files, was 651s, now 166s) libtracker-extract: * Don't run past an array in XMP tests tracker-store: * Support all requests using GThreadPool * Support parallel queries (uses 2 threads for now, tested with more) * Support cancelling queries when clients disconnect (from D-Bus) tracker-extract: * Set nfo:isContentEncrypted for encrypted docs * Improve