From 268b9847dcfc9b703d40bc9e5b0ac0494959b4a7 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sat, 26 Dec 2015 16:06:40 -0300 Subject: kodi-15.2-3.parabola1: prevent taglib from crashing --- libre/kodi/PKGBUILD | 9 +- libre/kodi/prevent-taglib-from-crashing-kodi.patch | 96 ++++++++++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 libre/kodi/prevent-taglib-from-crashing-kodi.patch 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 # Maintainer (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com > # Contributor (Arch): Brad Fanella @@ -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()) + { -- cgit v1.2.3