diff options
author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-10-22 13:18:31 +0200 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2016-11-27 05:00:09 +1100 |
commit | 10178f81e58442231dda913dfd878491d1515e0b (patch) | |
tree | daa055a30a0834612ee829f725303d479618a05c /media-video/vlc | |
parent | media-video/vlc: Prefer qt5 to qt4 if both enabled (diff) | |
download | gentoo-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.patch | 11 | ||||
-rw-r--r-- | media-video/vlc/files/vlc-2.2.4-qt57.patch | 284 | ||||
-rw-r--r-- | media-video/vlc/vlc-2.2.4.ebuild | 4 | ||||
-rw-r--r-- | media-video/vlc/vlc-2.2.9999.ebuild | 3 |
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 ) |