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