Bug 202808 - [exp-run] Update Qt 4 ports to 4.8.7
Summary: [exp-run] Update Qt 4 ports to 4.8.7
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Raphael Kubo da Costa
URL:
Keywords:
Depends on:
Blocks: 202552
  Show dependency treegraph
 
Reported: 2015-09-01 07:55 UTC by Max Brazhnikov
Modified: 2015-09-16 08:57 UTC (History)
2 users (show)

See Also:


Attachments
qt-4.8.7 (25.06 KB, patch)
2015-09-01 07:55 UTC, Max Brazhnikov
no flags Details | Diff
Patch v2 (26.80 KB, patch)
2015-09-12 20:48 UTC, Raphael Kubo da Costa
no flags Details | Diff
Patch v3 (44.22 KB, patch)
2015-09-15 09:35 UTC, Raphael Kubo da Costa
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Max Brazhnikov freebsd_committer freebsd_triage 2015-09-01 07:55:00 UTC
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.
Comment 2 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-09-06 11:09:13 UTC
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.
Comment 3 Antoine Brodin freebsd_committer freebsd_triage 2015-09-10 13:38:17 UTC
Re-assign the PR to me if you have another patch to test
Comment 4 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-09-12 20:48:34 UTC
Created attachment 160961 [details]
Patch v2

New patch attached with fixes for qcad and akonadi. Can we get another exp-run?
Comment 5 Antoine Brodin freebsd_committer freebsd_triage 2015-09-13 19:41:01 UTC
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
Comment 6 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-09-14 23:06:24 UTC
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.
Comment 7 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-09-15 09:35:27 UTC
Created attachment 161049 [details]
Patch v3

New attempt: patch Qt and stop patching the other ports.
Comment 8 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-09-15 09:36:37 UTC
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.
Comment 10 commit-hook freebsd_committer freebsd_triage 2015-09-16 08:56:21 UTC
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/