Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add elementary 7 daily images #565

Merged
merged 6 commits into from
Nov 4, 2021
Merged

Conversation

davidmhewitt
Copy link
Member

@davidmhewitt davidmhewitt commented Oct 25, 2021

This produces an elementary 7 image that boots, installs and generally kind of works, at least in GNOME Boxes:
https://twitter.com/davidmhewitt/status/1452559893236441089

By necessity, it changes a few things about the build scripts that are used to build all amd64 images (i.e. 6.0 stable/daily images too). However, it gets us on the latest version of the Debian container again, as that broke when Debian 11 came out.

I've tested this against 6.0 and 7.0 daily images and it seems good, but maybe we want to get the next 6.0 stable release out before we merge this, then we can test a few 6.0 and 7.0 daily isos before the next stable.

I've left some inline comments that explain some of the justification for the changes.

To test building a 7.0 image locally, check out this branch and run:

docker run --privileged --rm -i -v /proc:/proc -v ${PWD}:/working_dir -w /working_dir debian:latest /bin/bash -s etc/terraform-daily-7.0-azure.conf < build.sh

@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest

container:
image: debian:buster
image: debian:latest
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updating to the latest stable release of Debian lets us drop a couple of patches that I'd upstreamed against live-build. Because these patches are dropped from the build.sh script, which is used for building all versions of the ISO, we need to use this newer container everywhere.

# TODO: Remove this once debootstrap 1.0.117 or newer is released and available:
# TODO: This can be removed when our Debian container has debootstrap 1.0.124 or later
# It's needed to support the new zstd .deb package compression that Ubuntu is doing
patch -d /usr/share/debootstrap/ < debootstrap-backport-zstd-support.patch
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu have switched to using zstd compression for .deb packages in impish+ , the support for bootstrapping from zstd compressed packages isn't in the stable version of Debian, so we backport it here.

# https://salsa.debian.org/installer-team/debootstrap/blob/master/debian/changelog
ln -sfn /usr/share/debootstrap/scripts/gutsy /usr/share/debootstrap/scripts/focal
ln -sfn /usr/share/debootstrap/scripts/gutsy /usr/share/debootstrap/scripts/jammy
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The focal symlink now exists upstream and is just a symlink to gutsy.

jammy doesn't exist upstream yet, so we symlink that to gutsy too.

@@ -25,6 +25,8 @@ lb config noauto \
--linux-packages linux-image \
--linux-flavours "$KERNEL_FLAVORS" \
--bootappend-live "boot=casper maybe-ubiquity quiet splash" \
--debootstrap-options="--extractor=ar --keyring=/etc/apt/trusted.gpg" \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use ar to extract packages which allows the backported zstd support.

Have debootstrap trust the ubuntu keyring we imported in build.sh.

@@ -25,6 +25,8 @@ lb config noauto \
--linux-packages linux-image \
--linux-flavours "$KERNEL_FLAVORS" \
--bootappend-live "boot=casper maybe-ubiquity quiet splash" \
--debootstrap-options="--extractor=ar --keyring=/etc/apt/trusted.gpg" \
--checksums md5 \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

live-build switch to SHA256 sums for the iso integrity check by default in this version of Debian.

The Ubuntu live iso integrity check on booting the live CD still uses MD5, so switch that over here or else we don't get the integrity check on startup.

@@ -4,12 +4,10 @@ dkms
intel-microcode
iucode-tool
lupin-support
mouseemu
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No longer exists in jammy, seems to be an ancient package for supporting emulated middle/right buttons on PowerPC based Macs.

Packages in this list aren't even installed anyway, they're just put on the pool on the apt-cdrom repository in case something without internet access wants to install them.

setserial
user-setup

efibootmgr
grub-efi
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have the architecture specific version of grub-efi below. Removing this prevents confusion as to what architecture ends up in the pool on the iso.

grub-efi-ia32-bin
sl-modem-daemon
#endif

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't build i386 images.

@davidmhewitt davidmhewitt marked this pull request as ready for review October 26, 2021 08:25
Copy link
Member

@danirabbit danirabbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's fucking gooooo 🚀

@danirabbit danirabbit merged commit 06eee48 into master Nov 4, 2021
@danirabbit danirabbit deleted the elementary-7-image-support branch November 4, 2021 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants