Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI functionality. The following are optional dependencies that Qt will link against if they are detected at build time: libwebp, opus, ffmpeg, re2, snappy, libminizip, jsoncpp, libinput, unixODBC, postgresql, SDL2, assimp, wayland, OpenAL, protobuf(3?), argon2, and perhaps more. ============================================================ OPTIONS To use Qt's built-in ccache option: CCACHE=yes ./qt5.SlackBuild To build the documentation: DOCS=yes ./qt5.SlackBuild (you will need the llvm package from extra/ to build documentation) To build the examples: EXAMPLES=yes ./qt5.SlackBuild To build support for proprietary media codecs: PROPRIETARY_CODECS=yes ./qt5.SlackBuild (this will produce a non-redistributable package in some countries) To disable support for pulseaudio: PULSEAUDIO=no ./qt5.SlackBuild (Qt will automatically detect if pulseaudio is not installed at build time and disable it if it is missing.) To NOT build qtwebengine (EXPERIMENTAL): WEBENGINE=no ./qt5.SlackBuild To use the gold linker: LDGOLD=yes ./qt5.SlackBuild This may speed up the build, but can take more RAM. Combine any or all of the above. ============================================================ GENERAL NOTES After upgrading Qt5 it is important to rebuild qt5ct too, if it is installed, or some applications may not display or function correctly. There is a qt5-legacy (5.9.9) SlackBuild that is available for older applications that do not run correctly with this version. However it will not coexist with this version. Please report any problems about applications that don't work correctly to the Qt5 maintainer or to the mailing list. ============================================================ NOTES ON OPTIONS * Using ccache should speed up subsequent rebuilds, but may be slower for first time or one-off builds. * Building the documentation and/or examples creates a significantly larger package. ============================================================ BUILDING WITHOUT WEBENGINE Building without webengine can speed up compilation. If you have no intention of using the browser code, which includes a chunk of 3rd party Google Chromium source, then it may make sense to skip it and save yourself about 2/3 of the build time, and knocks about 3G off the needed space. The package version has _nowebengine appended to it for clarity. * Successfully tested so far without webengine (VERY quick tests): QMPlay2 qt5ct qbittorrent-qt5 speedcrunch qca-qt5 psi-plus sddm ============================================================ TROUBLESHOOTING If Qt5 fails to build, it may be worth using the following steps. 1 Uninstall the old Qt5 package 2 Log out of root 3 Log back in as root 4 Build and install the new package 5 Log out of root 6 Log back in as root 7 Upgrade all other packages that depend on Qt5 The reasoning behind all the log outs/ins, is because Qt5 installs /etc/profile.d/qt5.sh that sets QT5DIR and adds QT5DIR/bin to your $PATH when you log in (there's a similar file for csh.) Even though the old Qt5 is removepkg'd, those settings are *still there* until you log out. You can see with a test (assuming bash or a zsh type shell): env | grep -i qt5 If that command is used before step 4, you shouldn't see anything qt5 related in PATH and QT5DIR shouldn't exist.