about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/tracker
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/tracker')
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/default.nix138
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/fix-paths.patch13
2 files changed, 151 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/tracker/default.nix b/nixpkgs/pkgs/development/libraries/tracker/default.nix
new file mode 100644
index 000000000000..7dbe0d410f75
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -0,0 +1,138 @@
+{ stdenv
+, lib
+, fetchurl
+, gettext
+, meson
+, ninja
+, pkg-config
+, asciidoc
+, gobject-introspection
+, python3
+, docbook-xsl-nons
+, docbook_xml_dtd_45
+, libxml2
+, glib
+, wrapGAppsNoGuiHook
+, vala
+, sqlite
+, libxslt
+, libstemmer
+, gnome
+, icu
+, libuuid
+, libsoup
+, libsoup_3
+, json-glib
+, systemd
+, dbus
+, substituteAll
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tracker";
+  version = "3.2.1";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "GEfgiznm5h2EhzWqH5f32WwDggFlP6DXy56Bs365wDo=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit asciidoc;
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    asciidoc
+    gettext
+    libxslt
+    wrapGAppsNoGuiHook
+    gobject-introspection
+    docbook-xsl-nons
+    docbook_xml_dtd_45
+    python3 # for data-generators
+    systemd # used for checks to install systemd user service
+    dbus # used for checks and pkg-config to install dbus service/s
+  ];
+
+  buildInputs = [
+    glib
+    libxml2
+    sqlite
+    icu
+    libsoup
+    libsoup_3
+    libuuid
+    json-glib
+    libstemmer
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pygobject3
+    tappy
+  ];
+
+  mesonFlags = [
+    "-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
+    patchShebangs examples/python/endpoint.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/libtracker-sparql-3.0.so $out/lib/libtracker-sparql-3.0.so.0
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      meson test --print-errorlogs
+
+    runHook postCheck
+  '';
+
+  postCheck = ''
+    # Clean up out symlinks
+    rm -r $out/lib
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
+  meta = with 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/nixpkgs/pkgs/development/libraries/tracker/fix-paths.patch b/nixpkgs/pkgs/development/libraries/tracker/fix-paths.patch
new file mode 100644
index 000000000000..5e4d8657f7bc
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tracker/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build
+index f90c757cf..40d9c939d 100644
+--- a/docs/manpages/meson.build
++++ b/docs/manpages/meson.build
+@@ -32,7 +32,7 @@ foreach m : manpages
+     command: [xsltproc,
+               '--output', '@OUTPUT@',
+               '--stringparam', 'man.authors.section.enabled', '0',
+-              '/etc/asciidoc/docbook-xsl/manpage.xsl', '@INPUT@'],
++              '@asciidoc@/etc/asciidoc/docbook-xsl/manpage.xsl', '@INPUT@'],
+     input: xml,
+     output: manpage,
+     install: true,