summaryrefslogtreecommitdiff
path: root/media-tv/kodi
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2015-04-12 19:10:04 +0300
committerBlackNoxis <steven.darklight@gmail.com>2015-04-12 19:10:04 +0300
commitaccbf06fc6adda2849f2931c5d1c5d5520077480 (patch)
tree2d1313927ee491a9d89bbfcdf18187f719270791 /media-tv/kodi
parentcf9e1ef0b6c30c34031f2d4b5e5fe250b90a87ea (diff)
(*) major revamp of ebuilds, upgrading EAPIs
Diffstat (limited to 'media-tv/kodi')
-rw-r--r--media-tv/kodi/Manifest2
-rw-r--r--media-tv/kodi/files/generate.sh34
-rw-r--r--media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch16
-rw-r--r--media-tv/kodi/files/kodi-14.1-no-arm-flags.patch16
-rw-r--r--media-tv/kodi/files/kodi-9999-nomythtv.patch67
-rw-r--r--media-tv/kodi/files/kodi-9999-texturepacker.patch17
-rw-r--r--media-tv/kodi/kodi-14.1.ebuild277
7 files changed, 429 insertions, 0 deletions
diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
new file mode 100644
index 00000000..4ef5ffdc
--- /dev/null
+++ b/media-tv/kodi/Manifest
@@ -0,0 +1,2 @@
+DIST kodi-14.1-generated-addons.tar.xz 71072 SHA256 0666eae88a3214f7577544975524b95a9f55b107cde5124d5d299351427c5d39 SHA512 a26889ba8af33316ac61bbf5a55ec6cd72cb867eac9b6d7c626ff890f3287de8704cf8372a5e2b72d6075ab8c31ba3d8465d1da0c9437065fe6e0171a560142f WHIRLPOOL 34a7067964febd71d5e07333a1ef90c14ad3d7d09e82aa4a3245b8174b068a1b2b31d0d6e5d20a449d11d34701b59611b725c8f37ce61702489c84bda16f227a
+DIST kodi-14.1.tar.gz 70832109 SHA256 a38059e292cf8523918834e49fcc2d688525ceb7951ddf7f5ee535f4147255d6 SHA512 05dccad279073fc804faf2f179ba370f612d53c823dd333fdd151e05de37eb8202cc981ba48afff695d475bafde9c8f05f562fe09883593a70299a2f098a9849 WHIRLPOOL 464ff2673c9e65466dff73d3c91b8754ee68d64b4a18ebb0b0c6e8efa2da1cc32ab22686530a8469a105bf7a089d8928db64c5c61d272462c13485006875b506
diff --git a/media-tv/kodi/files/generate.sh b/media-tv/kodi/files/generate.sh
new file mode 100644
index 00000000..2e5b67fb
--- /dev/null
+++ b/media-tv/kodi/files/generate.sh
@@ -0,0 +1,34 @@
+#!/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-14.0-dvddemux-ffmpeg.patch b/media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch
new file mode 100644
index 00000000..94b86666
--- /dev/null
+++ b/media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch
@@ -0,0 +1,16 @@
+sniped from:
+http://cvs.rpmfusion.org/viewvc/rpms/kodi/devel/kodi-14.0-dvddemux-ffmpeg.patch?root=free&view=markup
+
+--- xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
++++ xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+@@ -519,10 +519,6 @@
+
+ void CDVDDemuxFFmpeg::Flush()
+ {
+- // naughty usage of an internal ffmpeg function
+- if (m_pFormatContext)
+- av_read_frame_flush(m_pFormatContext);
+-
+ m_currentPts = DVD_NOPTS_VALUE;
+
+ m_pkt.result = -1;
diff --git a/media-tv/kodi/files/kodi-14.1-no-arm-flags.patch b/media-tv/kodi/files/kodi-14.1-no-arm-flags.patch
new file mode 100644
index 00000000..82a73835
--- /dev/null
+++ b/media-tv/kodi/files/kodi-14.1-no-arm-flags.patch
@@ -0,0 +1,16 @@
+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
+@@ -571,7 +571,7 @@
+ elif test "$target_platform" = "target_raspberry_pi"; then
+ ARCH="arm"
+ use_arch="arm"
+-elif test "$use_arch" = "arm"; then
++elif false; then
+ CFLAGS="$CFLAGS -mno-apcs-stack-check"
+ CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
+ FFMPEG_EXTRACFLAGS=""
diff --git a/media-tv/kodi/files/kodi-9999-nomythtv.patch b/media-tv/kodi/files/kodi-9999-nomythtv.patch
new file mode 100644
index 00000000..40ab23b9
--- /dev/null
+++ b/media-tv/kodi/files/kodi-9999-nomythtv.patch
@@ -0,0 +1,67 @@
+http://trac.xbmc.org/ticket/11775
+
+make mythtv support optional
+
+diff --git a/Makefile.in b/Makefile.in
+index 9ffae7e..17cc525 100755
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -209,7 +209,7 @@ LIB_DIRS=\
+ lib/cpluff \
+ lib/xbmc-dll-symbols
+
+-ifeq (@USE_MYSQL@,1)
++ifeq (@USE_MYTHTV@,1)
+ LIB_DIRS += lib/cmyth
+ CMYTH=cmyth
+ endif
+diff --git a/configure.in b/configure.in
+index d44825f..629d7b4 100755
+--- a/configure.in
++++ b/configure.in
+@@ -479,6 +479,12 @@ AC_ARG_ENABLE([mysql],
+ [AS_HELP_STRING([--disable-mysql],
+ [disable mysql])],
+
++AC_ARG_ENABLE([mythtv],
++ [AS_HELP_STRING([--disable-mythtv],
++ [disable mythtv])],
++ [use_mythtv=$enableval],
++ [use_mythtv=yes])
++
+ AC_ARG_ENABLE([webserver],
+ [AS_HELP_STRING([--disable-webserver],
+ [disable webserver])],
+@@ -1080,6 +1086,9 @@ if test "$use_mysql" = "yes"; then
+ else
+ AC_MSG_ERROR($missing_program)
+ fi
++ if test "$use_mythtv" = "yes"; then
++ AC_DEFINE([HAVE_MYTHTV],[1],["Define to 1 if you want mythtv support"])
++ fi
+ fi
+ AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
+@@ -2372,6 +2381,15 @@ else
+ final_message="$final_message\n MySQL:\tNo"
+ USE_MYSQL=0
+ fi
++
++if test "$use_mythtv" = "yes"; then
++ final_message="$final_message\n MythTV:\tYes"
++ USE_MYTHTV=1
++else
++ final_message="$final_message\n MythTV:\tNo"
++ USE_MYTHTV=0
++fi
++
+ if test "$use_webserver" = "yes"; then
+ final_message="$final_message\n Webserver:\tYes"
+ USE_WEB_SERVER=1
+@@ -2675,6 +2693,7 @@ AC_SUBST(USE_LIBUDEV)
+ AC_SUBST(USE_LIBUSB)
+ AC_SUBST(USE_LIBCEC)
+ AC_SUBST(USE_MYSQL)
++AC_SUBST(USE_MYTHTV)
+ AC_SUBST(USE_WAYLAND)
+
diff --git a/media-tv/kodi/files/kodi-9999-texturepacker.patch b/media-tv/kodi/files/kodi-9999-texturepacker.patch
new file mode 100644
index 00000000..fe3dcdcf
--- /dev/null
+++ b/media-tv/kodi/files/kodi-9999-texturepacker.patch
@@ -0,0 +1,17 @@
+--- tools/depends/native/TexturePacker/Makefile.old 2015-03-17 22:29:18.880029509 +0100
++++ tools/depends/native/TexturePacker/Makefile 2015-03-17 22:29:41.459671679 +0100
+@@ -9,14 +9,10 @@
+
+ ifeq ($(NATIVEPLATFORM),)
+ PLATFORM = native
+- EXTRA_CONFIGURE = --enable-static
+ else
+ PLATFORM = $(NATIVEPLATFORM)
+ endif
+
+-ifeq ($(NATIVE_OS), linux)
+- EXTRA_CONFIGURE = --enable-static
+-endif
+ ifeq ($(NATIVE_OS), android)
+ EXTRA_CONFIGURE = --enable-static
+ endif
diff --git a/media-tv/kodi/kodi-14.1.ebuild b/media-tv/kodi/kodi-14.1.ebuild
new file mode 100644
index 00000000..11fbcb5b
--- /dev/null
+++ b/media-tv/kodi/kodi-14.1.ebuild
@@ -0,0 +1,277 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+# Does not work with py3 here
+# It might work with py:2.5 but I didn't test that
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit eutils python-single-r1 multiprocessing autotools
+
+CODENAME="Helix"
+case ${PV} in
+9999)
+ EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
+ inherit git-2
+ ;;
+*|*_p*)
+ MY_PV=${PV/_p/_r}
+ 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"
+ KEYWORDS="~amd64 ~x86"
+
+ S=${WORKDIR}/xbmc-${PV}-${CODENAME}
+ ;;
+esac
+
+DESCRIPTION="Kodi is a free and open source media-player and entertainment hub"
+HOMEPAGE="http://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 +rsxs rtmp +samba sdl sftp test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X +xrandr"
+REQUIRED_USE="
+ pvr? ( mysql )
+ rsxs? ( X )
+ xrandr? ( X )
+ joystick? ( sdl )
+"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+ app-arch/bzip2
+ app-arch/unzip
+ app-arch/zip
+ app-i18n/enca
+ airplay? ( app-pda/libplist )
+ dev-libs/boost
+ dev-libs/expat
+ dev-libs/fribidi
+ dev-libs/libcdio[-minimal]
+ cec? ( >=dev-libs/libcec-2.2 )
+ dev-libs/libpcre[cxx]
+ dev-libs/libxml2
+ dev-libs/libxslt
+ >=dev-libs/lzo-2.04
+ dev-libs/tinyxml[stl]
+ dev-libs/yajl
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ media-fonts/corefonts
+ media-fonts/roboto
+ media-libs/alsa-lib
+ media-libs/flac
+ media-libs/fontconfig
+ media-libs/freetype
+ >=media-libs/glew-1.5.6
+ media-libs/jasper
+ media-libs/jbigkit
+ >=media-libs/libass-0.9.7
+ bluray? ( media-libs/libbluray )
+ 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/libsamplerate
+ sdl? ( media-libs/libsdl2 )
+ >=media-libs/taglib-1.8
+ media-libs/libvorbis
+ media-libs/tiff
+ pulseaudio? ( media-sound/pulseaudio )
+ media-sound/wavpack
+ rtmp? ( media-video/rtmpdump )
+ avahi? ( net-dns/avahi )
+ 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
+ caps? ( sys-libs/libcap )
+ sys-libs/zlib
+ virtual/jpeg
+ usb? ( virtual/libusb )
+ mysql? ( virtual/mysql )
+ opengl? (
+ virtual/glu
+ virtual/opengl
+ )
+ gles? (
+ virtual/opengl
+ media-libs/mesa[gles2]
+ )
+ vaapi? ( x11-libs/libva[opengl] )
+ vdpau? (
+ x11-libs/libvdpau
+ >=x11-drivers/nvidia-drivers-180.51
+ )
+ X? (
+ x11-apps/xdpyinfo
+ x11-apps/mesa-progs
+ x11-libs/libXinerama
+ xrandr? ( x11-libs/libXrandr )
+ x11-libs/libXrender
+ )"
+RDEPEND="${COMMON_DEPEND}
+ !media-tv/xbmc
+ udisks? ( sys-fs/udisks:0 )
+ upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ dev-lang/swig
+ dev-util/gperf
+ texturepacker? (
+ media-libs/libsdl
+ media-libs/sdl-image
+ )
+ sdl? ( media-libs/sdl-image )
+ X? ( x11-proto/xineramaproto )
+ dev-util/cmake
+ x86? ( dev-lang/nasm )
+ java? ( virtual/jre )
+ test? ( dev-cpp/gtest )"
+# Force java for latest git version to avoid having to hand maintain the
+# generated addons package. #488118
+[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == "9999" ]] && git-2_src_unpack || default
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
+ epatch "${FILESDIR}"/${P}-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
+
+ # 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
+ [[ -e ${d} ]] && continue
+ pushd ${d/%configure/.} >/dev/null || die
+ AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
+ multijob_child_init eautoreconf
+ popd >/dev/null
+ done
+ multijob_finish
+ elibtoolize
+
+ [[ ${PV} == "9999" ]] && emake -f codegenerator.mk
+
+ # Disable internal func checks as our USE/DEPEND
+ # stuff handles this just fine already #408395
+ export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
+
+ # Fix the final version string showing as "exported"
+ # instead of the SVN revision number.
+ export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
+
+ # avoid long delays when powerkit isn't running #348580
+ sed -i \
+ -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 {} +
+}
+
+src_configure() {
+ # Disable documentation generation
+ export ac_cv_path_LATEX=no
+ # Avoid help2man
+ export HELP2MAN=$(type -P help2man || echo true)
+ # No configure flage for this #403561
+ export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
+ # Requiring java is asine #434662
+ [[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
+
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-ccache \
+ --disable-optimizations \
+ --disable-external-ffmpeg \
+ $(use_enable airplay) \
+ $(use_enable avahi) \
+ $(use_enable bluray libbluray) \
+ $(use_enable caps libcap) \
+ $(use_enable cec libcec) \
+ $(use_enable css dvdcss) \
+ $(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 sdl) \
+ $(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)
+}
+
+src_install() {
+ default
+ rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
+
+ 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.
+ # 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
+
+ # 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-*
+ 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 \
+ /usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.ttf
+
+ python_domodule tools/EventClients/lib/python/xbmcclient.py
+ python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send
+}