diff options
author | Tobias C. Berner <tcberner@FreeBSD.org> | 2017-02-18 19:48:05 +0000 |
---|---|---|
committer | Tobias C. Berner <tcberner@FreeBSD.org> | 2017-02-18 19:48:05 +0000 |
commit | f3c180c3431372077934f7658922b8a244419bdf (patch) | |
tree | 4d04227f02c7fda007ad74be01e1393168277b0b /devel/qt5/files | |
parent | Upgrade from 2.2 to 2.3. (diff) |
Update Qt5 to 5.7.1, and unify the Qt4 and Qt5 ports some more
* Update Qt5 to 5.7.1
* Move Qt4 binaries to lib/qt4/bin
* Move Qt5 libraries to lib/qt5/lib
By moving the libraries we should finally be able to get rid of the inplace
upgrade bug (see ports bugs 194088, 195105 and 198720): when Qt5's libraries
were lying in /usr/local/lib, which would often get added by pkgconfig to the
linker paths via dependencies, the already installed libraries were linked
against, instead of the ones that were being built. This forced us to make
sure, that -L${WRKSRC}/lib was always coming before -L/usr/local/lib in the
linker flags. With this change this should no longer be the case.
* Rename some ports to match the rest (foo-qtX -> qtX-foo)
* Depend on new port misc/qtchooser [see UPDATING & CHANGES]
There are several new Qt5 ports which all have been created by Marie Loise Nolden
<nolden@kde.org>. Thanks again.
PR: 216797
Exp-Run by: antoine
Reviewed by: rakuco, mat, groot_kde.org
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D9213
Diffstat (limited to 'devel/qt5/files')
4 files changed, 101 insertions, 55 deletions
diff --git a/devel/qt5/files/extrapatch-configure b/devel/qt5/files/extrapatch-configure index ed22a32567e4..46515d852348 100644 --- a/devel/qt5/files/extrapatch-configure +++ b/devel/qt5/files/extrapatch-configure @@ -16,9 +16,9 @@ as the value of QMAKE_DEFAULT_LIBDIRS in mkspecs/qconfig.pri (which qmake uses to filter out those same paths when processing .pro files). ---- configure.orig 2015-03-16 17:16:10.000000000 +0100 -+++ configure 2015-05-01 09:35:38.595937000 +0200 -@@ -3853,7 +3853,7 @@ +--- configure.orig 2015-03-16 17:16:10.000000000 +0100 ++++ configure 2016-04-18 12:35:38.595937000 +0200 +@@ -3878,7 +3878,7 @@ } # build qmake @@ -27,7 +27,7 @@ echo "Creating qmake..." mkdir -p "$outpath/qmake" || exit -@@ -4777,8 +4777,8 @@ +@@ -5045,8 +5045,8 @@ SQLITE_AUTODETECT_FAILED="no" if [ "$CFG_SQLITE" = "system" ]; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists sqlite3 2>/dev/null; then @@ -38,9 +38,9 @@ else QT_CFLAGS_SQLITE= QT_LFLAGS_SQLITE="-lsqlite3 -lz" -@@ -4881,8 +4881,8 @@ - fi - if [ "$CFG_DBUS" = "linked" ]; then +@@ -5149,8 +5149,8 @@ + # runtime: no detection (cannot fail), load libdbus-1 at runtime + if [ "$CFG_DBUS" = "auto" ] || [ "$CFG_DBUS" = "linked" ]; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then - QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null` - QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null` @@ -49,7 +49,7 @@ else QT_LIBS_DBUS="-ldbus-1" fi -@@ -4928,8 +4928,8 @@ +@@ -5201,8 +5201,8 @@ # auto-detect Glib support if [ "$CFG_GLIB" != "no" ]; then if [ -n "$PKG_CONFIG" ]; then @@ -60,20 +60,20 @@ fi if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then CFG_GLIB=yes -@@ -4952,9 +4952,9 @@ +@@ -5225,9 +5225,9 @@ # auto-detect GTK style support - if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then + if [ "$CFG_GLIB" = "yes" -a "$CFG_GTK" != "no" ]; then if [ -n "$PKG_CONFIG" ]; then -- QT_CFLAGS_QGTK2=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null` -- QT_LIBS_QGTK2=`$PKG_CONFIG --libs gtk+-2.0 2>/dev/null` +- QT_CFLAGS_QGTK3=`$PKG_CONFIG --cflags gtk+-3.0 2>/dev/null` +- QT_LIBS_QGTK3=`$PKG_CONFIG --libs gtk+-3.0 2>/dev/null` - QT_LIBS_QGOBJECT=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null` -+ QT_CFLAGS_QGTK2=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null | filterIncludeOptions` -+ QT_LIBS_QGTK2=`$PKG_CONFIG --libs gtk+-2.0 2>/dev/null | filterLibraryOptions` ++ QT_CFLAGS_QGTK3=`$PKG_CONFIG --cflags gtk+-3.0 2>/dev/null | filterIncludeOptions` ++ QT_LIBS_QGTK3=`$PKG_CONFIG --libs gtk+-3.0 2>/dev/null | filterLibraryOptions` + QT_LIBS_QGOBJECT=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null | filterLibraryOptions` fi - if [ -n "$QT_CFLAGS_QGTK2" ] ; then - CFG_QGTKSTYLE=yes -@@ -5001,8 +5001,8 @@ + if [ -n "$QT_CFLAGS_QGTK3" ] ; then + CFG_GTK=yes +@@ -5272,8 +5272,8 @@ # Auto-detect PulseAudio support if [ "$CFG_PULSEAUDIO" != "no" ]; then if [ -n "$PKG_CONFIG" ]; then @@ -84,7 +84,7 @@ fi if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then CFG_PULSEAUDIO=yes -@@ -5165,8 +5165,8 @@ +@@ -5436,8 +5436,8 @@ # auto-detect FontConfig support if [ "$CFG_FONTCONFIG" != "no" ]; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then @@ -119,7 +119,7 @@ fi if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "x11" 2> /dev/null; then QMAKE_X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`" -@@ -5353,16 +5353,16 @@ +@@ -5631,16 +5631,16 @@ CFG_XCB="system" if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" @@ -151,7 +151,7 @@ if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then CFG_DIRECTFB=yes elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then -@@ -5470,8 +5470,8 @@ +@@ -5776,8 +5776,8 @@ if [ "$CFG_XKBCOMMON" != "no" ] && [ "$CFG_XKBCOMMON" != "qt" ]; then # Check if there is a suitable system-wide xkbcommon if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xkbcommon xkbcommon-x11 >= $MIN_REQ_XKBCOMMON" 2>/dev/null; then @@ -162,7 +162,7 @@ QMakeVar set QMAKE_CFLAGS_XKBCOMMON "$QMAKE_CFLAGS_XKBCOMMON" QMakeVar set QMAKE_LIBS_XKBCOMMON "$QMAKE_LIBS_XKBCOMMON" -@@ -5524,9 +5524,9 @@ +@@ -5830,9 +5830,9 @@ fi if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then diff --git a/devel/qt5/files/extrapatch-mkspecs_features_create__cmake.prf b/devel/qt5/files/extrapatch-mkspecs_features_create__cmake.prf new file mode 100644 index 000000000000..2723284c5083 --- /dev/null +++ b/devel/qt5/files/extrapatch-mkspecs_features_create__cmake.prf @@ -0,0 +1,77 @@ +As we moved the libraries of Qt5 from /usr/local/lib to /usr/local/lib/qt5 the +cmake files would get installed into /usr/local/lib/qt5/cmake. This however is +not really convenient for use with other applications depending on Qt via cmake. + +For ports we could modify cmake.mk to always append /usr/local/lib/qt5 to the +search path. This would however still break applications outside of the ports +tree that users want to compile via cmake. An other option would be to patch +devel/cmake to add /usr/local/lib/qt5/cmake to the default search paths. + +We chose the third option. To patch qmake's internal cmake generation function +to fix up the paths so that cmake files still land in the the "correct" location +in /usr/local/lib/cmake -- as this seemed to be the least intrusive method. + + + +--- mkspecs/features/create_cmake.prf.orig 2016-05-11 09:21:02.000000000 +0200 ++++ mkspecs/features/create_cmake.prf 2016-06-03 18:21:42.389363000 +0200 +@@ -48,7 +52,7 @@ + } + + CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX]) +-contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") { ++contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*")|freebsd { + CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/ + CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True + } +@@ -56,7 +60,7 @@ + !exists($$first(QT.$${MODULE}_private.includes)): CMAKE_NO_PRIVATE_INCLUDES = true + + CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX]) +-contains(CMAKE_LIB_DIR,"^\\.\\./.*") { ++contains(CMAKE_LIB_DIR,"^\\.\\./.*")|freebsd { + CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/ + CMAKE_LIB_DIR_IS_ABSOLUTE = True + } else { +@@ -67,20 +71,20 @@ + } + + CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX]) +-contains(CMAKE_BIN_DIR, "^\\.\\./.*") { ++contains(CMAKE_BIN_DIR, "^\\.\\./.*")|freebsd { + CMAKE_BIN_DIR = $$[QT_HOST_BINS]/ + CMAKE_BIN_DIR_IS_ABSOLUTE = True + } + + CMAKE_PLUGIN_DIR = $$cmakeRelativePath($$[QT_INSTALL_PLUGINS], $$[QT_INSTALL_PREFIX]) +-contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") { ++contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*")|freebsd { + CMAKE_PLUGIN_DIR = $$[QT_INSTALL_PLUGINS]/ + CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True + } + + win32:!wince:!static:!staticlib { + CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX]) +- contains(CMAKE_DLL_DIR, "^\\.\\./.*") { ++ contains(CMAKE_DLL_DIR, "^\\.\\./.*")|freebsd { + CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/ + CMAKE_DLL_DIR_IS_ABSOLUTE = True + } +@@ -167,7 +171,7 @@ + cmake_target_file + + cmake_qt5_plugin_file.files = $$cmake_target_file.output +- cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++ cmake_qt5_plugin_file.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5$${CMAKE_MODULE_NAME} + INSTALLS += cmake_qt5_plugin_file + + return() +@@ -314,7 +318,7 @@ + cmake_qt5_module_files.files += $$cmake_macros_file.output + } + +-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++cmake_qt5_module_files.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5$${CMAKE_MODULE_NAME} + + # We are generating cmake files. Most developers of Qt are not aware of cmake, + # so we require automatic tests to be available. The only module which should diff --git a/devel/qt5/files/extrapatch-mkspecs_features_qt__module.prf b/devel/qt5/files/extrapatch-mkspecs_features_qt__module.prf index 25007cbeb401..ebca55108e98 100644 --- a/devel/qt5/files/extrapatch-mkspecs_features_qt__module.prf +++ b/devel/qt5/files/extrapatch-mkspecs_features_qt__module.prf @@ -1,7 +1,7 @@ The first hunk fixes the install location of the pkconfig files: FreeBSD installs pkgconfig files to $LOCALBASE/libdata/pkgconfig - qmake uses QMAKE_PKGCONFIG_DESTDIR as relative path to $$QT_LIBDIR - respectively as absolute path. + qmake uses QMAKE_PKGCONFIG_DESTDIR as relative path to $$QT_LIBDIR. + As this is now '${PREFIX}/lib/qt5' we need to go up two levels. The second hunk stops qmake from generating la files. @@ -12,7 +12,7 @@ The second hunk stops qmake from generating la files. !internal_module:!lib_bundle:if(unix|mingw) { CONFIG += create_pc - QMAKE_PKGCONFIG_DESTDIR = pkgconfig -+ QMAKE_PKGCONFIG_DESTDIR = ../libdata/pkgconfig ++ QMAKE_PKGCONFIG_DESTDIR = ../../libdata/pkgconfig host_build: \ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS] else: \ diff --git a/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h b/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h deleted file mode 100644 index fbc864b3058b..000000000000 --- a/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h +++ /dev/null @@ -1,31 +0,0 @@ ---- src/corelib/global/qcompilerdetection.h.orig 2015-10-13 04:35:31 UTC -+++ src/corelib/global/qcompilerdetection.h -@@ -941,13 +941,26 @@ - # undef Q_COMPILER_CONSTEXPR - # endif - # endif // Q_OS_QNX --# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && defined(Q_OS_MAC) && defined(__GNUC_LIBSTD__) \ -- && ((__GNUC_LIBSTD__-0) * 100 + __GNUC_LIBSTD_MINOR__-0 <= 402) -+# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && !defined(_LIBCPP_VERSION) - // Apple has not updated libstdc++ since 2007, which means it does not have - // <initializer_list> or std::move. Let's disable these features -+// The same applies to FreeBSD's base libstdc++ version used in FreeBSD 9.x. - # undef Q_COMPILER_INITIALIZER_LISTS - # undef Q_COMPILER_RVALUE_REFS - # undef Q_COMPILER_REF_QUALIFIERS -+// FreeBSD's base libstdc++ does not support std::u{16,32}string. -+# undef Q_COMPILER_UNICODE_STRINGS -+// FreeBSD's base libstdc++ does not support std::declval, which is used in -+// together with noexcept in some headers such as qpair.h (as of Qt 5.5). -+// Since there is no macro checking for std::declval, just disable noexcept -+// altogether. -+# undef Q_COMPILER_NOEXCEPT -+// FreeBSD's base libstdc++ is missing constexpr keywords on important -+// functions like std::numeric_limits<>::min(). Disable constexpr even if clang -+// advertises support for it. -+# undef Q_COMPILER_CONSTEXPR -+// FreeBSD's base libstdc++ does not support std::nullptr_t. -+# undef Q_COMPILER_NULLPTR - // Also disable <atomic>, since it's clearly not there - # undef Q_COMPILER_ATOMICS - # endif |