diff options
Diffstat (limited to 'app-misc/tracker-miners')
-rw-r--r-- | app-misc/tracker-miners/Manifest | 2 | ||||
-rw-r--r-- | app-misc/tracker-miners/files/tracker-miners-3.6.2-epoll_wait.patch | 28 | ||||
-rw-r--r-- | app-misc/tracker-miners/tracker-miners-3.6.2-r1.ebuild | 185 |
3 files changed, 215 insertions, 0 deletions
diff --git a/app-misc/tracker-miners/Manifest b/app-misc/tracker-miners/Manifest index 1a051e92d744..28b663a339fa 100644 --- a/app-misc/tracker-miners/Manifest +++ b/app-misc/tracker-miners/Manifest @@ -1,3 +1,5 @@ +AUX tracker-miners-3.6.2-epoll_wait.patch 935 BLAKE2B b44d7ab15f2432a527471d77498129c21105be76bbc22e89178242790ae2ed27d1467e53a6f1be8486c7b3a31554088921b96ffdbfbf31343d3edd98e2167e05 SHA512 7432ee3bcca7d37b7aad9c2bbcaaa3e1152a2e6439b4cedd1f6171b1983a94a76efd7d700e8ca9f8da36cc8e30e4b4f944b8ee4df309e45627056156ab4c045d DIST tracker-miners-3.6.2.tar.xz 7506528 BLAKE2B d0da1caaa72467ec03c7e3c35cbee48aca08dca59d45d11e5f5f887d75954dbac0671d5698226c9cb89e97b3a76b318013ca17f8508ec3f867758662f53b25b7 SHA512 032c96d41e02ed15b56937ea543428aef7b45ce4c206b749e6a99506dd48dd760e45b12563846a3208f0da42387d0547de9eef1fcb54d93cdbca4aad52050af4 +EBUILD tracker-miners-3.6.2-r1.ebuild 4920 BLAKE2B babb454d7da2ff3f102f04fb2a04ff6ae96392e34da7031e5e431bde99e5800fe5ba764bff0781615acb1e567f4626f72993de9459efc0689adfab405faba71a SHA512 d61272a5d582a77ff7c2849c12f5006a28aaacbe80f1e9d1f342e0f39be4b8b1b23fbadc60dfe0f6b25f395372b411e21f21c8fe1c039e06418180c718d32f8b EBUILD tracker-miners-3.6.2.ebuild 4800 BLAKE2B 98d874e892620dbe8abfe1c51c9647d5fd37af2629014b523e960c64f1a40642e5cbd0021d014a08c0eae594de4af388be975964b27f38b6e95e5c1e36a7b98d SHA512 9eca12795a3877f4825ae33b8cd6a08318443e1cdd3378318ad40a9fce079b9934e1c18e2ab5eed7f02303872fc32d5c0efae091f294a88c8a66c11b22a784b5 MISC metadata.xml 835 BLAKE2B a7f0c667be6eaaebcd62fd782c72831f8f95f778d2ff1ee36c278fc3a902761ca10d73fd7e6b15afa83d36a960d5f20dc765b62dc6f85022db01d9d0d356bcbd SHA512 9d348dbec07ab8e344dab0d6f3acdc48e91d80171e411353b233f8b49989f4152817c8ed522c234d5dd9a3849cdab3d46f41256702a5d50bbf1e591f112cddd5 diff --git a/app-misc/tracker-miners/files/tracker-miners-3.6.2-epoll_wait.patch b/app-misc/tracker-miners/files/tracker-miners-3.6.2-epoll_wait.patch new file mode 100644 index 000000000000..051fab644d26 --- /dev/null +++ b/app-misc/tracker-miners/files/tracker-miners-3.6.2-epoll_wait.patch @@ -0,0 +1,28 @@ +From 35ec653226dade6ec18bebdc450aca3b6c25b391 Mon Sep 17 00:00:00 2001 +From: Sam Thursfield <sam.thursfield@codethink.co.uk> +Date: Wed, 21 Feb 2024 17:18:45 +0100 +Subject: [PATCH] libtracker-miners-common: Allow epoll_wait syscall in SECCOMP + sandbox + +This is used in libmount from util-linux. + +Fixes https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/307 +--- + src/libtracker-miners-common/tracker-seccomp.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/libtracker-miners-common/tracker-seccomp.c b/src/libtracker-miners-common/tracker-seccomp.c +index ad41c94b01..dfc5cfae73 100644 +--- a/src/libtracker-miners-common/tracker-seccomp.c ++++ b/src/libtracker-miners-common/tracker-seccomp.c +@@ -223,6 +223,7 @@ tracker_seccomp_init (void) + ALLOW_RULE (epoll_create); + ALLOW_RULE (epoll_create1); + ALLOW_RULE (epoll_ctl); ++ ALLOW_RULE (epoll_wait); + /* System */ + ALLOW_RULE (uname); + ALLOW_RULE (sysinfo); +-- +GitLab + diff --git a/app-misc/tracker-miners/tracker-miners-3.6.2-r1.ebuild b/app-misc/tracker-miners/tracker-miners-3.6.2-r1.ebuild new file mode 100644 index 000000000000..b5d8d4ea1521 --- /dev/null +++ b/app-misc/tracker-miners/tracker-miners-3.6.2-r1.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{10..13} ) + +inherit flag-o-matic gnome.org gnome2-utils meson python-any-r1 systemd xdg + +DESCRIPTION="Collection of data extractors for Tracker/Nepomuk" +HOMEPAGE="https://wiki.gnome.org/Projects/Tracker" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="3" +IUSE="cue exif ffmpeg gif gsf +gstreamer iptc +iso +jpeg networkmanager +pdf +playlist raw +rss seccomp test +tiff upower +xml xmp xps" + +REQUIRED_USE="cue? ( gstreamer )" # cue is currently only supported via gstreamer, not ffmpeg +RESTRICT="!test? ( test )" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +# tracker-2.1.7 currently always depends on ICU (theoretically could be libunistring instead); +# so choose ICU over enca always here for the time being (ICU is preferred) +RDEPEND=" + >=dev-libs/glib-2.70:2 + >=app-misc/tracker-3.6_rc:3 + + >=sys-apps/dbus-1.3.1 + xmp? ( >=media-libs/exempi-2.1.0:= ) + raw? ( media-libs/gexiv2 ) + cue? ( media-libs/libcue:= ) + exif? ( >=media-libs/libexif-0.6 ) + gsf? ( >=gnome-extra/libgsf-1.14.24:= ) + xps? ( app-text/libgxps ) + iptc? ( media-libs/libiptcdata ) + jpeg? ( media-libs/libjpeg-turbo:0= ) + iso? ( >=sys-libs/libosinfo-1.10.0-r1 ) + >=media-libs/libpng-1.2:0= + seccomp? ( >=sys-libs/libseccomp-2.0 ) + tiff? ( media-libs/tiff:= ) + xml? ( >=dev-libs/libxml2-2.6 ) + pdf? ( >=app-text/poppler-0.16.0:=[cairo] ) + playlist? ( >=dev-libs/totem-pl-parser-3:= ) + sys-apps/util-linux + + gif? ( media-libs/giflib:= ) + + networkmanager? ( net-misc/networkmanager ) + + rss? ( >=net-libs/libgrss-0.7:0 ) + app-arch/gzip + + upower? ( >=sys-power/upower-0.9.0:= ) + + >=dev-libs/icu-4.8.1.1:= + + gstreamer? ( + >=media-libs/gstreamer-1.20:1.0 + >=media-libs/gst-plugins-base-1.20:1.0 + >=media-plugins/gst-plugins-meta-1.20:1.0 ) + !gstreamer? ( + ffmpeg? ( media-video/ffmpeg:0= ) ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/asciidoc + dev-libs/libxslt + dev-util/glib-utils + dev-util/gdbus-codegen + + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/pygobject[${PYTHON_USEDEP}]') + $(python_gen_any_dep 'dev-python/tap-py[${PYTHON_USEDEP}]') + gstreamer? ( + media-libs/gstreamer:1.0[introspection] + || ( + media-plugins/gst-plugins-libav:1.0 + media-plugins/gst-plugins-openh264:1.0 + ) + ) + ) +" + +PATCHES=( + # https://gitlab.gnome.org/GNOME/localsearch/-/merge_requests/511 + "${FILESDIR}/${P}-epoll_wait.patch" +) + +python_check_deps() { + python_has_version -b \ + "dev-python/pygobject[${PYTHON_USEDEP}]" \ + "dev-python/tap-py[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # Avoid gst-inspect calls that may trigger sandbox; + # instead assume the detection will succeed and add the needed test deps for that + if use gstreamer; then + sed -i -e 's:detect-h264-codec.sh:/bin/true:' tests/functional-tests/meson.build || die + else + sed -i -e 's:detect-h264-codec.sh:/bin/false:' tests/functional-tests/meson.build || die + fi + gnome2_environment_reset # sets gstreamer safety variables +} + +src_configure() { + # bug #944218 + append-cflags -std=gnu17 + + append-cflags -DTRACKER_DEBUG -DG_DISABLE_CAST_CHECKS + + local media_extractor="none" + if use gstreamer ; then + media_extractor="gstreamer" + elif use ffmpeg ; then + media_extractor="libav" + fi + + local emesonargs=( + -Dtracker_core=system + + -Dman=true + -Dextract=true + $(meson_use test functional_tests) + $(meson_use test tests_tap_protocol) + -Dminer_fs=true + $(meson_use rss miner_rss) + -Dwriteback=true + -Dabiword=true + -Dicon=true + -Dmp3=true + -Dps=true + -Dtext=true + -Dunzip_ps_gz_files=true # spawns gunzip + + $(meson_feature networkmanager network_manager) + $(meson_feature cue) + $(meson_feature exif) + $(meson_feature gif) + $(meson_feature gsf) + $(meson_feature iptc) + $(meson_feature iso) + $(meson_feature jpeg) + $(meson_feature pdf) + $(meson_feature playlist) + -Dpng=enabled + $(meson_feature raw) + $(meson_feature tiff) + $(meson_feature xml) + $(meson_feature xmp) + $(meson_feature xps) + + -Dbattery_detection=$(usex upower upower none) + # enca is a possibility, but right now we have tracker core always dep on icu and icu is preferred over enca + -Dcharset_detection=icu + -Dgeneric_media_extractor=${media_extractor} + # gupnp gstreamer_backend is in bad state, upstream suggests to use discoverer, which is the default + -Dsystemd_user_services_dir="$(systemd_get_userunitdir)" + ) + meson_src_configure +} + +src_test() { + export GSETTINGS_BACKEND="dconf" # Tests require dconf and explicitly check for it (env_reset set it to "memory") + export PYTHONPATH="${EROOT}"/usr/$(get_libdir)/tracker-3.0 + dbus-run-session meson test -C "${BUILD_DIR}" || die 'tests failed' +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update +} |