diff options
Diffstat (limited to 'libre/xbmc-libre')
-rw-r--r-- | libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch | 75 | ||||
-rw-r--r-- | libre/xbmc-libre/ChangeLog | 69 | ||||
-rw-r--r-- | libre/xbmc-libre/PKGBUILD | 152 | ||||
-rw-r--r-- | libre/xbmc-libre/enable-external-ffmpeg.patch | 100 |
4 files changed, 261 insertions, 135 deletions
diff --git a/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch b/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch new file mode 100644 index 000000000..20d8e0250 --- /dev/null +++ b/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch @@ -0,0 +1,75 @@ +From a58bcbb0a35ac8e26a880be477705d833330ecc5 Mon Sep 17 00:00:00 2001 +From: Jonathan Marshall <jmarshall@xbmc.org> +Date: Tue, 6 May 2014 19:40:17 +1200 +Subject: [PATCH 1/7] [rtmp] check m_rtmp for non-NULL - fixes crashes with + missing librtmp + +--- + .../dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp +index b02792a..93fc6f0 100644 +--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp ++++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp +@@ -104,7 +104,8 @@ CDVDInputStreamRTMP::~CDVDInputStreamRTMP() + m_sStreamPlaying = NULL; + + Close(); +- m_libRTMP.Free(m_rtmp); ++ if (m_rtmp) ++ m_libRTMP.Free(m_rtmp); + m_rtmp = NULL; + m_bPaused = false; + } +@@ -139,7 +140,7 @@ bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content) + m_sStreamPlaying = NULL; + } + +- if (!CDVDInputStream::Open(strFile, "video/x-flv")) ++ if (!m_rtmp || !CDVDInputStream::Open(strFile, "video/x-flv")) + return false; + + CSingleLock lock(m_RTMPSection); +@@ -181,7 +182,8 @@ void CDVDInputStreamRTMP::Close() + CSingleLock lock(m_RTMPSection); + CDVDInputStream::Close(); + +- m_libRTMP.Close(m_rtmp); ++ if (m_rtmp) ++ m_libRTMP.Close(m_rtmp); + + m_optionvalues.clear(); + m_eof = true; +@@ -190,6 +192,9 @@ void CDVDInputStreamRTMP::Close() + + int CDVDInputStreamRTMP::Read(uint8_t* buf, int buf_size) + { ++ if (!m_rtmp) ++ return -1; ++ + int i = m_libRTMP.Read(m_rtmp, (char *)buf, buf_size); + if (i < 0) + m_eof = true; +@@ -210,7 +215,7 @@ bool CDVDInputStreamRTMP::SeekTime(int iTimeInMsec) + CLog::Log(LOGNOTICE, "RTMP Seek to %i requested", iTimeInMsec); + CSingleLock lock(m_RTMPSection); + +- if (m_libRTMP.SendSeek(m_rtmp, iTimeInMsec)) ++ if (m_rtmp && m_libRTMP.SendSeek(m_rtmp, iTimeInMsec)) + return true; + + return false; +@@ -229,7 +234,8 @@ bool CDVDInputStreamRTMP::Pause(double dTime) + + CLog::Log(LOGNOTICE, "RTMP Pause %s requested", m_bPaused ? "TRUE" : "FALSE"); + +- m_libRTMP.Pause(m_rtmp, m_bPaused); ++ if (m_rtmp) ++ m_libRTMP.Pause(m_rtmp, m_bPaused); + + return true; + } +-- +1.9.1 + diff --git a/libre/xbmc-libre/ChangeLog b/libre/xbmc-libre/ChangeLog deleted file mode 100644 index 66ae97e3b..000000000 --- a/libre/xbmc-libre/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/libre/xbmc-libre/PKGBUILD b/libre/xbmc-libre/PKGBUILD index e347707d2..1aff83340 100644 --- a/libre/xbmc-libre/PKGBUILD +++ b/libre/xbmc-libre/PKGBUILD @@ -1,79 +1,94 @@ -# $Id: PKGBUILD 108909 2014-04-07 10:57:58Z spupykin $ -# 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> +# $Id: PKGBUILD 110974 2014-05-11 14:59:58Z idevolder $ +# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor (Arch): Brad Fanella <bradfanella@archlinux.us> +# Contributor (Arch): [vEX] <niechift.dot.vex.at.gmail.dot.com> +# Contributor (Arch): Zeqadious <zeqadious.at.gmail.dot.com> +# Contributor (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com > +# Maintainer: André Silva <emulatorman@parabola.nu> _prefix=/usr _pkgname=xbmc pkgname=xbmc-libre -pkgver=12.3 -_codename=Frodo -pkgrel=14 -pkgdesc="A software media player and entertainment hub for digital media, without nonfree addons and unrar support" +pkgver=13.0 +_codename=Gotham_r2 +pkgrel=3 +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' 'libmariadbclient' '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' 'libshairport' 'avahi' 'bluez-libs' 'glu' - 'tinyxml' 'taglib' 'ffmpeg-compat') -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') +replaces=($_pkgname) +conflicts=($_pkgname) +provides=($_pkgname=$pkgver) +depends=( +'avahi' 'ffmpeg' 'hicolor-icon-theme' 'libcdio' 'libmad' 'libmicrohttpd' +'libmpeg2' 'libmysqlclient' 'libsamplerate' 'libssh' 'libxrandr' 'libxslt' +'lzo2' 'mesa' 'mesa-demos' 'python2' 'sdl_image' 'sdl_mixer' 'smbclient' +'taglib' 'tinyxml' 'unzip' 'xorg-xdpyinfo' 'yajl' +) +makedepends=( +'afpfs-ng' 'libnfs' 'libplist' 'shairplay' 'libcec' 'boost' 'cmake' 'doxygen' +'gperf' 'jasper' 'java-runtime-headless' 'nasm' 'swig' 'taglib' 'udisks' +'upower' 'zip' +) +optdepends=( +'afpfs-ng: Apple File Protocol suport' +'libnfs: NFS Share support' +'libplist: AirPlay support' +'shairplay: AirPlay support' +'libcec: Pulse-Eight USB-CEC adapter support' +'pulseaudio: for pulseaudio support' +'lirc: remote controller support' +'xorg-xinit: autostart xbmc' +'udisks: automount external drives' +'upower: used to trigger power management functionality' +) install="${_pkgname}.install" -mksource=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz") -source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz" - "xbmc.service" - "polkit.rules" - "libass.patch::https://bugs.archlinux.org/index.php?getfile=11285") -mkmd5sums=('7ae385ebf8e5cfcb917393235e6efbdb') -md5sums=('7c71af50af55b097e4365a58b70754e8' - 'de331663cc8adc94f2fe44a262cfff58' - '02f7951824ee13103344f36009c0ef2a' - '7fd6399d2ffbdf06b724f0cc2efa0784') +mksource=( + "xbmc-$pkgver.tar.gz::https://github.com/xbmc/xbmc/archive/$pkgver-$_codename.tar.gz" +) +source=( + "https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz" + "xbmc.service" + "polkit.rules" + "enable-external-ffmpeg.patch" + '0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch' +) +mksha256sums=( + '663b99f3e196ead51d90f06ccfa864b4e5ade385dfc5972acb0f854d525f2903' +) +sha256sums=( + 'a23b416f7cdc5f2b3d5544fc9a2ac22c4cdddd117ba82fe8aab25805552ff974' + 'f83097388e6c9b301cac78de95cf1797d4aaa11e4021734c28d643320e76d919' + '4ea78374a08e13a64dcf6a424b111b8bfc11de03ed5829744fc6d9b5fc1ec96e' + '0239e33e87292c7340ed2092f2b5f1e82f5e283b1f763fb125b3aee78f50c355' + '4d643f1bc5a0f9a6bba36c8c2c2d220351acb58172c57d86417b67c02d39fa2b' +) mksource() { - cd "${srcdir}/xbmc-$pkgver-$_codename" + cd "$srcdir/xbmc-$pkgver-$_codename" - # remove unrar files from the source + msg2 "remove nonfree unRAR utility files from the source" rm -rv lib/UnrarXLib } prepare() { - cd "${srcdir}/xbmc-$pkgver-$_codename" + cd "$srcdir/xbmc-$pkgver-$_codename" + patch -p1 -i "$srcdir/enable-external-ffmpeg.patch" + patch -p1 -i "$srcdir/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch" - 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 - - # use addons.xml from Parabola server (without nonfree addons support) - sed -i -e 's|mirrors[.]xbmc[.]org/addons/frodo/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre/addons/frodo/addons.xml|' addons/repository.xbmc.org/addon.xml + 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" + cd "$srcdir/xbmc-$pkgver-$_codename" # Bootstrapping XBMC ./bootstrap # Configuring XBMC export PYTHON_VERSION=2 # external python v2 - export PKG_CONFIG_PATH=/usr/lib/ffmpeg-compat/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$_prefix --exec-prefix=$_prefix \ --disable-debug \ --enable-optimizations \ @@ -105,36 +120,41 @@ build() { --enable-libusb \ --enable-libcec \ --enable-external-libraries \ - --enable-external-ffmpeg \ --disable-non-free + # Now (finally) build make } package() { - cd "${srcdir}/xbmc-$pkgver-$_codename" + cd "$srcdir/xbmc-$pkgver-$_codename" # Running make install - make DESTDIR="${pkgdir}" install + make DESTDIR="$pkgdir" install - # run feh with python2 - sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc - - # lsb_release fix - sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc" - sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc" + # Python2 + sed 's/python/python2/g' -i \ + "$pkgdir"/usr/{bin/xbmc,share/xbmc/addons/service.xbmc.versioncheck/service.py} # 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/" + msg2 "Tools" + install -D -m 0755 "$srcdir/xbmc-$pkgver-$_codename/xbmc-xrandr" \ + "${pkgdir}$_prefix/lib/xbmc/xbmc-xrandr" + install -D -m 0755 "$srcdir/xbmc-$pkgver-$_codename/tools/TexturePacker/TexturePacker" \ + "${pkgdir}$_prefix/lib/xbmc/" # Licenses - install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${_pkgname}" + 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}" + mv "${pkgdir}$_prefix/share/doc/xbmc/$licensef" \ + "${pkgdir}$_prefix/share/licenses/$_pkgname" done - 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/ + # install systemd service + install -Dm0644 "$srcdir/xbmc.service" "$pkgdir/usr/lib/systemd/system/xbmc.service" + + # install polkit rules + install -dm700 "$pkgdir/user/share/polkit-1/rules.d" + install -Dm0644 "$srcdir/polkit.rules" "$pkgdir/user/share/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) |