From 62cb29a6151a9aacb0300c0681b3bc45a92ec0c2 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Thu, 14 May 2009 19:09:13 -0400
Subject: First cut at XBMC (svn with vdpau)

---
 abs/extra-testing/community/xbmc-svn/CHANGELOG     |  56 ++++++++++
 abs/extra-testing/community/xbmc-svn/PKGBUILD      | 124 +++++++++++++++++++++
 .../community/xbmc-svn/libcurl-not-in-lib64.patch  |  13 +++
 .../xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch     |  13 +++
 .../community/xbmc-svn/xbmc-safe-fullscreen.patch  |  23 ++++
 .../community/xbmc-svn/xbmc-svn.install            |   9 ++
 6 files changed, 238 insertions(+)
 create mode 100644 abs/extra-testing/community/xbmc-svn/CHANGELOG
 create mode 100644 abs/extra-testing/community/xbmc-svn/PKGBUILD
 create mode 100644 abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
 create mode 100644 abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch
 create mode 100644 abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
 create mode 100644 abs/extra-testing/community/xbmc-svn/xbmc-svn.install

diff --git a/abs/extra-testing/community/xbmc-svn/CHANGELOG b/abs/extra-testing/community/xbmc-svn/CHANGELOG
new file mode 100644
index 0000000..3db76d1
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/CHANGELOG
@@ -0,0 +1,56 @@
+xbmc-svn Change log:
+--------------------
+14th May 2009
+20231-2 - haggy: another shot in the dark to fix that damn goom compilation error
+
+13th May 2009
+20231 - haggy: smoothvideo!
+
+12th May 2009
+20172 - haggy: a shot in the dark: try another autoreconf inside goom and see if it helps.
+
+11th May 2009
+20149 - haggy: pushed rev, removed 'hitting-o-breaks...'-patch - it got fixed in svn
+
+9th May 2009
+20101 - haggy: an updated PM3 skin made it into xbmc. added conflicts hint to this PKGBUILD
+
+8th May 2009
+20059 - haggy: minor push past 9.04, removed copying the source tree to a build tree which wastes space,
+               takes ages and stresses the hdd for no reason. instead we now use svn to revert to a 
+               clean build dir.
+
+5th May 2009
+19941 - rich: heaps more tickets closed, Mexican translation
+
+30th April 2009
+19841 - haggy: lots of closed tickets worth a release, removed xsession patch
+
+27th April 2009
+19753 - haggy: added patch for xsession file breaking installation into fakeroot.
+
+22nd April 2009
+19602 - richy: version bump to address problem with python scripts and plugins
+
+20th April 2009
+19550 - haggy: pushed rev, some .mov fixes and better i18n in xbmc
+
+17th April 2009
+19517 - haggy: pushed rev, re-added installfile
+19516-2- richy: Added back autoreconf -vif in libdvdcss - still required for some folk (me)
+19516 - haggy: pushed rev, moved patches to patchfiles, added 'safe fullscreen patch', several cleanups
+
+15th April 2009
+19484 - haggy: pushed rev, re-enabled MAKEFLAGS to allow a more streamlined package
+
+14th April 2009
+19463 - haggy: added install file 
+19463 - richy: moved _svn* back inside build() on Haggy's suggestion. Let's try and avoid broken releases!
+19463 - richy: makedepends 'subversion' instead of 'svn' because that's what's in the guidelines
+19463 - richy: changed licens from ('GPL' 'custom') to ('GPL', 'LGPL') - See: http://xbmc.org/about/
+
+13th April 2009 - initial upload to AUR, tested on 32bit and 64bit.
+19444 - richy: Moved _svn* outside of build so that users get the latest SVN.
+19444 - richy: Added a symlink for XBMCtex to usr/bin/XBMCtex
+19444 - richy: Moved libcdio into depends from opt-depends - right now it is a dependency.
+
diff --git a/abs/extra-testing/community/xbmc-svn/PKGBUILD b/abs/extra-testing/community/xbmc-svn/PKGBUILD
new file mode 100644
index 0000000..878e2ae
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/PKGBUILD
@@ -0,0 +1,124 @@
+# Contributors : Richard Atkinson atkinsonr-at-gmail 
+#                Ralf Barth <archlinux dot org at haggy dot org>
+#
+# Original credits go to Edgar Hucek <gimli at dark-green dot com>
+# for his xbmc-vdpau-vdr PKGBUILD at https://archvdr.svn.sourceforge.net/svnroot/archvdr/trunk/archvdr/xbmc-vdpau-vdr/PKGBUILD
+
+pkgname=xbmc-svn
+pkgver=20231
+pkgrel=2
+pkgdesc="XBMC Media Center from SVN (linuxport branch)"
+provides=('xbmc')
+conflicts=('xbmc' 'xbmc-smoothvideo' 'xbmc-vdpau')
+arch=('i686' 'x86_64')
+url="http://xbmc.org"
+license=('GPL' 'LGPL')
+depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew' \
+         'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient' \
+         'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3' \
+         'tre' 'unzip' 'x-server' 'libcdio' 'libsamplerate')
+makedepends=('subversion' 'autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf' 
+             'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip')
+optdepends=('lirc: remote controller support'
+            'pmount: mount removable devices as normal user'
+            'smbclient: access windows shares'
+            'unrar: access compressed files without unpacking them')
+install=("${pkgname}.install")
+source=('libcurl-not-in-lib64.patch' \
+        'libfaad2-enable-AC_PROG_CXX.patch' \
+        'xbmc-safe-fullscreen.patch')
+noextract=('libcurl-not-in-lib64.patch' \
+           'libfaad2-enable-AC_PROG_CXX.patch' \
+           'xbmc-safe-fullscreen.patch')
+md5sums=('96636ee964e37b78ca62235eb10d29c1' \
+         '6864778d6adc3ccc79130c294f2fffd9' \
+         'c4d53522773846d8670884cc38f94aa0')
+options=(makeflags)
+
+build() {
+	
+    _svntrunk=http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC
+    _svnmod=XBMC
+    _prefix=/usr
+
+    cd ${srcdir}/
+    if [ -d $_svnmod/.svn ]; then
+        msg "SVN tree found, reverting changes and updating to -r$pkgver"
+        (cd $_svnmod && svn revert --quiet -R . && svn up --quiet -r $pkgver) || return 1
+    else
+        msg "Checking out SVN tree of -r$pkgver"
+        svn co $_svntrunk --config-dir ./ --quiet -r $pkgver $_svnmod || return 1
+    fi
+    msg "Done. Starting make..."
+
+    # Apply patches
+    cd "$srcdir/$_svnmod"
+
+    # Experimental safe fullscreen patch from the forums (by motd2k)
+    msg "Patching with xbmc-safe-fullscreen.patch"
+    patch --quiet -p0 < "$srcdir/xbmc-safe-fullscreen.patch" || return 1
+
+    # Arch's libcurl lives in /usr/lib, not /usr/lib64 - fix the path:
+    msg "Patching with libcurl-not-in-lib64.patch" 
+    patch --quiet -p0 < "$srcdir/libcurl-not-in-lib64.patch" || return 1
+
+    # libfaad2 complains about a missing AC_PROG_CXX - add it and bootstrap:
+    msg "Patching with libfaad2-enable-AC_PROG_CXX.patch" 
+    patch --quiet -p0 < "$srcdir/libfaad2-enable-AC_PROG_CXX.patch" || return 1
+    autoreconf -vif xbmc/cores/dvdplayer/Codecs/libfaad2
+
+    # libass needs a bootstrap due to newer autotools in Arch Linux
+    autoreconf -vif xbmc/lib/libass
+
+    # Another autotools mismatch between Arch and Ubuntu (xbmc-linuxport is developed against Ubuntu)
+    autoreconf -vif "$srcdir/$_svnmod/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss"
+
+    # Goom also needs a fixup due to newer autotools
+    cd "$srcdir/$_svnmod/xbmc/visualizations/Goom/goom2k4-0"
+    aclocal
+    libtoolize --copy --force
+    ./autogen.sh --enable-static --with-pic
+    
+    # Configure XBMC
+    cd "$srcdir/$_svnmod"
+    make distclean
+    ./configure --prefix=${_prefix} \
+                --disable-debug --disable-pulse --enable-vdpau || return 1
+    
+    # Fix false negative detections of realloc that happens some times
+    if grep -q 'HAVE_REALLOC 0' config.h; then
+      sed -e 's|#define HAVE_REALLOC 0|#define HAVE_REALLOC 1|' \
+          -e 's|#define realloc rpl_realloc|/* #define realloc rpl_realloc */|' \
+          -i config.h || return 1
+    fi
+
+    # XBMCTex will segfault on systems with nvidia installed if linked to OpenGL
+    sed -e 's/-lGLU -lGLEW -lGL//' \
+        -i ${srcdir}/$_svnmod/tools/XBMCTex/Makefile
+
+    # Now (finally) build
+    make || return 1
+    make prefix=${pkgdir}${_prefix} install || return 1
+
+    # Install 
+    install -Dm755 ${srcdir}/$_svnmod/xbmc-xrandr \
+                   ${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr || return 1
+
+    install -Dm644 ${srcdir}/$_svnmod/tools/Linux/xbmc.desktop \
+                   ${pkgdir}${_prefix}/share/applications/xbmc.desktop || return 1
+
+    install -Dm644 ${srcdir}/$_svnmod/tools/Linux/xbmc.png \
+                   ${pkgdir}${_prefix}/share/pixmaps/xbmc.png || return 1
+
+    install -Dm755 ${srcdir}/$_svnmod/tools/XBMCTex/XBMCTex \
+                   ${pkgdir}${_prefix}/share/xbmc/tools/xbmctex || return 1
+
+    # Skins often use build.sh that looks for /usr/bin/XBMCTex
+    ln -s "${_prefix}/share/xbmc/tools/xbmctex" "$pkgdir/usr/bin/XBMCTex"
+
+    install -dm755 ${pkgdir}${_prefix}/share/licenses/${pkgname}
+    for licensef in LICENSE.GPL README.linux copying.txt; do
+        mv ${pkgdir}${_prefix}/share/xbmc/${licensef} \
+           ${pkgdir}${_prefix}/share/licenses/${pkgname} || return 1
+    done
+}
diff --git a/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
new file mode 100644
index 0000000..b89db5a
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
@@ -0,0 +1,13 @@
+Index: Makefile.include.in
+===================================================================
+--- Makefile.include.in	(revision 20149)
++++ Makefile.include.in	(working copy)
+@@ -24,7 +24,7 @@
+ 
+ ifeq (linux,$(findstring linux, $(ARCH)))
+ ifeq ($(ARCH), x86_64-linux)
+-	DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib64/libcurl.so.4\""
++	DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so.4\""
+ else
+ 	DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so.4\""
+ endif
diff --git a/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch b/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch
new file mode 100644
index 0000000..89d7497
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch
@@ -0,0 +1,13 @@
+Index: xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in
+===================================================================
+--- xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in	(revision 19486)
++++ xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in	(working copy)
+@@ -18,7 +18,7 @@
+ AC_PROG_CC
+ AC_PROG_CPP
+ dnl disable for mpeg4ip plugin
+-dnl AC_PROG_CXX
++AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
diff --git a/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch b/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
new file mode 100644
index 0000000..d112e52
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
@@ -0,0 +1,23 @@
+Index: xbmc/Application.cpp
+===================================================================
+--- xbmc/Application.cpp	(revision 20059)
++++ xbmc/Application.cpp	(working copy)
+@@ -873,6 +873,8 @@
+ #endif
+ 
+   // set GUI res and force the clear of the screen
++  if (g_guiSettings.GetBool("videoscreen.safefull"))
++    g_guiSettings.m_LookAndFeelResolution = AUTORES;
+   g_graphicsContext.SetVideoResolution(g_guiSettings.m_LookAndFeelResolution, TRUE, true);
+ 
+ #ifdef _WIN32PC
+@@ -949,6 +951,9 @@
+   time(&seconds);
+   srand((unsigned int)seconds);
+ 
++  if (g_guiSettings.GetBool("videoscreen.safefull"))
++    g_graphicsContext.ToggleFullScreenRoot();
++
+   return CXBApplicationEx::Create(hWnd);
+ }
+ 
diff --git a/abs/extra-testing/community/xbmc-svn/xbmc-svn.install b/abs/extra-testing/community/xbmc-svn/xbmc-svn.install
new file mode 100644
index 0000000..9316bc8
--- /dev/null
+++ b/abs/extra-testing/community/xbmc-svn/xbmc-svn.install
@@ -0,0 +1,9 @@
+post_install() {
+  echo ">> If XBMC won't start, but just segfaults, double check your X.Org config"
+  echo ">> so that your display depth is at least 24-bit. Eg: change "
+  echo ">> \"DefaultDepth 16\" under the \"Screen\" section so it says 24 instead"
+  echo ">> of 16."
+  /bin/true
+}
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12

