diff options
Diffstat (limited to 'libre/xbmc-libre')
-rw-r--r-- | libre/xbmc-libre/PKGBUILD | 139 | ||||
-rw-r--r-- | libre/xbmc-libre/enable-external-ffmpeg.patch | 100 | ||||
-rw-r--r-- | libre/xbmc-libre/polkit.rules | 12 | ||||
-rw-r--r-- | libre/xbmc-libre/xbmc.install | 19 | ||||
-rw-r--r-- | libre/xbmc-libre/xbmc.service | 16 |
5 files changed, 286 insertions, 0 deletions
diff --git a/libre/xbmc-libre/PKGBUILD b/libre/xbmc-libre/PKGBUILD new file mode 100644 index 000000000..2b8631f1b --- /dev/null +++ b/libre/xbmc-libre/PKGBUILD @@ -0,0 +1,139 @@ +# $Id: PKGBUILD 110797 2014-05-07 10:38:28Z bpiotrowski $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Brad Fanella <bradfanella@archlinux.us> +# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com> +# Contributor: Zeqadious <zeqadious.at.gmail.dot.com> +# Contributor: BlackIkeEagle < ike DOT devolder AT gmail DOT com > +# Maintainer (Parabola): André Silva <emulatorman@parabola.nu> + +_prefix=/usr + +_pkgname=xbmc +pkgname=xbmc-libre +pkgver=13.0 +_codename=Gotham +pkgrel=2.1 +pkgdesc="A software media player and entertainment hub for digital media (Gotham version), without nonfree addons and unrar support" +arch=('i686' 'x86_64') +url="http://xbmc.org" +license=('GPL' 'custom') +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver +depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' + 'libpng' 'libcdio' 'yajl' 'libmysqlclient' 'libjpeg-turbo' 'libsamplerate' + 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' + 'python2' 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' + 'unzip' 'mesa-demos' 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' + 'avahi' 'bluez-libs' 'tinyxml' 'libcap' 'swig' 'taglib' 'libpulse' + 'java-runtime-headless' 'glu' 'mesa' 'shairplay' 'libxslt' 'ffmpeg') +makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libvdpau' 'libcec' + 'udisks' 'upower' 'mesa' 'doxygen' 'swig' 'java-environment') +optdepends=('libcec: support for Pulse-Eight USB-CEC adapter' + 'lirc: remote controller support' + 'udisks: automount external drives' + 'upower: used to trigger power management functionality' + 'xorg-xinit: autostart xbmc' + 'pulseaudio: for pulseaudio support') +install="${_pkgname}.install" +mksource=( + "xbmc-$pkgver.tar.gz::https://github.com/xbmc/xbmc/archive/13.0-Gotham.tar.gz" + ) +source=( + "https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz" + "xbmc.service" + "polkit.rules" + "enable-external-ffmpeg.patch" + ) +mkmd5sums=('54fafd985b5209859ba6faeb50b8f142') +md5sums=('87083f6d9be2861dfc8bddca959e3880' + 'de331663cc8adc94f2fe44a262cfff58' + '02f7951824ee13103344f36009c0ef2a' + '9f9b41cfc1e21b1e7d0bb10d6e85b3c6') + +mksource() { + cd "${srcdir}/xbmc-$pkgver-$_codename" + + msg2 "remove nonfree unRAR utility files from the source" + rm -rv lib/UnrarXLib +} + +prepare() { + cd "${srcdir}/xbmc-$pkgver-$_codename" + patch -p1 -i ../enable-external-ffmpeg.patch + + msg2 "Use addons.xml from Parabola server (without nonfree addons support)" + sed -i -e 's|mirrors[.]xbmc[.]org/addons/gotham/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre/addons/gotham/addons.xml|' addons/repository.xbmc.org/addon.xml +} + +build() { + cd "${srcdir}/xbmc-$pkgver-$_codename" + + # Bootstrapping XBMC + ./bootstrap + + # Configuring XBMC + export PYTHON_VERSION=2 # external python v2 + ./configure --prefix=$_prefix --exec-prefix=$_prefix \ + --disable-debug \ + --enable-optimizations \ + --enable-gl \ + --enable-sdl \ + --enable-vaapi \ + --enable-vdpau \ + --enable-xvba \ + --enable-joystick \ + --enable-xrandr \ + --enable-rsxs \ + --enable-projectm \ + --enable-x11 \ + --enable-rtmp \ + --enable-samba \ + --enable-nfs \ + --enable-afpclient \ + --enable-airplay \ + --enable-airtunes \ + --enable-ffmpeg-libvorbis \ + --enable-dvdcss \ + --disable-hal \ + --enable-avahi \ + --enable-webserver \ + --enable-optical-drive \ + --enable-libbluray \ + --enable-texturepacker \ + --enable-udev \ + --enable-libusb \ + --enable-libcec \ + --enable-external-libraries \ + --disable-non-free + + # Now (finally) build + make +} + +package() { + cd "${srcdir}/xbmc-$pkgver-$_codename" + # Running make install + make DESTDIR="${pkgdir}" install + + # run feh with python2 + sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc + + # Tools + msg2 "Tools" + install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr" + install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/" + + # Licenses + msg2 "Copy licenses" + install -dm755 ${pkgdir}${_prefix}/share/licenses/${_pkgname} + for licensef in LICENSE.GPL copying.txt; do + mv ${pkgdir}${_prefix}/share/doc/xbmc/${licensef} \ + ${pkgdir}${_prefix}/share/licenses/${_pkgname} + done + + # install systemd service + install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service + install -Dm0644 $srcdir/polkit.rules $pkgdir/etc/polkit-1/rules.d/10-xbmc.rules +} +# vim:set ts=2 sw=2 et: diff --git a/libre/xbmc-libre/enable-external-ffmpeg.patch b/libre/xbmc-libre/enable-external-ffmpeg.patch new file mode 100644 index 000000000..2bc1aaf03 --- /dev/null +++ b/libre/xbmc-libre/enable-external-ffmpeg.patch @@ -0,0 +1,100 @@ +diff -rupN a/configure.in b/configure.in +--- a/configure.in 2014-05-03 21:03:25.000000000 +0000 ++++ b/configure.in 2014-05-07 09:56:30.039177391 +0000 +@@ -600,7 +600,7 @@ PKG_PROG_PKG_CONFIG + MAKE="${MAKE:-make}" + OBJDUMP="${OBJDUMP:-objdump}" + +-use_external_ffmpeg=no ++use_external_ffmpeg=yes + use_static_ffmpeg=no + + # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os +@@ -632,7 +632,7 @@ case $host in + use_arch="x86" + use_cpu="i686" + fi +- use_static_ffmpeg=yes ++ use_static_ffmpeg=no + ;; + x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*) + ARCH="x86_64-linux" +@@ -640,7 +640,7 @@ case $host in + use_arch="x86_64" + use_cpu="x86_64" + fi +- use_static_ffmpeg=yes ++ use_static_ffmpeg=no + ;; + i386-*-freebsd*) + ARCH="x86-freebsd" +@@ -696,7 +696,7 @@ case $host in + use_sdl=no + use_x11=no + use_wayland=no +- use_static_ffmpeg=yes ++ use_static_ffmpeg=no + ;; + arm*-*linux-android*) + target_platform=target_android +diff -rupN a/lib/DllAvCodec.h b/lib/DllAvCodec.h +--- a/lib/DllAvCodec.h 2014-05-03 21:03:25.000000000 +0000 ++++ b/lib/DllAvCodec.h 2014-05-07 10:10:06.298165915 +0000 +@@ -43,6 +43,7 @@ extern "C" { + + #if (defined USE_EXTERNAL_FFMPEG) + #include <libavcodec/avcodec.h> ++ #include <libavutil/frame.h> + #else + #include "libavcodec/avcodec.h" + #endif +diff -rupN a/lib/DllAvUtil.h b/lib/DllAvUtil.h +--- a/lib/DllAvUtil.h 2014-05-03 21:03:25.000000000 +0000 ++++ b/lib/DllAvUtil.h 2014-05-07 10:17:31.415798448 +0000 +@@ -31,33 +31,19 @@ + #endif + + extern "C" { +-#if (defined USE_EXTERNAL_FFMPEG) +- #include <libavutil/avutil.h> +- // for av_get_default_channel_layout +- #include <libavutil/audioconvert.h> +- #include <libavutil/crc.h> +- #include <libavutil/fifo.h> +- // for LIBAVCODEC_VERSION_INT: +- #include <libavcodec/avcodec.h> +- // for enum AVSampleFormat +- #include <libavutil/samplefmt.h> +- #include <libavutil/opt.h> +- #include <libavutil/mem.h> +- #include <libavutil/mathematics.h> +- #if (defined USE_LIBAV_HACKS) +- #include "xbmc-libav-hacks/libav_hacks.h" +- #endif +-#else +- #include "libavutil/avutil.h" +- //for av_get_default_channel_layout +- #include "libavutil/audioconvert.h" +- #include "libavutil/crc.h" +- #include "libavutil/opt.h" +- #include "libavutil/mem.h" +- #include "libavutil/fifo.h" +- // for enum AVSampleFormat +- #include "libavutil/samplefmt.h" +-#endif ++#include <libavutil/avutil.h> ++#include <libavutil/frame.h> ++// for av_get_default_channel_layout ++#include <libavutil/audioconvert.h> ++#include <libavutil/crc.h> ++#include <libavutil/fifo.h> ++// for LIBAVCODEC_VERSION_INT: ++#include <libavcodec/avcodec.h> ++// for enum AVSampleFormat ++#include <libavutil/samplefmt.h> ++#include <libavutil/opt.h> ++#include <libavutil/mem.h> ++#include <libavutil/mathematics.h> + } + + #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,29,100) diff --git a/libre/xbmc-libre/polkit.rules b/libre/xbmc-libre/polkit.rules new file mode 100644 index 000000000..4b6d0fda0 --- /dev/null +++ b/libre/xbmc-libre/polkit.rules @@ -0,0 +1,12 @@ +polkit.addRule(function(action, subject) { + if (subject.user == "xbmc") { + polkit.log("action=" + action); + polkit.log("subject=" + subject); + if (action.id.indexOf("org.freedesktop.login1.") == 0) { + return polkit.Result.YES; + } + if (action.id.indexOf("org.freedesktop.udisks.") == 0) { + return polkit.Result.YES; + } + } +}); diff --git a/libre/xbmc-libre/xbmc.install b/libre/xbmc-libre/xbmc.install new file mode 100644 index 000000000..8076fe2d3 --- /dev/null +++ b/libre/xbmc-libre/xbmc.install @@ -0,0 +1,19 @@ +post_install() { + [[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor + [[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications + getent group xbmc > /dev/null || groupadd -r xbmc + getent passwd xbmc > /dev/null || useradd -r -m -d /var/lib/xbmc -g xbmc xbmc + usermod -a -G xbmc,audio,video,network,optical xbmc + mkdir -p var/lib/xbmc + chown -R xbmc:xbmc var/lib/xbmc +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + [[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor + [[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications + getent passwd xbmc > /dev/null && userdel xbmc +} diff --git a/libre/xbmc-libre/xbmc.service b/libre/xbmc-libre/xbmc.service new file mode 100644 index 000000000..d36ddb05a --- /dev/null +++ b/libre/xbmc-libre/xbmc.service @@ -0,0 +1,16 @@ +[Unit] +Description = Starts instance of XBMC using xinit +After = systemd-user-sessions.service +Conflicts=getty@tty7.service + +[Service] +User = xbmc +Group = xbmc +PAMName=login +Type = simple +TTYPath=/dev/tty7 +ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/xbmc-standalone -l /run/lirc/lircd -- :0 -nolisten tcp vt7 +Restart = on-abort + +[Install] +WantedBy = multi-user.target |