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: Sun, 04 Nov 2018 20:41:41
Message-Id: 1541364087.f4ae45a30bc5949be58665510b74513c2d97e999.candrews@gentoo
1 commit: f4ae45a30bc5949be58665510b74513c2d97e999
2 Author: Craig Andrews <candrews <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 4 20:41:10 2018 +0000
4 Commit: Craig Andrews <candrews <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 4 20:41:27 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4ae45a3
7
8 media-tv/kodi: Compatibility with media-fonts/noto-20180905
9
10 Closes: https://bugs.gentoo.org/669204
11 Package-Manager: Portage-2.3.51, Repoman-2.3.12
12 Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
13
14 media-tv/kodi/kodi-17.6-r8.ebuild | 298 ++++++++++++++++++++++++++++++++++++++
15 1 file changed, 298 insertions(+)
16
17 diff --git a/media-tv/kodi/kodi-17.6-r8.ebuild b/media-tv/kodi/kodi-17.6-r8.ebuild
18 new file mode 100644
19 index 00000000000..9fc40bceaeb
20 --- /dev/null
21 +++ b/media-tv/kodi/kodi-17.6-r8.ebuild
22 @@ -0,0 +1,298 @@
23 +# Copyright 1999-2018 Gentoo Authors
24 +# Distributed under the terms of the GNU General Public License v2
25 +
26 +EAPI=6
27 +
28 +# Does not work with py3 here
29 +PYTHON_COMPAT=( python2_7 )
30 +PYTHON_REQ_USE="sqlite"
31 +
32 +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 versionator
33 +
34 +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f"
35 +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd"
36 +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac"
37 +FFMPEG_VERSION="3.1.11"
38 +FFMPEG_KODI_VERSION="17.5"
39 +CODENAME="Krypton"
40 +PATCHES=(
41 + "${FILESDIR}/${P}-nmblookup.patch"
42 +)
43 +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz
44 + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz
45 + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz
46 + !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 )"
47 +
48 +DESCRIPTION="A free and open source media-player and entertainment hub"
49 +HOMEPAGE="https://kodi.tv/ https://kodi.wiki/"
50 +
51 +LICENSE="GPL-2"
52 +SLOT="0"
53 +# use flag is called libusb so that it doesn't fool people in thinking that
54 +# it is _required_ for USB support. Otherwise they'll disable udev and
55 +# that's going to be worse.
56 +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles lcms libressl libusb lirc mariadb mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +xslt zeroconf"
57 +REQUIRED_USE="
58 + ${PYTHON_REQUIRED_USE}
59 + || ( gles opengl )
60 + ?? ( mariadb mysql )
61 + udev? ( !libusb )
62 + udisks? ( dbus )
63 + upower? ( dbus )
64 +"
65 +
66 +COMMON_DEPEND="${PYTHON_DEPS}
67 + airplay? (
68 + app-pda/libplist
69 + net-libs/shairplay
70 + )
71 + alsa? ( media-libs/alsa-lib )
72 + bluetooth? ( net-wireless/bluez )
73 + bluray? ( >=media-libs/libbluray-0.7.0 )
74 + caps? ( sys-libs/libcap )
75 + dbus? ( sys-apps/dbus )
76 + dev-db/sqlite
77 + dev-libs/expat
78 + dev-libs/fribidi
79 + cec? ( >=dev-libs/libcec-4.0 )
80 + dev-libs/libpcre[cxx]
81 + dev-libs/libxml2
82 + >=dev-libs/lzo-2.04
83 + dev-libs/tinyxml[stl]
84 + >=dev-libs/yajl-2
85 + dev-python/pillow[${PYTHON_USEDEP}]
86 + dev-libs/libcdio
87 + gles? ( media-libs/mesa[gles2] )
88 + lcms? ( media-libs/lcms:2 )
89 + libusb? ( virtual/libusb:1 )
90 + virtual/ttf-fonts
91 + >=media-fonts/noto-20180905
92 + media-fonts/roboto
93 + media-libs/fontconfig
94 + media-libs/freetype
95 + >=media-libs/libass-0.13.4
96 + media-libs/mesa[egl]
97 + >=media-libs/taglib-1.11.1
98 + system-ffmpeg? (
99 + >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc]
100 + <media-video/ffmpeg-3.4
101 + )
102 + mysql? ( dev-db/mysql-connector-c:= )
103 + mariadb? ( dev-db/mariadb-connector-c:=[mysqlcompat] )
104 + >=net-misc/curl-7.51.0
105 + nfs? ( net-fs/libnfs:= )
106 + opengl? ( media-libs/glu )
107 + !libressl? ( >=dev-libs/openssl-1.0.2j:0= )
108 + libressl? ( dev-libs/libressl:0= )
109 + pulseaudio? ( media-sound/pulseaudio )
110 + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
111 + sftp? ( net-libs/libssh[sftp] )
112 + sys-libs/zlib
113 + udev? ( virtual/udev )
114 + vaapi? ( x11-libs/libva:=[opengl] )
115 + vdpau? (
116 + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
117 + system-ffmpeg? ( media-video/ffmpeg[vdpau] )
118 + )
119 + webserver? ( >=net-libs/libmicrohttpd-0.9.50[messages] )
120 + xslt? ( dev-libs/libxslt )
121 + zeroconf? ( net-dns/avahi[dbus] )
122 +"
123 +RDEPEND="${COMMON_DEPEND}
124 + lirc? (
125 + || ( app-misc/lirc app-misc/inputlircd )
126 + )
127 + !media-tv/xbmc
128 + udisks? ( sys-fs/udisks:0 )
129 + upower? (
130 + systemd? ( sys-power/upower )
131 + !systemd? (
132 + || ( sys-power/upower-pm-utils sys-power/upower )
133 + )
134 + )
135 +"
136 +DEPEND="${COMMON_DEPEND}
137 + app-arch/bzip2
138 + app-arch/unzip
139 + app-arch/xz-utils
140 + app-arch/zip
141 + dev-lang/swig
142 + dev-libs/crossguid
143 + dev-util/cmake
144 + dev-util/gperf
145 + media-libs/giflib
146 + >=media-libs/libjpeg-turbo-1.5.1:=
147 + >=media-libs/libpng-1.6.26:0=
148 + test? ( dev-cpp/gtest )
149 + virtual/pkgconfig
150 + x86? ( dev-lang/nasm )
151 +"
152 +case ${PV} in
153 +9999)
154 + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
155 + inherit git-r3
156 + # Force java for latest git version to avoid having to hand maintain the
157 + # generated addons package. #488118
158 + DEPEND+="
159 + virtual/jre
160 + "
161 + ;;
162 +*)
163 + MY_PV=${PV/_p/_r}
164 + MY_PV=${MY_PV/_alpha/a}
165 + MY_PV=${MY_PV/_beta/b}
166 + MY_PV=${MY_PV/_rc/rc}
167 + MY_P="${PN}-${MY_PV}"
168 + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz
169 + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )"
170 + KEYWORDS="~amd64 ~x86"
171 + IUSE+=" java"
172 + DEPEND+="
173 + java? ( virtual/jre )
174 + "
175 +
176 + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
177 + ;;
178 +esac
179 +
180 +CONFIG_CHECK="~IP_MULTICAST"
181 +ERROR_IP_MULTICAST="
182 +In some cases Kodi needs to access multicast addresses.
183 +Please consider enabling IP_MULTICAST under Networking options.
184 +"
185 +
186 +CMAKE_USE_DIR=${S}/project/cmake/
187 +
188 +pkg_setup() {
189 + check_extra_config
190 + python-single-r1_pkg_setup
191 +}
192 +
193 +src_prepare() {
194 + if in_iuse java && use !java; then
195 + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch
196 + fi
197 + cmake-utils_src_prepare
198 +
199 + # avoid long delays when powerkit isn't running #348580
200 + sed -i \
201 + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
202 + xbmc/linux/*.cpp || die
203 +
204 + # Prepare tools and libs witch are configured with autotools during compile time
205 + AUTOTOOLS_DIRS=(
206 + "${S}"/lib/cpluff
207 + "${S}"/tools/depends/native/TexturePacker/src
208 + "${S}"/tools/depends/native/JsonSchemaBuilder/src
209 + )
210 +
211 + local d
212 + for d in "${AUTOTOOLS_DIRS[@]}" ; do
213 + pushd ${d} >/dev/null || die
214 + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf
215 + popd >/dev/null || die
216 + done
217 + elibtoolize
218 +
219 + # Prevent autoreconf rerun
220 + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \
221 + "${S}"/project/cmake/modules/FindCpluff.cmake \
222 + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \
223 + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \
224 + || die
225 +}
226 +
227 +src_configure() {
228 + local mycmakeargs=(
229 + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
230 + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
231 + -DENABLE_ALSA=$(usex alsa)
232 + -DENABLE_AIRTUNES=$(usex airplay)
233 + -DENABLE_AVAHI=$(usex zeroconf)
234 + -DENABLE_BLUETOOTH=$(usex bluetooth)
235 + -DENABLE_BLURAY=$(usex bluray)
236 + -DENABLE_CCACHE=OFF
237 + -DENABLE_CEC=$(usex cec)
238 + -DENABLE_DBUS=$(usex dbus)
239 + -DENABLE_DVDCSS=$(usex css)
240 + -DENABLE_INTERNAL_CROSSGUID=OFF
241 + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
242 + -DENABLE_CAP=$(usex caps)
243 + -DENABLE_LCMS2=$(usex lcms)
244 + -DENABLE_LIRC=$(usex lirc)
245 + -DENABLE_MICROHTTPD=$(usex webserver)
246 + -DENABLE_NFS=$(usex nfs)
247 + -DENABLE_NONFREE=$(usex nonfree)
248 + -DENABLE_OPENGLES=$(usex gles)
249 + -DENABLE_OPENGL=$(usex opengl)
250 + -DENABLE_OPENSSL=ON
251 + -DENABLE_OPTICAL=$(usex dvd)
252 + -DENABLE_PLIST=$(usex airplay)
253 + -DENABLE_PULSEAUDIO=$(usex pulseaudio)
254 + -DENABLE_SMBCLIENT=$(usex samba)
255 + -DENABLE_SSH=$(usex sftp)
256 + -DENABLE_UDEV=$(usex udev)
257 + -DENABLE_UPNP=$(usex upnp)
258 + -DENABLE_VAAPI=$(usex vaapi)
259 + -DENABLE_VDPAU=$(usex vdpau)
260 + -DENABLE_X11=ON
261 + -DENABLE_XSLT=$(usex xslt)
262 + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz"
263 + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz"
264 + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz"
265 + )
266 +
267 + if use mysql || use mariadb ; then
268 + mycmakeargs+=( -DENABLE_MYSQLCLIENT="yes" )
269 + else
270 + mycmakeargs+=( -DENABLE_MYSQLCLIENT="no" )
271 + fi
272 +
273 + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
274 +
275 + if use system-ffmpeg; then
276 + mycmakeargs+=( -DWITH_FFMPEG="yes" )
277 + else
278 + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" )
279 + fi
280 +
281 + cmake-utils_src_configure
282 +}
283 +
284 +src_compile() {
285 + cmake-utils_src_compile all
286 + use test && emake -C "${BUILD_DIR}" kodi-test
287 +}
288 +
289 +src_test() {
290 + emake -C "${BUILD_DIR}" test
291 +}
292 +
293 +src_install() {
294 + cmake-utils_src_install
295 +
296 + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin
297 +
298 + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
299 +
300 + newicon media/icon48x48.png kodi.png
301 +
302 + # Replace bundled fonts with system ones.
303 + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
304 + dosym ../../../../fonts/noto/NotoSansMono-Regular.ttf \
305 + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf
306 +
307 + local f
308 + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do
309 + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die
310 + dosym ../../../../fonts/noto/"${f}" \
311 + usr/share/kodi/addons/skin.estuary/fonts/"${f}"
312 + done
313 +
314 + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die
315 + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \
316 + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf
317 +
318 + python_domodule tools/EventClients/lib/python/xbmcclient.py
319 + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send
320 +}