2025-07-24 13:55:40 +02:00

145 lines
2.4 KiB
Nix

{
stdenv,
lib,
fetchurl,
asciidoc,
docbook-xsl-nons,
docbook_xml_dtd_45,
gettext,
itstool,
libxslt,
gexiv2,
tinysparql,
meson,
mesonEmulatorHook,
ninja,
pkg-config,
vala,
wrapGAppsNoGuiHook,
bzip2,
dbus,
exempi,
ffmpeg,
giflib,
glib,
gobject-introspection,
gnome,
icu,
json-glib,
libcue,
libexif,
libgsf,
libgudev,
libgxps,
libiptcdata,
libjpeg,
libosinfo,
libpng,
libseccomp,
libtiff,
libuuid,
libxml2,
poppler,
systemd,
taglib,
upower,
totem-pl-parser,
e2fsprogs,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "localsearch";
version = "3.9.0";
src = fetchurl {
url = "mirror://gnome/sources/localsearch/${lib.versions.majorMinor finalAttrs.version}/localsearch-${finalAttrs.version}.tar.xz";
hash = "sha256-1C9AjcP7KP5U9amrv18d7PWBjbnC6exRwJRkvf0MFLk=";
};
patches = [
./tracker-landlock-nix-store-permission.patch
];
nativeBuildInputs = [
asciidoc
docbook-xsl-nons
docbook_xml_dtd_45
gettext
glib
gobject-introspection
itstool
libxslt
meson
ninja
pkg-config
vala
wrapGAppsNoGuiHook
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
# TODO: add libenca, libosinfo
buildInputs = [
bzip2
dbus
exempi
ffmpeg
giflib
gexiv2
totem-pl-parser
tinysparql
icu
json-glib
libcue
libexif
libgsf
libgudev
libgxps
libiptcdata
libjpeg
libosinfo
libpng
libtiff
libuuid
libxml2
poppler
taglib
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libseccomp
systemd
upower
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
e2fsprogs
];
mesonFlags = [
# TODO: tests do not like our sandbox
"-Dfunctional_tests=false"
]
++ lib.optionals (!stdenv.hostPlatform.isLinux) [
"-Dbattery_detection=none"
"-Dnetwork_manager=disabled"
"-Dsystemd_user_services=false"
];
postInstall = ''
glib-compile-schemas "$out/share/glib-2.0/schemas"
'';
passthru = {
updateScript = gnome.updateScript { packageName = "localsearch"; };
};
meta = {
homepage = "https://gitlab.gnome.org/GNOME/localsearch";
description = "Desktop-neutral user information store, search tool and indexer";
teams = [ lib.teams.gnome ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
mainProgram = "localsearch";
};
})