summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre')
-rw-r--r--libre/xbmc-libre/PKGBUILD139
-rw-r--r--libre/xbmc-libre/enable-external-ffmpeg.patch100
-rw-r--r--libre/xbmc-libre/polkit.rules12
-rw-r--r--libre/xbmc-libre/xbmc.install19
-rw-r--r--libre/xbmc-libre/xbmc.service16
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