Created attachment 160579 [details] qt-4.8.7 This is a bug fix release, so no regression is expected, but to be safe I'd like to request an exp-run. This update also includes patch from bug/202552 to enable LIBS variable support for Qt ports.
Exp-run results on 9.3 i386: http://package23.nyi.freebsd.org/jail.html?mastername=93i386-default-PR202808 Exp-run results on 10.2 amd64: http://package18.nyi.freebsd.org/jail.html?mastername=102amd64-default-PR202808 There is 1 new failure on all archs: cad/qcad Failure logs: http://package18.nyi.freebsd.org/data/102amd64-default-PR202808/2015-09-05_19h51m58s/logs/errors/qcad-3.7.5.0_4.log http://package23.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-05_20h38m38s/logs/errors/qcad-3.7.5.0_4.log There are 2 new failures specific to 9.3, and 105 skipped due to those failures: databases/akonadi japanese/fcitx-skk Failure logs: http://package23.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-05_20h38m38s/logs/errors/akonadi-1.13.0.log http://package23.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-05_20h38m38s/logs/errors/ja-fcitx-skk-0.1.1.log
cad/qcad is at an old version that doesn't have 4.8.7 bindings; just updating the hack I added to its Makefile ages ago should work if one's not interested in updating the port. akonadi and fcitx-skk seem to be suffering from the same problem: both ports build with -std=c++11, or -std=c++0x but have USES=compiler:c++11-lang instead of c++11-lib, which causes problems with Qt 4.8.7 (due to a commit I made myself upstream :-) since qglobal.h will detect that Clang is being used + __cplusplus >= 201103 + __has_feature(cxx_generated_initializers) works, so later qlist.h and possibly other headers will start using features only present in C++11-compatible standard libraries.
Re-assign the PR to me if you have another patch to test
Created attachment 160961 [details] Patch v2 New patch attached with fixes for qcad and akonadi. Can we get another exp-run?
Exp-run results on 10.2 amd64: http://package18.nyi.freebsd.org/build.html?mastername=102amd64-default-PR202808&build=2015-09-13_05h45m19s 0 new failure Exp-run results on 9.3 i386: http://package18.nyi.freebsd.org/build.html?mastername=93i386-default-PR202808&build=2015-09-13_12h15m38s 3 new failures: + {"origin"=>"deskutils/homerun", "pkgname"=>"homerun-0.2.3_1", "phase"=>"build", "errortype"=>"???"} + {"origin"=>"japanese/fcitx-skk", "pkgname"=>"ja-fcitx-skk-0.1.1", "phase"=>"build", "errortype"=>"???"} + {"origin"=>"sysutils/kshutdown-kde4", "pkgname"=>"kshutdown-3.2", "phase"=>"build", "errortype"=>"???"} Failure logs: http://package18.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-13_12h15m38s/logs/errors/homerun-0.2.3_1.log http://package18.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-13_12h15m38s/logs/errors/ja-fcitx-skk-0.1.1.log http://package18.nyi.freebsd.org/data/93i386-default-PR202808/2015-09-13_12h15m38s/logs/errors/kshutdown-3.2.log
I think it's best to include a workaround in Qt instead of changing those ports. I'm finishing some tests and will submit a new port tomorrow.
Created attachment 161049 [details] Patch v3 New attempt: patch Qt and stop patching the other ports.
Patch v3 is up; can you do another round of exp-runs? I've tried building the broken ports with 9.3 and HEAD and they worked fine this time.
Exp-run results on 9.3 i386: http://pb2.nyi.freebsd.org/build.html?mastername=93i386-default-PR202808&build=2015-09-15_12h42m13s Exp-run results on 10.2 amd64: http://pb2.nyi.freebsd.org/build.html?mastername=102amd64-default-PR202808&build=2015-09-15_21h10m05s 0 new failure
A commit references this bug: Author: rakuco Date: Wed Sep 16 08:55:18 UTC 2015 New revision: 397043 URL: https://svnweb.freebsd.org/changeset/ports/397043 Log: Update the Qt4 ports to 4.8.7. According to upstream, this is the last planned Qt4 release. A list of changes since 4.8.6 can be found here: <http://download.qt.io/official_releases/qt/4.8/4.8.7/changes-4.8.7> Porting notes and changes: - Remove several patches that have been upstreamed. - Make Uses/qmake.mk pass the contents of LIBS to the qmake environment. [1] - Repurpose devel/qt4/files/extrapatch-src-corelib-global-qglobal.h now the original patch is part of the release (curiously enough, the original patch was never actually used, as the ?= assignment in r362837 after r362770 was never possible). This works around the way compiler support for C++11 features is detected in Qt 4.8.7: while it originally only uses the compiler to determine if something is supported or not, the initializer lists feature also depends on the C++ standard library being used. It's a problem in FreeBSD 9.x, where USES=compiler:c++0x or USES=compiler:c++11-lang means we will use clang to build a port but use libstdc++ from base (GCC 4.2). The latter obviously does not support initializer lists, and the build fails because Qt tries to include headers that do not exist (<initializer_list>). Since detecting libstdc++'s version is not trivial (we need to include a non-lightweight header like cstdio and then check for __GLIBCXX__), we just enable Q_COMPILER_INITIALIZER_LISTS support only when libc++ is used (there should be no reason for someone to be using clang with GCC 4.8's libstdc++, for example). x11/kdelibs4's FindQt4.cmake had to include a backported change from the upstream FindQt4.cmake in CMake itself to use a C++ compiler to detect flags like Q_WS_X11, otherwise the inclusion of <ciso646> in qglobal.h makes the build fail. This patch contains changes by me, makc@ and alonso@. PR: 202552 [1] PR: 202808 [exp-run] Submitted by: pawel@ [1] Changes: head/Mk/Uses/qmake.mk head/Mk/bsd.qt.mk head/cad/qcad/Makefile head/databases/qt4-odbc-plugin/Makefile head/databases/qt4-sql/Makefile head/databases/qt4-sqlite-plugin/Makefile head/databases/qt4-sqlite3-plugin/Makefile head/devel/dbus-qt4/Makefile head/devel/qmake4/pkg-plist head/devel/qt4/Makefile head/devel/qt4/distinfo head/devel/qt4/files/extrapatch-configure head/devel/qt4/files/extrapatch-src-corelib-global-qglobal.h head/devel/qt4-assistant/Makefile head/devel/qt4-corelib/Makefile head/devel/qt4-designer/Makefile head/devel/qt4-help/Makefile head/devel/qt4-linguist/Makefile head/devel/qt4-qmlviewer/Makefile head/devel/qt4-qt3support/Makefile head/devel/qt4-qvfb/Makefile head/devel/qt4-script/Makefile head/devel/qt4-script/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__Threading.h head/devel/qt4-scripttools/Makefile head/devel/qt4-testlib/Makefile head/graphics/qt4-imageformats/Makefile head/graphics/qt4-imageformats/files/ head/graphics/qt4-opengl/Makefile head/graphics/qt4-opengl/pkg-plist head/graphics/qt4-svg/Makefile head/misc/qt4-l10n/Makefile head/misc/qt4-l10n/pkg-plist head/misc/qt4-qtconfig/Makefile head/misc/qt4-qtdemo/Makefile head/multimedia/qt4-multimedia/Makefile head/net/qt4-network/Makefile head/textproc/clucene-qt4/Makefile head/textproc/qt4-xml/Makefile head/textproc/qt4-xmlpatterns/Makefile head/www/webkit-qt4/Makefile head/x11/kdelibs4/Makefile head/x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake head/x11/qt4-graphicssystems-opengl/Makefile head/x11-toolkits/qt4-declarative/Makefile head/x11-toolkits/qt4-gui/Makefile head/x11-toolkits/qt4-gui/files/