# This needs to be changed accordingly to the application for what localsearch # is bundled. As of F43, this domain is hard-coded in the binary at build time # and is no longer configurable at post-install. gnome-music is the only # currently maintained app which absolutely requires localsearch, so this is # built just for that. If more apps need support, then we will need more # creative solutions. %if 0%{?flatpak} %global domain_ontology org.gnome.Music %else %global domain_ontology org.freedesktop %endif %global with_enca 1 %global with_ffmpeg 1 %global with_libcue 1 %global with_totem_pl_parser 1 %if 0%{?rhel} %global with_enca 0 %global with_ffmpeg 0 %global with_libcue 0 %if 0%{?rhel} >= 10 %global with_totem_pl_parser 0 %endif %endif %global tinysparql_version 3.8 %global systemd_units localsearch-3.service localsearch-control-3.service localsearch-writeback-3.service # Exclude private libraries from autogenerated provides and requires %global __provides_exclude_from ^%{_libdir}/localsearch-3.0/ %global __requires_exclude ^(libtracker-extract\.so|libextract-.*\.so|libwriteback-.*\.so) %global tarball_version %%(echo %{version} | tr '~' '.') Name: localsearch Version: 3.11~rc Release: 1%{?dist} Summary: Localsearch and metadata extractors # The indexer is a mix of GPLv2 and LGPLv2+ code License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: https://gnome.pages.gitlab.gnome.org/localsearch/ Source0: https://download.gnome.org/sources/%{name}/3.11/%{name}-%{tarball_version}.tar.xz # asciidoc pulls in source-highlight which requires libboost_regex.so.1.83.0 on EL10 %if !0%{?rhel} BuildRequires: asciidoc %endif BuildRequires: gcc BuildRequires: giflib-devel BuildRequires: meson BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(dbus-1) %if 0%{?with_enca} BuildRequires: pkgconfig(enca) %endif BuildRequires: pkgconfig(exempi-2.0) BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(gexiv2-0.16) BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-pbutils-1.0) BuildRequires: pkgconfig(gstreamer-tag-1.0) BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(icu-uc) %if 0%{?with_ffmpeg} BuildRequires: pkgconfig(libavformat) %endif %if 0%{?with_libcue} BuildRequires: pkgconfig(libcue) %endif BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libgsf-1) BuildRequires: pkgconfig(libgxps) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libzip) BuildRequires: pkgconfig(poppler-glib) %if 0%{?with_totem_pl_parser} BuildRequires: pkgconfig(totem-plparser) %endif BuildRequires: pkgconfig(tinysparql-3.0) >= %{tinysparql_version} BuildRequires: pkgconfig(vorbisfile) %if !0%{?flatpak} BuildRequires: pkgconfig(libosinfo-1.0) BuildRequires: pkgconfig(libnm) BuildRequires: pkgconfig(upower-glib) %endif BuildRequires: python3-dbusmock # renamed in F42 Obsoletes: tracker-miners < 3.8 Provides: tracker-miners = %{version}-%{release} Provides: tracker-miners%{?_isa} = %{version}-%{release} %description Tinysparql is a powerful desktop-neutral first class object database, tag/metadata database and search tool. This package contains various miners and metadata extractors for tinysparql. %prep %autosetup -p1 -n %{name}-%{tarball_version} %build meson setup _build \ --buildtype=plain \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ --bindir=%{_bindir} \ --sbindir=%{_sbindir} \ --includedir=%{_includedir} \ --datadir=%{_datadir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --localedir=%{_datadir}/locale \ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_localstatedir} \ --sharedstatedir=%{_sharedstatedir} \ --wrap-mode=nodownload \ %if 0%{?flatpak} -Dwriteback=false \ -Dsystemd_user_services=false \ -Diso=disabled \ -Dbattery_detection=none \ -Ddomain_prefix=%{domain_ontology} \ %endif %if ! 0%{?with_libcue} -Dcue=disabled \ %endif %if ! 0%{?with_ffmpeg} -Dlibav=disabled \ %endif %if ! 0%{?flatpak} -Dsystemd_user_services_dir=%{_userunitdir} \ %endif %if ! 0%{?with_totem_pl_parser} -Dplaylist=disabled \ %endif -Dman=%{!?rhel:true}%{?rhel:false} ninja -C _build -j%{_smp_build_ncpus} %install DESTDIR=%{buildroot} ninja -C _build install %find_lang localsearch3 %post %systemd_user_post %{systemd_units} %preun %systemd_user_preun %{systemd_units} %postun %systemd_user_postun_with_restart %{systemd_units} %files -f localsearch3.lang %license COPYING* %doc AUTHORS NEWS README.md %config(noreplace) %{_sysconfdir}/xdg/autostart/localsearch-3.desktop %{_bindir}/localsearch %{_libdir}/localsearch-3.0/ %{_libexecdir}/localsearch-3 %{_libexecdir}/localsearch-control-3 %{_libexecdir}/localsearch-extractor-3 %{_libexecdir}/localsearch-endpoint-3 %if ! 0%{?flatpak} %{_libexecdir}/localsearch-writeback-3 %endif %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/localsearch %dir %{_datadir}/dbus-1 %dir %{_datadir}/dbus-1/interfaces %dir %{_datadir}/dbus-1/services %{_datadir}/dbus-1/interfaces/org.freedesktop.Tracker3.Miner.Files.Index.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.Tracker3.Miner.xml %{_datadir}/dbus-1/services/%{domain_ontology}.LocalSearch3.* %{_datadir}/dbus-1/services/%{domain_ontology}.Tracker3.* %if 0%{?flatpak} %exclude %{_datadir}/dbus-1/services/org.freedesktop.LocalSearch3.service %exclude %{_datadir}/dbus-1/services/org.freedesktop.Tracker3.Miner.Files.service %endif %{_datadir}/glib-2.0/schemas/* %{_datadir}/localsearch3/ %if !0%{?rhel} %{_mandir}/man1/localsearch*.1* %endif %if !0%{?flatpak} %{_userunitdir}/localsearch*.service %endif %changelog * Sat Mar 28 2026 James Reilly - 3.11~rc-1 - Replace %%meson/%%meson_build/%%meson_install with explicit meson/ninja to avoid "fg: no job control" on COPR builders (non-interactive bash). - EL10: gate asciidoc BR behind %%if !0%%{?rhel} (asciidoc pulls in source-highlight which needs libboost_regex.so.1.83.0, absent on EL10). - EL10: disable man pages via -Dman=false; gate man %%files entry. - Remove %%autorelease/%%autochangelog: Fedora-specific macros not available on EL10.