Generate recipes using a Python script instead of multiplying sed calls.
This is a proof of concept rather than an ideal, final situation.
It can be used this way:
for v in 1 2 3 4 ; do
for s in buster bullseye; do
./generate-recipe.py $v $s
done
done
and it has been verified to produce very similar results compared to the
existing many-sed approach.
Differences are as follows:
- Missing newline after some backports stanza, due to the removal of
the other APT line. There's already MR#51 that aims at fixing some
newline-related issues anyway, so this can be addressed separately.
- Less schizophrenia in the generated sources.list for buster/4, as we
are now only showing a reason for enabling the backports, instead
of starting by explaining why backports are disabled by default.
- Dropping APT::Default-Release = buster in the buster/4 case, which
is no longer needed as we are pulling things from buster-backports
rather than pulling them from unstable (see 57e90df103).
- No longer trying to fix the firmware package name by throwing a
broken sed at rpi-reconfigure-raspi-firmware.service in the buster/4
case: the syntax was buggy and fixing it would have made us try to
replace raspi-firmware with raspi-firmware/buster-backports, while
the correct thing to do is to not touch it in the first place
(raspi-firmware is the correct name for the firmware package, pulled
from buster-backports).
As a side effect, this transforms the existing __EXTRA_SHELL_CMDS__ into
a slightly more explicit __EXTRA_ROOT_SHELL_CMDS__ which now has its
__EXTRA_CHROOT_SHELL_CMDS__ twin. That's the entry point that was
missing and made 45cb5619d4 necessary in the past.
This commit is contained in:
@@ -53,10 +53,7 @@ steps:
|
||||
contents: |
|
||||
deb http://deb.debian.org/debian __RELEASE__ main contrib non-free
|
||||
deb http://security.debian.org/debian-security __SECURITY_SUITE__ main contrib non-free
|
||||
# Backports are _not_ enabled by default.
|
||||
# Enable them by uncommenting the following line:
|
||||
# deb http://deb.debian.org/debian __RELEASE__-backports main contrib non-free
|
||||
__OTHER_APT_ENABLE__
|
||||
__BACKPORTS__
|
||||
unless: rootfs_unpacked
|
||||
|
||||
- copy-file: /etc/initramfs-tools/hooks/rpi-resizerootfs
|
||||
@@ -84,7 +81,7 @@ steps:
|
||||
- wpasupplicant
|
||||
- __FIRMWARE_PKG__
|
||||
- __LINUX_IMAGE__
|
||||
__EXTRA_PKGS__
|
||||
__WIRELESS_FIRMWARE_PKG_MAYBE__
|
||||
tag: /
|
||||
unless: rootfs_unpacked
|
||||
|
||||
@@ -121,7 +118,7 @@ steps:
|
||||
ln -s /etc/systemd/system/rpi-generate-ssh-host-keys.service "${ROOT?}/etc/systemd/system/multi-user.target.requires/rpi-generate-ssh-host-keys.service"
|
||||
rm -f "${ROOT?}"/etc/ssh/ssh_host_*_key*
|
||||
|
||||
__EXTRA_SHELL_CMDS__
|
||||
__EXTRA_ROOT_SHELL_CMDS__
|
||||
root-fs: /
|
||||
|
||||
# Copy the relevant device tree files to the boot partition
|
||||
@@ -145,6 +142,7 @@ steps:
|
||||
shell: |
|
||||
sed -i 's/^/console=__SERIAL_CONSOLE__ /' /boot/firmware/cmdline.txt
|
||||
sed -i 's/.dev.mmcblk0p2/LABEL=RASPIROOT/' /boot/firmware/cmdline.txt
|
||||
__EXTRA_CHROOT_SHELL_CMDS__
|
||||
|
||||
# TODO(https://github.com/larswirzenius/vmdb2/issues/24): remove once vmdb
|
||||
# clears /etc/resolv.conf on its own.
|
||||
|
||||
Reference in New Issue
Block a user