public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/leio:master commit in: media-tv/kodi/, media-tv/kodi/files/
@ 2015-02-26 16:43 Mart Raudsepp
  0 siblings, 0 replies; only message in thread
From: Mart Raudsepp @ 2015-02-26 16:43 UTC (permalink / raw
  To: gentoo-commits

commit:     c06b7ccc2af06d17500ae8aa81d60447d74818d0
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 26 16:41:57 2015 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Thu Feb 26 16:41:57 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=dev/leio.git;a=commit;h=c06b7ccc

Add a very rough kodi ebuild for RPi for testing by interested parties

---
 media-tv/kodi/Manifest                             |   2 +
 media-tv/kodi/files/generate.sh                    |  34 +++
 .../kodi/files/kodi-14.0-dvddemux-ffmpeg.patch     |  16 ++
 media-tv/kodi/files/kodi-9999-no-arm-flags.patch   |  16 ++
 media-tv/kodi/files/kodi-9999-nomythtv.patch       |  67 +++++
 media-tv/kodi/kodi-14.1.ebuild                     | 271 +++++++++++++++++++++
 media-tv/kodi/metadata.xml                         |  26 ++
 7 files changed, 432 insertions(+)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
new file mode 100644
index 0000000..4ef5ffd
--- /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 100755
index 0000000..2e5b67f
--- /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 0000000..94b8666
--- /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-9999-no-arm-flags.patch b/media-tv/kodi/files/kodi-9999-no-arm-flags.patch
new file mode 100644
index 0000000..82a7383
--- /dev/null
+++ b/media-tv/kodi/files/kodi-9999-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 0000000..40ab23b
--- /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/kodi-14.1.ebuild b/media-tv/kodi/kodi-14.1.ebuild
new file mode 100644
index 0000000..3022b8b
--- /dev/null
+++ b/media-tv/kodi/kodi-14.1.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2015 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 $
+
+EAPI="5"
+
+# 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_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 ~arm ~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 rpi +rsxs rtmp +samba sftp test udisks upnp upower +usb vaapi vdpau webserver +X +xrandr"
+REQUIRED_USE="
+	pvr? ( mysql )
+	rsxs? ( X )
+	xrandr? ( X )
+"
+
+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/fribidi
+	dev-libs/libcdio[-minimal]
+	cec? ( >=dev-libs/libcec-2.1 )
+	dev-libs/libpcre[cxx]
+	>=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
+	joystick? ( media-libs/libsdl2 )
+	>=media-libs/taglib-1.8
+	media-libs/libvorbis
+	media-libs/tiff
+	pulseaudio? ( media-sound/pulseaudio )
+	media-sound/wavpack
+	>=media-video/ffmpeg-2.4:=[encode]
+	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? (
+		!rpi? ( virtual/opengl media-libs/mesa[gles2] )
+		rpi? ( media-libs/raspberrypi-userland )
+	)
+	vaapi? ( x11-libs/libva[opengl] )
+	vdpau? (
+		|| ( x11-libs/libvdpau >=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/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
+	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}"/${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
+
+	# 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))
+
+	local myconf
+	use rpi && myconf='--with-platform=raspberry-pi'
+
+	econf \
+		--docdir=/usr/share/doc/${PF} \
+		--disable-ccache \
+		--disable-optimizations \
+		--with-ffmpeg=shared \
+		$(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 sftp ssh) \
+		$(use_enable usb libusb) \
+		$(use_enable test gtest) \
+		$(use_enable upnp) \
+		$(use_enable vaapi) \
+		$(use_enable vdpau) \
+		$(use_enable webserver) \
+		$(use_enable X x11) \
+		$(use_enable xrandr) \
+		${myconf}
+}
+
+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
+}

diff --git a/media-tv/kodi/metadata.xml b/media-tv/kodi/metadata.xml
new file mode 100644
index 0000000..af5099e
--- /dev/null
+++ b/media-tv/kodi/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>xbox</herd>
+<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>
+</use>
+<upstream>
+ <bugs-to>http://trac.kodi.tv/</bugs-to>
+ <remote-id type="github">xbmc/xbmc</remote-id>
+</upstream>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-02-26 16:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-26 16:43 [gentoo-commits] dev/leio:master commit in: media-tv/kodi/, media-tv/kodi/files/ Mart Raudsepp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox