To do this I've created build_fixes-2.patch. This contains:
- Fix for shipped ffmpeg build failure
- Fixes for Python 3.11 changes
- Changes for ICU-74, but modified to allow building on previous
versions of BLFS and their versions of ICU
- The NINJAJOBS change
- Chunks from a patch from ArchLinux32 to prevent instantaneous crashes
in Falkon. Still causes issues with text rendering, so I've created a
note in the Falkon page. However, video playback and images display
perfectly. I will revisit this in February once we have the new glibc.
Unlike previous issues, it no longer crashes, so that's a good start!
This significantly brings down the count of instructions for this page
and should make it a lot easier to follow.
I've tested this on both x86_64 and i686. On i686 there's a major
improvement in that Falkon (and KDE System Monitor) actually start and
run, though in the case of Falkon there is still no text.
Also create an ENTITY for qt5 or qt5-alternate and use that
to specify the qt5 dependenies.
The complete KF5/plasma packages should use the full qt5 build, but
the lxqt kf5/plasma components only need qt5-alternate.
for qtwebengine and xf86-video-vmware. For qtwebengine, I am
not sure it is not upstream, but what I have added works:
the problem is with the definition of functions std::begin and
std::end. They are defined in several headers (among which
<vector>), and in a different way in some other headers. Looks
like the former headers were included with gcc-11 and below,
while they are not anymore with gcc-12 (there is no standard
on what is included by what in C++ headers). The problem with
qtwebengine (or rather the third party skia module) is that
they also have towers of headers including each other, so that
it is hard to find where the missing C++ header has been included,
if it has been.
I have only used the patches for modules used by packages in BLFS
or required by the extra KDE packages mentioned in BLFS. For the
full details of what has been applied (or omitted) see
https://www.linuxfromscratch.org/~ken/qt5/
I have also revised the SBU - the extra patches make a minimal
difference on my -j4 builds, but I need to use -j8 to get to 22
SBU. That figure seems to have been carried over from when we were
using gcc-10.2.
In the optional dependencies, pciutils was shown as optional but
required for qtwebengine: show it as optional, other parts of qt
can use it, and add it to qtwebengine as required. Remove python2
from the qt5 optional dependencies, only qtwebengine needs it and
it is already shown as required there.
It made sense as a dep of Qt5 when we were building webengine as
part of Qt5, but (at least for separate WebEngine, I've
deliberately forgotten the details of building it in Qt5) it
requires a switch to enable it.
Document that switch as an optional command.
I know it is somewhat useless, but I don't like them for
two reasons: first they cannot be seen, and I do not like things I
cannot see. Second, git highlights them, and this is disturbing...
This is the largest BLFS package. It can overload system memory
if all cores are used. Add a warning about this.
Note: Build failed at about the 90% point on a system with 24 cores
and 32 GB of RAM + 2 GB of swap due to out-of-memory. The
solution is to limit cores with NINJAJOBS ir add RAM or swap space.
I'm not happy about the wording for recommended dependencies,
ideally jhalfs should "do the right thing" and build libxml2
after icu - but I have no idea how to force that.
Traditionally we do not list every dependency which is pulled in
by another dep, but some time ago Doug discovered that system ICU
is only used by qtwebengine if libxml2 has been built after ICU.
Although I'm hopeful that the current instructions will work in
that case, adding a shipped copy of ICU just makes the build
bigger.
Update the security fixes to match paid-for 5.15.5.
Remove one item from the build fixes patch which is now upstream,
and apply that after the security fixes.
Remeasure for gcc-11.1.0 which takes a few less SBU.