Bug 194566 - [exp-run] Update Qt5 to 5.3.2
Summary: [exp-run] Update Qt5 to 5.3.2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Raphael Kubo da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-23 21:44 UTC by Raphael Kubo da Costa
Modified: 2014-11-05 09:43 UTC (History)
2 users (show)

See Also:
rakuco: exp-run?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-23 21:44:17 UTC
kde@ would like to ask for an exp-run for https://people.freebsd.org/~rakuco/exp-runs/qt-5.3.2-v1.patch to update the Qt5 ports to 5.3.2.

Testing it with both GCC and clang would be extra nice.
Comment 1 Antoine Brodin freebsd_committer freebsd_triage 2014-10-23 21:51:57 UTC
Take for exp-run
Comment 2 Antoine Brodin freebsd_committer freebsd_triage 2014-10-24 20:20:20 UTC
Exp-run results on 10.1 amd64:

http://package18.nyi.freebsd.org/build.html?mastername=101amd64-default-PR194566&build=2014-10-23_23h58m12s

2 new failures:

+ {"origin"=>"devel/qt5-qmldevtools", "pkgname"=>"qt5-qmldevtools-5.3.2_1", "phase"=>"configure", "errortype"=>"???"}
+ {"origin"=>"graphics/luminance-qt5", "pkgname"=>"luminance-hdr-qt5-2.4.0_4", "phase"=>"build", "errortype"=>"???"}

Failure logs:

http://package18.nyi.freebsd.org/data/101amd64-default-PR194566/2014-10-23_23h58m12s/logs/errors/qt5-qmldevtools-5.3.2_1.log
http://package18.nyi.freebsd.org/data/101amd64-default-PR194566/2014-10-23_23h58m12s/logs/errors/luminance-hdr-qt5-2.4.0_4.log

I will continue with 9.1 am64 (gcc)
Comment 3 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-25 14:02:05 UTC
Hmm, apparently my patch doesn't svn rm devel/qt5-qmldevtools. It should, so no need to worry about the failure there.

I've sent a patch to fix luminance-qt5 (bug 194596).
Comment 4 Antoine Brodin freebsd_committer freebsd_triage 2014-10-25 20:34:24 UTC
Exp-run results on 91amd64 (gcc):

http://package18.nyi.freebsd.org/build.html?mastername=91amd64-default-PR194566&build=2014-10-24_23h59m47s

New failures:

+ {"origin"=>"devel/qt5-qmldevtools", "pkgname"=>"qt5-qmldevtools-5.3.2_1", "phase"=>"configure", "errortype"=>"???"}
+ {"origin"=>"lang/qt5-qml", "pkgname"=>"qt5-qml-5.3.2", "phase"=>"build", "errortype"=>"new_compiler_error"}

Failure log:

http://package18.nyi.freebsd.org/data/91amd64-default-PR194566/2014-10-24_23h59m47s/logs/errors/qt5-qml-5.3.2.log

17 ports skipped due to the qt5-qml failure:

+ {"origin"=>"astro/stellarium", "pkgname"=>"stellarium-0.13.1", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"audio/kid3-qt5", "pkgname"=>"kid3-qt5-3.1_3", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"devel/qt5", "pkgname"=>"qt5-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"devel/qt5-assistant", "pkgname"=>"qt5-assistant-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"devel/qt5-designer", "pkgname"=>"qt5-designer-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"devel/qt5-linguist", "pkgname"=>"qt5-linguist-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"devel/qt5-linguisttools", "pkgname"=>"qt5-linguisttools-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"games/dustrac", "pkgname"=>"dustrac-1.7.2_1", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"graphics/luminance-qt5", "pkgname"=>"luminance-hdr-qt5-2.4.0_4", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"lang/basic256", "pkgname"=>"basic256-1.1.3.0_1", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"mail/trojita", "pkgname"=>"trojita-0.4.1_2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"multimedia/qt5-multimedia", "pkgname"=>"qt5-multimedia-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"www/otter-browser", "pkgname"=>"otter-browser-0.9.02_1", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"www/webkit-qt5", "pkgname"=>"qt5-webkit-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"x11-toolkits/qt5-declarative", "pkgname"=>"qt5-declarative-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"x11-toolkits/qt5-quick", "pkgname"=>"qt5-quick-5.3.2", "depends"=>"qt5-qml-5.3.2"}
+ {"origin"=>"x11-toolkits/qt5-quickcontrols", "pkgname"=>"qt5-quickcontrols-5.3.2", "depends"=>"qt5-qml-5.3.2"}
Comment 5 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-26 12:07:20 UTC
https://people.freebsd.org/~rakuco/exp-runs/qt-5.3.2-v2.patch is up and should fix the failures with base GCC (luminance-qt5 has also been fixed separately meanwhile).

Please `svn rm devel/qt5-qmldevtools` before starting the build, as the patch doesn't remove the directory :(
Comment 6 Antoine Brodin freebsd_committer freebsd_triage 2014-10-26 12:23:15 UTC
patching Mk/Uses/qmake.mk is no longer necessary?
Comment 7 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-26 13:56:16 UTC
Argh. Yes, it's necessary, hold on.
Comment 8 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-26 14:02:22 UTC
Sorry about that. Patch v2 should be correct now.
Comment 9 Antoine Brodin freebsd_committer freebsd_triage 2014-10-26 14:07:43 UTC
There is a strange file in the patch:
+++ multimedia/qt5-multimedia/pkg-plist.svnpatch.rej
Comment 11 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-10-26 15:56:36 UTC
I've removed multimedia/qt5-multimedia/pkg-plist.svnpatch.rej from patch v2. As for the qt5-qml error, it looks like a problem with your `svn patch' call: `make patch' worked fine here, and from the error message and the fact that the log says 5.3.2_1 instead of 5.3.2 it appears qt5-qml/Makefile was not patched.
Comment 13 commit-hook freebsd_committer freebsd_triage 2014-11-05 09:40:11 UTC
A commit references this bug:

Author: rakuco
Date: Wed Nov  5 09:39:30 UTC 2014
New revision: 372179
URL: https://svnweb.freebsd.org/changeset/ports/372179

Log:
  Update Qt5 ports to 5.3.2.

  Proudly presented by the KDE on FreeBSD team, with several guest stars.

  This update took way longer than initially expected due to us previously
  accumulating assumptions and changes to Qt's build system that finally bit
  us back with the 5.3 release series, so we had to do a fair amount of
  cleanup.

  New ports:
  - comms/qt5-serialport: Qt functions to access serial ports, originally
                          based on work by Fernando Apesteguia. [1]
  - devel/qt5-qdoc: Qt documentation generator, the Qt5 equivalent of
                    devel/qt4-qdoc3. Originally worked on by Tobias Berner.
                    It had already been half-split from devel/qt5-buildtools,
                    we just needed to finish the work.

  Dead ports:
  - devel/qt5-qmldevtools: Merged into lang/qt5-qml.

  Minor changes:
  - devel/qt5: Add x11/qt5-x11extras and the new ports to the dependency list.
  - graphics/qt5-imageformats: The port now supports the JPEG2000, WEBP,
                               Direct Draw Surface and ICNS formats.
  - multimedia/qt5-multimedia: The ALSA and PULSEAUDIO options are now
                               mutually exclusive due to changes introduced in
                               Qt 5.3.0 (the ALSA code is now a proper plugin
                               that is only built if PulseAudio is not used).
  - x11/qt5-x11extras: Add USE_LDCONFIG since the port installs a shared
                       library.

  The big changes:
  - bsd.qt.mk: Set QMAKESPEC instead of QMAKEPATH. [3]
    QMAKEPATH does much more than we want now that we call qmake from the top
    of ${WRKSRC}. qmake uses QMAKEPATH when evaluating the QMAKE_MKSPECS
    property, which is in turn used by qt_config.pri to load the .pri files in
    mkspecs/modules.

    In practice, this means that if people have an older Qt installation those
    files will be used and QT_CONFIG will have values such as "gui" even if
    one is building a port like textproc/qt5-xml, which passes -no-gui to the
    configure script. Consequently, unintended code paths may be enabled or
    the configuration step can just fail if the .pro files expect values that
    are not present in the system-wide, older .pri files.

    We avoid all those problems if we use QMAKESPEC, as qmake does not take
    its value into account when evaluating the QMAKE_MKSPECS property and will
    only parse the files in the mkspec's directory (mkspecs/freebsd-clang, for
    example, instead of all the files in mkspecs).

  - Stop explicitly passing ${LOCALBASE} to the compiler. [3]
    qmake's behavior has changed in Qt 5, and the paths set in QMAKE_INCDIR
    and QMAKE_LIBDIR in the mkspecs are passed before any others, such as the
    ones in the build directory themselves.

    In practice, this means that we end up with linker calls like this:

    c++ -o libfoo.so foo.o bar.o -L/usr/local/lib -L/wrkdir/build/lib
        -lQt5Gui -lQt5Core

    So if one already has Qt installed in the system, the older, already
    present version of the libraries in /usr/local/lib will be used instead of
    the newly-built ones in /wrkdir/build/lib.

    QTBUG-40825 discusses this behavior upstream, but there has been no
    agreement on a solution yet.

    For now, the solution adopted is to make the compiler and the linker aware
    of those paths but only try them last after all others, and this is
    achieved by setting the CPATH and LIBRARY_PATH environment variables when
    qmake is being used.

    In addition to setting them in CONFIGURE_ENV and MAKE_ENV, we also need to
    stop changing QMAKE_INCDIR and QMAKE_LIBDIR as well as filter those paths
    from the pkg-config calls qtbase's configure script makes.

  - Call qmake from the root of the ${WRKSRC}.

    In Qt 5.3, Qt's build infrastructure has undergone some changes that make
    our previous approach of calling qmake from the directories we want to
    build stop working. Things would break even more in Qt 5.4, in which
    qtbase's configure script does not accept the -process, -fully-process and
    -dont-process arguments anymore (it always behaves as if -process had been
    used).

    Bite the bullet and start calling qmake from ${WRKSRC}. The largest part of
    this change involves changing lines in Makefiles from
      WRKSRC_SUBDIR=	foo/bar
    to
      BUILD_WRKSRC=		${WRKSRC}/foo/bar
      INSTALL_WRKSRC=		${WRKSRC}/foo/bar
    as well as adding patches to .pro files to avoid entering other
    subdirectories and removing post-configure targets that are not necessary
    anymore.

    Since qmake needs to be called from the top of ${WRKSRC} anyway, we can
    also simplify the configuration process for the qtbase ports a little.
    Looking at r10019 it is not clear why we started calling qmake in the
    pre-configure target in addition to the post-configure one (while also
    skipping it in do-configure), but we can now drop this call since letting
    configure behave as if -process had been passed means it will call qmake
    on its own and overwrite the files generated by the pre-configure call. We
    still need to call qmake in post-configure though, as the configure script
    does not pass -recursive when calling qmake and we need to be able to call
    make from any subdirectory when building.

  PR:		194762 [1]
  PR:		194566 # exp-run with base GCC and clang
  PR:		194088 [3]

Changes:
  head/MOVED
  head/Mk/Uses/qmake.mk
  head/Mk/bsd.qt.mk
  head/comms/qt5-serialport/
  head/comms/qt5-serialport/Makefile
  head/comms/qt5-serialport/pkg-plist
  head/databases/qt5-sql/Makefile
  head/databases/qt5-sqldrivers-odbc/Makefile
  head/databases/qt5-sqldrivers-sqlite2/Makefile
  head/databases/qt5-sqldrivers-sqlite3/Makefile
  head/devel/dbus-qt5/Makefile
  head/devel/qmake5/Makefile
  head/devel/qmake5/files/patch-mkspecs__common__clang-unix.conf
  head/devel/qmake5/files/patch-mkspecs__common__freebsd.conf
  head/devel/qmake5/files/patch-mkspecs__features__qt_functions.prf
  head/devel/qmake5/files/patch-mkspecs__freebsd-g++__qmake.conf
  head/devel/qmake5/files/patch-mkspecs__unsupported__freebsd-clang__qmake.conf
  head/devel/qmake5/pkg-plist
  head/devel/qt5/Makefile
  head/devel/qt5/distinfo
  head/devel/qt5/files/extrapatch-configure
  head/devel/qt5/files/extrapatch-libtool
  head/devel/qt5-assistant/Makefile
  head/devel/qt5-assistant/files/
  head/devel/qt5-assistant/files/patch-src__src.pro
  head/devel/qt5-buildtools/Makefile
  head/devel/qt5-concurrent/Makefile
  head/devel/qt5-core/Makefile
  head/devel/qt5-core/files/
  head/devel/qt5-core/pkg-plist
  head/devel/qt5-designer/Makefile
  head/devel/qt5-designer/files/
  head/devel/qt5-designer/files/patch-src__src.pro
  head/devel/qt5-designer/pkg-plist
  head/devel/qt5-help/Makefile
  head/devel/qt5-help/files/
  head/devel/qt5-help/files/patch-src__assistant__assistant.pro
  head/devel/qt5-help/files/patch-src__src.pro
  head/devel/qt5-help/pkg-plist
  head/devel/qt5-linguist/Makefile
  head/devel/qt5-linguist/files/
  head/devel/qt5-linguist/files/patch-src__src.pro
  head/devel/qt5-linguisttools/Makefile
  head/devel/qt5-qdbus/Makefile
  head/devel/qt5-qdbusviewer/Makefile
  head/devel/qt5-qdbusviewer/files/
  head/devel/qt5-qdbusviewer/files/patch-src__src.pro
  head/devel/qt5-qdoc/
  head/devel/qt5-qdoc/Makefile
  head/devel/qt5-qmldevtools/
  head/devel/qt5-script/Makefile
  head/devel/qt5-scripttools/Makefile
  head/devel/qt5-testlib/Makefile
  head/devel/qt5-testlib/pkg-plist
  head/devel/qt5-uitools/Makefile
  head/devel/qt5-uitools/files/
  head/devel/qt5-uitools/files/patch-src__designer__src__src.pro
  head/devel/qt5-uitools/files/patch-src__src.pro
  head/devel/qtcreator/Makefile
  head/graphics/qt5-imageformats/Makefile
  head/graphics/qt5-imageformats/pkg-plist
  head/graphics/qt5-opengl/Makefile
  head/graphics/qt5-opengl/pkg-plist
  head/graphics/qt5-pixeltool/Makefile
  head/graphics/qt5-pixeltool/files/
  head/graphics/qt5-pixeltool/files/patch-src__src.pro
  head/graphics/qt5-svg/Makefile
  head/graphics/qt5-svg/pkg-plist
  head/lang/qt5-qml/Makefile
  head/lang/qt5-qml/files/patch-git_b84f08c8
  head/lang/qt5-qml/files/patch-jsruntime__qv4alloca_p.h
  head/lang/qt5-qml/files/patch-jsruntime__qv4engine.cpp
  head/lang/qt5-qml/files/patch-jsruntime__qv4mm.cpp
  head/lang/qt5-qml/files/patch-src__qml__jit__qv4assembler.cpp
  head/lang/qt5-qml/files/patch-src__src.pro
  head/lang/qt5-qml/pkg-plist
  head/multimedia/qt5-multimedia/Makefile
  head/multimedia/qt5-multimedia/pkg-plist
  head/net/qt5-network/Makefile
  head/net/qt5-network/pkg-plist
  head/print/qt5-printsupport/Makefile
  head/print/qt5-printsupport/pkg-plist
  head/textproc/clucene-qt5/Makefile
  head/textproc/clucene-qt5/files/patch-3rdparty__clucene__src__CLucene__search__FieldCacheImpl.cpp
  head/textproc/clucene-qt5/files/patch-src__assistant__assistant.pro
  head/textproc/clucene-qt5/files/patch-src__src.pro
  head/textproc/qt5-xml/Makefile
  head/textproc/qt5-xml/pkg-plist
  head/textproc/qt5-xmlpatterns/Makefile
  head/www/webkit-qt5/Makefile
  head/www/webkit-qt5/pkg-plist
  head/x11/qt5-qev/Makefile
  head/x11/qt5-x11extras/Makefile
  head/x11-toolkits/qt5-declarative/Makefile
  head/x11-toolkits/qt5-declarative/pkg-plist
  head/x11-toolkits/qt5-gui/Makefile
  head/x11-toolkits/qt5-gui/files/
  head/x11-toolkits/qt5-gui/pkg-plist
  head/x11-toolkits/qt5-quick/Makefile
  head/x11-toolkits/qt5-quick/files/
  head/x11-toolkits/qt5-quick/files/patch-src__src.pro
  head/x11-toolkits/qt5-quick/pkg-plist
  head/x11-toolkits/qt5-quickcontrols/Makefile
  head/x11-toolkits/qt5-quickcontrols/pkg-plist
  head/x11-toolkits/qt5-widgets/Makefile
  head/x11-toolkits/qt5-widgets/pkg-plist
Comment 14 Raphael Kubo da Costa freebsd_committer freebsd_triage 2014-11-05 09:43:08 UTC
Landed at long last!