blob: 2acee245aefc19d15e72f5cc0bfd196e1859f80e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{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
}
|