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.
When no snaps are seeded in the filesystem, empty string is returned,
which yaml safe load interprets as None.
But snapd seed.yaml is defined as a dictionary with snaps key. Ensure
that when no seed.yaml is present (or readable), that at least an
empty dictionary is returned, such that later calls to `.get("snaps",
[])` succeed.
LP: #1889429
Looking at this code thinking about the coming client / server split
made me realise that we could start by at least moving this
functionality to a more encapsulated place.