commit:     15071bf1c50b95c626054e03422def09d4580ac6
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 23 21:38:04 2020 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Dec 23 21:38:14 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15071bf1

app-misc/tracker-miners: bump to 2.3.5 for glib-2.66 compat

* glib-2.66 started using statx syscall for some operations that
  tracker-miners uses, causing SIGSYS aborts on ~arch systems. This
  version allows statx in tracker-miners sandbox, but also makes it
  not autostart in the first place, therefore:
* Keep autostart as we don't have tracker-3 yet (and grab a patch to
  have the build work better with it enabled). When we add tracker-3,
  we need to revbump tracker-miners to disable autostart and drop the
  tracker-miners-3 blocker
* Prepare app-misc/tracker dep atom for upcoming parallel-installable
  tracker-3

Closes: https://bugs.gentoo.org/754315
Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 app-misc/tracker-miners/Manifest                   |   1 +
 .../files/2.3.5-fix-autostart-build.patch          |  80 ++++++++++
 .../tracker-miners/tracker-miners-2.3.5.ebuild     | 162 +++++++++++++++++++++
 3 files changed, 243 insertions(+)

diff --git a/app-misc/tracker-miners/Manifest b/app-misc/tracker-miners/Manifest
index 3c7d6656ac9..cb04f715094 100644
--- a/app-misc/tracker-miners/Manifest
+++ b/app-misc/tracker-miners/Manifest
@@ -1,2 +1,3 @@
 DIST tracker-miners-2.3.3.tar.xz 3144712 BLAKE2B 
a5789cce89dedd7cf35548b730acc80eb9b8bcbc8338c4ee55b07c97af4b9fbadc46bf0fdc552a3384e995d71aca0defe2d57dc21d99f775dee6f33f69e0aa9b
 SHA512 
1e845aaa5412125df84298a05f29888b3872c0f4d9251f026dd51846831fcd4aa0c6965c85752d7b6ed6548268d21f0fd2a8427c922a5dc0afcd294286c607e2
 DIST tracker-miners-2.3.4.tar.xz 3128484 BLAKE2B 
f52c46123c95252f8f16df824ff7498a8f44698cea13fa78653d7733590bef0a502139fea686b4fd9012f7569a6f946e1dbf8e053a16c474230c733d37103a3f
 SHA512 
ceddddfa6c3151b5caeb197a4ae4dbe24fa2674e807bf66a9cc72227b60ee295171b52c2edb35236a3fbf9d8803678f55f8b990864a7a3a32bf362b0739d03ba
+DIST tracker-miners-2.3.5.tar.xz 3128428 BLAKE2B 
a45c642fb03433a6cf12d0904a82498aa6645f97ac70b1cfe04cc3b739b33b5d3fe307cd96f45a5a4af8927f029b4eade60195d2f72c1a684aa26ee723025d8a
 SHA512 
13da1106bc1bc8a550093c4d1bf4336a205f636e0487dc9d42cee9ce2666eca73ead479fd04f03ccf15acb4e3b27a1c898860f63bdfa69ca74b02aa041731fa9

diff --git a/app-misc/tracker-miners/files/2.3.5-fix-autostart-build.patch 
b/app-misc/tracker-miners/files/2.3.5-fix-autostart-build.patch
new file mode 100644
index 00000000000..85f201bcf05
--- /dev/null
+++ b/app-misc/tracker-miners/files/2.3.5-fix-autostart-build.patch
@@ -0,0 +1,80 @@
+From e7b6d5f8b7541a4693c61be5d210fad85a5c9d06 Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carl...@gnome.org>
+Date: Sat, 12 Sep 2020 13:37:11 +0200
+Subject: [PATCH] build: Fix -Dautostart=true
+
+Meson doesn't seem to like that we use install_data() with custom target
+results. Make this option toggle the "install" keyword argument in the
+custom target itself.
+---
+ src/miners/fs/meson.build       | 10 +++-------
+ src/miners/rss/meson.build      | 10 +++-------
+ src/tracker-extract/meson.build | 10 +++-------
+ 3 files changed, 9 insertions(+), 21 deletions(-)
+
+diff --git a/src/miners/fs/meson.build b/src/miners/fs/meson.build
+index a770516c9..5a23bd06c 100644
+--- a/src/miners/fs/meson.build
++++ b/src/miners/fs/meson.build
+@@ -54,13 +54,9 @@ desktop_file_untranslated = configure_file(
+ desktop_file = custom_target('tracker-miner-fs-desktop-file',
+     input: desktop_file_untranslated,
+     output: 'tracker-miner-fs.desktop',
+-    command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'])
+-
+-if get_option('autostart')
+-  install_data(desktop_file,
+-      install: true,
+-      install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+-endif
++    command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
++    install: get_option('autostart'),
++    install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+ 
+ if install_systemd_user_services
+   configure_file(
+diff --git a/src/miners/rss/meson.build b/src/miners/rss/meson.build
+index f540befe2..0bf0bb765 100644
+--- a/src/miners/rss/meson.build
++++ b/src/miners/rss/meson.build
+@@ -31,13 +31,9 @@ desktop_file_untranslated = configure_file(
+ desktop_file = custom_target('tracker-miner-rss-desktop-file',
+     input: desktop_file_untranslated,
+     output: 'tracker-miner-rss.desktop',
+-    command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'])
+-
+-if get_option('autostart')
+-  install_data(desktop_file,
+-      install: true,
+-      install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+-endif
++    command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
++    install: get_option('autostart'),
++    install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+ 
+ if install_systemd_user_services
+   configure_file(
+diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
+index 239907179..aec37bfcc 100644
+--- a/src/tracker-extract/meson.build
++++ b/src/tracker-extract/meson.build
+@@ -189,13 +189,9 @@ desktop_file_untranslated = configure_file(
+ desktop_file = custom_target('tracker-extract-desktop-file',
+   input: desktop_file_untranslated,
+   output: 'tracker-extract.desktop',
+-  command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'])
+-
+-if get_option('autostart')
+-  install_data(desktop_file,
+-      install: true,
+-      install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+-endif
++  command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', 
join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
++  install: get_option('autostart'),
++  install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+ 
+ if install_systemd_user_services
+   configure_file(
+-- 
+2.27.0
+

diff --git a/app-misc/tracker-miners/tracker-miners-2.3.5.ebuild 
b/app-misc/tracker-miners/tracker-miners-2.3.5.ebuild
new file mode 100644
index 00000000000..a6259ef3ba7
--- /dev/null
+++ b/app-misc/tracker-miners/tracker-miners-2.3.5.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit 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="0"
+IUSE="cue exif ffmpeg gif gsf +gstreamer iptc +iso +jpeg +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 ~ia64 ~ppc ~ppc64 ~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.46:2
+       >=app-misc/tracker-2.2.0:0=
+       gstreamer? (
+               media-libs/gstreamer:1.0
+               media-libs/gst-plugins-base:1.0
+               media-plugins/gst-plugins-meta:1.0 )
+       !gstreamer? (
+               ffmpeg? ( media-video/ffmpeg:0= ) )
+
+       >=sys-apps/dbus-1.3.1
+       xmp? ( >=media-libs/exempi-2.1.0:= )
+       raw? ( media-libs/gexiv2 )
+       >=dev-libs/icu-4.8.1.2:=
+       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? ( virtual/jpeg:0 )
+       iso? ( >=sys-libs/libosinfo-0.2.10 )
+       >=media-libs/libpng-1.2:0=
+       seccomp? ( >=sys-libs/libseccomp-2.0 )
+       tiff? ( media-libs/tiff:0 )
+       xml? ( >=dev-libs/libxml2-2.6 )
+       pdf? ( >=app-text/poppler-0.16.0[cairo] )
+       playlist? ( >=dev-libs/totem-pl-parser-3:= )
+       upower? ( >=sys-power/upower-0.9.0 )
+       sys-libs/zlib:0
+       gif? ( media-libs/giflib:= )
+
+       rss? ( >=net-libs/libgrss-0.7:0 )
+       app-arch/gzip
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       dev-util/glib-utils
+       dev-util/gdbus-codegen
+
+       >=dev-util/intltool-0.40.0
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+       test? ( ${PYTHON_DEPS}
+               gstreamer? (
+                       media-libs/gstreamer:1.0[introspection]
+                       || ( media-plugins/gst-plugins-libav:1.0
+                               media-plugins/gst-plugins-openh264:1.0 )
+       ) )
+"
+# intltool-merge manually called in meson.build in 2.3.5; might be properly 
gone by 3.0
+RDEPEND="${RDEPEND}
+       !>=app-misc/tracker-miners-2.99
+" # Incompatible revision for (upcoming) parallel-installable tracker-miners-3 
due to autostart; a revision that disables autostart and drops the blocker to 
be added together with v3
+
+PATCHES=(
+       "${FILESDIR}"/${PV}-fix-autostart-build.patch
+)
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+       # 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
+       xdg_src_prepare
+       gnome2_environment_reset # sets gstreamer safety variables
+}
+
+src_configure() {
+       local media_extractor="none"
+       if use gstreamer ; then
+               media_extractor="gstreamer"
+       elif use ffmpeg ; then
+               media_extractor="libav"
+       fi
+
+       local emesonargs=(
+               -Dtracker_core=system
+
+               -Ddocs=true
+               -Dextract=true
+               -Dfunctional_tests=false # currently broken, may fare better in 
2.2.3 or 2.3; if re-enabled re-add dconf test dep
+               #$(meson_use test functional_tests)
+               -Dminer_fs=true
+               $(meson_use rss miner_rss)
+               -Dwriteback=true
+               -Dabiword=true
+               -Ddvi=true
+               -Dicon=true
+               -Dmp3=true
+               -Dps=true
+               -Dtext=true
+               -Dunzip_ps_gz_files=true # spawns gunzip
+
+               $(meson_feature cue)
+               $(meson_feature exif)
+               -Dflac=disabled # never use external flac extractor - 
gst-plugins-flac is for that; ffmpeg one is maybe worse, but that's non-default
+               $(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)
+               -Dvorbis=disabled # never use external vorbis extractor - 
gst-plugins-base[vorbis] is for that; ffmpeg one is maybe worse, but that's 
non-default
+               $(meson_feature xml)
+               $(meson_feature xmp)
+               $(meson_feature xps)
+
+               -Dbattery_detection=$(usex upower upower none)
+               -Dcharset_detection=icu # enca is a possibility, but right now 
we have tracker core always dep on icu and icu is preferred over enca
+               -Dgeneric_media_extractor=${media_extractor}
+               # gupnp gstreamer_backend is in bad state, upstream suggests to 
use discoverer, which is the default
+               -Dautostart=true # turn to false to co-exist with 
tracker-miners-3
+               -Dsystemd_user_services="$(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")
+       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
+}

Reply via email to