summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <mart.raudsepp@gmail.com>2016-12-20 19:17:17 +0200
committerMart Raudsepp <mart.raudsepp@gmail.com>2016-12-20 19:17:17 +0200
commitc758af0f3a8b35d19f7e202fb480e7a738cc0b4d (patch)
tree9bd02157816b7e38f2e85f3c0a32384d09ed9d66
parentcogl/clutter: Remove until sync with main tree is done (diff)
downloadleio-c758af0f3a8b35d19f7e202fb480e7a738cc0b4d.tar.gz
leio-c758af0f3a8b35d19f7e202fb480e7a738cc0b4d.tar.bz2
leio-c758af0f3a8b35d19f7e202fb480e7a738cc0b4d.zip
media-tv/kodi: Blindly update to 16.1 for rpi
-rwxr-xr-xmedia-tv/kodi/files/generate.sh34
-rw-r--r--media-tv/kodi/files/kodi-9999-no-arm-flags.patch4
-rw-r--r--media-tv/kodi/kodi-16.1.ebuild (renamed from media-tv/kodi/kodi-14.1.ebuild)187
-rw-r--r--media-tv/kodi/metadata.xml41
4 files changed, 136 insertions, 130 deletions
diff --git a/media-tv/kodi/files/generate.sh b/media-tv/kodi/files/generate.sh
deleted file mode 100755
index 2e5b67f..0000000
--- a/media-tv/kodi/files/generate.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-# Generate the various interface files that normally requires java.
-# This makes building the release versions much nicer.
-
-set -eux
-
-PV=$1
-PN=kodi
-P="${PN}-${PV}"
-DISTDIR="/usr/portage/distfiles"
-GITDIR="/usr/local/src/kodi/git"
-
-if [[ ${PV} != "9999" ]] ; then
- rm -rf xbmc-*/
- tar xf ${DISTDIR}/${P}.tar.gz
- d=$(echo xbmc-*/)
-else
- stamp=$(date --date="$(git log -n1 --pretty=format:%ci master)" -u +%Y%m%d)
- P+="-${stamp}"
- cd ${GITDIR}
- d=.
-fi
-#cd ${d} && git init . && git add . && git commit -qmm && cd ..
-make -C ${d} -j -f codegenerator.mk
-tar="${DISTDIR}/${P}-generated-addons.tar.xz"
-tar cf - \
- ${d}/xbmc/interfaces/python/generated/*.cpp \
- ${d}/xbmc/interfaces/json-rpc/ServiceDescription.h \
- | xz > "${tar}"
-if [[ ${PV} != "9999" ]] ; then
- rm -rf xbmc-*/
-fi
-
-du -b "${tar}"
diff --git a/media-tv/kodi/files/kodi-9999-no-arm-flags.patch b/media-tv/kodi/files/kodi-9999-no-arm-flags.patch
index 82a7383..64c1cfb 100644
--- a/media-tv/kodi/files/kodi-9999-no-arm-flags.patch
+++ b/media-tv/kodi/files/kodi-9999-no-arm-flags.patch
@@ -3,8 +3,8 @@ http://bugs.gentoo.org/400617
do not force any particular ABI or FPU or SIMD compiler flags for arm
targets. let the toolchain and user CFLAGS control that.
---- a/configure.in
-+++ b/configure.in
+--- a/configure.ac
++++ b/configure.ac
@@ -571,7 +571,7 @@
elif test "$target_platform" = "target_raspberry_pi"; then
ARCH="arm"
diff --git a/media-tv/kodi/kodi-14.1.ebuild b/media-tv/kodi/kodi-16.1.ebuild
index cd76c6b..0588340 100644
--- a/media-tv/kodi/kodi-14.1.ebuild
+++ b/media-tv/kodi/kodi-16.1.ebuild
@@ -1,43 +1,47 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-tv/kodi/kodi-14.1.ebuild,v 1.2 2015/02/17 00:05:03 vapier Exp $
+# $Id$
-EAPI="5"
+EAPI=6
# Does not work with py3 here
-# It might work with py:2.5 but I didn't test that
-PYTHON_COMPAT=( python{2_6,2_7} )
+PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="sqlite"
-inherit eutils flag-o-matic python-single-r1 multiprocessing autotools
+inherit eutils linux-info python-single-r1 multiprocessing autotools toolchain-funcs
-CODENAME="Helix"
+CODENAME="Jarvis"
case ${PV} in
9999)
EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
- inherit git-2
+ inherit git-r3
;;
-*|*_p*)
+*)
MY_PV=${PV/_p/_r}
+ MY_PV=${MY_PV//_alpha/a}
+ MY_PV=${MY_PV//_beta/b}
+ MY_PV=${MY_PV//_rc/rc}
MY_P="${PN}-${MY_PV}"
- SRC_URI="http://mirrors.kodi.tv/releases/source/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
- http://mirrors.kodi.tv/releases/source/${MY_P}-generated-addons.tar.xz"
+ SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz
+ !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons-r1.tar.xz )"
KEYWORDS="~amd64 ~arm ~x86"
- S=${WORKDIR}/xbmc-${PV}-${CODENAME}
+ S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
;;
esac
DESCRIPTION="Kodi is a free and open source media-player and entertainment hub"
-HOMEPAGE="http://kodi.tv/ http://kodi.wiki/"
+HOMEPAGE="https://kodi.tv/ http://kodi.wiki/"
LICENSE="GPL-2"
SLOT="0"
-IUSE="airplay avahi bluetooth bluray caps cec css debug +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio pvr rpi +rsxs rtmp +samba sftp test udisks upnp upower +usb vaapi vdpau webserver +X +xrandr"
+IUSE="airplay alsa bluetooth bluray caps cec css dbus debug gles java joystick midi mysql nfs +opengl profile pulseaudio rpi rtmp +samba sftp test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X zeroconf"
+# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
REQUIRED_USE="
- pvr? ( mysql )
- rsxs? ( X )
- xrandr? ( X )
+ || ( gles opengl )
+ ?? ( gles vaapi )
+ udisks? ( dbus )
+ upower? ( dbus )
"
COMMON_DEPEND="${PYTHON_DEPS}
@@ -46,75 +50,79 @@ COMMON_DEPEND="${PYTHON_DEPS}
app-arch/zip
app-i18n/enca
airplay? ( app-pda/libplist )
- dev-libs/boost
+ dev-libs/boost:=
+ dev-libs/expat
dev-libs/fribidi
dev-libs/libcdio[-minimal]
- cec? ( >=dev-libs/libcec-2.1 )
+ cec? ( >=dev-libs/libcec-3.0 )
dev-libs/libpcre[cxx]
+ dev-libs/libxml2
+ dev-libs/libxslt
>=dev-libs/lzo-2.04
dev-libs/tinyxml[stl]
- dev-libs/yajl
+ >=dev-libs/yajl-2
dev-python/simplejson[${PYTHON_USEDEP}]
media-fonts/corefonts
media-fonts/roboto
- media-libs/alsa-lib
+ alsa? ( media-libs/alsa-lib )
media-libs/flac
media-libs/fontconfig
media-libs/freetype
- >=media-libs/glew-1.5.6
- media-libs/jasper
+ media-libs/jasper:=
media-libs/jbigkit
>=media-libs/libass-0.9.7
- bluray? ( media-libs/libbluray )
+ bluray? ( >=media-libs/libbluray-0.7.0 )
css? ( media-libs/libdvdcss )
media-libs/libmad
media-libs/libmodplug
media-libs/libmpeg2
media-libs/libogg
- media-libs/libpng
- projectm? ( media-libs/libprojectm )
+ media-libs/libpng:0=
media-libs/libsamplerate
joystick? ( media-libs/libsdl2 )
>=media-libs/taglib-1.8
media-libs/libvorbis
- media-libs/tiff
+ media-libs/tiff:0=
+ media-sound/dcadec
pulseaudio? ( media-sound/pulseaudio )
media-sound/wavpack
- >=media-video/ffmpeg-2.4:=[encode]
+ >=media-video/ffmpeg-2.6:=[encode]
rtmp? ( media-video/rtmpdump )
- avahi? ( net-dns/avahi )
- nfs? ( net-fs/libnfs )
+ nfs? ( net-fs/libnfs:= )
webserver? ( net-libs/libmicrohttpd[messages] )
sftp? ( net-libs/libssh[sftp] )
net-misc/curl
samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
bluetooth? ( net-wireless/bluez )
- sys-apps/dbus
+ dbus? ( sys-apps/dbus )
caps? ( sys-libs/libcap )
sys-libs/zlib
- virtual/jpeg
- usb? ( virtual/libusb )
+ virtual/jpeg:0=
+ usb? ( virtual/libusb:1 )
mysql? ( virtual/mysql )
opengl? (
virtual/glu
virtual/opengl
+ >=media-libs/glew-1.5.6:=
)
gles? (
- !rpi? ( virtual/opengl media-libs/mesa[gles2] )
+ !rpi? ( media-libs/mesa[gles2] )
rpi? ( media-libs/raspberrypi-userland )
)
vaapi? ( x11-libs/libva[opengl] )
vdpau? (
- || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
+ || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
media-video/ffmpeg[vdpau]
)
X? (
x11-apps/xdpyinfo
x11-apps/mesa-progs
x11-libs/libXinerama
- xrandr? ( x11-libs/libXrandr )
+ x11-libs/libXrandr
x11-libs/libXrender
- )"
+ )
+ zeroconf? ( net-dns/avahi )
+"
RDEPEND="${COMMON_DEPEND}
!media-tv/xbmc
udisks? ( sys-fs/udisks:0 )
@@ -122,45 +130,84 @@ RDEPEND="${COMMON_DEPEND}
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
dev-lang/swig
+ dev-libs/crossguid
dev-util/gperf
+ texturepacker? ( media-libs/giflib )
X? ( x11-proto/xineramaproto )
dev-util/cmake
x86? ( dev-lang/nasm )
java? ( virtual/jre )
- test? ( dev-cpp/gtest )"
+ test? ( dev-cpp/gtest )
+ virtual/pkgconfig"
# Force java for latest git version to avoid having to hand maintain the
# generated addons package. #488118
[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
+PATCHES=(
+ "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400618887
+ "${FILESDIR}"/${PN}-9999-texturepacker.patch
+ "${FILESDIR}"/${PN}-16-ffmpeg3.patch
+)
+
+CONFIG_CHECK="~IP_MULTICAST"
+ERROR_IP_MULTICAST="
+In some cases Kodi needs to access multicast addresses.
+Please consider enabling IP_MULTICAST under Networking options.
+"
+
pkg_setup() {
+ check_extra_config
python-single-r1_pkg_setup
}
src_unpack() {
- [[ ${PV} == "9999" ]] && git-2_src_unpack || default
+ [[ ${PV} == "9999" ]] && git-r3_src_unpack || default
}
src_prepare() {
- epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
- epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
- epatch "${FILESDIR}"/${PN}-14.0-dvddemux-ffmpeg.patch #526992#36
- # The mythtv patch touches configure.ac, so force a regen
- rm -f configure
+ default
# some dirs ship generated autotools, some dont
multijob_init
- local d
- for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do
+ local d dirs=(
+ tools/depends/native/TexturePacker/src/configure
+ $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
+ )
+ for d in "${dirs[@]}" ; do
[[ -e ${d} ]] && continue
pushd ${d/%configure/.} >/dev/null || die
AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
multijob_child_init eautoreconf
- popd >/dev/null
+ popd >/dev/null || die
done
multijob_finish
elibtoolize
- [[ ${PV} == "9999" ]] && emake -f codegenerator.mk
+ # Cross-compiler support
+ # We need JsonSchemaBuilder and TexturePacker binaries for the host system
+ # Later we need libsquish for the target system
+ if tc-is-cross-compiler ; then
+ mkdir "${WORKDIR}"/${CBUILD} || die
+ pushd "${WORKDIR}"/${CBUILD} >/dev/null || die
+ einfo "Building host tools"
+ cp -a "$S"/{tools,xbmc} ./ || die
+ local tools=( JsonSchemaBuilder )
+ use texturepacker && tools+=( TexturePacker )
+ for tool in "${tools[@]}" ; do
+ tc-env_build emake -C tools/depends/native/$tool
+ mkdir "$S"/tools/depends/native/$tool/bin || die
+ ln -s "${WORKDIR}"/${CBUILD}/tools/depends/native/$tool/bin/$tool "$S"/tools/depends/native/$tool/bin/$tool || die
+ done
+ popd >/dev/null || die
+
+ emake -f codegenerator.mk
+
+ # Binary kodi.bin links against libsquish,
+ # so we need libsquish compiled for the target system
+ emake -C tools/depends/native/libsquish-native/ CXX=$(tc-getCXX)
+ elif [[ ${PV} == "9999" ]] || use java ; then #558798
+ tc-env_build emake -f codegenerator.mk
+ fi
# Disable internal func checks as our USE/DEPEND
# stuff handles this just fine already #408395
@@ -175,10 +222,8 @@ src_prepare() {
-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
xbmc/linux/*.cpp || die
- epatch_user #293109
-
# Tweak autotool timestamps to avoid regeneration
- find . -type f -exec touch -r configure {} +
+ find . -type f -exec touch -r configure {} + || die
}
src_configure() {
@@ -197,72 +242,58 @@ src_configure() {
use rpi && append-ldflags $(pkg-config --libs egl glesv2)
econf \
- --docdir=/usr/share/doc/${PF} \
--disable-ccache \
--disable-optimizations \
--with-ffmpeg=shared \
+ $(use_enable alsa) \
$(use_enable airplay) \
- $(use_enable avahi) \
$(use_enable bluray libbluray) \
$(use_enable caps libcap) \
$(use_enable cec libcec) \
$(use_enable css dvdcss) \
+ $(use_enable dbus) \
$(use_enable debug) \
- $(use_enable fishbmc) \
$(use_enable gles) \
- $(use_enable goom) \
$(use_enable joystick) \
$(use_enable midi mid) \
$(use_enable mysql) \
$(use_enable nfs) \
$(use_enable opengl gl) \
$(use_enable profile profiling) \
- $(use_enable projectm) \
$(use_enable pulseaudio pulse) \
- $(use_enable pvr mythtv) \
- $(use_enable rsxs) \
$(use_enable rtmp) \
$(use_enable samba) \
$(use_enable sftp ssh) \
$(use_enable usb libusb) \
$(use_enable test gtest) \
+ $(use_enable texturepacker) \
$(use_enable upnp) \
$(use_enable vaapi) \
$(use_enable vdpau) \
$(use_enable webserver) \
$(use_enable X x11) \
- $(use_enable xrandr) \
+ $(use_enable zeroconf avahi) \
${myconf}
}
+src_compile() {
+ emake V=1
+}
+
src_install() {
default
- rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
+ rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
domenu tools/Linux/kodi.desktop
newicon media/icon48x48.png kodi.png
- # Remove optional addons (platform specific and disabled by USE flag).
- local disabled_addons=(
- repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org
- visualization.dxspectrum
- )
- use fishbmc || disabled_addons+=( visualization.fishbmc )
- use projectm || disabled_addons+=( visualization.{milkdrop,projectm} )
- use rsxs || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} )
- rm -rf "${disabled_addons[@]/#/${ED}/usr/share/kodi/addons/}"
-
- # Remove fonconfig settings that are used only on MacOSX.
+ # Remove fontconfig settings that are used only on MacOSX.
# Can't be patched upstream because they just find all files and install
# them into same structure like they have in git.
- rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
+ rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
- # Replace bundled fonts with system ones
- # teletext.ttf: unknown
- # bold-caps.ttf: unknown
- # roboto: roboto-bold, roboto-regular
- # arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514
- rm -rf "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-*
+ # Replace bundled fonts with system ones.
+ rm "${ED%/}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-* || die
dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
diff --git a/media-tv/kodi/metadata.xml b/media-tv/kodi/metadata.xml
index af5099e..f6c4d77 100644
--- a/media-tv/kodi/metadata.xml
+++ b/media-tv/kodi/metadata.xml
@@ -1,23 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<herd>xbox</herd>
+<maintainer type="person">
+ <email>vapier@gentoo.org</email>
+</maintainer>
+<maintainer type="project">
+ <email>media-video@gentoo.org</email>
+ <name>Gentoo Video project</name>
+</maintainer>
<use>
- <flag name='airplay'>enable AirPlay support</flag>
- <flag name='bluray'>Enable playback of Blu-ray filesystems</flag>
- <flag name='cec'>Enable support for HDMI-CEC devices via libcec</flag>
- <flag name='fishbmc'>Enable fishBMC visualization plugin</flag>
- <flag name='gles'>Enable support for GLES</flag>
- <flag name='goom'>Enable GOOM visualization plugin</flag>
- <flag name='midi'>Support MIDI files</flag>
- <flag name='nfs'>Enable NFS client support</flag>
- <flag name='projectm'>Enable projectM visualization plugin</flag>
- <flag name='pvr'>Enable MythTV support</flag>
- <flag name='rtmp'>Enable Real Time Messaging Protocol using librtmp</flag>
- <flag name='rsxs'>Enable really slick X screensavers</flag>
- <flag name='sftp'>Support browsing files over SFTP</flag>
- <flag name='webserver'>Enable internal webserver</flag>
- <flag name='xrandr'>Support X randr extension</flag>
+ <flag name="airplay">enable AirPlay support</flag>
+ <flag name="bluray">Enable playback of Blu-ray filesystems</flag>
+ <flag name="cec">Enable support for HDMI-CEC devices via libcec</flag>
+ <flag name="fishbmc">Enable fishBMC visualization plugin</flag>
+ <flag name="gles">Enable support for GLES</flag>
+ <flag name="goom">Enable GOOM visualization plugin</flag>
+ <flag name="midi">Support MIDI files</flag>
+ <flag name="nfs">Enable NFS client support</flag>
+ <flag name="projectm">Enable projectM visualization plugin</flag>
+ <flag name="pvr">Enable MythTV support</flag>
+ <flag name="rtmp">Enable Real Time Messaging Protocol using librtmp</flag>
+ <flag name="rsxs">Enable really slick X screensavers</flag>
+ <flag name="sftp">Support browsing files over SFTP</flag>
+ <flag name="spectrum">Enable spectrum visualization plugin</flag>
+ <flag name="texturepacker">Support packing skin textures</flag>
+ <flag name="waveform">Enable waveform visualization plugin</flag>
+ <flag name="webserver">Enable internal webserver</flag>
+ <flag name="xrandr">Support X randr extension</flag>
</use>
<upstream>
<bugs-to>http://trac.kodi.tv/</bugs-to>