-   Slackware (
-   -   REQ Changes to qt packaging and addition of qtchooser (

wildwizard 06-29-2013 09:56 PM

REQ Changes to qt packaging and addition of qtchooser
After much stuffing around with building Qt 5.1 I have learnt quite q few things including what is and is not required for Qt packaging as well as how a parallel install of Qt 5 and Qt 4 is supposed to work.

For Slackware's current Qt packaging the following needs to change
1. The symlinks in /usr/bin to the various Qt binaries need to all go
2. The path to the Qt binaries that is set in should not be set

Those symlinks are then replaced by the use of qtchooser which creates it's own symlinks with the added advantage that you can then specify the required Qt version with a command line switch.

My SlackBuild of qtchooser for testing :-

Qt5 can then be installed using /usr/lib/qt5 as a base directory leaving the Qt4 installation alone in /usr/lib/qt and without harming any Qt4 applications.

Some other notes that I made along the way.

1. There is a version specific symlink created in /usr/lib/qt-x.x.x > /usr/lib/qt I'm not sure if this is still used as other SlackBuilds that use Qt all seem to go out of their way to avoid using it.

2. The symlinks in /usr/lib/libQt* to /usr/lib/qt/lib/libQt* are a mess but if something is compiled with disable-rpath then they would not be found at runtime (Eric's vlc is such a case, while KDE is not)

3. Qt 5.1 can be compiled with

  -prefix /usr \
  -datadir /usr/share/qt5 \
  -libdir /usr/lib${LIBDIRSUFFIX} \
  -archdatadir /usr/lib${LIBDIRSUFFIX}/qt5 \
  -bindir /usr/lib${LIBDIRSUFFIX}/qt5/bin \

Which results in the libs landing in /usr/lib and without creating a mess of /usr as Qt 4 does. (FYI Qt 5 has added the version number into the library name so this method is safe even with Qt4 libs symlinked into /usr/lib)

4. Qt 4.8.5 is currently in the RC phase

All times are GMT -5. The time now is 10:00 AM.