Page MenuHomeFreeBSD

Update Qt 5.7.1 and other thingies
ClosedPublic

Authored by tcberner on Jan 17 2017, 3:17 PM.

Details

Summary

This is an interesting one... [and I don't think its reasonable to split it up, as it would require multiple bumps to revisions].

  • Update Qt 5.7.1
  • Rename the Qt-ports as described in D8603
  • Move stuff around. Short version:
    • QT_LIBDIR -> ${PRREFIX}/lib/qt[45] (no change for qt5)
    • QT_BINDIR -> ${QT_LIBDIR}/bin (no change for qt5)
  • Depend on new port "misc/qtchooser" for qmake/moc/foo-binaries in PATH.
    • Note: previously only qt4 binaries were in path
    • Accoding to a comment in bsd.qt.mk, this was prepared, or planned long ago (by someone else in kde@) but never done.
    • Install two profiles: qt4 and qt5, so that env QT_SELECT=qt4 qmake gives you qmake4 and env QT_SELECT=qt5 qmake the other. This works for all qt-installed binaries.
  • Reasons for the move of files:
    • Long standing kde@ bug, that inplace upgrading of ports can fail: As we split up qtbase a port of qtbase could pick up the old shared library from $PREFIX/lib during the build instead of the one in $BUILDWRKSRC, if a dependency added $PREFIX/lib to the linker directories.
    • The symmetry between qt4 and qt5 allows us to use qtchooser.
  • I decided to keep installing Qt5's cmake files to lib/cmake and not lib/qt5/cmake. This requires some patches.
  • All the new ports were created by Marie Loise Nolden <nolden@kde.org> back in spring of last year.
Test Plan
  • I'm at the moment building all ports depending on Qt[45]. This will take a while, and I'll add the ports that need fixing to the diff.
  • Probably mostly "c++11" no enabled (see multimedia/mlt-qt5, graphics/poppler-qt5 and so on). -- Hopefully as Qt-5.7.1 is already more than 6months out, most of the fixes have already trickeld into the tree by themseleves... :)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 6865
Build 7067: arc lint + arc unit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
rakuco added inline comments.Feb 4 2017, 5:58 PM
Mk/bsd.qt.mk
262

Very small nitpick: there are two spaces instead of one after the '#'s, and an extra space before "QT_DIST".
Additionally, the comment is basically describing what we can see below, it'd be more helpful if it explained why instead.

272

Another small style nitpick: "qt" should be "Qt", and it's always good to end the sentences with a period.

296

Style: "# Components", not "#Components".

comms/xcwcp/Makefile
17 ↗(On Diff #24718)

It's a good idea to add a comment explaining why this is needed.

databases/qt4-ibase-plugin/Makefile
9

This is an unnecessary change; I think I fixed it in area51 a while ago.

devel/qt4-qmake/Makefile
60

Is this really necessary?

devel/qt5-core/Makefile
24

--no-opengl (with a double dash) looks like a typo.

39

This change looks important enough to be put in a separate patch file with some context.

devel/qt5-help/Makefile
11–12

I'd rather not reorder the list without a reason to.

tcberner updated this revision to Diff 24730.Feb 4 2017, 5:59 PM
tcberner edited edge metadata.
  • Rather than to add a RUN_DEPENDS to the ports intalling binaries (qt5 were missing :/ ) add the RUN_DEPENDS for all QT_DIST ports via bsd.qt.mk. This is less confusing.
tcberner marked 13 inline comments as done.Feb 4 2017, 6:36 PM
tcberner added inline comments.
devel/qt4-qmake/Makefile
60

Nope. r424411 was never merged back to area51.

r424411 | mat | 2016-10-21 14:51:40 +0200 (Fr., 21 Okt. 2016) | 7 lines

${RM} already has -f.
devel/qt5-core/Makefile
39

Is there much to gain from a separate patch? We still need to run REINPLACE_CMD over it anyway to push in the value of ${PREFIX}.

graphics/qt5-3d/files/patch-src_3rdparty_assimp_code_BlenderTessellator.cpp
2

This should not be here. We switched to using multimedia/assimp with the update to 5.6.1. Again something that never made it back to area51 :/

misc/qtchooser/pkg-descr
5

Or do you prefer http://macieira.org/qtchooser

tcberner updated this revision to Diff 24733.Feb 4 2017, 6:36 PM
tcberner marked 3 inline comments as done.

Address the issues raised by @rakuco.

tcberner updated this revision to Diff 24734.Feb 4 2017, 6:38 PM

Don't reorder the USES line... no idea why that was like that.. isn't even alphabetical.. :-)

rakuco added inline comments.Feb 4 2017, 6:46 PM
devel/qt5-core/Makefile
39

In this specific case, I think it's quite important to be clear about what's happening, just like you've done with devel/qt5/files/extrapatch-mkspecs_features_create__cmake.prf.

As for still having to use REINPLACE_CMD, why don't you use the same approach from that patch file I mentioned and go with $$[QT_INSTALL_PREFIX]/lib instead?

misc/qtchooser/pkg-descr
5

The github URL is fine, it's better than just an old list of tarballs :)

tcberner marked 3 inline comments as done.Feb 4 2017, 7:00 PM
tcberner added inline comments.
devel/qt5-core/Makefile
39

Right... use brain. ^^

tcberner updated this revision to Diff 24739.Feb 4 2017, 7:00 PM
tcberner marked an inline comment as done.

Move the cmake path fix into a patch in devel/qt5-core.

tcberner updated this revision to Diff 24742.Feb 4 2017, 8:00 PM
  • Fixup graphics/lprof-devel: modify get_QTDIR to return a sensible value (QT_ARCHDIR) if the environment variable QTDIR is empty. This should make lprof pickup ${QT_BINDIR}/assistant directly.
rakuco accepted this revision.Feb 4 2017, 9:03 PM
rakuco edited edge metadata.

Looks good to me now, thanks! I think we can go ahead with the exp-run now.

Mk/bsd.qt.mk
152

Can you add a bigger description of why we do this?

696

I think this can moved before the "Add ${LOCALBASE}/lib" block.

x11-toolkits/qt5-uiplugin/Makefile
15–16

I think these whitespace changes aren't necessary.

tcberner updated this revision to Diff 24744.Feb 4 2017, 9:31 PM
tcberner edited edge metadata.
tcberner marked 3 inline comments as done.

Address the issues mentioned above.

tcberner updated this revision to Diff 24745.Feb 4 2017, 9:33 PM
tcberner edited edge metadata.

Move the "obosolete" comment to the right position

mat added inline comments.Feb 5 2017, 7:05 AM
Mk/bsd.qt.mk
242–248

If these are the ones created by qtchooser in PREFIX/bin, it should be PREFIX/bin, not QT_BINDIR. (If they are the ones in PREFIX/some-qt-directory then it's ok.)

comms/xcwcp/Makefile
18 ↗(On Diff #24745)

Then maybe it should be done in qt.mk, no ?

Mk/bsd.qt.mk
242–248

These are the real binaries, i.e. /usr/local/lib/qt4/bin/lrelease .

comms/xcwcp/Makefile
18 ↗(On Diff #24745)

Add somthing like

.  if ${_QT_VERSION:M5*} && ${USES:N*compiler*}
USE_CXXSTD=             c++11
.  endif

around line 291 of bsd.qt.mk?

rakuco added inline comments.Feb 5 2017, 12:23 PM
comms/xcwcp/Makefile
18 ↗(On Diff #24745)

I think it's OK to leave those changes in the ports themselves; the vast majority of the ports just get the -std=c++11 bit for free via qmake and its mkspecs. The ports being patched here are either just relying on autoconf+pkgconfig or roll their own configuration system; I think it makes sense to have USE_CXXSTD so it can get removed in the future once those few ports are adjusted upstream.

tcberner updated this revision to Diff 24847.Feb 7 2017, 8:04 PM

Fix devel/Makefile, as reported by antoine in pr 216797

[00:01:43] ====>> Warning: Nonexistent port listed in category Makefiles: devel/qmake4
[00:01:43] ====>> Warning: Nonexistent port listed in category Makefiles: devel/qmake5
[00:01:43] ====>> Warning: Nonexistent port listed in category Makefiles: devel/qt5-make
tcberner updated this revision to Diff 24862.Feb 8 2017, 12:53 PM

Remove the Qt4 special _DIR setting again. I dropped this [or rather, failed to drop this] when regenerating the patch to bsd.qt.mk :/

tcberner updated this revision to Diff 24865.Feb 8 2017, 1:24 PM

Another dropped change [*shakes head in a sad depressed manner*]

  • set QTDIR=${QT_ARCHDIR} and not to ${PREFIX} [in a previous version of the diff I had it set to ${QT_LIBDIR} -- which evaluates to the same.
tcberner updated this revision to Diff 24878.Feb 8 2017, 3:48 PM

Put the RUN_DEPENDS+=qtchooser at a proper place.

tcberner updated this revision to Diff 24890.Feb 8 2017, 6:15 PM
  • Fix the build of graphics/gle-graphics
tcberner updated this revision to Diff 24891.Feb 8 2017, 6:26 PM
  • graphcis/gle-graphics: revert the change to USE_GL.. if it's 'gl' instead of 'yes' the port fails to build...
tcberner updated this revision to Diff 24944.Feb 9 2017, 6:25 PM
  • Add patch to fix detection of the Qt5 tools in net/wireshark-qt5: The configure script tries to use qtchooser, or alternatively the binaries directly. However, it appends the flags for qtchooser nevertheless. Remove the qtchooser flags, as even if they are needed, we already set that up via CONFIGURE_ENV.
tcberner updated this revision to Diff 24989.Feb 11 2017, 12:46 AM
  • fix emulators/virtualbos-ose by adding -std=c++11 to the targets using Qt5
  • fix net-im/libqtelegram-ae by explictily allowing narrowing for clang
  • fix comms/sdr-wspr and graphics/colmap by backporting upstream commit [1] found by @rakuco

With this, everything should build against Qt 5.7.1 now...

[1] https://github.com/qt/qtbase/commit/ea9a8672a19588e89c0bda8e0c31424687c1e05f

tcberner updated this revision to Diff 25005.Feb 11 2017, 1:11 PM

Add the same fix to net-im/telegramqml as to net-im/libqtelegram-ae.

tcberner updated this revision to Diff 25040.Feb 12 2017, 10:49 AM
  • Don't pass USE_CXXSTD=c++11 for multimedia/vlc-qt4
tcberner updated this revision to Diff 25041.Feb 12 2017, 11:18 AM

Add preliminary UPDATING and CHANGES.

tcberner updated this revision to Diff 25042.Feb 12 2017, 12:05 PM

libqtelegram-ae and telegramqml have been commited already.

tcberner updated this revision to Diff 25072.Feb 13 2017, 7:39 AM
  • Remove the parts for vlc, as they are handled in pr 217051.
mat accepted this revision.Feb 13 2017, 4:47 PM
mat edited edge metadata.

This looks good, as there been a exp-run to check for possible breakage ?

Mk/bsd.qt.mk
90–98

These seem to be overwrapped, as if your tabs were 8 spaces wide and not 4.

This revision is now accepted and ready to land.Feb 13 2017, 4:47 PM
tcberner updated this revision to Diff 25092.Feb 13 2017, 5:01 PM
tcberner edited edge metadata.

Rewrap the QT_DIST list on line 91.

This revision now requires review to proceed.Feb 13 2017, 5:01 PM
tcberner updated this revision to Diff 25356.Feb 18 2017, 4:54 PM
tcberner edited edge metadata.
  • Modify qtchoosers profiles, by rakuco@
  • Make qt5 the default profile
  • Update MOVED/CHANGES/UPDATING date
tcberner updated this revision to Diff 25357.Feb 18 2017, 4:56 PM
  • Remove unneeded files/ directory in qtchooser
tcberner updated this revision to Diff 25358.Feb 18 2017, 4:59 PM
  • Use reworded CHANGES and UPDATING by rakuco
tcberner updated this revision to Diff 25359.Feb 18 2017, 5:23 PM
  • Readd PORTREVISION bumps to Qt4 ports [as we switched to adding qtchooser as run depends to all of them]
tcberner updated this revision to Diff 25360.Feb 18 2017, 6:22 PM
  • Don't install qt4-assistant-adp and qt4-mobility into Qt4 directories.
This revision was automatically updated to reflect the committed changes.