the point of this is to have the event loop running while loading
autoinstall commands, which means we do not have to start and stop the
event loop inside load_autoinstall_config if there are early-commands to
run.
This somewhat overengineered code allows you to define an API in a
sort-of DSL and then automatically make a client, and implement it bit
by bit server side.
The network view code used to crawl all over the network model object,
which isn't really going to work with the upcoming client/server split.
So this adds a much better defined interface between the view and
controller.
Add CAN and unknown interfaces to NETDEV_IGNORED_IFACE_TYPES, otherwise rander_config() will throw a KeyError exception when a unsupported interface shows up.
The inject-subiquity-snap.sh script rebuilds the installer.squashfs filesystem, but does not recalculate its MD5 hash.
This leads to an error message during bootup process, complaining about one of the files being damaged, that file
being installer.squashfs.
This commit introduces an extra step to recalculate the MD5 hash of the installer.squashfs and write it into
md5sum.txt, as well as to remove the GPG signature of the installer filesystem, since it's invalid anyway.
In order to use the inject-subiquity-snap.sh script, we need some extra dependencies: xorriso and isolinux.
When xorriso is missing, the following error occurs:
./scripts/inject-subiquity-snap.sh: line 184: xorriso: command not found
When isolinux is missing, the image build step for x86-64 is failing:
xorriso : FAILURE : Given path does not exist on disk: -boot_image system_area='/usr/lib/ISOLINUX/isohdpfx.bin'
This file is not present in the source ISO image, so it has to come from the isolinux package.
The core image by default does not include the build-essential package. We need it to build the rtnetlink extension
for probert. If gcc is missing, the following error occurs:
running build_ext
building 'probert._rtnetlink' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/probert
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -I/usr/include/python3.6m -fPIC -I/root/parts/probert/
install/usr/include/python3.6m -c probert/_rtnetlinkmodule.c -o build/temp.linux-x86_64-3.6/probert/_rtnetlinkmodule.o -I/usr/include/libnl3
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
error: command 'x86_64-linux-gnu-gcc' failed with exit status
In this commit we include build-essential for the probert build step.
When building the snap in a clean environment, we start with a minimised core image. This image excludes translation
files, which are needed for the "languagelists" step. The following error will show up when building:
Building languagelists
do not know native name for oc
Failed to run 'override-build': Exit code was 1.
This is due to translation files being excluded by default in /etc/dpkg/dpkg.cfg.d/excludes on minimised systems:
# Drop all translations
path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo
We now comment this line and reinstall the "iso-codes" package.