These instructions show how to build additional Qt5 components beyond qt-alternate-5.15.12. They are not applicable if the full Qt-5.15.12 package has been built.
This package is known to build and work properly using an LFS 12.1 platform.
Download (HTTP): https://download.qt.io/archive/qt/5.15/5.15.12/single/qt-everywhere-opensource-src-5.15.12.tar.xz
Download MD5 sum: 3fb1cd4f763f5d50d491508b7b99fb77
Download size: 630 MB
Now that qt5 updates are restricted to commercial customers, upstream patches for the various modules are being curated at kde. Patches for the modules required by packages in BLFS have been aggregated for the non-modular qt5 build we use.
Required patch: https://www.linuxfromscratch.org/patches/blfs/12.1/qt-everywhere-opensource-src-5.15.12-kf5-1.patch
Details of the kde curation can be found at https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection and https://community.kde.org/Qt5PatchCollection.
JasPer-4.2.0, libmng-2.0.3, libtiff-4.6.0, and libwebp-1.3.2
gst-plugins-good-1.22.10, gst-plugins-bad-1.22.10, and gst-plugins-ugly-1.22.10
There are a few extra components needed for different packages in BLFS. These are qtimageformats, qtlocation, qtwebchannel, qtdoc, and qtmultimedia. Only those components specified for a specific package are needed. You only need to build the relevant component(s).
First, apply a patch to pull in the fixes curated by KDE for some of the modules listed above:
patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-kf5-1.patch
Next, if you are installing qtlocation, fix the build with GCC-13:
sed -e "/pragma once/a#include <cstdint>" \ -i qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp \ qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp \ qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp
Install each desired component by running the following commands:
cd<component>
qmake<component>
.pro make
As the root
user:
make install
Remove references to the build directory from installed library
dependency (prl) files by running the following command as the
root
user:
find $QT5DIR/ -name \*.prl \ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;