This is part of a series of posts on compiling a custom version of Qt5 in order to develop for both amd64 and a Raspberry Pi.
As an attempt to get webview to compile, I'm reattempting to build a Qt5 cross-compiling environment using a raspbian sysroot, instead of having dependencies for both arm and amd64 installed in the build system.
Using dependencies installed in a straightforward way in the build system has
failed because of issues like #963136,
where some of the build dependencies are needed for both architectures, but the
-dev packages are not yet coinstallable.
This is something that causes many people much pain.
Start from a clean sysroot
Looking for a Raspbian image, I found out that it has been renamed to "Raspberry Pi OS". I realised that software names are like underwear: as soon as they become well used, they need to be changed.
RaspbianRaspberry Pi OS Lite from
to start with something minimal. It came out as something like 1.5G
uncompressed, which wasn't as minimal as I would have hoped, but that'll be
what I'll have to work with.
Adding build dependencies
I have acquired significant experience manipulating
RaspbianRaspberry Pi OS images from working with
This time I'm working with the disk image directly, instead of an SD card, since I will be needing it as a sysroot during the build, and I won't need to actually boot it on real hardware.
The trick is to work with kpartx to make the partitions in the image available as loopback block devices.
I have extracted a lot of relevant code from Himblick into a Python library I called Transilience
The result is this provisioning script,
which is able to take a
RaspbianRaspberry Pi OS image, enlarge it,
and install Debian packages into it.
I find this script pretty cool, also in the way it embeds quite a bit of experience gathered on the field. I can also be integrated in a fully automated setup and provisioning system.
The next step will be to use the result as a sysroot to build Qt.