From d3cd983c26240b0f796c3ea2a3ae079439931a48 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 14 May 2014 08:24:17 -0300 Subject: xbmc-libre-13.0-3: cleaned up dependencies FIXES: FS#40257 (https://bugs.archlinux.org/task/40257) - [xbmc] java is not a runtime dependency FS#40264 (https://bugs.archlinux.org/task/40264) - [xbmc] polkit rules should be in /usr/share/polkit-1/rules.d/ FS#40265 (https://bugs.archlinux.org/task/40265) - [xbmc] Internet Streams bring xbmc to crash --- ...m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch | 75 +++++++++++++++ libre/xbmc-libre/PKGBUILD | 103 +++++++++++++-------- 2 files changed, 137 insertions(+), 41 deletions(-) create mode 100644 libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch (limited to 'libre/xbmc-libre') 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 +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/PKGBUILD b/libre/xbmc-libre/PKGBUILD index 2b8631f1b..d5841d956 100644 --- a/libre/xbmc-libre/PKGBUILD +++ b/libre/xbmc-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 110797 2014-05-07 10:38:28Z bpiotrowski $ +# $Id: PKGBUILD 110974 2014-05-11 14:59:58Z idevolder $ # Maintainer: Sergej Pupykin # Contributor: Brad Fanella # Contributor: [vEX] @@ -11,8 +11,8 @@ _prefix=/usr _pkgname=xbmc pkgname=xbmc-libre pkgver=13.0 -_codename=Gotham -pkgrel=2.1 +_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" @@ -20,54 +20,69 @@ 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') +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=( - "xbmc-$pkgver.tar.gz::https://github.com/xbmc/xbmc/archive/13.0-Gotham.tar.gz" - ) + "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" - ) -mkmd5sums=('54fafd985b5209859ba6faeb50b8f142') -md5sums=('87083f6d9be2861dfc8bddca959e3880' - 'de331663cc8adc94f2fe44a262cfff58' - '02f7951824ee13103344f36009c0ef2a' - '9f9b41cfc1e21b1e7d0bb10d6e85b3c6') + '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" 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 + 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" 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 @@ -112,28 +127,34 @@ build() { } 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 + # Python2 + sed 's/python/python2/g' -i \ + "$pkgdir"/usr/{bin/xbmc,share/xbmc/addons/service.xbmc.versioncheck/service.py} # 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/" + 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 msg2 "Copy licenses" - install -dm755 ${pkgdir}${_prefix}/share/licenses/${_pkgname} + 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 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 + 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: -- cgit v1.2.3