Gentoo Archives: gentoo-commits

From: Craig Andrews <candrews@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/
Date: Mon, 02 Sep 2019 20:43:02
Message-Id: 1567456968.f0f564d1d220bdb532744dbf51268ad27d93f754.candrews@gentoo
1 commit: f0f564d1d220bdb532744dbf51268ad27d93f754
2 Author: Craig Andrews <candrews <AT> gentoo <DOT> org>
3 AuthorDate: Mon Sep 2 20:41:20 2019 +0000
4 Commit: Craig Andrews <candrews <AT> gentoo <DOT> org>
5 CommitDate: Mon Sep 2 20:42:48 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f0f564d1
7
8 media-tv/kodi: 18.4 version bump
9
10 Bump bundled ffmpeg version to 4.0.4-Leia-18.4.
11
12 Fix eclass usage for EAPI 7.
13
14 Package-Manager: Portage-2.3.74, Repoman-2.3.17
15 Signed-off-by: Chris Mayo <aklhfex <AT> gmail.com>
16 Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
17
18 media-tv/kodi/Manifest | 1 +
19 media-tv/kodi/kodi-18.4.ebuild | 318 +++++++++++++++++++++++++++++++++++++++++
20 2 files changed, 319 insertions(+)
21
22 diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
23 index a5eba65e4bb..edb5036b3d2 100644
24 --- a/media-tv/kodi/Manifest
25 +++ b/media-tv/kodi/Manifest
26 @@ -4,6 +4,7 @@ DIST ffmpeg-kodi-4.0.4-Leia-18.4.tar.gz 12430413 BLAKE2B 6de6fde2c16264f851466b4
27 DIST kodi-17.6-generated-addons.tar.xz 57564 BLAKE2B 9b3000ac23a6aab24b703a2b66016dbf0637ff3d615b89435cba3717acb913a4543bb57aaa9ae59a9493891ba62af06414ef2c0cea3a81e9ec32ea60e209330d SHA512 ee1344e859b2871f9dd3e2f2f75f9c0f9f787ac111a6b9ab8f80af6524a786d51baeb4f247a8c5b35001073be49bf4289d1c63e3114625143f3747aa9b1f4be2
28 DIST kodi-17.6.tar.gz 58275293 BLAKE2B 538675b7a3400d9182f957da9bbf609ce5ece502c3a7f4a32e26c802bae9795979554204148e06d1923d8e68ba1f06f9d92bf11416f73cf9431381642ca00639 SHA512 1f1ba91e6129ab423f9ad47b63d7bb75775dbf18638a96413a572aaa790f4f0d738ca35486513e158a7f55d501f78f08dd9d68aabe2fbb80a729c6091b264111
29 DIST kodi-18.3.tar.gz 51013397 BLAKE2B cce29d481397dddd3c942f83a034bc6d73eafc1be2a50436e1e5611ccf04c27e6110c4b4f99f7f7d1cf8da3e2550209c8bee3db6e98136b8fa9738c4b1fc7e43 SHA512 4e898e28238dcbc67e106c5a0ef88bd6a82f8c0ad00e77e3ddbe2da6181b37d9ca1ba6bda57206223cfa119c5291edb4410d3e773d97b5ab67660e49929437ec
30 +DIST kodi-18.4.tar.gz 51027569 BLAKE2B 47e3377abb4a1e5a3c26b1519f45ab9347127467594841ac689b857a3f4163731951d4e1e4960bce5c2af4fa224acf4a3887f42bdc41a603bba4979d3bcbcda8 SHA512 ae08fc29d20387d9352dc1ae4a89da19962a279b89705ff8f7869377281589d44a685cebaa8509d3252ae79215dcdaadb72e9fa752e6d2bce59974bc23276aad
31 DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e
32 DIST libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz 95395 BLAKE2B fb3973e098201d177309ad7ca50131725eee4bc6f30f425efa5fea406411f6143ba03abd82cd6c91a250419d3e0a29aafcbf981ba015f6e14cd0ceb001222c12 SHA512 12ba7aa653fcb26d5336bf2a8110c924d634cec79f684bbf19dc38ea33f69fb68c22c97f4c09e5ca7c35f95f6c324a6d70ccc2c501a99122a9321cafd33b2cd9
33 DIST libdvdnav-43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz 130603 BLAKE2B 0a211fcedb216567bcd929048af01486ff91efbb8d31592fd116676b6ae95de3cd7bfab7cd79853b3d15e96c27e62cce8c79eeb9baee68a1bad4f3fce8a207a0 SHA512 901c6f24afa1d78b6ed78d1ee30daf634ca0bbc0467ef9cc3416bcab4fbc4fda6869ffa051791d85c0b510de748805328627681ef044668a7857299f0035232e
34
35 diff --git a/media-tv/kodi/kodi-18.4.ebuild b/media-tv/kodi/kodi-18.4.ebuild
36 new file mode 100644
37 index 00000000000..95bdc7917a9
38 --- /dev/null
39 +++ b/media-tv/kodi/kodi-18.4.ebuild
40 @@ -0,0 +1,318 @@
41 +# Copyright 1999-2019 Gentoo Authors
42 +# Distributed under the terms of the GNU General Public License v2
43 +
44 +EAPI=7
45 +
46 +PYTHON_REQ_USE="libressl?,sqlite,ssl"
47 +LIBDVDCSS_VERSION="1.4.2-Leia-Beta-5"
48 +LIBDVDREAD_VERSION="6.0.0-Leia-Alpha-3"
49 +LIBDVDNAV_VERSION="6.0.0-Leia-Alpha-3"
50 +FFMPEG_VERSION="4.0.4"
51 +CODENAME="Leia"
52 +FFMPEG_KODI_VERSION="18.4"
53 +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz -> libdvdcss-${LIBDVDCSS_VERSION}.tar.gz
54 + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz -> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
55 + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz -> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz
56 + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz )"
57 +
58 +if [[ ${PV} == *9999 ]] ; then
59 + PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
60 + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
61 + inherit git-r3
62 +else
63 + PYTHON_COMPAT=( python2_7 )
64 + MY_PV=${PV/_p/_r}
65 + MY_PV=${MY_PV/_alpha/a}
66 + MY_PV=${MY_PV/_beta/b}
67 + MY_PV=${MY_PV/_rc/rc}
68 + MY_P="${PN}-${MY_PV}"
69 + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz"
70 + KEYWORDS="~amd64 ~x86"
71 + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
72 +fi
73 +
74 +inherit autotools cmake-utils desktop linux-info pax-utils python-single-r1 xdg
75 +
76 +DESCRIPTION="A free and open source media-player and entertainment hub"
77 +HOMEPAGE="https://kodi.tv/ https://kodi.wiki/"
78 +
79 +LICENSE="GPL-2+"
80 +SLOT="0"
81 +# use flag is called libusb so that it doesn't fool people in thinking that
82 +# it is _required_ for USB support. Otherwise they'll disable udev and
83 +# that's going to be worse.
84 +IUSE="airplay alsa bluetooth bluray caps cec +css dbus dvd gbm gles lcms libressl libusb lirc mariadb mysql nfs +opengl pulseaudio raspberry-pi samba systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf"
85 +REQUIRED_USE="
86 + ${PYTHON_REQUIRED_USE}
87 + || ( gles opengl )
88 + ^^ ( gbm raspberry-pi wayland X )
89 + ?? ( mariadb mysql )
90 + udev? ( !libusb )
91 + udisks? ( dbus )
92 + upower? ( dbus )
93 +"
94 +
95 +COMMON_DEPEND="${PYTHON_DEPS}
96 + airplay? (
97 + >=app-pda/libplist-2.0.0
98 + net-libs/shairplay
99 + )
100 + alsa? ( >=media-libs/alsa-lib-1.1.4.1 )
101 + bluetooth? ( net-wireless/bluez )
102 + bluray? ( >=media-libs/libbluray-1.0.2 )
103 + caps? ( sys-libs/libcap )
104 + dbus? ( sys-apps/dbus )
105 + dev-db/sqlite
106 + dev-libs/expat
107 + dev-libs/flatbuffers
108 + >=dev-libs/fribidi-0.19.7
109 + cec? ( >=dev-libs/libcec-4.0[raspberry-pi?] )
110 + dev-libs/libpcre[cxx]
111 + >=dev-libs/libinput-1.10.5
112 + >=dev-libs/libxml2-2.9.4
113 + >=dev-libs/lzo-2.04
114 + dev-libs/tinyxml[stl]
115 + dev-python/pillow[${PYTHON_USEDEP}]
116 + $(python_gen_cond_dep 'dev-python/pycryptodome[${PYTHON_USEDEP}]' 'python3*')
117 + >=dev-libs/libcdio-0.94
118 + >=dev-libs/libfmt-3.0.1
119 + dev-libs/libfstrcmp
120 + gbm? ( media-libs/mesa[gbm] )
121 + gles? (
122 + !raspberry-pi? ( media-libs/mesa[gles2] )
123 + )
124 + lcms? ( media-libs/lcms:2 )
125 + libusb? ( virtual/libusb:1 )
126 + virtual/ttf-fonts
127 + media-fonts/roboto
128 + >=media-libs/fontconfig-2.12.4
129 + >=media-libs/freetype-2.8
130 + >=media-libs/libass-0.13.4
131 + !raspberry-pi? ( media-libs/mesa[egl,X(+)] )
132 + >=media-libs/taglib-1.11.1
133 + system-ffmpeg? (
134 + >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,postproc]
135 + libressl? ( media-video/ffmpeg[libressl,-openssl] )
136 + !libressl? ( media-video/ffmpeg[-libressl,openssl] )
137 + )
138 + mysql? ( dev-db/mysql-connector-c:= )
139 + mariadb? ( dev-db/mariadb-connector-c:= )
140 + >=net-misc/curl-7.56.1[http2]
141 + nfs? ( >=net-fs/libnfs-2.0.0:= )
142 + opengl? ( media-libs/glu )
143 + !libressl? ( >=dev-libs/openssl-1.0.2l:0= )
144 + libressl? ( dev-libs/libressl:0= )
145 + raspberry-pi? (
146 + || ( media-libs/raspberrypi-userland media-libs/raspberrypi-userland-bin media-libs/mesa[egl,gles2,vc4] )
147 + )
148 + pulseaudio? ( media-sound/pulseaudio )
149 + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
150 + >=sys-libs/zlib-1.2.11
151 + udev? ( virtual/udev )
152 + vaapi? (
153 + x11-libs/libva:=
154 + opengl? ( x11-libs/libva[opengl] )
155 + system-ffmpeg? ( media-video/ffmpeg[vaapi] )
156 + vdpau? ( x11-libs/libva[vdpau] )
157 + wayland? ( x11-libs/libva[wayland] )
158 + X? ( x11-libs/libva[X] )
159 + )
160 + virtual/libiconv
161 + vdpau? (
162 + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
163 + system-ffmpeg? ( media-video/ffmpeg[vdpau] )
164 + )
165 + wayland? (
166 + >=dev-cpp/waylandpp-0.2.3:=
167 + media-libs/mesa[wayland]
168 + >=dev-libs/wayland-protocols-1.7
169 + )
170 + webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] )
171 + X? (
172 + x11-libs/libX11
173 + x11-libs/libXrandr
174 + x11-libs/libXrender
175 + system-ffmpeg? ( media-video/ffmpeg[X] )
176 + )
177 + x11-libs/libdrm
178 + >=x11-libs/libxkbcommon-0.4.1
179 + xslt? ( dev-libs/libxslt )
180 + zeroconf? ( net-dns/avahi[dbus] )
181 +"
182 +RDEPEND="${COMMON_DEPEND}
183 + lirc? ( app-misc/lirc )
184 + !media-tv/xbmc
185 + udisks? ( sys-fs/udisks:2 )
186 + upower? ( sys-power/upower )
187 +"
188 +DEPEND="${COMMON_DEPEND}
189 + app-arch/bzip2
190 + app-arch/xz-utils
191 + dev-lang/swig
192 + dev-libs/crossguid
193 + dev-libs/rapidjson
194 + dev-util/cmake
195 + dev-util/gperf
196 + media-libs/giflib
197 + >=media-libs/libjpeg-turbo-1.5.1:=
198 + >=media-libs/libpng-1.6.26:0=
199 + test? ( dev-cpp/gtest )
200 + virtual/pkgconfig
201 + virtual/jre
202 + x86? ( dev-lang/nasm )
203 +"
204 +
205 +CONFIG_CHECK="~IP_MULTICAST"
206 +ERROR_IP_MULTICAST="
207 +In some cases Kodi needs to access multicast addresses.
208 +Please consider enabling IP_MULTICAST under Networking options.
209 +"
210 +
211 +pkg_setup() {
212 + check_extra_config
213 + python-single-r1_pkg_setup
214 +}
215 +
216 +src_unpack() {
217 + if [[ ${PV} == *9999 ]] ; then
218 + if python_is_python3; then
219 + EGIT_BRANCH="feature_python3"
220 + ewarn "Using the experimental Python 3 branch!"
221 + ewarn "See https://kodi.wiki/view/Migration_to_Python_3 for more information."
222 + ewarn "To use the non-experimental Python 2 version:"
223 + ewarn "echo '~${CATEGORY}/${P} PYTHON_TARGETS: -* python2_7 PYTHON_SINGLE_TARGET: -* python2_7' >> /etc/portage/package.use"
224 + ewarn "then re-merge using: emerge -a =${CATEGORY}/${PF}"
225 + fi
226 + git-r3_src_unpack
227 + else
228 + default
229 + fi
230 +}
231 +
232 +src_prepare() {
233 + cmake-utils_src_prepare
234 +
235 + # avoid long delays when powerkit isn't running #348580
236 + sed -i \
237 + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
238 + xbmc/platform/linux/*.cpp || die
239 +
240 + # Prepare tools and libs witch are configured with autotools during compile time
241 + AUTOTOOLS_DIRS=(
242 + "${S}"/lib/cpluff
243 + "${S}"/tools/depends/native/TexturePacker/src
244 + "${S}"/tools/depends/native/JsonSchemaBuilder/src
245 + )
246 +
247 + local d
248 + for d in "${AUTOTOOLS_DIRS[@]}" ; do
249 + pushd ${d} >/dev/null || die
250 + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf
251 + popd >/dev/null || die
252 + done
253 + elibtoolize
254 +
255 + # Prevent autoreconf rerun
256 + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \
257 + "${S}"/cmake/modules/FindCpluff.cmake \
258 + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \
259 + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \
260 + || die
261 +}
262 +
263 +src_configure() {
264 + local mycmakeargs=(
265 + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
266 + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
267 + -DENABLE_ALSA=$(usex alsa)
268 + -DENABLE_AIRTUNES=$(usex airplay)
269 + -DENABLE_AVAHI=$(usex zeroconf)
270 + -DENABLE_BLUETOOTH=$(usex bluetooth)
271 + -DENABLE_BLURAY=$(usex bluray)
272 + -DENABLE_CCACHE=OFF
273 + -DENABLE_CEC=$(usex cec)
274 + -DENABLE_DBUS=$(usex dbus)
275 + -DENABLE_DVDCSS=$(usex css)
276 + -DENABLE_INTERNAL_CROSSGUID=OFF
277 + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
278 + -DENABLE_INTERNAL_FSTRCMP=OFF
279 + -DENABLE_CAP=$(usex caps)
280 + -DENABLE_LCMS2=$(usex lcms)
281 + -DENABLE_LIRCCLIENT=$(usex lirc)
282 + -DENABLE_MARIADBCLIENT=$(usex mariadb)
283 + -DENABLE_MYSQLCLIENT=$(usex mysql)
284 + -DENABLE_MICROHTTPD=$(usex webserver)
285 + -DENABLE_MYSQLCLIENT=$(usex mysql)
286 + -DENABLE_NFS=$(usex nfs)
287 + -DENABLE_OPENGLES=$(usex gles)
288 + -DENABLE_OPENGL=$(usex opengl)
289 + -DENABLE_OPTICAL=$(usex dvd)
290 + -DENABLE_PLIST=$(usex airplay)
291 + -DENABLE_PULSEAUDIO=$(usex pulseaudio)
292 + -DENABLE_SMBCLIENT=$(usex samba)
293 + -DENABLE_UDEV=$(usex udev)
294 + -DENABLE_UPNP=$(usex upnp)
295 + -DENABLE_VAAPI=$(usex vaapi)
296 + -DENABLE_VDPAU=$(usex vdpau)
297 + -DENABLE_XSLT=$(usex xslt)
298 + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz"
299 + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
300 + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz"
301 + )
302 +
303 + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
304 +
305 + if use system-ffmpeg; then
306 + mycmakeargs+=( -DWITH_FFMPEG="yes" )
307 + else
308 + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" )
309 + fi
310 +
311 + if use gbm; then
312 + mycmakeargs+=(
313 + -DCORE_PLATFORM_NAME="gbm"
314 + -DGBM_RENDER_SYSTEM="$(usex opengl gl gles)"
315 + )
316 + fi
317 +
318 + if use wayland; then
319 + mycmakeargs+=(
320 + -DCORE_PLATFORM_NAME="wayland"
321 + -DWAYLAND_RENDER_SYSTEM="$(usex opengl gl gles)"
322 + )
323 + fi
324 +
325 + if use raspberry-pi; then
326 + mycmakeargs+=( -DCORE_PLATFORM_NAME="rbpi" )
327 + fi
328 +
329 + if use X; then
330 + mycmakeargs+=( -DCORE_PLATFORM_NAME="x11" )
331 + fi
332 +
333 + cmake-utils_src_configure
334 +}
335 +
336 +src_compile() {
337 + cmake-utils_src_compile all
338 + use test && emake -C "${BUILD_DIR}" kodi-test
339 +}
340 +
341 +src_test() {
342 + emake -C "${BUILD_DIR}" test
343 +}
344 +
345 +src_install() {
346 + cmake-utils_src_install
347 +
348 + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin
349 +
350 + newicon media/icon48x48.png kodi.png
351 +
352 + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die
353 + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \
354 + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf
355 +
356 + python_domodule tools/EventClients/lib/python/xbmcclient.py
357 + python_newscript "tools/EventClients/Clients/KodiSend/kodi-send.py" kodi-send
358 +}