-
-
Notifications
You must be signed in to change notification settings - Fork 257
feat: LTS Anaconda WebUI ISOs [pending https://github.com/ublue-os/titanoboa/pull/118] #2942
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
Changes from 16 commits
b51f5d2
5c1bb2d
4810555
f5ef86b
d724506
2733b19
c76f53a
fc4248e
4ca4205
8d3e599
1252544
3b9fff3
093546b
d62cb72
6221f41
6c257c7
25bb98f
ad7857e
138dbc9
60ad518
70b7e9d
f3e3c56
cd31e1c
10f5339
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -54,10 +54,12 @@ jobs: | |
| podman | ||
|
|
||
| - name: Maximize build space | ||
| if: matrix.platform != 'arm64' | ||
| uses: ublue-os/remove-unwanted-software@cc0becac701cf642c8f0a6613bbdaf5dc36b259e # v9 | ||
| uses: ublue-os/container-storage-action@911baca08baf30c8654933e9e9723cb399892140 | ||
| continue-on-error: true | ||
| with: | ||
| remove-codeql: true | ||
| target-dir: /var/lib/containers | ||
| mount-opts: compress-force=zstd:2 | ||
| loopback-free: 0.9 | ||
|
|
||
| - name: Checkout | ||
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | ||
|
|
@@ -88,9 +90,11 @@ jobs: | |
| uses: ublue-os/titanoboa@main | ||
| with: | ||
| image-ref: ${{ steps.image_ref.outputs.image_ref }}:${{ matrix.image_version }} | ||
| flatpaks-list: ${{ github.workspace }}/flatpaks/system-flatpaks.list | ||
| hook-post-rootfs: ${{ github.workspace }}/iso_files/configure_iso_anaconda.sh | ||
| flatpaks-list: ${{ github.workspace }}/iso_files/system-flatpaks.list | ||
| hook-post-rootfs: ${{ matrix.image_version == 'lts' && format('{0}/iso_files/configure_lts_iso_anaconda.sh', github.workspace) || format('{0}/iso_files/configure_iso_anaconda.sh', github.workspace) }} | ||
| kargs: ${{ steps.image_ref.outputs.kargs }} | ||
| builder-distro: ${{ matrix.image_version == 'lts' && 'centos' || 'fedora' }} | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is the important bit |
||
|
|
||
|
|
||
| - name: Rename ISO | ||
| id: rename | ||
|
|
@@ -108,7 +112,7 @@ jobs: | |
| echo "output_directory=$OUTPUT_DIRECTORY" >> "${GITHUB_OUTPUT}" | ||
|
|
||
| - name: Upload to Job Artifacts | ||
| if: github.event_name == 'pull_request' | ||
| if: github.ref == 'testing' | ||
|
hanthor marked this conversation as resolved.
Outdated
|
||
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | ||
| with: | ||
| name: ${{ steps.image_ref.outputs.artifact_format }} | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,188 @@ | ||
| #!/usr/bin/env bash | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Made an entirely different script for LTS, too many differences. May need the custom sbkey for GDX/HWE once we add akmods to those builds |
||
|
|
||
| set -eoux pipefail | ||
|
|
||
| IMAGE_INFO="$(cat /usr/share/ublue-os/image-info.json)" | ||
| IMAGE_TAG="$(jq -c -r '."image-tag"' <<<"$IMAGE_INFO")" | ||
| IMAGE_REF="$(jq -c -r '."image-ref"' <<<"$IMAGE_INFO")" | ||
| IMAGE_REF="${IMAGE_REF##*://}" | ||
| # sbkey='https://github.com/ublue-os/akmods/raw/main/certs/public_key.der' | ||
|
|
||
| # Configure Live Environment | ||
|
|
||
| # Remove packages from liveCD to save space | ||
| dnf remove -y google-noto-fonts-all ublue-brew ublue-motd yaru-theme || true | ||
|
|
||
| # Setup dock | ||
| tee /usr/share/glib-2.0/schemas/zz2-org.gnome.shell.gschema.override <<EOF | ||
| [org.gnome.shell] | ||
| welcome-dialog-last-shown-version='4294967295' | ||
| favorite-apps = ['anaconda.desktop', 'documentation.desktop', 'discourse.desktop', 'org.mozilla.firefox.desktop', 'org.gnome.Nautilus.desktop'] | ||
| EOF | ||
|
|
||
|
|
||
| glib-compile-schemas /usr/share/glib-2.0/schemas | ||
|
|
||
| systemctl disable rpm-ostree-countme.service | ||
| systemctl disable tailscaled.service | ||
| systemctl disable bootloader-update.service | ||
| # systemctl disable brew-upgrade.timer | ||
| # systemctl disable brew-update.timer | ||
| # systemctl disable brew-setup.service | ||
| systemctl disable rpm-ostreed-automatic.timer | ||
| systemctl disable uupd.timer | ||
| systemctl disable ublue-system-setup.service | ||
| # systemctl disable ublue-guest-user.service | ||
| systemctl disable check-sb-key.service | ||
| # systemctl --global disable ublue-flatpak-manager.service | ||
| systemctl --global disable podman-auto-update.timer | ||
| systemctl --global disable ublue-user-setup.service | ||
|
|
||
| # Configure Anaconda | ||
|
|
||
| # remove anaconda-liveinst to be replaced with anaconda-live | ||
| dnf remove -y anaconda-liveinst | ||
|
|
||
| # Install Anaconda, Webui if >= F42 | ||
| SPECS=( | ||
| "libdnf5" | ||
| "python3-libdnf5" | ||
| "libblockdev" | ||
| "libblockdev-lvm" | ||
| "libblockdev-dm" | ||
| "libblockdev-btrfs" | ||
| "anaconda-live" | ||
| "anaconda-webui" | ||
| "firefox" | ||
| ) | ||
|
|
||
| dnf copr enable -y jreilly1821/anaconda-webui | ||
|
|
||
| dnf install -y "${SPECS[@]}" | ||
|
|
||
|
|
||
| # Fix the wrong dir for webui | ||
| sudo sed -i 's|/usr/libexec/webui-desktop|/usr/libexec/anaconda/webui-desktop|g' /bin/liveinst | ||
|
hanthor marked this conversation as resolved.
Outdated
|
||
|
|
||
| # Anaconda Profile Detection | ||
|
|
||
| # Bluefin | ||
| tee /etc/anaconda/profile.d/bluefin-lts.conf <<'EOF' | ||
| # Anaconda configuration file for Bluefin LTS | ||
|
|
||
| [Profile] | ||
| # Define the profile. | ||
| profile_id = bluefin | ||
|
|
||
| [Profile Detection] | ||
| # Match os-release values | ||
| os_id = bluefin-lts | ||
|
|
||
| [Network] | ||
| default_on_boot = FIRST_WIRED_WITH_LINK | ||
|
|
||
| [Bootloader] | ||
| efi_dir = centos | ||
| menu_auto_hide = True | ||
|
|
||
| [Storage] | ||
| file_system_type = xfs | ||
| default_partitioning = | ||
| / (min 5 GiB, max 70 GiB) | ||
| /var (min 5 GiB) | ||
|
|
||
| [User Interface] | ||
| custom_stylesheet = /usr/share/anaconda/pixmaps/silverblue/fedora-silverblue.css | ||
| hidden_spokes = | ||
| NetworkSpoke | ||
| PasswordSpoke | ||
| UserSpoke | ||
| hidden_webui_pages = | ||
| anaconda-screen-accounts | ||
|
|
||
| [Localization] | ||
| use_geolocation = False | ||
| EOF | ||
|
|
||
| sed -i 's/^ID=.*/ID=bluefin-lts/' /usr/lib/os-release | ||
| echo "VARIANT_ID=bluefin-lts" >>/usr/lib/os-release | ||
|
|
||
| # Configure | ||
| . /etc/os-release | ||
| # if [[ "$IMAGE_TAG" =~ gts ]]; then | ||
| # echo "Bluefin ${IMAGE_TAG^^} release $VERSION_ID (${VERSION_CODENAME:=Big Bird})" >/etc/system-release | ||
| # else | ||
| echo "Bluefin release $VERSION_ID Achillobator" >/etc/system-release | ||
| sed -i 's/ANACONDA_PRODUCTVERSION=.*/ANACONDA_PRODUCTVERSION=""/' /usr/{,s}bin/liveinst || true | ||
| sed -i 's|^Icon=.*|Icon=/usr/share/pixmaps/fedora-logo-icon.png|' /usr/share/applications/liveinst.desktop || true | ||
| sed -i 's| Fedora| Bluefin|' /usr/share/anaconda/gnome/fedora-welcome || true | ||
| sed -i 's|Activities|in the dock|' /usr/share/anaconda/gnome/fedora-welcome || true | ||
|
|
||
| # Get Artwork | ||
| git clone --depth=1 https://github.com/ublue-os/packages.git /root/packages | ||
| mkdir -p /usr/share/anaconda/pixmaps/silverblue | ||
| cp -r /root/packages/bluefin/fedora-logos/src/anaconda/* /usr/share/anaconda/pixmaps/silverblue/ | ||
| rm -rf /root/packages | ||
|
|
||
| # Interactive Kickstart | ||
| tee -a /usr/share/anaconda/interactive-defaults.ks <<EOF | ||
| ostreecontainer --url=ghcr.io/ublue-os/bluefin:lts --transport=containers-storage --no-signature-verification | ||
| %include /usr/share/anaconda/post-scripts/install-configure-upgrade.ks | ||
| %include /usr/share/anaconda/post-scripts/install-flatpaks.ks | ||
| EOF | ||
|
|
||
| # Signed Images | ||
| tee /usr/share/anaconda/post-scripts/install-configure-upgrade.ks <<EOF | ||
| %post --erroronfail | ||
| bootc switch --mutate-in-place --enforce-container-sigpolicy --transport registry $IMAGE_REF:$IMAGE_TAG | ||
| %end | ||
| EOF | ||
|
|
||
| # # Disable Fedora Flatpak | ||
| # tee /usr/share/anaconda/post-scripts/disable-fedora-flatpak.ks <<'EOF' | ||
| # %post --erroronfail | ||
| # systemctl disable flatpak-add-fedora-repos.service | ||
| # %end | ||
| # EOF | ||
|
|
||
| # Install Flatpaks | ||
| tee /usr/share/anaconda/post-scripts/install-flatpaks.ks <<'EOF' | ||
| %post --erroronfail --nochroot | ||
| deployment="$(ostree rev-parse --repo=/mnt/sysimage/ostree/repo ostree/0/1/0)" | ||
| target="/mnt/sysimage/ostree/deploy/default/deploy/$deployment.0/var/lib/" | ||
| mkdir -p "$target" | ||
| rsync -aAXUHKP /var/lib/flatpak "$target" | ||
| %end | ||
| EOF | ||
|
|
||
| # Fetch the Secureboot Public Key | ||
| # curl --retry 15 -Lo /etc/sb_pubkey.der "$sbkey" | ||
|
|
||
| # # Enroll Secureboot Key | ||
| # tee /usr/share/anaconda/post-scripts/secureboot-enroll-key.ks <<'EOF' | ||
| # %post --erroronfail --nochroot | ||
| # set -oue pipefail | ||
|
|
||
| # readonly ENROLLMENT_PASSWORD="universalblue" | ||
| # readonly SECUREBOOT_KEY="/etc/sb_pubkey.der" | ||
|
|
||
| # if [[ ! -d "/sys/firmware/efi" ]]; then | ||
| # echo "EFI mode not detected. Skipping key enrollment." | ||
| # exit 0 | ||
| # fi | ||
|
|
||
| # if [[ ! -f "$SECUREBOOT_KEY" ]]; then | ||
| # echo "Secure boot key not provided: $SECUREBOOT_KEY" | ||
| # exit 0 | ||
| # fi | ||
|
|
||
| # SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)" | ||
| # if [[ ":Jupiter:Galileo:" =~ ":$SYS_ID:" ]]; then | ||
| # echo "Steam Deck hardware detected. Skipping key enrollment." | ||
| # exit 0 | ||
| # fi | ||
|
|
||
| # mokutil --timeout -1 || : | ||
| # echo -e "$ENROLLMENT_PASSWORD\n$ENROLLMENT_PASSWORD" | mokutil --import "$SECUREBOOT_KEY" || : | ||
| # %end | ||
| # EOF | ||
Uh oh!
There was an error while loading. Please reload this page.