Bug 205805 - Mk/bsd.qt.mk: Update to 5.5.1
Summary: Mk/bsd.qt.mk: Update to 5.5.1
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: kde
URL:
Keywords: needs-qa, patch
Depends on:
Blocks:
 
Reported: 2016-01-02 16:18 UTC by Yuri Victorovich
Modified: 2016-01-24 18:12 UTC (History)
6 users (show)

See Also:
rakuco: maintainer-feedback+


Attachments
patch (138.25 KB, patch)
2016-01-02 16:18 UTC, Yuri Victorovich
no flags Details | Diff
list of affected ports (1.15 KB, text/plain)
2016-01-02 16:19 UTC, Yuri Victorovich
no flags Details
patch (134.57 KB, patch)
2016-01-02 17:25 UTC, Yuri Victorovich
rakuco: maintainer-approval-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer 2016-01-02 16:18:13 UTC
Created attachment 164961 [details]
patch

I am including the list of affected ports. They all build fine in poudriere with the attached patch.

I think all packages should be updated in one commit.
Comment 1 Yuri Victorovich freebsd_committer 2016-01-02 16:19:55 UTC
Created attachment 164962 [details]
list of affected ports
Comment 2 Ben Woods freebsd_committer 2016-01-02 16:59:43 UTC
Whereever the letters "lib" are present in each pkg-plist file, they are being replaced with %%QT_LIBDIR%%. I don't believe this should be the case unless it is representing the lib/ folder. Please consider searching each of the pkg-plist files for %%QT_LIBDIR%% which is not immediately followed by a "/", and consider if it should be changed back to "lib".
Comment 3 Yuri Victorovich freebsd_committer 2016-01-02 17:05:42 UTC
Yes, I missed some occurrences. I will submit the new patch.
Comment 4 Ben Woods freebsd_committer 2016-01-02 17:09:01 UTC
PS: thanks for your efforts on this - I would also like to see qt5.5 in ports, and it doesn't seem the FreeBSD KDE team have imported it into "area51" tree yet:
https://freebsd.kde.org/area51.php
https://freebsd.kde.org/news.php
Comment 5 Yuri Victorovich freebsd_committer 2016-01-02 17:25:02 UTC
Created attachment 164963 [details]
patch

@Ben. You welcome!


I replaced these %%QT_LIBDIR%%.
Comment 6 Yuri Victorovich freebsd_committer 2016-01-02 17:54:10 UTC
* Wherever I deleted the patches for vulnerabilities (CVE-XXXX-XXXX), these have been fixed.

* I added webengine as a new QT_DIST. There is such distfile. However, WebEngine doesn't yet build on FreeBSD out of the box. Maybe I will look later if it can be patched to build with clang.

* I removed the environment variable QT_XKB_CONFIG_ROOT, because it is associated with some qt-5.5 bug. There are the reports from the linux users that they have to set this variable as a workaround for the "dead keyboard" problem.

* I added the ad-hoc pipe2 declaration in one place, because otherwise clang decides that pipe2 is a C++ symbol for some weird reason. But I don't think this is important for the matter of this patch.
Comment 7 Tobias Berner 2016-01-02 20:44:20 UTC
Hi Yuri

First of all thanks for your effort.

Unfortunately I have to inform you, that kde@ already has done the upgrade to qt-5.5.1 in the qt-5.5 branch of area51.
See: http://src.mouf.net/area51/log/branches/qt-5.5

But kde@ is also missing webengine -- which is, to put it kindly, kind of a bastard. 


mfg Tobias
Comment 8 Yuri Victorovich freebsd_committer 2016-01-02 20:53:59 UTC
I asked on ports@ mailing list on Dec 10 if qt-5.5 is coming to ports, and got no answer.

How would anybody know they need to look at http://src.mouf.net/ ??
Comment 9 Tobias Berner 2016-01-02 21:07:31 UTC
That is unfortunate. Sorry for that.

Here is the website of kde@
https://freebsd.kde.org/area51.php
where the repository is explained.
Comment 10 commit-hook freebsd_committer 2016-01-16 20:13:49 UTC
A commit references this bug:

Author: rakuco
Date: Sat Jan 16 20:13:10 UTC 2016
New revision: 406271
URL: https://svnweb.freebsd.org/changeset/ports/406271

Log:
  Turn print/cups-client into a LIB_DEPENDency.

  The CUPS plugin in src/plugins/printsupport/cups actually links against
  libcups.so, so cups-client needs to be more than a build-time dependency.

  This is part of Yuri Victorovich's Qt 5.5.1 patch set (which he submitted
  without knowing kde@ was already working on the update). This bug fix is
  orthogonal to the 5.5.1 update and we had not spotted this before, so I am
  landing this separately.

  PR:		205805
  Submitted by:	Yuri Victorovich <yuri@rawbw.com>

Changes:
  head/print/qt5-printsupport/Makefile
Comment 11 commit-hook freebsd_committer 2016-01-16 20:14:52 UTC
A commit references this bug:

Author: rakuco
Date: Sat Jan 16 20:14:27 UTC 2016
New revision: 406273
URL: https://svnweb.freebsd.org/changeset/ports/406273

Log:
  MFH: r406271

  Turn print/cups-client into a LIB_DEPENDency.

  The CUPS plugin in src/plugins/printsupport/cups actually links against
  libcups.so, so cups-client needs to be more than a build-time dependency.

  This is part of Yuri Victorovich's Qt 5.5.1 patch set (which he submitted
  without knowing kde@ was already working on the update). This bug fix is
  orthogonal to the 5.5.1 update and we had not spotted this before, so I am
  landing this separately.

  PR:		205805
  Submitted by:	Yuri Victorovich <yuri@rawbw.com>

  Approved by:	portmgr blanket approval

Changes:
_U  branches/2016Q1/
  branches/2016Q1/print/qt5-printsupport/Makefile
Comment 12 Raphael Kubo da Costa freebsd_committer 2016-01-19 17:09:56 UTC
Quick update so it doesn't look like kde@ isn't tracking this. Yuri, thanks a lot for the patch and I'm sorry you ended up doing a lot of duplicate work.

I've been going through your patch looking for differences between what you have and what we've been doing in area51. As you can see, one of the changes became a commit to the ports tree, and I've also been committing a lot of stuff in area51 in response.

I'll post some specific questions later.
Comment 13 Raphael Kubo da Costa freebsd_committer 2016-01-20 12:05:49 UTC
(In reply to Raphael Kubo da Costa from comment #12)
> I'll post some specific questions later.

OK, here we go. I hope you're still around to look at the comments, answer them and hopefully start contributing to our experimental repositories in the future.

First, some comments about things which have been fixed or implemented differently in area51:

* Changes in USE_QT5 in many ports: this prompted me to take a look at the situation. Indeed we were linking against many libraries without declaring them. However, I chose to fix it differently, and instead of just adjusting USE_QT5 I switched to building the Qt5 ports with -Wl,--as-needed so that the final binaries only really link against the libraries that they actually need. See http://src.mouf.net/area51/revision?rev=11818 and http://src.mouf.net/area51/revision/?rev=11827.

* Adding USE_QT5=webchannel to webkit-qt5 doesn't make much sense, and adding gstreamer-0.10 as a dependency is wrong. It must use GStreamer 1.0, like it already does. Ditto for qt5-multimedia.

* Your change to qt5-printsupport's Makefile was partially right, see comment #10 for all the required changes.

* I've net/libproxy as a dependency for net/qt5-network following your change. It required some additional work: http://src.mouf.net/area51/revision/?rev=11824

* The patches you've added to qt5-core are wrong, see their versions in area51. Basically those things have all been fixed upstream, and importing the patches from there is the right thing to do.

Now things that still need clarification from your patch:

* Why was patch-src__designer__src__src.pro removed from devel/qt5-uitools?

* Why the changes to the filterLibraryOptions calls in extrapatch-configure?

* I don't get why you added USES=gettext to several ports.

* I don't get why you need the post-patch changes you added to qt5-gui.

* I don't get any of the PCRE-related changes you've made to qt5-core and qt5.

* Why was patch-3rdparty__clucene__src__CLucene__search__FieldCacheImpl.cpp removed from textproc/clucene-qt5? It was originally added because of bug 169872. It might not be needed anymore, but I need more context and confirmation that you tested it.
Comment 14 commit-hook freebsd_committer 2016-01-24 18:10:22 UTC
A commit references this bug:

Author: rakuco
Date: Sun Jan 24 18:10:16 UTC 2016
New revision: 407169
URL: https://svnweb.freebsd.org/changeset/ports/407169

Log:
  Update Qt5 to 5.5.1.

  This is the latest stable release at time of writing.

  Release announcement: http://blog.qt.io/blog/2015/07/01/qt-5-5-released/
  New features in Qt 5.5: https://wiki.qt.io/New_Features_in_Qt_5.5

  As usual, huge thanks to Tobias Berner (tcberner@gmail.com) for all his work
  on these ports in kde@'s experimental area51 repository. He's the one who
  started the update and did a lot of the initial work on Qt 5.5. Ralf Nolden
  (nolden@kde.org) has contributed the initial version of most of our new Qt5
  ports.

  Also thanks to Yuri Victorovich (yuri@rawbw.com) for contributing PR 205805
  with his own patch for the 5.5.1 update. Some of his changes there prompted
  additional fixes and changes present in the final patch generated from our
  experimental repository.

  New ports:
  - comms/qt5-connectivity, comms/qt5-sensors, devel/qt5-location,
    graphics/qt5-3d, net/qt5-enginio, x11-toolkits/qt5-canvas3d,
    x11-toolkits/qt5-uiplugin.

  General changes in all Qt5 ports:
  - All Qt5 ports are now built with -Wl,--as-needed to avoid overlinking,
    which is a problem with qmake-based because the libraries passed to the
    linker come from the modules .pri files and many are not necessary.
  - With this change, several ports had their USE_QT5 lines adjusted to
    explicitly include some libraries that were pulled in implicitly, and to
    exclude libraries no longer required with -Wl,--as-needed.

  Changes in specific ports:
  - devel/qt5: Drop the SQL_PLUGINS and TOOLS options and depend on all Qt5
    ports by default. It makes the Makefile much simpler, and those options
    were already on by default.
  - devel/qt5-core: The clang+base libstdc++ workaround has been expanded and
    more C++11 features have been disabled when that combination is used by a
    port (basically, FreeBSD 9 with USES=compiler:c++11-lang). The disabled
    features have explanations for why they were disabled in the patched
    header itself.
  - devel/qt5-designer: uiplugins has been split out following a similar
    change upstream. By depending on qt5-uiplugin, qt5-uitools avoids having
    to depend on the big qt5-designer port.
  - multimedia/qt5-multimedia: The port now uses GStreamer 1.0 instead of
    0.10.
  - net/qt5-network: The port now depends on libproxy for proxy settings.
    Using libproxy allows proxy settings to be read from different sources,
    and also allows .pac files to work with Qt.
  - www/qt5-webkit: The port now uses GStreamer 1.0 instead of 0.10.

  PR:		205805
  PR:		206435

Changes:
  head/Mk/bsd.qt.mk
  head/comms/Makefile
  head/comms/qt5-connectivity/
  head/comms/qt5-connectivity/Makefile
  head/comms/qt5-connectivity/pkg-plist
  head/comms/qt5-sensors/
  head/comms/qt5-sensors/Makefile
  head/comms/qt5-sensors/pkg-plist
  head/comms/qt5-serialport/pkg-plist
  head/devel/Makefile
  head/devel/qmake5/Makefile
  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/files/extrapatch-src_corelib_global_qcompilerdetection.h
  head/devel/qt5-assistant/Makefile
  head/devel/qt5-assistant/files/patch-src__src.pro
  head/devel/qt5-core/Makefile
  head/devel/qt5-core/files/
  head/devel/qt5-core/files/patch-git_08be8691
  head/devel/qt5-core/files/patch-git_090bf50
  head/devel/qt5-core/files/patch-git_6552469
  head/devel/qt5-core/files/patch-git_c8c4ad0
  head/devel/qt5-core/pkg-plist
  head/devel/qt5-designer/Makefile
  head/devel/qt5-designer/files/patch-src__src.pro
  head/devel/qt5-designer/pkg-plist
  head/devel/qt5-help/files/patch-src__src.pro
  head/devel/qt5-linguist/Makefile
  head/devel/qt5-linguist/files/patch-src__src.pro
  head/devel/qt5-linguisttools/Makefile
  head/devel/qt5-linguisttools/files/patch-src__src.pro
  head/devel/qt5-location/
  head/devel/qt5-location/Makefile
  head/devel/qt5-location/files/
  head/devel/qt5-location/files/patch-qtlocation.pro
  head/devel/qt5-location/pkg-plist
  head/devel/qt5-qdbusviewer/Makefile
  head/devel/qt5-qdbusviewer/files/patch-src__src.pro
  head/devel/qt5-testlib/pkg-plist
  head/devel/qt5-uitools/Makefile
  head/devel/qt5-uitools/files/patch-src__designer__src__src.pro
  head/devel/qt5-uitools/files/patch-src__src.pro
  head/graphics/Makefile
  head/graphics/qt5-3d/
  head/graphics/qt5-3d/Makefile
  head/graphics/qt5-3d/files/
  head/graphics/qt5-3d/files/patch-git_d512090
  head/graphics/qt5-3d/files/patch-git_deffdaf9
  head/graphics/qt5-3d/pkg-plist
  head/graphics/qt5-pixeltool/Makefile
  head/graphics/qt5-pixeltool/files/patch-git_a685d8a
  head/graphics/qt5-pixeltool/files/patch-src__src.pro
  head/graphics/qt5-svg/Makefile
  head/lang/qt5-qml/files/patch-git_cf6e9711
  head/lang/qt5-qml/pkg-plist
  head/misc/Makefile
  head/misc/qt5-l10n/
  head/misc/qt5-l10n/Makefile
  head/misc/qt5-l10n/pkg-plist
  head/multimedia/qt5-multimedia/Makefile
  head/multimedia/qt5-multimedia/files/extrapatch-no-gstreamer
  head/multimedia/qt5-multimedia/pkg-plist
  head/net/Makefile
  head/net/qt5-enginio/
  head/net/qt5-enginio/Makefile
  head/net/qt5-enginio/pkg-plist
  head/net/qt5-network/Makefile
  head/net/qt5-network/pkg-plist
  head/print/qt5-printsupport/Makefile
  head/textproc/clucene-qt5/files/patch-src__src.pro
  head/textproc/qt5-xmlpatterns/pkg-plist
  head/www/qt5-webchannel/pkg-plist
  head/www/qt5-websockets/pkg-plist
  head/www/webkit-qt5/Makefile
  head/www/webkit-qt5/files/patch-Source__WebCore__platform__graphics__gstreamer__WebKitWebSourceGstreamer.cpp
  head/x11/qt5-x11extras/Makefile
  head/x11/qt5-x11extras/pkg-plist
  head/x11-toolkits/Makefile
  head/x11-toolkits/qt5-canvas3d/
  head/x11-toolkits/qt5-canvas3d/Makefile
  head/x11-toolkits/qt5-canvas3d/pkg-plist
  head/x11-toolkits/qt5-declarative/Makefile
  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/pkg-plist
  head/x11-toolkits/qt5-quickcontrols/Makefile
  head/x11-toolkits/qt5-quickcontrols/pkg-plist
  head/x11-toolkits/qt5-uiplugin/
  head/x11-toolkits/qt5-uiplugin/Makefile
  head/x11-toolkits/qt5-uiplugin/files/
  head/x11-toolkits/qt5-uiplugin/files/patch-src__src.pro
  head/x11-toolkits/qt5-uiplugin/files/patch-src_designer_src_src.pro
  head/x11-toolkits/qt5-uiplugin/pkg-plist
  head/x11-toolkits/qt5-widgets/pkg-plist
Comment 15 Raphael Kubo da Costa freebsd_committer 2016-01-24 18:12:25 UTC
Comment on attachment 164963 [details]
patch

Qt 5.5.1 has finally been committed to the ports tree, including parts of your patch. Thanks!