summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <andreas.sturmlechner@gmail.com>2016-10-22 13:18:31 +0200
committerMichael Palimaka <kensington@gentoo.org>2016-11-27 05:00:09 +1100
commit10178f81e58442231dda913dfd878491d1515e0b (patch)
treedaa055a30a0834612ee829f725303d479618a05c /media-video/vlc
parentmedia-video/vlc: Prefer qt5 to qt4 if both enabled (diff)
downloadgentoo-10178f81e58442231dda913dfd878491d1515e0b.tar.gz
gentoo-10178f81e58442231dda913dfd878491d1515e0b.tar.bz2
gentoo-10178f81e58442231dda913dfd878491d1515e0b.zip
media-video/vlc: Fix build with Qt 5.7.0
Gentoo-bug: 589396 Package-Manager: portage-2.3.0
Diffstat (limited to 'media-video/vlc')
-rw-r--r--media-video/vlc/files/vlc-2.2.4-cxx0x.patch11
-rw-r--r--media-video/vlc/files/vlc-2.2.4-qt57.patch284
-rw-r--r--media-video/vlc/vlc-2.2.4.ebuild4
-rw-r--r--media-video/vlc/vlc-2.2.9999.ebuild3
4 files changed, 302 insertions, 0 deletions
diff --git a/media-video/vlc/files/vlc-2.2.4-cxx0x.patch b/media-video/vlc/files/vlc-2.2.4-cxx0x.patch
new file mode 100644
index 000000000000..cb3d63522de3
--- /dev/null
+++ b/media-video/vlc/files/vlc-2.2.4-cxx0x.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac 2016-09-21 07:10:58.885508665 +0200
++++ b/configure.ac 2016-09-21 07:19:17.835725004 +0200
+@@ -3746,7 +3746,7 @@
+ PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
+ PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
+ VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
+- VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
++ VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11 -std=c++0x])
+ PKG_CHECK_MODULES([XI], [xi], [
+ VLC_ADD_LIBS([qt4], [${XI_LIBS}])
+ VLC_ADD_CXXFLAGS([qt4], [${XI_CFLAGS} -DHAVE_XI])
diff --git a/media-video/vlc/files/vlc-2.2.4-qt57.patch b/media-video/vlc/files/vlc-2.2.4-qt57.patch
new file mode 100644
index 000000000000..97472a64c398
--- /dev/null
+++ b/media-video/vlc/files/vlc-2.2.4-qt57.patch
@@ -0,0 +1,284 @@
+As the 2.2 headers are still using vlc_atomics (picture)
+we cannot have a way to avoid collisions with early
+or late <atomic> inclusion when using GCC >= 4.7
+
+Conditionals in vlc_atomic won't work.
+
+Happens in ProjectM and Qt5.
+---
+ modules/gui/qt4/actions_manager.cpp | 2 ++
+ modules/gui/qt4/adapters/seekpoints.cpp | 4 +--
+ modules/gui/qt4/adapters/seekpoints.hpp | 4 +--
+ modules/gui/qt4/components/controller.cpp | 2 ++
+ .../gui/qt4/components/playlist/playlist_model.hpp | 4 +--
+ modules/gui/qt4/components/playlist/views.cpp | 6 ++++
+ modules/gui/qt4/dialogs/messages.cpp | 2 ++
+ modules/gui/qt4/dialogs/vlm.cpp | 4 ---
+ modules/gui/qt4/dialogs/vlm.hpp | 4 ++-
+ modules/gui/qt4/input_manager.cpp | 2 ++
+ modules/gui/qt4/input_manager.hpp | 3 +-
+ modules/gui/qt4/menus.cpp | 2 ++
+ modules/gui/qt4/qt4.hpp | 32 ++++++++++++++++++----
+ modules/gui/qt4/util/pictureflow.cpp | 2 ++
+ modules/visualization/projectm.cpp | 4 +++
+ 15 files changed, 56 insertions(+), 21 deletions(-)
+
+diff --git a/modules/gui/qt4/actions_manager.cpp b/modules/gui/qt4/actions_manager.cpp
+index eff40d9..b7ca967 100644
+--- a/modules/gui/qt4/actions_manager.cpp
++++ b/modules/gui/qt4/actions_manager.cpp
+@@ -25,6 +25,8 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include <vlc_vout.h>
+ #include <vlc_keys.h>
+
+diff --git a/modules/gui/qt4/adapters/seekpoints.cpp b/modules/gui/qt4/adapters/seekpoints.cpp
+index fbf2957..a3564bb 100644
+--- a/modules/gui/qt4/adapters/seekpoints.cpp
++++ b/modules/gui/qt4/adapters/seekpoints.cpp
+@@ -19,14 +19,12 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
++#include "seekpoints.hpp"
+
+ #include "recents.hpp"
+ #include "dialogs_provider.hpp"
+ #include "menus.hpp"
+
+-#include "seekpoints.hpp"
+-
+-#include "qt4.hpp"
+ #include "input_manager.hpp"
+
+ SeekPoints::SeekPoints( QObject *parent, intf_thread_t *p_intf_ ) :
+diff --git a/modules/gui/qt4/adapters/seekpoints.hpp b/modules/gui/qt4/adapters/seekpoints.hpp
+index 0083989..bbb9214 100644
+--- a/modules/gui/qt4/adapters/seekpoints.hpp
++++ b/modules/gui/qt4/adapters/seekpoints.hpp
+@@ -22,9 +22,7 @@
+ #ifndef SEEKPOINTS_HPP
+ #define SEEKPOINTS_HPP
+
+-#ifdef HAVE_CONFIG_H
+-#include "config.h"
+-#endif
++#include "qt4.hpp"
+
+ #include <vlc_common.h>
+ #include <vlc_interface.h>
+diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp
+index d93e0db..c43d929 100644
+--- a/modules/gui/qt4/components/controller.cpp
++++ b/modules/gui/qt4/components/controller.cpp
+@@ -26,6 +26,8 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include <vlc_vout.h> /* vout_thread_t for FSC */
+
+ /* Widgets */
+diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp
+index f9d1d0c..1f71ac9 100644
+--- a/modules/gui/qt4/components/playlist/playlist_model.hpp
++++ b/modules/gui/qt4/components/playlist/playlist_model.hpp
+@@ -25,9 +25,7 @@
+ #ifndef _PLAYLIST_MODEL_H_
+ #define _PLAYLIST_MODEL_H_
+
+-#ifdef HAVE_CONFIG_H
+-# include "config.h"
+-#endif
++#include "qt4.hpp"
+
+ #include <vlc_input.h>
+ #include <vlc_playlist.h>
+diff --git a/modules/gui/qt4/components/playlist/views.cpp b/modules/gui/qt4/components/playlist/views.cpp
+index 59f6535..0066205 100644
+--- a/modules/gui/qt4/components/playlist/views.cpp
++++ b/modules/gui/qt4/components/playlist/views.cpp
+@@ -21,6 +21,12 @@
+ * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include "qt4.hpp"
++
+ #include "components/playlist/views.hpp"
+ #include "components/playlist/vlc_model.hpp" /* VLCModel */
+ #include "components/playlist/sorting.h" /* Columns List */
+diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp
+index 30793a2..9c79c99 100644
+--- a/modules/gui/qt4/dialogs/messages.cpp
++++ b/modules/gui/qt4/dialogs/messages.cpp
+@@ -24,6 +24,8 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include "dialogs/messages.hpp"
+
+ #include <QPlainTextEdit>
+diff --git a/modules/gui/qt4/dialogs/vlm.cpp b/modules/gui/qt4/dialogs/vlm.cpp
+index 0da88cc..595f015 100644
+--- a/modules/gui/qt4/dialogs/vlm.cpp
++++ b/modules/gui/qt4/dialogs/vlm.cpp
+@@ -23,10 +23,6 @@
+ * Foundation, Inc., 51 Franklin street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+-#ifdef HAVE_CONFIG_H
+-# include "config.h"
+-#endif
+-
+ #include "dialogs/vlm.hpp"
+
+ #ifdef ENABLE_VLM
+diff --git a/modules/gui/qt4/dialogs/vlm.hpp b/modules/gui/qt4/dialogs/vlm.hpp
+index a3c6e5d..dcf7110 100644
+--- a/modules/gui/qt4/dialogs/vlm.hpp
++++ b/modules/gui/qt4/dialogs/vlm.hpp
+@@ -25,8 +25,10 @@
+ #ifndef QVLC_VLM_DIALOG_H_
+ #define QVLC_VLM_DIALOG_H_ 1
+
++#include "qt4.hpp"
++
+ #ifdef HAVE_CONFIG_H
+-# include "config.h"
++#include "config.h"
+ #endif
+
+ #ifdef ENABLE_VLM
+diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
+index fd45f4a..c50cb6c 100644
+--- a/modules/gui/qt4/input_manager.cpp
++++ b/modules/gui/qt4/input_manager.cpp
+@@ -30,6 +30,8 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include "input_manager.hpp"
+ #include "recents.hpp"
+
+diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp
+index 7d3b76a..4fbecbb 100644
+--- a/modules/gui/qt4/input_manager.hpp
++++ b/modules/gui/qt4/input_manager.hpp
+@@ -29,9 +29,10 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include <vlc_input.h>
+
+-#include "qt4.hpp"
+ #include "util/singleton.hpp"
+ #include "adapters/variables.hpp"
+
+diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp
+index 116e98c..46240b0 100644
+--- a/modules/gui/qt4/menus.cpp
++++ b/modules/gui/qt4/menus.cpp
+@@ -34,6 +34,8 @@
+ # include "config.h"
+ #endif
+
++#include "qt4.hpp"
++
+ #include <vlc_common.h>
+ #include <vlc_intf_strings.h>
+ #include <vlc_vout.h> /* vout_thread_t */
+diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp
+index 44d7db6..5aec957 100644
+--- a/modules/gui/qt4/qt4.hpp
++++ b/modules/gui/qt4/qt4.hpp
+@@ -29,12 +29,7 @@
+ # include "config.h"
+ #endif
+
+-#include <vlc_common.h> /* VLC_COMMON_MEMBERS for vlc_interface.h */
+-#include <vlc_interface.h> /* intf_thread_t */
+-#include <vlc_playlist.h> /* playlist_t */
+-
+-#define QT_NO_CAST_TO_ASCII
+-#include <QString>
++#include <QtGlobal>
+
+ #if ( QT_VERSION < 0x040600 )
+ # error Update your Qt version to at least 4.6.0
+@@ -43,6 +38,31 @@
+ #define HAS_QT47 ( QT_VERSION >= 0x040700 )
+ #define HAS_QT5 ( QT_VERSION >= 0x050000 )
+
++#if HAS_QT5
++ #include <QtCore/qcompilerdetection.h>
++ #if defined(Q_COMPILER_ATOMICS) && \
++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) )
++ #define VLC_ATOMIC_H
++ #include <atomic>
++ using namespace std;
++ # define atomic_store(object,desired) \
++ do { \
++ *(object) = (desired); \
++ __sync_synchronize(); \
++ } while (0)
++
++ # define atomic_load(object) \
++ (__sync_synchronize(), *(object))
++ #endif
++#endif
++
++#include <vlc_common.h> /* VLC_COMMON_MEMBERS for vlc_interface.h */
++#include <vlc_interface.h> /* intf_thread_t */
++#include <vlc_playlist.h> /* playlist_t */
++
++#define QT_NO_CAST_TO_ASCII
++#include <QString>
++
+ enum {
+ DialogEventTypeOffset = 0,
+ IMEventTypeOffset = 100,
+diff --git a/modules/gui/qt4/util/pictureflow.cpp b/modules/gui/qt4/util/pictureflow.cpp
+index 9318953..a7e6a01 100644
+--- a/modules/gui/qt4/util/pictureflow.cpp
++++ b/modules/gui/qt4/util/pictureflow.cpp
+@@ -29,6 +29,8 @@
+ THE SOFTWARE.
+ */
+
++#include "qt4.hpp"
++
+ #include "pictureflow.hpp"
+
+ #include <QApplication>
+diff --git a/modules/visualization/projectm.cpp b/modules/visualization/projectm.cpp
+index e80fbf4..96d532d 100644
+--- a/modules/visualization/projectm.cpp
++++ b/modules/visualization/projectm.cpp
+@@ -30,6 +30,10 @@
+ #endif
+
+ #include <assert.h>
++#if defined(__GNUC__) && \
++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) )
++ #define VLC_ATOMIC_H /* Ensure C atomics wont collide with old intrinsics */
++#endif
+
+ #include <vlc_common.h>
+ #include <vlc_plugin.h>
+--
+2.7.4
diff --git a/media-video/vlc/vlc-2.2.4.ebuild b/media-video/vlc/vlc-2.2.4.ebuild
index 61ac59612e58..a165e1ddd098 100644
--- a/media-video/vlc/vlc-2.2.4.ebuild
+++ b/media-video/vlc/vlc-2.2.4.ebuild
@@ -230,6 +230,10 @@ PATCHES=(
# Bug #575072
"${FILESDIR}"/${PN}-2.2.4-relax_ffmpeg.patch
"${FILESDIR}"/${PN}-2.2.4-ffmpeg3.patch
+
+ # Bug #589396
+ "${FILESDIR}"/${PN}-2.2.4-qt57.patch
+ "${FILESDIR}"/${PN}-2.2.4-cxx0x.patch
)
DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt doc/intf-vcd.txt )
diff --git a/media-video/vlc/vlc-2.2.9999.ebuild b/media-video/vlc/vlc-2.2.9999.ebuild
index 004ccdde04c3..70477211516c 100644
--- a/media-video/vlc/vlc-2.2.9999.ebuild
+++ b/media-video/vlc/vlc-2.2.9999.ebuild
@@ -221,6 +221,9 @@ PATCHES=(
# Allow QT5.5 since Gentoo has a patched QTwidgets
"${FILESDIR}"/${PN}-2.2.2-qt5widgets.patch
+
+ # Bug #589396
+ "${FILESDIR}"/${PN}-2.2.4-cxx0x.patch
)
DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt doc/intf-vcd.txt )