Created attachment 348886 [details] xbmc-12.2.ebuild I'd like to submit a new ebuild for xbmc-12.2. It is based on xbmc-12.1.ebuild (uses the same patches). I only added some additional use flags to have control over some more configure options. There is also a new "raspberrypi" use flag such that xbmc builds and runs on a raspberry pi. Question: For the raspberry pi, I wanted to configure xbmc with --disable-x11 --enable-rsxs but the rsxs use flag requires the X use flag, so I had to manually overwrite the --enable-x11 configure option for the raspberry pi. Where does the dependency come from?
Comment on attachment 348886 [details] xbmc-12.2.ebuild --- xbmc-12.1-r1.ebuild 2013-04-23 03:33:23.000000000 +0200 +++ - 2013-05-22 16:00:23.139572318 +0200 @@ -1,15 +1,15 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.1-r1.ebuild,v 1.2 2013/04/23 01:33:23 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.2.ebuild,v 1.4 2013/04/01 06:35:52 vapier Exp $ -EAPI=5 +EAPI="4" # 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" +PYTHON_DEPEND="2:2.6" +PYTHON_USE_WITH=sqlite -inherit eutils python-single-r1 multiprocessing autotools +inherit eutils python multiprocessing autotools flag-o-matic case ${PV} in 9999) @@ -27,32 +27,31 @@ *) MY_P=${P/_/-*_} SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz" - KEYWORDS="" + KEYWORDS="~amd64 ~x86" ;; esac -# libav patchset -SRC_URI+=" http://dev.gentooexperimental.org/~scarabeus/xbmc-12-libav.tar.xz" - DESCRIPTION="XBMC is a free and open source media-player and entertainment hub" HOMEPAGE="http://xbmc.org/" LICENSE="GPL-2" SLOT="0" -IUSE="airplay alsa altivec avahi bluetooth bluray caps cec css debug gles goom java joystick midi mysql neon nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi vdpau webserver +X +xrandr" +IUSE="airplay alsa altivec avahi bluetooth bluray caps cec +crystalhd css debug gles goom java joystick midi mysql +neon nfs non-free +opengl +openmax optical-drive profile +projectm pulseaudio pvr raspberrypi +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi +vdadecoder vdpau +vtbdecoder webserver +X +xrandr" + REQUIRED_USE=" pvr? ( mysql ) rsxs? ( X ) - X? ( sdl ) xrandr? ( X ) + raspberrypi? ( !neon + !alsa ) " -COMMON_DEPEND="${PYTHON_DEPS} - app-arch/bzip2 +COMMON_DEPEND="app-arch/bzip2 app-arch/unzip app-arch/zip app-i18n/enca airplay? ( app-pda/libplist ) + >=dev-lang/python-2.4 dev-libs/boost dev-libs/fribidi dev-libs/libcdio[-minimal] @@ -61,7 +60,7 @@ >=dev-libs/lzo-2.04 dev-libs/tinyxml[stl] dev-libs/yajl - dev-python/simplejson[${PYTHON_USEDEP}] + dev-python/simplejson media-libs/alsa-lib media-libs/flac media-libs/fontconfig @@ -92,8 +91,8 @@ media-libs/tiff pulseaudio? ( media-sound/pulseaudio ) media-sound/wavpack - || ( media-libs/libpostproc media-video/ffmpeg ) - >=virtual/ffmpeg-9[encode] + || ( media-libs/libpostproc <media-video/libav-0.8.2-r1 media-video/ffmpeg ) + >=virtual/ffmpeg-0.6[encode] rtmp? ( media-video/rtmpdump ) avahi? ( net-dns/avahi ) nfs? ( net-fs/libnfs ) @@ -134,12 +133,14 @@ X? ( x11-proto/xineramaproto ) dev-util/cmake x86? ( dev-lang/nasm ) - java? ( virtual/jre )" + java? ( virtual/jre ) + raspberrypi? ( media-libs/raspberrypi-userland )" S=${WORKDIR}/${MY_P} pkg_setup() { - python-single-r1_pkg_setup + python_set_active_version 2 + python_pkg_setup } src_unpack() { @@ -149,16 +150,10 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617 - epatch "${FILESDIR}"/${PN}-12.0-system-projectm.patch + # The mythtv patch touches configure.ac, so force a regen rm -f configure - # libav patchset - EPATCH_FORCE="yes" \ - EPATCH_SOURCE="${WORKDIR}" \ - EPATCH_SUFFIX="patch" \ - epatch - # some dirs ship generated autotools, some dont multijob_init local d @@ -198,6 +193,22 @@ # Tweak autotool timestamps to avoid regeneration find . -type f -print0 | xargs -0 touch -r configure + + if use raspberrypi ; then + sed -i -e 's/USE_BUILDROOT=1/USE_BUILDROOT=0/' \ + -e 's/sudo //g' \ + -e 's/\/opt\//${S}\/opt\//g' tools/rbp/setup-sdk.sh + sed -i 's/TOOLCHAIN=\/usr\/local\/bcm-gcc/TOOLCHAIN=\/usr/' tools/rbp/setup-sdk.sh + sed -i 's/cd $(SOURCE); $(CONFIGURE)/#cd $(SOURCE); $(CONFIGURE)/' tools/rbp/depends/xbmc/Makefile + cd tools/TexturePacker/ + ln -s ../../xbmc/utils ../../xbmc/guilib ../../lib/libsquish/ ../../xbmc/linux/PlatformDefs.h ../../xbmc/config.h ./ + cd - + cd xbmc/utils + ln -s ../config.h + cd - + sh tools/rbp/setup-sdk.sh + make -C tools/rbp/depends/xbmc/ + fi } src_configure() { @@ -210,44 +221,66 @@ # Requiring java is asine #434662 export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + if use raspberrypi ; then + append-ldflags -L/opt/vc/lib + append-flags -I/opt/vc/include + fi + + local special_config + if use raspberrypi ; then + special_config="--with-platform=raspberry-pi \ + --enable-player=omxplayer \ + --enable-external-ffmpeg \ + --disable-x11" + else + special_config=$(use_enable X x11) + fi econf \ - --docdir=/usr/share/doc/${PF} \ - --disable-ccache \ - --disable-optimizations \ - --enable-external-libraries \ - --enable-gl \ - $(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 gles) \ - $(use_enable goom) \ - --disable-hal \ - $(use_enable joystick) \ - $(use_enable midi mid) \ - $(use_enable mysql) \ - $(use_enable neon) \ - $(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 upnp) \ - $(use_enable vaapi) \ - $(use_enable vdpau) \ - $(use_enable webserver) \ - $(use_enable X x11) \ - $(use_enable xrandr) + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --enable-external-libraries \ + $(use_enable raspberrypi optimizations) \ + ${special_config} \ + $(use_enable airplay) \ + $(use_enable alsa) \ + $(use_enable avahi) \ + $(use_enable bluray libbluray) \ + $(use_enable caps libcap) \ + $(use_enable cec libcec) \ + $(use_enable css dvdcss) \ + $(use_enable crystalhd) \ + $(use_enable debug) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(use_enable neon) \ + $(use_enable nfs) \ + $(use_enable non-free) \ + $(use_enable opengl gl) \ + $(use_enable openmax) \ + $(use_enable optical-drive) \ + $(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 upnp) \ + $(use_enable vaapi) \ + $(use_enable vdpau) \ + $(use_enable vdadecoder) \ + $(use_enable vtbdecoder) \ + $(use_enable webserver) \ + $(use_enable xrandr) + sed -i 's/-msse2//' lib/libsquish/Makefile + sed -i 's/-DSQUISH_USE_SSE=2//' lib/libsquish/Makefile } src_install() { @@ -257,8 +290,9 @@ domenu tools/Linux/xbmc.desktop newicon tools/Linux/xbmc-48x48.png xbmc.png - python_domodule tools/EventClients/lib/python/xbmcclient.py - python_newscript "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send + insinto "$(python_get_sitedir)" #309885 + doins tools/EventClients/lib/python/xbmcclient.py || die + newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die } pkg_postinst() {
*** This bug has been marked as a duplicate of bug 468518 ***
(In reply to comment #1) Here some mionor abrreviations. Did diff against xbmc.12.1.ebuild rather than xbmc.12.1-r1.ebuild since my changes build on xbmc.12.1.ebuild. --- /usr/portage/media-tv/xbmc/xbmc-12.1.ebuild 2013-04-01 09:01:21.000000000 +0200 +++ - 2013-05-23 11:29:10.911565118 +0200 @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.1.ebuild,v 1.4 2013/04/01 06:35:52 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.2.ebuild,v 1.4 2013/04/01 06:35:52 vapier Exp $ EAPI="4" @@ -9,7 +9,7 @@ PYTHON_DEPEND="2:2.6" PYTHON_USE_WITH=sqlite -inherit eutils python multiprocessing autotools +inherit eutils python multiprocessing autotools flag-o-matic case ${PV} in 9999) @@ -36,11 +36,13 @@ LICENSE="GPL-2" SLOT="0" -IUSE="airplay alsa altivec avahi bluetooth bluray caps cec css debug gles goom java joystick midi mysql neon nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi vdpau webserver +X +xrandr" +IUSE="airplay alsa altivec avahi bluetooth bluray caps cec +crystalhd css debug gles goom java joystick midi mysql +neon nfs non-free +opengl +openmax optical-drive profile +projectm pulseaudio pvr raspberrypi +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi +vdadecoder vdpau +vtbdecoder webserver +X +xrandr" REQUIRED_USE=" pvr? ( mysql ) rsxs? ( X ) xrandr? ( X ) + raspberrypi? ( !neon + !alsa ) " COMMON_DEPEND="app-arch/bzip2 @@ -130,7 +132,8 @@ X? ( x11-proto/xineramaproto ) dev-util/cmake x86? ( dev-lang/nasm ) - java? ( virtual/jre )" + java? ( virtual/jre ) + raspberrypi? ( media-libs/raspberrypi-userland )" S=${WORKDIR}/${MY_P} @@ -188,6 +191,18 @@ # Tweak autotool timestamps to avoid regeneration find . -type f -print0 | xargs -0 touch -r configure + + if use raspberrypi ; then + sed -i -e 's/USE_BUILDROOT=1/USE_BUILDROOT=0/' \ + -e 's/sudo //g' \ + -e 's/\/opt\//${S}\/opt\//g' tools/rbp/setup-sdk.sh + sed -i 's/TOOLCHAIN=\/usr\/local\/bcm-gcc/TOOLCHAIN=\/usr/' tools/rbp/setup-sdk.sh + sed -i 's/cd $(SOURCE); $(CONFIGURE)/#cd $(SOURCE); $(CONFIGURE)/' tools/rbp/depends/xbmc/Makefile + ln -s ${S}/xbmc/guilib ${S}/lib/libsquish ${S}/xbmc/linux/PlatformDefs.h ${S}/xbmc/config.h ${S}/tools/TexturePacker/ + ln -s ${S}/xbmc/config.h ${S}/xbmc/utils/ + sh tools/rbp/setup-sdk.sh + make -C tools/rbp/depends/xbmc/ + fi } src_configure() { @@ -200,44 +215,66 @@ # Requiring java is asine #434662 export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + if use raspberrypi ; then + append-ldflags -L/opt/vc/lib + append-flags -I/opt/vc/include + fi + + local special_config + if use raspberrypi ; then + special_config="--with-platform=raspberry-pi \ + --enable-player=omxplayer \ + --enable-external-ffmpeg \ + --disable-x11" + else + special_config=$(use_enable X x11) + fi econf \ - --docdir=/usr/share/doc/${PF} \ - --disable-ccache \ - --disable-optimizations \ - --enable-external-libraries \ - --enable-gl \ - $(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 gles) \ - $(use_enable goom) \ - --disable-hal \ - $(use_enable joystick) \ - $(use_enable midi mid) \ - $(use_enable mysql) \ - $(use_enable neon) \ - $(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 upnp) \ - $(use_enable vaapi) \ - $(use_enable vdpau) \ - $(use_enable webserver) \ - $(use_enable X x11) \ - $(use_enable xrandr) + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --enable-external-libraries \ + $(use_enable raspberrypi optimizations) \ + ${special_config} \ + $(use_enable airplay) \ + $(use_enable alsa) \ + $(use_enable avahi) \ + $(use_enable bluray libbluray) \ + $(use_enable caps libcap) \ + $(use_enable cec libcec) \ + $(use_enable css dvdcss) \ + $(use_enable crystalhd) \ + $(use_enable debug) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(use_enable neon) \ + $(use_enable nfs) \ + $(use_enable non-free) \ + $(use_enable opengl gl) \ + $(use_enable openmax) \ + $(use_enable optical-drive) \ + $(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 upnp) \ + $(use_enable vaapi) \ + $(use_enable vdpau) \ + $(use_enable vdadecoder) \ + $(use_enable vtbdecoder) \ + $(use_enable webserver) \ + $(use_enable xrandr) + sed -i 's/-msse2//' lib/libsquish/Makefile + sed -i 's/-DSQUISH_USE_SSE=2//' lib/libsquish/Makefile } src_install() {
(In reply to comment #3) patches need to be posted as attachments, not as comments. posting as comments corrupts the output and makes them largely useless.