summaryrefslogtreecommitdiff
path: root/libre/kodi
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-12-26 16:06:40 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-12-26 16:36:59 -0300
commit268b9847dcfc9b703d40bc9e5b0ac0494959b4a7 (patch)
tree979600fa93269c3d348de8c07a80367d34097e03 /libre/kodi
parent4372b59a80852cd415a35695ea8fdfaec9f28843 (diff)
downloadabslibre-268b9847dcfc9b703d40bc9e5b0ac0494959b4a7.tar.gz
abslibre-268b9847dcfc9b703d40bc9e5b0ac0494959b4a7.tar.bz2
abslibre-268b9847dcfc9b703d40bc9e5b0ac0494959b4a7.zip
kodi-15.2-3.parabola1: prevent taglib from crashing
Diffstat (limited to 'libre/kodi')
-rw-r--r--libre/kodi/PKGBUILD9
-rw-r--r--libre/kodi/prevent-taglib-from-crashing-kodi.patch96
2 files changed, 103 insertions, 2 deletions
diff --git a/libre/kodi/PKGBUILD b/libre/kodi/PKGBUILD
index 23d86cebc..089de09df 100644
--- a/libre/kodi/PKGBUILD
+++ b/libre/kodi/PKGBUILD
@@ -1,5 +1,5 @@
# vim:set ts=2 sw=2 et:
-# $Id: PKGBUILD 149922 2015-12-07 14:02:58Z fyan $
+# $Id: PKGBUILD 154560 2015-12-26 10:12:16Z idevolder $
# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com >
# Contributor (Arch): Brad Fanella <bradfanella@archlinux.us>
@@ -15,7 +15,7 @@ pkgbase=kodi
pkgname=kodi
pkgver=15.2
_codename=Isengard
-pkgrel=2.parabola1
+pkgrel=3.parabola1
arch=('i686' 'x86_64')
url="http://kodi.tv"
license=('GPL2')
@@ -34,12 +34,14 @@ mksource=(
)
source=(
"https://repo.parabola.nu/other/$_pkgbase/$_pkgbase-$pkgver-$_codename.tar.gz"
+ 'prevent-taglib-from-crashing-kodi.patch' # can stay in even with new taglib release
)
mksha256sums=(
'dd8aeb942e6de5d1488e243e1346cff3f6597e21b5131a3ba72ff5cc82037110'
)
sha256sums=(
'08ba84d69db5910966ac6b6118e64ba369065fbe68f0be8ce0dbdb7b35cf15e6'
+ 'c588153311adbccd7484cc7381f5852b4199301fe04d917279c0a2535891159f'
)
mksource() {
@@ -60,6 +62,9 @@ prepare() {
sed -i -e 's|mirrors[.]kodi[.]tv/addons/gotham/addons.xml|repo.parabola.nu/other/kodi-libre/addons/gotham/addons.xml|' addons/repository.xbmc.org/addon.xml
sed -i -e 's|mirrors[.]kodi[.]tv/addons/helix/addons.xml|repo.parabola.nu/other/kodi-libre/addons/helix/addons.xml|' addons/repository.xbmc.org/addon.xml
sed -i -e 's|mirrors[.]kodi[.]tv/addons/isengard/addons.xml|repo.parabola.nu/other/kodi-libre/addons/isengard/addons.xml|' addons/repository.xbmc.org/addon.xml
+
+ # patches
+ patch -p0 -i "$srcdir/prevent-taglib-from-crashing-kodi.patch"
}
build() {
diff --git a/libre/kodi/prevent-taglib-from-crashing-kodi.patch b/libre/kodi/prevent-taglib-from-crashing-kodi.patch
new file mode 100644
index 000000000..79c2b79aa
--- /dev/null
+++ b/libre/kodi/prevent-taglib-from-crashing-kodi.patch
@@ -0,0 +1,96 @@
+--- xbmc/music/tags/TagLoaderTagLib.cpp.orig 2015-12-26 07:34:56.449019063 +0100
++++ xbmc/music/tags/TagLoaderTagLib.cpp 2015-12-26 08:26:13.905598496 +0100
+@@ -134,48 +134,55 @@
+ TagLib::RIFF::WAV::File * wavFile = NULL;
+ TagLib::RIFF::AIFF::File * aiffFile = NULL;
+
+- if (strExtension == "ape")
+- file = apeFile = new APE::File(stream);
+- else if (strExtension == "asf" || strExtension == "wmv" || strExtension == "wma")
+- file = asfFile = new ASF::File(stream);
+- else if (strExtension == "flac")
+- file = flacFile = new FLAC::File(stream, ID3v2::FrameFactory::instance());
+- else if (strExtension == "it")
+- file = itFile = new IT::File(stream);
+- else if (strExtension == "mod" || strExtension == "module" || strExtension == "nst" || strExtension == "wow")
+- file = modFile = new Mod::File(stream);
+- else if (strExtension == "mp4" || strExtension == "m4a" ||
+- strExtension == "m4r" || strExtension == "m4b" ||
+- strExtension == "m4p" || strExtension == "3g2")
+- file = mp4File = new MP4::File(stream);
+- else if (strExtension == "mpc")
+- file = mpcFile = new MPC::File(stream);
+- else if (strExtension == "mp3" || strExtension == "aac")
+- file = mpegFile = new MPEG::File(stream, ID3v2::FrameFactory::instance());
+- else if (strExtension == "s3m")
+- file = s3mFile = new S3M::File(stream);
+- else if (strExtension == "tta")
+- file = ttaFile = new TrueAudio::File(stream, ID3v2::FrameFactory::instance());
+- else if (strExtension == "wv")
+- file = wvFile = new WavPack::File(stream);
+- else if (strExtension == "aif" || strExtension == "aiff")
+- file = aiffFile = new RIFF::AIFF::File(stream);
+- else if (strExtension == "wav")
+- file = wavFile = new RIFF::WAV::File(stream);
+- else if (strExtension == "xm")
+- file = xmFile = new XM::File(stream);
+- else if (strExtension == "ogg")
+- file = oggVorbisFile = new Ogg::Vorbis::File(stream);
+- else if (strExtension == "oga") // Leave this madness until last - oga container can have Vorbis or FLAC
++ try
+ {
+- file = oggFlacFile = new Ogg::FLAC::File(stream);
+- if (!file || !file->isValid())
+- {
+- delete file;
+- oggFlacFile = NULL;
++ if (strExtension == "ape")
++ file = apeFile = new APE::File(stream);
++ else if (strExtension == "asf" || strExtension == "wmv" || strExtension == "wma")
++ file = asfFile = new ASF::File(stream);
++ else if (strExtension == "flac")
++ file = flacFile = new FLAC::File(stream, ID3v2::FrameFactory::instance());
++ else if (strExtension == "it")
++ file = itFile = new IT::File(stream);
++ else if (strExtension == "mod" || strExtension == "module" || strExtension == "nst" || strExtension == "wow")
++ file = modFile = new Mod::File(stream);
++ else if (strExtension == "mp4" || strExtension == "m4a" ||
++ strExtension == "m4r" || strExtension == "m4b" ||
++ strExtension == "m4p" || strExtension == "3g2")
++ file = mp4File = new MP4::File(stream);
++ else if (strExtension == "mpc")
++ file = mpcFile = new MPC::File(stream);
++ else if (strExtension == "mp3" || strExtension == "aac")
++ file = mpegFile = new MPEG::File(stream, ID3v2::FrameFactory::instance());
++ else if (strExtension == "s3m")
++ file = s3mFile = new S3M::File(stream);
++ else if (strExtension == "tta")
++ file = ttaFile = new TrueAudio::File(stream, ID3v2::FrameFactory::instance());
++ else if (strExtension == "wv")
++ file = wvFile = new WavPack::File(stream);
++ else if (strExtension == "aif" || strExtension == "aiff")
++ file = aiffFile = new RIFF::AIFF::File(stream);
++ else if (strExtension == "wav")
++ file = wavFile = new RIFF::WAV::File(stream);
++ else if (strExtension == "xm")
++ file = xmFile = new XM::File(stream);
++ else if (strExtension == "ogg")
+ file = oggVorbisFile = new Ogg::Vorbis::File(stream);
++ else if (strExtension == "oga") // Leave this madness until last - oga container can have Vorbis or FLAC
++ {
++ file = oggFlacFile = new Ogg::FLAC::File(stream);
++ if (!file || !file->isValid())
++ {
++ delete file;
++ oggFlacFile = NULL;
++ file = oggVorbisFile = new Ogg::Vorbis::File(stream);
++ }
+ }
+ }
++ catch (const std::exception& ex)
++ {
++ CLog::Log(LOGERROR, "Taglib exception: %s", ex.what());
++ }
+
+ if (!file || !file->isOpen())
+ {