There are several strategies:
* The <bin>-qt5 convention is already used by most distributions, so many applications/tools have adapted to it already. If you're aware of any that haven't yet, I'd be happy to help produce upstreamable patches to implement such support.
* qt5-qtbase-devel provides rpm macros (in /usr/lib/rpm/macros.d/macros.qt5) that are useful during package creation, including: %_qt5_qmake %_qt5_bindir As you noted, one way to ensure Qt5 gets used is to prepend %_qt5_bindir to $PATH. This is essentially what kf5's %_cmake_kf5 (and similarly %_cmake_kde4) macros do.
* As far as 'moc', that's not *usually* a tool an end-user typically runs, so we've never seen a need to provide easy access (via pkg-config, or rpm macro). If you have a justifiable use-case, we can certainly add it.
* there's a developer tool 'qtchooser' that allows users to switch between default Qt developer environments. For the Qt5 qmake case, $ qtchooser -qt=qt5 -run-tool=qmake qtchooser is a little controversial (not universally endorsed by the kde- sig), so currently it is not recommended to rely on it in any fedora package builds.
-- Rex
Michael Schwendt wrote:
Some confusion here trying to use Fedora's Qt 5 packages, and it seems they cannot be use quickly.
$ rpm -qa qt5*|sort qt5-qtbase-5.3.2-3.fc21.x86_64 qt5-qtbase-devel-5.3.2-3.fc21.x86_64 qt5-qtbase-gui-5.3.2-3.fc21.x86_64 qt5-qtbase-ibase-5.3.2-3.fc21.x86_64 qt5-qtbase-mysql-5.3.2-3.fc21.x86_64 qt5-qtbase-odbc-5.3.2-3.fc21.x86_64 qt5-qtbase-postgresql-5.3.2-3.fc21.x86_64 qt5-qtbase-tds-5.3.2-3.fc21.x86_64
No "moc" in PATH, no "uic" either. Just moc-qt5 and uic-qt5.
$ pkg-config --variable=moc Qt5 /usr/lib64/qt5/bin/moc $ pkg-config --variable=uic Qt5
$ $ rpm -qf /usr/lib64/qt5/bin/moc qt5-qtbase-devel-5.3.2-3.fc21.x86_64
No documentation in that package:
$ rpm -qd qt5-qtbase-devel $
It seems to be specific to Fedora. Looking up the qt5-qtbase spec file, even the Qt5.pc file is generated there. The "moc" variable is added there to help finding MOC, but why not also UIC? All binaries get renamed to avoid a conflict, but I couldn't find a helper script to make them available in path again. I think of a shell file in a fixed location one could source. And why isn't any of this documented in the package description?
It looks like one could simply prepend
/usr/lib64/qt5/bin
to $PATH to make available the executables, which are renamed to avoid conflicts with other Qt versions.
$ rpm -qi qt5-qtbase-devel|tail -2 Description : Development files for qt5-qtbase.