summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Huber <johu@gentoo.org>2017-03-09 18:21:43 +0100
committerJohannes Huber <johu@gentoo.org>2017-03-09 18:22:15 +0100
commit656e91b0a057177209128fe0cb84cd7fd8e002b5 (patch)
treeced6347efd7cd395b7bcee6fbfdce6b300d95a09 /kde-apps
parentapp-arch/pigz: sparc stable (diff)
downloadgentoo-656e91b0a057177209128fe0cb84cd7fd8e002b5.tar.gz
gentoo-656e91b0a057177209128fe0cb84cd7fd8e002b5.tar.bz2
gentoo-656e91b0a057177209128fe0cb84cd7fd8e002b5.zip
app-cdr/k3b -> kde-apps/k3b
Diffstat (limited to 'kde-apps')
-rw-r--r--kde-apps/k3b/Manifest1
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-dvdrip.patch33
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-ffmpeg-3.patch27
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-fixuifiles.patch41
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-flac.patch28
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-gcc6.patch98
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-gcc7.patch60
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-libav-11.patch138
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-no-webkit.patch62
-rw-r--r--kde-apps/k3b/files/k3b-2.0.3-sndfile.patch49
-rw-r--r--kde-apps/k3b/k3b-2.0.3-r5.ebuild121
-rw-r--r--kde-apps/k3b/metadata.xml11
12 files changed, 669 insertions, 0 deletions
diff --git a/kde-apps/k3b/Manifest b/kde-apps/k3b/Manifest
new file mode 100644
index 000000000000..dd6becef89b3
--- /dev/null
+++ b/kde-apps/k3b/Manifest
@@ -0,0 +1 @@
+DIST k3b-2.0.3a.tar.xz 9864468 SHA256 2d0bb2746802c1d3ad7ddd10e29234cf2053074f376feb200306a5570c39c081 SHA512 008d69f3d60dfcd39c787c8fb0b50cdf7b29f1cf551c2c0aa0b6e995ec9d67b26edcb0670d5cd428afcc4e2a60c9e6170a9316b90978dfcc3693d27db98e7472 WHIRLPOOL 5cc63f7355ead8585295c6be8909a07fb0f34df77c8feff14c42daffc52679e27fbb28f1b1912c1bdf22e9c79b4369b2af6f3f8592f25af0f401a59e2b3a2c50
diff --git a/kde-apps/k3b/files/k3b-2.0.3-dvdrip.patch b/kde-apps/k3b/files/k3b-2.0.3-dvdrip.patch
new file mode 100644
index 000000000000..04526fc32832
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-dvdrip.patch
@@ -0,0 +1,33 @@
+From 9f109bbc7fe718135da402535f6ca7ca5c105d4d Mon Sep 17 00:00:00 2001
+From: Martin Koller <kollix@aon.at>
+Date: Mon, 26 Oct 2015 22:12:35 +0100
+Subject: revert "fix" which adds literal quote chars to the filename
+
+commit 2786d19f added explicit quote characters around the filename,
+which is wrong since the filename is passed into a QStringList,
+which passes all its separate arguments to the started process.
+Adding quote chars would lead to the filename having the
+quote chars as part of the filename.
+
+BUG: 350403
+REVIEW: 125804
+---
+ libk3b/jobs/k3bvideodvdtitletranscodingjob.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libk3b/jobs/k3bvideodvdtitletranscodingjob.cpp b/libk3b/jobs/k3bvideodvdtitletranscodingjob.cpp
+index 95e4811..4b721ff 100644
+--- a/libk3b/jobs/k3bvideodvdtitletranscodingjob.cpp
++++ b/libk3b/jobs/k3bvideodvdtitletranscodingjob.cpp
+@@ -303,7 +303,7 @@ void K3b::VideoDVDTitleTranscodingJob::startTranscode( int pass )
+ }
+
+ // the output filename
+- *d->process << "-o" << QString("\"%1\"").arg(m_filename);
++ *d->process << "-o" << m_filename;
+ }
+ else {
+ // gather information about the video stream, ignore audio
+--
+cgit v0.11.2
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-ffmpeg-3.patch b/kde-apps/k3b/files/k3b-2.0.3-ffmpeg-3.patch
new file mode 100644
index 000000000000..5a06503304a3
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-ffmpeg-3.patch
@@ -0,0 +1,27 @@
+From 5b9b3537b658ad342d688fa4f210113a3d066d2a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Old=C5=99ich=20Jedli=C4=8Dka?= <oldium.pro@seznam.cz>
+Date: Sat, 14 Feb 2015 15:31:07 +0100
+Subject: Fixed compilation with newer ffmpeg/libav.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Oldřich Jedlička <oldium.pro@seznam.cz>
+---
+ plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp | 64 ++++++++++++++++++++++++-----
+ 1 file changed, 54 insertions(+), 10 deletions(-)
+
+--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp.old 2017-02-12 21:09:02.258453125 +0100
++++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2017-02-12 21:12:44.799077359 +0100
+@@ -378,7 +378,11 @@
+ #endif
+
+ if( d->packetSize <= 0 || len < 0 )
++#if LIBAVCODEC_VERSION_MAJOR >= 56
++ ::av_packet_unref( &d->packet );
++#else
+ ::av_free_packet( &d->packet );
++#endif
+ if( len < 0 ) {
+ kDebug() << "(K3bFFMpegFile) decoding failed for " << m_filename;
+ return -1;
diff --git a/kde-apps/k3b/files/k3b-2.0.3-fixuifiles.patch b/kde-apps/k3b/files/k3b-2.0.3-fixuifiles.patch
new file mode 100644
index 000000000000..d9784372e3c9
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-fixuifiles.patch
@@ -0,0 +1,41 @@
+From a0a527c450a49d031ceb0e7a832523b4717ba96c Mon Sep 17 00:00:00 2001
+From: Pino Toscano <pino@debian.org>
+Date: Sun, 15 Feb 2015 20:29:13 +0100
+Subject: fixuifiles
+
+---
+ src/projects/base_k3baudiocdtextwidget.ui | 3 ---
+ src/projects/base_k3baudiotrackwidget.ui | 3 ---
+ 2 files changed, 6 deletions(-)
+
+diff --git a/src/projects/base_k3baudiocdtextwidget.ui b/src/projects/base_k3baudiocdtextwidget.ui
+index 611f4c7..5798d57 100644
+--- a/src/projects/base_k3baudiocdtextwidget.ui
++++ b/src/projects/base_k3baudiocdtextwidget.ui
+@@ -4,9 +4,6 @@
+ <exportmacro></exportmacro>
+ <class>base_K3bAudioCdTextWidget</class>
+ <widget class="QWidget" name="K3bAudioCDTextWidget" >
+- <property name="windowTitle" >
+- <string>K3bAudioCDTextWidget</string>
+- </property>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QGroupBox" name="m_groupCdText" >
+diff --git a/src/projects/base_k3baudiotrackwidget.ui b/src/projects/base_k3baudiotrackwidget.ui
+index 6024213..1c96281 100644
+--- a/src/projects/base_k3baudiotrackwidget.ui
++++ b/src/projects/base_k3baudiotrackwidget.ui
+@@ -4,9 +4,6 @@
+ <exportmacro></exportmacro>
+ <class>base_K3bAudioTrackWidget</class>
+ <widget class="QWidget" name="K3bAudioTrackWidget" >
+- <property name="windowTitle" >
+- <string>K3bAudioTrackWidget</string>
+- </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+--
+cgit v0.11.2
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-flac.patch b/kde-apps/k3b/files/k3b-2.0.3-flac.patch
new file mode 100644
index 000000000000..a03237e4111d
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-flac.patch
@@ -0,0 +1,28 @@
+From ef2ce428dc1607563273d1258f56d9083dcf99d4 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Wed, 19 Nov 2014 22:50:43 +0100
+Subject: FLAC plugin's function seekToFrame may not work properly
+
+BUGS: 341077
+
+Patch by Vitaly <vitfunk@yandex.ru>
+---
+ plugins/decoder/flac/k3bflacdecoder.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/decoder/flac/k3bflacdecoder.cpp b/plugins/decoder/flac/k3bflacdecoder.cpp
+index 2931f76..6dc21d3 100644
+--- a/plugins/decoder/flac/k3bflacdecoder.cpp
++++ b/plugins/decoder/flac/k3bflacdecoder.cpp
+@@ -121,7 +121,7 @@ protected:
+ };
+
+ bool K3bFLACDecoder::Private::seekToFrame(int frame) {
+- FLAC__uint64 sample = frame * rate / 75;
++ FLAC__uint64 sample = static_cast<FLAC__uint64>(frame) * rate / 75;
+ return seek_absolute(sample);
+ }
+
+--
+cgit v0.11.2
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-gcc6.patch b/kde-apps/k3b/files/k3b-2.0.3-gcc6.patch
new file mode 100644
index 000000000000..d912d827fead
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-gcc6.patch
@@ -0,0 +1,98 @@
+From da6373a3e1ae9199ee50e326fe296c03b50625ae Mon Sep 17 00:00:00 2001
+From: "P. Levine" <nsane457@gmail.com>
+Date: Sat, 14 May 2016 18:57:24 +0200
+Subject: [PATCH] Fix narrowing conversions from 'int' to 'const char' inside {
+ }.
+
+Please provide a proper git patch including author information next time ...
+
+BUGS: 363078
+FIXED-IN: 2.0.4
+---
+ libk3b/projects/k3bcdrdaowriter.cpp | 2 +-
+ libk3b/tools/k3bwavefilewriter.cpp | 22 +++++++++++-----------
+ plugins/encoder/external/k3bexternalencoder.cpp | 22 +++++++++++-----------
+ 3 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/libk3b/projects/k3bcdrdaowriter.cpp b/libk3b/projects/k3bcdrdaowriter.cpp
+index 4eebdf8..bca1407 100644
+--- a/libk3b/projects/k3bcdrdaowriter.cpp
++++ b/libk3b/projects/k3bcdrdaowriter.cpp
+@@ -908,7 +908,7 @@ void K3b::CdrdaoWriter::parseCdrdaoWrote( const QString& line )
+
+ void K3b::CdrdaoWriter::parseCdrdaoMessage()
+ {
+- static const char msgSync[] = { 0xff, 0x00, 0xff, 0x00 };
++ static const char msgSync[] = { (char)0xff, (char)0x00, (char)0xff, (char)0x00 };
+ unsigned int avail = m_comSock->bytesAvailable();
+ unsigned int msgs = avail / ( sizeof(msgSync)+d->progressMsgSize );
+ unsigned int count = 0;
+diff --git a/libk3b/tools/k3bwavefilewriter.cpp b/libk3b/tools/k3bwavefilewriter.cpp
+index c51781f..6772f6c 100644
+--- a/libk3b/tools/k3bwavefilewriter.cpp
++++ b/libk3b/tools/k3bwavefilewriter.cpp
+@@ -111,17 +111,17 @@ void K3b::WaveFileWriter::writeEmptyHeader()
+ {
+ static const char riffHeader[] =
+ {
+- 0x52, 0x49, 0x46, 0x46, // 0 "RIFF"
+- 0x00, 0x00, 0x00, 0x00, // 4 wavSize
+- 0x57, 0x41, 0x56, 0x45, // 8 "WAVE"
+- 0x66, 0x6d, 0x74, 0x20, // 12 "fmt "
+- 0x10, 0x00, 0x00, 0x00, // 16
+- 0x01, 0x00, 0x02, 0x00, // 20
+- 0x44, 0xac, 0x00, 0x00, // 24
+- 0x10, 0xb1, 0x02, 0x00, // 28
+- 0x04, 0x00, 0x10, 0x00, // 32
+- 0x64, 0x61, 0x74, 0x61, // 36 "data"
+- 0x00, 0x00, 0x00, 0x00 // 40 byteCount
++ (char)0x52, (char)0x49, (char)0x46, (char)0x46, // 0 "RIFF"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00, // 4 wavSize
++ (char)0x57, (char)0x41, (char)0x56, (char)0x45, // 8 "WAVE"
++ (char)0x66, (char)0x6d, (char)0x74, (char)0x20, // 12 "fmt "
++ (char)0x10, (char)0x00, (char)0x00, (char)0x00, // 16
++ (char)0x01, (char)0x00, (char)0x02, (char)0x00, // 20
++ (char)0x44, (char)0xac, (char)0x00, (char)0x00, // 24
++ (char)0x10, (char)0xb1, (char)0x02, (char)0x00, // 28
++ (char)0x04, (char)0x00, (char)0x10, (char)0x00, // 32
++ (char)0x64, (char)0x61, (char)0x74, (char)0x61, // 36 "data"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00 // 40 byteCount
+ };
+
+ m_outputStream.writeRawData( riffHeader, 44 );
+diff --git a/plugins/encoder/external/k3bexternalencoder.cpp b/plugins/encoder/external/k3bexternalencoder.cpp
+index 388d181..d365905 100644
+--- a/plugins/encoder/external/k3bexternalencoder.cpp
++++ b/plugins/encoder/external/k3bexternalencoder.cpp
+@@ -39,17 +39,17 @@ Q_DECLARE_METATYPE( QProcess::ExitStatus )
+
+ static const char s_riffHeader[] =
+ {
+- 0x52, 0x49, 0x46, 0x46, // 0 "RIFF"
+- 0x00, 0x00, 0x00, 0x00, // 4 wavSize
+- 0x57, 0x41, 0x56, 0x45, // 8 "WAVE"
+- 0x66, 0x6d, 0x74, 0x20, // 12 "fmt "
+- 0x10, 0x00, 0x00, 0x00, // 16
+- 0x01, 0x00, 0x02, 0x00, // 20
+- 0x44, 0xac, 0x00, 0x00, // 24
+- 0x10, 0xb1, 0x02, 0x00, // 28
+- 0x04, 0x00, 0x10, 0x00, // 32
+- 0x64, 0x61, 0x74, 0x61, // 36 "data"
+- 0x00, 0x00, 0x00, 0x00 // 40 byteCount
++ (char)0x52, (char)0x49, (char)0x46, (char)0x46, // 0 "RIFF"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00, // 4 wavSize
++ (char)0x57, (char)0x41, (char)0x56, (char)0x45, // 8 "WAVE"
++ (char)0x66, (char)0x6d, (char)0x74, (char)0x20, // 12 "fmt "
++ (char)0x10, (char)0x00, (char)0x00, (char)0x00, // 16
++ (char)0x01, (char)0x00, (char)0x02, (char)0x00, // 20
++ (char)0x44, (char)0xac, (char)0x00, (char)0x00, // 24
++ (char)0x10, (char)0xb1, (char)0x02, (char)0x00, // 28
++ (char)0x04, (char)0x00, (char)0x10, (char)0x00, // 32
++ (char)0x64, (char)0x61, (char)0x74, (char)0x61, // 36 "data"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00 // 40 byteCount
+ };
+
+
+--
+2.8.2
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-gcc7.patch b/kde-apps/k3b/files/k3b-2.0.3-gcc7.patch
new file mode 100644
index 000000000000..2d74090fad8f
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-gcc7.patch
@@ -0,0 +1,60 @@
+From 1777236203f21eed7a9baade632472094c8081d3 Mon Sep 17 00:00:00 2001
+From: Pino Toscano <pino@kde.org>
+Date: Sat, 4 Feb 2017 10:48:45 +0100
+Subject: ffmpeg: fix/simplify metadata conversion to string
+
+Comparing a pointer with an integer value is (correctly) an error with
+GCC 7.
+---
+ plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp | 21 +++------------------
+ 1 file changed, 3 insertions(+), 18 deletions(-)
+
+diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+index a4fc784..22928b2 100644
+--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
++++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+@@ -259,12 +259,7 @@ QString K3bFFMpegFile::title() const
+ {
+ // FIXME: is this UTF8 or something??
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "TITLE", NULL, 0 );
+- if( ade == NULL )
+- return QString();
+- if( ade->value != '\0' )
+- return QString::fromLocal8Bit( ade->value );
+- else
+- return QString();
++ return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
+ }
+
+
+@@ -272,12 +267,7 @@ QString K3bFFMpegFile::author() const
+ {
+ // FIXME: is this UTF8 or something??
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "ARTIST", NULL, 0 );
+- if( ade == NULL )
+- return QString();
+- if( ade->value != '\0' )
+- return QString::fromLocal8Bit( ade->value );
+- else
+- return QString();
++ return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
+ }
+
+
+@@ -285,12 +275,7 @@ QString K3bFFMpegFile::comment() const
+ {
+ // FIXME: is this UTF8 or something??
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "COMMENT", NULL, 0 );
+- if( ade == NULL )
+- return QString();
+- if( ade->value != '\0' )
+- return QString::fromLocal8Bit( ade->value );
+- else
+- return QString();
++ return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
+ }
+
+
+--
+cgit v0.11.2
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-libav-11.patch b/kde-apps/k3b/files/k3b-2.0.3-libav-11.patch
new file mode 100644
index 000000000000..9c5ac4205f79
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-libav-11.patch
@@ -0,0 +1,138 @@
+From 52d3d64863d2fab4128f524870851f18f5cae1fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Old=C5=99ich=20Jedli=C4=8Dka?= <oldium.pro@seznam.cz>
+Date: Sat, 14 Feb 2015 15:31:07 +0100
+Subject: [PATCH] Fixed compilation with newer ffmpeg/libav.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Oldřich Jedlička <oldium.pro@seznam.cz>
+---
+ plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp | 60 ++++++++++++++++++++++++-----
+ 1 file changed, 50 insertions(+), 10 deletions(-)
+
+diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+index 5451fd3..2f80fd6 100644
+--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
++++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+@@ -86,8 +86,12 @@ public:
+ K3b::Msf length;
+
+ // for decoding. ffmpeg requires 16-byte alignment.
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ ::AVFrame* frame;
++#else
+ char outputBuffer[AVCODEC_MAX_AUDIO_FRAME_SIZE + 15];
+ char* alignedOutputBuffer;
++#endif
+ char* outputBufferPos;
+ int outputBufferSize;
+ ::AVPacket packet;
+@@ -102,14 +106,29 @@ K3bFFMpegFile::K3bFFMpegFile( const QString& filename )
+ d = new Private;
+ d->formatContext = 0;
+ d->codec = 0;
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++# if LIBAVCODEC_BUILD < AV_VERSION_INT(55,28,1)
++ d->frame = avcodec_alloc_frame();
++# else
++ d->frame = av_frame_alloc();
++# endif
++#else
+ int offset = 0x10 - (reinterpret_cast<intptr_t>(&d->outputBuffer) & 0xf);
+ d->alignedOutputBuffer = &d->outputBuffer[offset];
++#endif
+ }
+
+
+ K3bFFMpegFile::~K3bFFMpegFile()
+ {
+ close();
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++# if LIBAVCODEC_BUILD < AV_VERSION_INT(55,28,1)
++ av_free(d->frame);
++# else
++ av_frame_free(&d->frame);
++# endif
++#endif
+ delete d;
+ }
+
+@@ -326,26 +345,36 @@ int K3bFFMpegFile::fillOutputBuffer()
+ return 0;
+ }
+
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ int gotFrame = 0;
++ int len = ::avcodec_decode_audio4(
++#else
+ d->outputBufferPos = d->alignedOutputBuffer;
+ d->outputBufferSize = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+-
+-#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
+ int len = ::avcodec_decode_audio3(
+-#else
+-# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO2
+- int len = ::avcodec_decode_audio2(
+ # else
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO2
++ int len = ::avcodec_decode_audio2(
++# else
+ int len = ::avcodec_decode_audio(
++# endif
+ # endif
+ #endif
+
+ FFMPEG_CODEC(d->formatContext->streams[0]),
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ d->frame,
++ &gotFrame,
++ &d->packet );
++#else
+ (short*)d->alignedOutputBuffer,
+ &d->outputBufferSize,
+-#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
+ &d->packet );
+-#else
++# else
+ d->packetData, d->packetSize );
++# endif
+ #endif
+
+ if( d->packetSize <= 0 || len < 0 )
+@@ -355,6 +384,17 @@ int K3bFFMpegFile::fillOutputBuffer()
+ return -1;
+ }
+
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ if ( gotFrame ) {
++ d->outputBufferSize = ::av_samples_get_buffer_size(
++ NULL,
++ FFMPEG_CODEC(d->formatContext->streams[0])->channels,
++ d->frame->nb_samples,
++ FFMPEG_CODEC(d->formatContext->streams[0])->sample_fmt,
++ 1 );
++ d->outputBufferPos = reinterpret_cast<char*>( d->frame->data[0] );
++ }
++#endif
+ d->packetSize -= len;
+ d->packetData += len;
+ }
+@@ -420,9 +460,9 @@ K3bFFMpegFile* K3bFFMpegWrapper::open( const QString& filename ) const
+ // mp3 being one of them sadly. Most importantly: allow the libsndfile decoder to do
+ // its thing.
+ //
+- if( file->type() == CODEC_ID_WMAV1 ||
+- file->type() == CODEC_ID_WMAV2 ||
+- file->type() == CODEC_ID_AAC )
++ if( file->type() == AV_CODEC_ID_WMAV1 ||
++ file->type() == AV_CODEC_ID_WMAV2 ||
++ file->type() == AV_CODEC_ID_AAC )
+ #endif
+ return file;
+ }
+--
+2.0.5
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-no-webkit.patch b/kde-apps/k3b/files/k3b-2.0.3-no-webkit.patch
new file mode 100644
index 000000000000..8fae16813165
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-no-webkit.patch
@@ -0,0 +1,62 @@
+commit 54f92d12cccac60c378d114869762d1a3ad75435
+Author: Radek Novacek <rnovacek at redhat.com>
+Date: Fri May 4 13:04:48 2012 +0200
+
+ Don't use webkit on RHEL
+
+ k3b-2.0.2-no-webkit.patch | 53 +++++++++++++++++++++++++++++++++++++++++++++
+ k3b.spec | 11 +++++++-
+ 2 files changed, 62 insertions(+), 2 deletions(-)
+---
+diff -up a/src/CMakeLists.txt b/src/CMakeLists.txt
+--- a/src/CMakeLists.txt 2012-05-04 12:30:46.634241618 +0200
++++ b/src/CMakeLists.txt 2012-05-04 12:30:56.980516383 +0200
+@@ -287,7 +287,6 @@ target_link_libraries(k3b_bin
+ ${KDE4_KUTILS_LIBS}
+ ${KDE4_KDE3SUPPORT_LIBS}
+ ${KDE4_SOLID_LIBS}
+- ${QT_QTWEBKIT_LIBRARY}
+ ${X11_LIBRARIES}
+ )
+
+diff -up a/src/k3bdiskinfoview.cpp b/src/k3bdiskinfoview.cpp
+--- a/src/k3bdiskinfoview.cpp 2012-05-04 12:29:13.994781781 +0200
++++ b/src/k3bdiskinfoview.cpp 2012-05-04 13:10:07.748401670 +0200
+@@ -34,7 +34,6 @@
+ #include <qpalette.h>
+ #include <qpixmap.h>
+ #include <QtGui/QTextBrowser>
+-#include <QtWebKit/QWebView>
+
+ #include <klocale.h>
+ #include <kstandarddirs.h>
+@@ -61,7 +60,7 @@ K3b::DiskInfoView::DiskInfoView( QWidget
+ Device::STATE_ALL|Device::STATE_NO_MEDIA|Device::STATE_UNKNOWN,
+ parent )
+ {
+- m_infoView = new QWebView( this );
++ m_infoView = new QTextBrowser( this );
+ setMainWidget( m_infoView );
+ }
+
+diff -up a/src/k3bdiskinfoview.h b/src/k3bdiskinfoview.h
+--- a/src/k3bdiskinfoview.h 2012-05-04 12:50:25.753604831 +0200
++++ b/src/k3bdiskinfoview.h 2012-05-04 13:09:15.232985545 +0200
+@@ -19,7 +19,7 @@
+
+ #include "k3bmediacontentsview.h"
+
+-class QWebView;
++class QTextBrowser;
+
+ namespace K3b {
+ class DiskInfoView : public MediaContentsView
+@@ -38,7 +38,7 @@ private:
+ QString createIso9660InfoItems( const Iso9660SimplePrimaryDescriptor& iso );
+ QString createTrackItems( const Medium& medium );
+
+- QWebView* m_infoView;
++ QTextBrowser* m_infoView;
+ };
+ }
+
diff --git a/kde-apps/k3b/files/k3b-2.0.3-sndfile.patch b/kde-apps/k3b/files/k3b-2.0.3-sndfile.patch
new file mode 100644
index 000000000000..268173a7feca
--- /dev/null
+++ b/kde-apps/k3b/files/k3b-2.0.3-sndfile.patch
@@ -0,0 +1,49 @@
+From 399adb1ace87ab25525922f422e5cad3b30f5b60 Mon Sep 17 00:00:00 2001
+From: Heiko Becker <heirecka@exherbo.org>
+Date: Sun, 22 Nov 2015 11:48:36 +0100
+Subject: Use FindPkgConfig instead of UsePkgConfig
+
+UsePkgConfig is marked as obsolete and doesn't handle differently
+named pkg-config executables, like architecture or toolchain prefixed
+ones, well. The FindPkgConfig module respects the PKG_CONFIG env
+variable and sets PKG_CONFIG_EXECUTABLE accordingly.
+
+REVIEW: 126135
+---
+ cmake/modules/FindSndfile.cmake | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/cmake/modules/FindSndfile.cmake b/cmake/modules/FindSndfile.cmake
+index c5d21b5..8a6fe2b 100644
+--- a/cmake/modules/FindSndfile.cmake
++++ b/cmake/modules/FindSndfile.cmake
+@@ -21,22 +21,20 @@ endif ( SNDFILE_INCLUDE_DIR AND SNDFILE_LIBRARIES )
+ IF (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+- INCLUDE(UsePkgConfig)
++ include(FindPkgConfig)
+
+- PKGCONFIG(sndfile _SndfileIncDir _SndfileLinkDir _SndfileLinkFlags _SndfileCflags)
++ pkg_check_modules(_pc_SNDFILE sndfile)
+ ENDIF (NOT WIN32)
+
+
+ FIND_PATH(SNDFILE_INCLUDE_DIR
+ NAMES sndfile.h
+- PATHS ${_SndfileIncDir}
+- NO_DEFAULT_PATH
++ HINTS ${_pc_SNDFILE_INCLUDE_DIRS}
+ )
+
+ FIND_LIBRARY(SNDFILE_LIBRARIES
+ NAMES sndfile
+- PATHS ${_SndfileLinkDir}
+- NO_DEFAULT_PATH
++ HINTS ${_pc_SNDFILE_LIBRARY_DIRS}
+ )
+
+ include(FindPackageHandleStandardArgs)
+--
+cgit v0.11.2
+
diff --git a/kde-apps/k3b/k3b-2.0.3-r5.ebuild b/kde-apps/k3b/k3b-2.0.3-r5.ebuild
new file mode 100644
index 000000000000..0b2919260705
--- /dev/null
+++ b/kde-apps/k3b/k3b-2.0.3-r5.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MULTIMEDIA_REQUIRED="always"
+KDE_HANDBOOK="optional"
+KDE_LINGUAS="ast be bg bs ca ca@valencia cs csb da de el en_GB eo es et eu fi fr
+ga gl he hi hne hr hu is it ja kk km ko ku lt lv mai mr ms nb nds nl nn oc pa pl
+pt pt_BR ro ru se sk sl sr sr@ijekavian sr@ijekavianlatin sr@latin sv th tr ug uk
+zh_CN zh_TW"
+inherit kde4-base
+
+DESCRIPTION="Full-featured burning and ripping application by KDE"
+HOMEPAGE="http://www.k3b.org/"
+SRC_URI="mirror://kde/stable/${PN}/${P}a.tar.xz"
+
+LICENSE="GPL-2 FDL-1.2"
+SLOT="4"
+KEYWORDS="amd64 x86"
+IUSE="debug dvd emovix encode ffmpeg flac libav mad mp3 musepack sndfile sox taglib vcd vorbis"
+
+CDEPEND="
+ $(add_kdeapps_dep libkcddb)
+ media-libs/libsamplerate
+ dvd? ( media-libs/libdvdread )
+ ffmpeg? (
+ libav? ( media-video/libav:= )
+ !libav? ( media-video/ffmpeg:0= )
+ )
+ flac? ( >=media-libs/flac-1.2[cxx] )
+ mp3? ( media-sound/lame )
+ mad? ( media-libs/libmad )
+ musepack? ( >=media-sound/musepack-tools-444 )
+ sndfile? ( media-libs/libsndfile )
+ taglib? ( >=media-libs/taglib-1.5 )
+ vorbis? ( media-libs/libvorbis )
+"
+DEPEND="${CDEPEND}
+ sys-devel/gettext
+"
+RDEPEND="${CDEPEND}
+ app-cdr/cdrdao
+ kde-frameworks/kdelibs:4[udev,udisks(+)]
+ media-sound/cdparanoia
+ virtual/cdrtools
+ dvd? (
+ >=app-cdr/dvd+rw-tools-7
+ encode? ( media-video/transcode[dvd] )
+ )
+ emovix? ( media-video/emovix )
+ sox? ( media-sound/sox )
+ vcd? ( media-video/vcdimager )
+"
+
+REQUIRED_USE="
+ mp3? ( encode )
+ sox? ( encode )
+"
+
+DOCS=( ChangeLog FAQ PERMISSIONS README )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-libav-11.patch
+ "${FILESDIR}"/${P}-gcc6.patch
+ "${FILESDIR}"/${P}-flac.patch
+ "${FILESDIR}"/${P}-fixuifiles.patch
+ "${FILESDIR}"/${P}-sndfile.patch
+ "${FILESDIR}"/${P}-ffmpeg-3.patch
+ "${FILESDIR}"/${P}-gcc7.patch
+ "${FILESDIR}"/${P}-dvdrip.patch
+ # TODO: upstream
+ "${FILESDIR}"/${P}-no-webkit.patch
+)
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ # bug 558640
+ sed -i -e "/^add_subdirectory( doc )/d" CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DK3B_BUILD_API_DOCS=OFF
+ -DK3B_BUILD_K3BSETUP=OFF
+ -DK3B_BUILD_WAVE_DECODER_PLUGIN=ON
+ -DK3B_ENABLE_HAL_SUPPORT=OFF
+ -DK3B_ENABLE_MUSICBRAINZ=OFF
+ -DK3B_DEBUG=$(usex debug)
+ -DK3B_ENABLE_DVD_RIPPING=$(usex dvd)
+ -DK3B_BUILD_EXTERNAL_ENCODER_PLUGIN=$(usex encode)
+ -DK3B_BUILD_FFMPEG_DECODER_PLUGIN=$(usex ffmpeg)
+ -DK3B_BUILD_FLAC_DECODER_PLUGIN=$(usex flac)
+ -DK3B_BUILD_LAME_ENCODER_PLUGIN=$(usex mp3)
+ -DK3B_BUILD_MAD_DECODER_PLUGIN=$(usex mad)
+ -DK3B_BUILD_MUSE_DECODER_PLUGIN=$(usex musepack)
+ -DK3B_BUILD_SNDFILE_DECODER_PLUGIN=$(usex sndfile)
+ -DK3B_BUILD_SOX_ENCODER_PLUGIN=$(usex sox)
+ -DK3B_ENABLE_TAGLIB=$(usex taglib)
+ -DK3B_BUILD_OGGVORBIS_DECODER_PLUGIN=$(usex vorbis)
+ -DK3B_BUILD_OGGVORBIS_ENCODER_PLUGIN=$(usex vorbis)
+ )
+
+ kde4-base_src_configure
+}
+
+pkg_postinst() {
+ kde4-base_pkg_postinst
+
+ echo
+ elog "If you get warnings on start-up, uncheck the \"Check system"
+ elog "configuration\" option in the \"Misc\" settings window."
+ echo
+
+ local group=cdrom
+ use kernel_linux || group=operator
+ elog "Make sure you have proper read/write permissions on optical device(s)."
+ elog "Usually, it is sufficient to be in the ${group} group."
+ echo
+}
diff --git a/kde-apps/k3b/metadata.xml b/kde-apps/k3b/metadata.xml
new file mode 100644
index 000000000000..cc7344ef5c21
--- /dev/null
+++ b/kde-apps/k3b/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <use>
+ <flag name="emovix">Enable burning support for eMoviX images</flag>
+ </use>
+</pkgmetadata>