From acca99b0f5c89cc3d5d9dc8df9df3d46282a338d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 18 Mar 2014 21:19:07 +0000
Subject: xbmc: update to 12.3. refs #962

---
 abs/extra/xbmc/ChangeLog               | 69 ----------------------------------
 abs/extra/xbmc/FEH.sh                  | 23 ------------
 abs/extra/xbmc/PKGBUILD                | 38 ++++++++++++-------
 abs/extra/xbmc/__changelog             |  4 +-
 abs/extra/xbmc/polkit.rules            | 12 ++++++
 abs/extra/xbmc/snapstream_remote.patch | 55 ---------------------------
 abs/extra/xbmc/xbmc.install            | 14 ++++---
 abs/extra/xbmc/xbmc.service            |  9 +++--
 8 files changed, 52 insertions(+), 172 deletions(-)
 delete mode 100644 abs/extra/xbmc/ChangeLog
 delete mode 100755 abs/extra/xbmc/FEH.sh
 create mode 100644 abs/extra/xbmc/polkit.rules
 delete mode 100644 abs/extra/xbmc/snapstream_remote.patch

diff --git a/abs/extra/xbmc/ChangeLog b/abs/extra/xbmc/ChangeLog
deleted file mode 100644
index 66ae97e..0000000
--- a/abs/extra/xbmc/ChangeLog
+++ /dev/null
@@ -1,69 +0,0 @@
-2010-04-10 BlackEagle <ike DOT devolder AT gmail DOT com>
-	* 9.11-15 :
-	Made it back compliant with FHS ( thx pierre for pointing that out )
-	namcap checked and modified to fit its needs as far as it was possible
-
-2009-03-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-10 :
-	Try and fix some autoconf issues (thanks Gentoo ebuild).
-
-2009-02-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-9 :
-	Replace some libtool 'ltmain.sh' scripts with the one from libtool 
-	installed with Arch.
-	Make sure XBMCTex isn't linked to OpenGL libraries or it will segfault
-	on systems using the nvidia driver.
-	
-2009-01-30 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-8 :
-	Fix some include's so that gcc 4.3.x is happy, shouldn't complain about
-	undefined '::realloc' anymore.
-	Remove Mac OS X specific files.
-	
-2009-01-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-7 :
-	Moved libcdio, pmount, smbclient and unrar to optdepends.
-	Removed unneeded dependency on sdl_gfx.
-	Removed dependency on libpng as sdl_image depends on it.
-
-2008-12-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-6 :
-	Added libpng to dependency list.
-	Added gawk to dependency list.
-	Removed '--disable-mms' and '--enable-halmount' configure flags as they
-	are not mentioned as supported in the configure script.
-	
-2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-5 :
-	Added libmad to the dependency list.
-	Streamripper 1.64.0+ does not include tre anymore, removed streamripper
-	and added tre instead.
-	Removed subversion from makedepends.
-	
-2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-4 :
-	Fix permissions for some more scripts, ffmpeg/texi2doc.pl should not
-	fail any longer.
-
-2008-12-05 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-3 :
-	Added lirc to the optdepends array.
-	
-2008-11-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-2 :
-	Added install file which informs users that a display depth of at
-	least 24-bit is required.
-
-2008-11-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
-	* 8.10-1 :
-	Initial package, based on previous work by Zeqadious.
diff --git a/abs/extra/xbmc/FEH.sh b/abs/extra/xbmc/FEH.sh
deleted file mode 100755
index db8c692..0000000
--- a/abs/extra/xbmc/FEH.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-RETVAL=0
-
-if [[ -z $(glxinfo | grep "direct rendering.*Yes" | uniq) ]]; then
-  echo "XBMC needs hardware accelerated OpenGL rendering."
-  echo "Install an appropriate graphics driver."
-  echo 
-  echo "Please consult XBMC Wiki for supported hardware"
-  echo "http://xbmc.org/wiki/?title=Supported_hardware"
-  echo
-  RETVAL=1
-fi
-
-if [[ -z $(xdpyinfo | grep "depth of root.*24" | uniq) ]]; then
-  echo "XBMC cannot run unless the"
-  echo "screen color depth is at least 24 bit."
-  echo
-  echo "Please reconfigure your screen."
-  RETVAL=1
-fi
-
-exit ${RETVAL}
diff --git a/abs/extra/xbmc/PKGBUILD b/abs/extra/xbmc/PKGBUILD
index 6134074..6b626c6 100644
--- a/abs/extra/xbmc/PKGBUILD
+++ b/abs/extra/xbmc/PKGBUILD
@@ -8,8 +8,9 @@
 _prefix=/usr
 
 pkgname=xbmc
-pkgver=12.2
-pkgrel=7
+pkgver=12.3
+_codename=Frodo
+pkgrel=12
 pkgdesc="A software media player and entertainment hub for digital media"
 arch=('i686' 'x86_64')
 url="http://xbmc.org"
@@ -25,19 +26,27 @@ makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libvdpau' 'libc
 optdepends=('libcec: support for Pulse-Eight USB-CEC adapter'
 	    'lirc: remote controller support'
 	    'udisks: automount external drives'
-	    'upower: used to trigger suspend functionality'
+	    'upower: used to trigger power management functionality'
 	    'unrar: access compressed files without unpacking them'
 	    'xorg-xinit: autostart xbmc')
 install="${pkgname}.install"
 source=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz"
-	"xbmc.service" "xbmc.sh" "xbmc_lib.conf")
+	"xbmc.service" "xbmc.sh" "xbmc_lib.conf"
+	"polkit.rules"
+	"libass.patch::https://bugs.archlinux.org/index.php?getfile=11285")
 
-build() {
-  cd "${srcdir}/xbmc-$pkgver"
+prepare() {
+  cd "${srcdir}/xbmc-$pkgver-$_codename"
+
+  patch -p0 <$srcdir/libass.patch
 
   # fix lsb_release dependency
   sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
 #  sed -i -e 's:#include <libsmbclient.h>:#include <samba-4.0/libsmbclient.h>:' xbmc/filesystem/{SmbFile,SMBDirectory}.cpp
+}
+
+build() {
+  cd "${srcdir}/xbmc-$pkgver-$_codename"
 
   # Bootstrapping XBMC
   ./bootstrap
@@ -81,7 +90,7 @@ build() {
 }
 
 package() {
-  cd "${srcdir}/xbmc-$pkgver"
+  cd "${srcdir}/xbmc-$pkgver-$_codename"
   # Running make install
   make DESTDIR="${pkgdir}" install
 
@@ -93,8 +102,8 @@ package() {
   sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/    \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc"
 
   # Tools
-  install -D -m 0755 "${srcdir}/xbmc-$pkgver/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr"
-  install -D -m 0755 "${srcdir}/xbmc-$pkgver/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/"
+  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
   install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${pkgname}"
@@ -108,11 +117,14 @@ package() {
   #add in xbmc_lib.conf
   install -D -m0744 ${srcdir}/xbmc_lib.conf ${pkgdir}/etc/gen_lib_xml.d/xbmc_lib.conf
 
-  # systemd stuff
   install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service
+#  install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-xbmc.rules
+#  chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
 }
 # vim:set ts=2 sw=2 et:
-md5sums=('489f3877decae4e265ece54f9eaef0ba'
-         '76fae229ebc3bcfaab7e7f27e4fb51f5'
+md5sums=('7ae385ebf8e5cfcb917393235e6efbdb'
+         '03e9a33e15714d1fd1f2a516abea5393'
          'e48a3d87984669ef206e902bc8290ff9'
-         '71176cb0e5aaa230d7c9634c37245bfb')
+         '71176cb0e5aaa230d7c9634c37245bfb'
+         '02f7951824ee13103344f36009c0ef2a'
+         '7fd6399d2ffbdf06b724f0cc2efa0784')
diff --git a/abs/extra/xbmc/__changelog b/abs/extra/xbmc/__changelog
index 10c3bd8..c01c1ea 100644
--- a/abs/extra/xbmc/__changelog
+++ b/abs/extra/xbmc/__changelog
@@ -1,4 +1,2 @@
-7/5/11 - chw - Removed libpulse and lsb-release dep.
-8/8/11 - mjh - Add patch for Snapstream Firefly remote. Ref #728
 8/23/12 -jm -Added xbmc_lib.conf, this file goes in /etc/gen_lib_xml.d/
-
+brf - keep --disable-external-ffmpeg instead of using external ffmpeg
diff --git a/abs/extra/xbmc/polkit.rules b/abs/extra/xbmc/polkit.rules
new file mode 100644
index 0000000..4b6d0fd
--- /dev/null
+++ b/abs/extra/xbmc/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/abs/extra/xbmc/snapstream_remote.patch b/abs/extra/xbmc/snapstream_remote.patch
deleted file mode 100644
index c379b81..0000000
--- a/abs/extra/xbmc/snapstream_remote.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- xbmc-10.1/system/Lircmap.xml.orig	2011-03-05 03:33:37.000000000 +0000
-+++ xbmc-10.1/system/Lircmap.xml	2011-08-09 00:16:44.000000000 +0000
-@@ -332,6 +332,52 @@
- 		<yellow>Yellow</yellow>
- 		<blue>Blue</blue>
- 	</remote>
-+
-+        <remote device="Snapstream_Firefly">
-+                <pause>PAUSE</pause>
-+                <stop>STOP</stop>
-+                <forward>FWD</forward>
-+                <reverse>REW</reverse>
-+                <left>LEFT</left>
-+                <right>RIGHT</right>
-+                <up>UP</up>
-+                <down>DOWN</down>
-+                <select>OK</select>
-+                <pageplus>CH+</pageplus>
-+                <pageminus>CH-</pageminus>
-+                <back>EXIT</back>
-+                <menu>MENU</menu>
-+                <title>PLAY</title>
-+                <info>INFO</info>
-+                <skipplus>NEXT</skipplus>
-+                <skipminus>PREV</skipminus>
-+                <display>MAXI</display>
-+                <start>FIREFLY</start>
-+                <record>REC</record>
-+                <volumeplus>VOL+</volumeplus>
-+                <volumeminus>VOL-</volumeminus>
-+                <mute>MUTE</mute>
-+                <power>CLOSE</power>
-+                <myvideo>VIDEO</myvideo>
-+                <mymusic>MUSIC</mymusic>
-+                <mypictures>PHOTOS</mypictures>
-+                <mytv>TV</mytv>
-+                <one>1</one>
-+                <two>2</two>
-+                <three>3</three>
-+                <four>4</four>
-+                <five>5</five>
-+                <six>6</six>
-+                <seven>7</seven>
-+                <eight>8</eight>
-+                <nine>9</nine>
-+                <zero>0</zero>
-+                <mytv>A</mytv>
-+                <mymusic>B</mymusic>
-+                <mypictures>C</mypictures>
-+                <myvideo>D</myvideo>
-+        </remote>
-+
- 	<remote device="TwinHanRemote">
- 		<display>fullscreen</display>
- 		<power>power</power>
diff --git a/abs/extra/xbmc/xbmc.install b/abs/extra/xbmc/xbmc.install
index 6490483..8076fe2 100644
--- a/abs/extra/xbmc/xbmc.install
+++ b/abs/extra/xbmc/xbmc.install
@@ -1,10 +1,11 @@
 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 xbmc
-  getent passwd xbmc > /dev/null || useradd -m -d /var/lib/xbmc -g xbmc xbmc
-  usermod -a -G xbmc,audio,video,power,network,optical,storage,disk xbmc
-  gen_lib_xml.py
+  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() {
@@ -12,6 +13,7 @@ post_upgrade() {
 }
 
 post_remove() {
-  post_install $1
-  echo "You may want to remove xbmc user and group"
+  [[ $(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/abs/extra/xbmc/xbmc.service b/abs/extra/xbmc/xbmc.service
index 431582f..050460f 100644
--- a/abs/extra/xbmc/xbmc.service
+++ b/abs/extra/xbmc/xbmc.service
@@ -1,13 +1,16 @@
 [Unit]
 Description = Starts instance of XBMC using xinit
-After = remote-fs.target
+After = systemd-user-sessions.service
+Conflicts=getty@tty7.service
 
 [Service]
 User = xbmc
 Group = xbmc
+PAMName=login
 Type = simple
-ExecStart = /usr/bin/xinit /usr/bin/xbmc-standalone -- :0 -nolisten tcp
-Restart = always
+TTYPath=/dev/tty7
+ExecStart = /usr/bin/xinit /usr/bin/dbus-launch /usr/bin/xbmc-standalone -l /run/lirc/lircd -- :0 -nolisten tcp vt7
+Restart = on-abort
 
 [Install]
 WantedBy = multi-user.target
-- 
cgit v0.12

