diff options
author | Matteo Bernardini <ponce@slackbuilds.org> | 2021-03-04 18:51:56 +0100 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2021-04-17 23:25:26 -0500 |
commit | c597630c463567cf87a35ad41a2504c1470420ca (patch) | |
tree | cdb4668b3ed2f2dca059bec7f2399d1a270646f1 | |
parent | 7a5dba5f92a53ca021469f4c872631f5c9539202 (diff) | |
download | slackbuilds-c597630c463567cf87a35ad41a2504c1470420ca.tar.gz |
office/goldendict: Patch for the newer qt5 and ffmpeg.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r-- | office/goldendict/goldendict.SlackBuild | 11 | ||||
-rw-r--r-- | office/goldendict/patches/goldendict-ffmpeg4.patch | 167 | ||||
-rw-r--r-- | office/goldendict/patches/goldendict-qt-5.11-1.patch | 34 | ||||
-rw-r--r-- | office/goldendict/patches/goldendict-qt-5.11-2.patch | 22 |
4 files changed, 232 insertions, 2 deletions
diff --git a/office/goldendict/goldendict.SlackBuild b/office/goldendict/goldendict.SlackBuild index 2d1e6b478f..71a698c559 100644 --- a/office/goldendict/goldendict.SlackBuild +++ b/office/goldendict/goldendict.SlackBuild @@ -53,9 +53,16 @@ cd $TMP rm -rf $PRGNAM-$SRCVER tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz cd $PRGNAM-$SRCVER -chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -$(type -p qmake-qt5 || echo qmake) PREFIX=/usr \ +# archlinux, thanks for all the patches! +for i in $CWD/patches/* ; do patch -p1 < $i ; done + +qmake-qt5 PREFIX=/usr \ CONFIG+=no_epwing_support \ CONFIG+=zim_support \ DISABLE_INTERNAL_PLAYER=$DISABLE_INTERNAL_PLAYER diff --git a/office/goldendict/patches/goldendict-ffmpeg4.patch b/office/goldendict/patches/goldendict-ffmpeg4.patch new file mode 100644 index 0000000000..6e6d03675a --- /dev/null +++ b/office/goldendict/patches/goldendict-ffmpeg4.patch @@ -0,0 +1,167 @@ +From 03bbe01b79a1f07a6780cb60f23a087104c5d77b Mon Sep 17 00:00:00 2001 +From: Abs62 <ottomann@yandex.ru> +Date: Fri, 30 Mar 2018 22:53:24 +0300 +Subject: [PATCH] Fix warnings while compile with FFMpeg 3.4.2 (issue #978) + +--- + ffmpegaudio.cc | 68 +++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 62 insertions(+), 6 deletions(-) + +diff --git a/ffmpegaudio.cc b/ffmpegaudio.cc +index ed1172bd..56e8f788 100644 +--- a/ffmpegaudio.cc ++++ b/ffmpegaudio.cc +@@ -91,6 +91,7 @@ struct DecoderContext + QByteArray audioData_; + QDataStream audioDataStream_; + AVFormatContext * formatContext_; ++ AVCodec * codec_; + AVCodecContext * codecContext_; + AVIOContext * avioContext_; + AVStream * audioStream_; +@@ -114,6 +115,7 @@ DecoderContext::DecoderContext( QByteArray const & audioData, QAtomicInt & isCan + audioData_( audioData ), + audioDataStream_( audioData_ ), + formatContext_( NULL ), ++ codec_( NULL ), + codecContext_( NULL ), + avioContext_( NULL ), + audioStream_( NULL ), +@@ -143,7 +145,11 @@ bool DecoderContext::openCodec( QString & errorString ) + return false; + } + ++#if LIBAVCODEC_VERSION_MAJOR < 56 || ( LIBAVCODEC_VERSION_MAJOR == 56 && LIBAVCODEC_VERSION_MINOR < 56 ) + unsigned char * avioBuffer = ( unsigned char * )av_malloc( kBufferSize + FF_INPUT_BUFFER_PADDING_SIZE ); ++#else ++ unsigned char * avioBuffer = ( unsigned char * )av_malloc( kBufferSize + AV_INPUT_BUFFER_PADDING_SIZE ); ++#endif + if ( !avioBuffer ) + { + errorString = QObject::tr( "av_malloc() failed." ); +@@ -186,7 +192,11 @@ bool DecoderContext::openCodec( QString & errorString ) + // Find audio stream, use the first audio stream if available + for ( unsigned i = 0; i < formatContext_->nb_streams; i++ ) + { ++#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 33 ) + if ( formatContext_->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO ) ++#else ++ if ( formatContext_->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO ) ++#endif + { + audioStream_ = formatContext_->streams[i]; + break; +@@ -198,22 +208,38 @@ bool DecoderContext::openCodec( QString & errorString ) + return false; + } + ++#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 33 ) + codecContext_ = audioStream_->codec; +- AVCodec * codec = avcodec_find_decoder( codecContext_->codec_id ); +- if ( !codec ) ++ codec_ = avcodec_find_decoder( codecContext_->codec_id ); ++ if ( !codec_ ) + { + errorString = QObject::tr( "Codec [id: %1] not found." ).arg( codecContext_->codec_id ); + return false; + } ++#else ++ codec_ = avcodec_find_decoder( audioStream_->codecpar->codec_id ); ++ if ( !codec_ ) ++ { ++ errorString = QObject::tr( "Codec [id: %1] not found." ).arg( audioStream_->codecpar->codec_id ); ++ return false; ++ } ++ codecContext_ = avcodec_alloc_context3( codec_ ); ++ if ( !codecContext_ ) ++ { ++ errorString = QObject::tr( "avcodec_alloc_context3() failed." ); ++ return false; ++ } ++ avcodec_parameters_to_context( codecContext_, audioStream_->codecpar ); ++#endif + +- ret = avcodec_open2( codecContext_, codec, NULL ); ++ ret = avcodec_open2( codecContext_, codec_, NULL ); + if ( ret < 0 ) + { + errorString = QObject::tr( "avcodec_open2() failed: %1." ).arg( avErrorString( ret ) ); + return false; + } + +- av_log( NULL, AV_LOG_INFO, "Codec open: %s: channels: %d, rate: %d, format: %s\n", codec->long_name, ++ av_log( NULL, AV_LOG_INFO, "Codec open: %s: channels: %d, rate: %d, format: %s\n", codec_->long_name, + codecContext_->channels, codecContext_->sample_rate, av_get_sample_fmt_name( codecContext_->sample_fmt ) ); + return true; + } +@@ -252,10 +278,13 @@ void DecoderContext::closeCodec() + + // Closing a codec context without prior avcodec_open2() will result in + // a crash in ffmpeg +- if ( audioStream_ && audioStream_->codec && audioStream_->codec->codec ) ++ if ( audioStream_ && codecContext_ && codec_ ) + { + audioStream_->discard = AVDISCARD_ALL; +- avcodec_close( audioStream_->codec ); ++ avcodec_close( codecContext_ ); ++#if LIBAVCODEC_VERSION_MAJOR > 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR >= 33 ) ++ avcodec_free_context( &codecContext_ ); ++#endif + } + + avformat_close_input( &formatContext_ ); +@@ -356,6 +385,7 @@ bool DecoderContext::play( QString & errorString ) + if ( packet.stream_index == audioStream_->index ) + { + AVPacket pack = packet; ++#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 37 ) + int gotFrame = 0; + do + { +@@ -370,6 +400,19 @@ bool DecoderContext::play( QString & errorString ) + pack.data += len; + } + while( pack.size > 0 ); ++#else ++ int ret = avcodec_send_packet( codecContext_, &pack ); ++ /* read all the output frames (in general there may be any number of them) */ ++ while( ret >= 0 ) ++ { ++ ret = avcodec_receive_frame( codecContext_, frame); ++ ++ if ( Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) || ret < 0 ) ++ break; ++ ++ playFrame( frame ); ++ } ++#endif + } + // av_free_packet() must be called after each call to av_read_frame() + #if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 7 ) +@@ -379,6 +422,7 @@ bool DecoderContext::play( QString & errorString ) + #endif + } + ++#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 37 ) + if ( !Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) && + codecContext_->codec->capabilities & CODEC_CAP_DELAY ) + { +@@ -391,6 +435,18 @@ bool DecoderContext::play( QString & errorString ) + playFrame( frame ); + } + } ++#else ++ /* flush the decoder */ ++ av_init_packet( &packet ); ++ int ret = avcodec_send_packet(codecContext_, &packet ); ++ while( ret >= 0 ) ++ { ++ ret = avcodec_receive_frame(codecContext_, frame); ++ if ( Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) || ret < 0 ) ++ break; ++ playFrame( frame ); ++ } ++#endif + + #if LIBAVCODEC_VERSION_MAJOR < 54 + av_free( frame ); diff --git a/office/goldendict/patches/goldendict-qt-5.11-1.patch b/office/goldendict/patches/goldendict-qt-5.11-1.patch new file mode 100644 index 0000000000..feb1b26e0b --- /dev/null +++ b/office/goldendict/patches/goldendict-qt-5.11-1.patch @@ -0,0 +1,34 @@ +From 3d4a468b6c8cb154c88cf4592a5845973999dc29 Mon Sep 17 00:00:00 2001 +From: Abs62 <ottomann@yandex.ru> +Date: Tue, 10 Apr 2018 18:44:43 +0300 +Subject: [PATCH] Qt5: Fix compilation with Qt 5.11 (issue #991) + +--- + fulltextsearch.hh | 1 + + initializing.cc | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/fulltextsearch.hh b/fulltextsearch.hh +index da7e2943..adf9619f 100644 +--- a/fulltextsearch.hh ++++ b/fulltextsearch.hh +@@ -6,6 +6,7 @@ + #include <QRegExp> + #include <QAbstractListModel> + #include <QList> ++#include <QAction> + + #include "dictionary.hh" + #include "ui_fulltextsearch.h" +diff --git a/initializing.cc b/initializing.cc +index 0db6909b..59e605d6 100644 +--- a/initializing.cc ++++ b/initializing.cc +@@ -1,6 +1,7 @@ + /* This file is (c) 2008-2012 Konstantin Isakov <ikm@goldendict.org> + * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ + ++#include <QIcon> + #include "initializing.hh" + #include <QCloseEvent> + diff --git a/office/goldendict/patches/goldendict-qt-5.11-2.patch b/office/goldendict/patches/goldendict-qt-5.11-2.patch new file mode 100644 index 0000000000..7410021651 --- /dev/null +++ b/office/goldendict/patches/goldendict-qt-5.11-2.patch @@ -0,0 +1,22 @@ +From a65967805ab424b299bdfa1d1f9c7ebb8a7fd517 Mon Sep 17 00:00:00 2001 +From: Perfect Gentleman <perfect007gentleman@gmail.com> +Date: Wed, 11 Apr 2018 00:04:12 +0700 +Subject: [PATCH] Update groups_widgets.hh + +fixes https://github.com/goldendict/goldendict/issues/991 +--- + groups_widgets.hh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/groups_widgets.hh b/groups_widgets.hh +index ce442fa2..2064e3bb 100644 +--- a/groups_widgets.hh ++++ b/groups_widgets.hh +@@ -8,6 +8,7 @@ + + #include <vector> + ++#include <QAction> + #include <QListWidget> + #include <QSortFilterProxyModel> + |