diff --git a/pkgs/development/libraries/tracker/2.x/default.nix b/pkgs/development/libraries/tracker/2.x/default.nix new file mode 100644 index 000000000000..fb111829c7e1 --- /dev/null +++ b/pkgs/development/libraries/tracker/2.x/default.nix @@ -0,0 +1,137 @@ +{ stdenv +, fetchurl +, gettext +, meson +, ninja +, pkgconfig +, gobject-introspection +, python3 +, gtk-doc +, docbook_xsl +, docbook_xml_dtd_412 +, docbook_xml_dtd_43 +, docbook_xml_dtd_45 +, libxml2 +, glib +, wrapGAppsHook +, vala +, sqlite +, libxslt +, libstemmer +, gnome3 +, icu +, libuuid +, networkmanager +, libsoup +, json-glib +, systemd +, dbus +, substituteAll +}: + +stdenv.mkDerivation rec { + pname = "tracker"; + version = "2.3.4"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + gdbus = "${glib.bin}/bin/gdbus"; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + vala + pkgconfig + gettext + libxslt + wrapGAppsHook + gobject-introspection + gtk-doc + docbook_xsl + docbook_xml_dtd_412 + docbook_xml_dtd_43 + docbook_xml_dtd_45 + python3 # for data-generators + systemd # used for checks to install systemd user service + dbus # used for checks and pkgconfig to install dbus service/s + ]; + + buildInputs = [ + glib + libxml2 + sqlite + icu + networkmanager + libsoup + libuuid + json-glib + libstemmer + ]; + + checkInputs = [ + python3.pkgs.pygobject3 + ]; + + mesonFlags = [ + # TODO: figure out wrapping unit tests, some of them fail on missing gsettings-desktop-schemas + # "-Dfunctional_tests=true" + "-Ddocs=true" + ]; + + doCheck = true; + + postPatch = '' + patchShebangs utils/g-ir-merge/g-ir-merge + patchShebangs utils/data-generators/cc/generate + patchShebangs tests/functional-tests/test-runner.sh.in + patchShebangs tests/functional-tests/*.py + ''; + + preCheck = '' + # (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file + export HOME=$(mktemp -d) + + # Our gobject-introspection patches make the shared library paths absolute + # in the GIR files. When running functional tests, the library is not yet installed, + # though, so we need to replace the absolute path with a local one during build. + # We are using a symlink that will be overridden during installation. + mkdir -p $out/lib + ln -s $PWD/src/libtracker-sparql-backend/libtracker-sparql-2.0.so $out/lib/libtracker-sparql-2.0.so.0 + ln -s $PWD/src/libtracker-miner/libtracker-miner-2.0.so $out/lib/libtracker-miner-2.0.so.0 + ln -s $PWD/src/libtracker-data/libtracker-data.so $out/lib/libtracker-data.so + ''; + + postCheck = '' + # Clean up out symlinks + rm -r $out/lib + ''; + + postInstall = '' + glib-compile-schemas "$out/share/glib-2.0/schemas" + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = "https://wiki.gnome.org/Projects/Tracker"; + description = "Desktop-neutral user information store, search tool and indexer"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/tracker/2.x/fix-paths.patch b/pkgs/development/libraries/tracker/2.x/fix-paths.patch new file mode 100644 index 000000000000..f5c13c3fcdaf --- /dev/null +++ b/pkgs/development/libraries/tracker/2.x/fix-paths.patch @@ -0,0 +1,12 @@ +--- a/src/tracker-store/tracker-store.desktop.in ++++ b/src/tracker-store/tracker-store.desktop.in +@@ -1,8 +1,8 @@ + [Desktop Entry] + Name=Tracker Store + Comment=Metadata database store and lookup manager +-Exec=gdbus call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0 ++Exec=@gdbus@ call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0 + Terminal=false + Type=Application + Categories=Utility; + X-GNOME-Autostart-enabled=true diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6426540f5196..b08c48227300 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3400,6 +3400,8 @@ in tracker = callPackage ../development/libraries/tracker { }; + tracker_2 = callPackage ../development/libraries/tracker/2.x { }; + tracker-miners = callPackage ../development/libraries/tracker-miners { }; tracy = callPackage ../development/tools/tracy {