167 lines
4.5 KiB
Bash
167 lines
4.5 KiB
Bash
|
# Copyright 1999-2022 Gentoo Authors
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
EAPI=7
|
||
|
PYTHON_COMPAT=( python3_{7..9} )
|
||
|
|
||
|
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="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 ~ia64 ~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.62:2
|
||
|
>=app-misc/tracker-3.0:3=
|
||
|
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:= )
|
||
|
|
||
|
networkmanager? ( net-misc/networkmanager:= )
|
||
|
|
||
|
rss? ( >=net-libs/libgrss-0.7:0 )
|
||
|
app-arch/gzip
|
||
|
"
|
||
|
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/tappy[${PYTHON_USEDEP}]')
|
||
|
gstreamer? (
|
||
|
media-libs/gstreamer:1.0[introspection]
|
||
|
|| (
|
||
|
media-plugins/gst-plugins-libav:1.0
|
||
|
media-plugins/gst-plugins-openh264:1.0
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
"
|
||
|
|
||
|
python_check_deps() {
|
||
|
has_version -b "dev-python/tappy[${PYTHON_USEDEP}]"
|
||
|
}
|
||
|
|
||
|
pkg_setup() {
|
||
|
use test && python-any-r1_pkg_setup
|
||
|
}
|
||
|
|
||
|
src_prepare() {
|
||
|
# https://gitlab.gnome.org/GNOME/tracker-miners/-/merge_requests/323
|
||
|
sed -i -e 's:environtment:env:' tests/libtracker-extract/meson.build || die
|
||
|
|
||
|
# 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
|
||
|
|
||
|
-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)
|
||
|
-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
|
||
|
-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")
|
||
|
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
|
||
|
}
|