From b45b240f42f938f8a7cc441402d202a059c12d5c Mon Sep 17 00:00:00 2001 From: Robert Sturla Date: Fri, 31 Jan 2025 20:37:50 +0000 Subject: [PATCH 1/6] chore: replace x86_64-only Flatpaks with amd64 alternatives --- .../aarch64/etc/ublue-os/system-flatpaks.list | 35 +++++++++++++++++++ ...uefin-aarch-modifications.gschema.override | 3 ++ 2 files changed, 38 insertions(+) create mode 100644 system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list create mode 100644 system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override diff --git a/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list b/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list new file mode 100644 index 0000000..fdf50d2 --- /dev/null +++ b/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list @@ -0,0 +1,35 @@ +io.github.dvlv.boxbuddyrs +com.github.rafostar.Clapper +io.gitlab.adhami3310.Impression +com.github.tchx84.Flatseal +io.github.flattool.Ignition +io.github.flattool.Warehouse +org.gnome.baobab +org.gnome.Calculator +org.gnome.Calendar +org.gnome.Characters +org.gnome.clocks +org.gnome.Connections +org.gnome.Contacts +org.gnome.DejaDup +org.gnome.Papers +com.mattjakeman.ExtensionManager +org.gnome.FileRoller +org.gnome.font-viewer +org.gnome.Logs +org.gnome.Loupe +org.gnome.Maps +org.gnome.NautilusPreviewer +org.gnome.World.PikaBackup +org.gnome.TextEditor +org.gnome.Weather +io.missioncenter.MissionCenter +org.chromium.Chromium +page.tesk.Refine +runtime/org.gtk.Gtk3theme.adw-gtk3 +runtime/org.gtk.Gtk3theme.adw-gtk3-dark +io.podman_desktop.PodmanDesktop +io.github.pwr_solaar.solaar +io.github.input_leap.input-leap +org.virt_manager.virt-manager +org.virt_manager.virt_manager.Extension.Qemu diff --git a/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override b/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override new file mode 100644 index 0000000..61c6535 --- /dev/null +++ b/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override @@ -0,0 +1,3 @@ +[org.gnome.shell] +favorite-apps = ['org.chromium.Chromium.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Rhythmbox3.desktop', 'org.libreoffice.LibreOffice.writer.desktop', 'org.gnome.Software.desktop', 'code.desktop', 'ubuntu.desktop', 'yelp.desktop'] +enabled-extensions = ['appindicatorsupport@rgcjonas.gmail.com', 'dash-to-dock@micxgx.gmail.com', 'blur-my-shell@aunetx', 'gsconnect@andyholmes.github.io', 'logomenu@aryan_k', 'tailscale@joaophi.github.com', 'search-light@icedman.github.com'] From c4db631f9606f28c0be0913bb7ea2e4cdcaac5aa Mon Sep 17 00:00:00 2001 From: Robert Sturla Date: Fri, 31 Jan 2025 20:40:22 +0000 Subject: [PATCH 2/6] chore: run ISO workflow only when required --- .github/workflows/build-iso.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-iso.yml b/.github/workflows/build-iso.yml index 9fea1a1..9818194 100644 --- a/.github/workflows/build-iso.yml +++ b/.github/workflows/build-iso.yml @@ -9,7 +9,13 @@ on: required: false default: false type: boolean - # pull_request: + pull_request: + branches: + - main + paths: + - './image-builder-iso.config.toml' + - './.github/workflows/build-iso.yml' + - './Justfile' env: IMAGE_REGISTRY: "ghcr.io/${{ github.repository_owner }}" From 37bfa4ffe6f0abf8141a657c9ce6d07d29ea7998 Mon Sep 17 00:00:00 2001 From: Robert Sturla Date: Fri, 31 Jan 2025 20:52:58 +0000 Subject: [PATCH 3/6] fix: copy system files before running scripts --- build_scripts/build.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/build_scripts/build.sh b/build_scripts/build.sh index 41f02c1..94e9177 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -11,6 +11,15 @@ set -euo pipefail MAJOR_VERSION_NUMBER="$(sh -c '. /usr/lib/os-release ; echo $VERSION_ID')" export MAJOR_VERSION_NUMBER +# Copy files before running scripts since the scripts often rely on files being present +copy_systemfiles_for "$(arch)" +if [ "$ENABLE_HWE" == "1" ]; then + copy_systemfiles_for hwe +fi +if [ "$ENABLE_DX" == "1" ]; then + copy_systemfiles_for dx +fi + # Specifically the dash here to indicate that we do not want to run this script again for script in /var/tmp/build_scripts/*-*.sh; do printf "::group:: ===%s===\n" "$(basename "$script")" @@ -36,16 +45,11 @@ copy_systemfiles_for() { printf "::endgroup::\n" } -copy_systemfiles_for "$(arch)" run_buildscripts_for "$(arch)" - if [ "$ENABLE_HWE" == "1" ]; then - copy_systemfiles_for hwe run_buildscripts_for hwe fi - if [ "$ENABLE_DX" == "1" ]; then - copy_systemfiles_for dx run_buildscripts_for dx fi From 3aeff2d3898388ae88f2973d024444a51d749f44 Mon Sep 17 00:00:00 2001 From: Robert Sturla Date: Fri, 31 Jan 2025 21:02:58 +0000 Subject: [PATCH 4/6] fix: reorg the build script --- build_scripts/build.sh | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/build_scripts/build.sh b/build_scripts/build.sh index 94e9177..e474669 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -8,6 +8,24 @@ set -euo pipefail # Do not rely on any of these scripts existing in a specific path # Make the names as descriptive as possible and everything that uses dnf for package installation/removal should have `packages-` as a prefix. +run_buildscripts_for() { + WHAT=$1 + shift + find "/var/tmp/build_scripts/overrides/$WHAT" -iname "*-*.sh" | while read -r -d $'\0' script; do + printf "::group:: ===$WHAT-%s===\n" "$(basename "$script")" + $script + printf "::endgroup::\n" + done +} + +copy_systemfiles_for() { + WHAT=$1 + shift + printf "::group:: ===%s-file-copying===\n" "$WHAT" + rsync -rvK "/var/tmp/system_files_overrides/$WHAT/" / + printf "::endgroup::\n" +} + MAJOR_VERSION_NUMBER="$(sh -c '. /usr/lib/os-release ; echo $VERSION_ID')" export MAJOR_VERSION_NUMBER @@ -27,24 +45,6 @@ for script in /var/tmp/build_scripts/*-*.sh; do printf "::endgroup::\n" done -run_buildscripts_for() { - WHAT=$1 - shift - find "/var/tmp/build_scripts/overrides/$WHAT" -iname "*-*.sh" | while read -r -d $'\0' script; do - printf "::group:: ===$WHAT-%s===\n" "$(basename "$script")" - $script - printf "::endgroup::\n" - done -} - -copy_systemfiles_for() { - WHAT=$1 - shift - printf "::group:: ===%s-file-copying===\n" "$WHAT" - rsync -rvK "/var/tmp/system_files_overrides/$WHAT/" / - printf "::endgroup::\n" -} - run_buildscripts_for "$(arch)" if [ "$ENABLE_HWE" == "1" ]; then run_buildscripts_for hwe From 13f22a8cff87e986af51247cf43c5b633b1e9a35 Mon Sep 17 00:00:00 2001 From: Robert Sturla Date: Fri, 31 Jan 2025 21:06:57 +0000 Subject: [PATCH 5/6] fix: replace rsync with cp --- build_scripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_scripts/build.sh b/build_scripts/build.sh index e474669..f7e490b 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -22,7 +22,7 @@ copy_systemfiles_for() { WHAT=$1 shift printf "::group:: ===%s-file-copying===\n" "$WHAT" - rsync -rvK "/var/tmp/system_files_overrides/$WHAT/" / + cp -a "/var/tmp/system_files_overrides/$WHAT/." / printf "::endgroup::\n" } From f540062a1dec66de18f7103b9f4181750ce3c421 Mon Sep 17 00:00:00 2001 From: Tulip Blossom Date: Sat, 1 Feb 2025 16:00:07 -0300 Subject: [PATCH 6/6] fix: use sed -i for overrides on arm and revert build changes (just have the copy one) --- build_scripts/build.sh | 29 +++++++-------- .../overrides/aarch64/00-flatpaks.sh | 12 +++++++ .../aarch64/etc/ublue-os/system-flatpaks.list | 35 ------------------- ...uefin-aarch-modifications.gschema.override | 3 -- 4 files changed, 25 insertions(+), 54 deletions(-) create mode 100755 build_scripts/overrides/aarch64/00-flatpaks.sh delete mode 100644 system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list delete mode 100644 system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override diff --git a/build_scripts/build.sh b/build_scripts/build.sh index f7e490b..fd9bb11 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -3,7 +3,7 @@ # This file needs to exist otherwise running this in a RUN label makes it so bash strict mode doesnt work. # Thus leading to silent failures -set -euo pipefail +set -xeuo pipefail # Do not rely on any of these scripts existing in a specific path # Make the names as descriptive as possible and everything that uses dnf for package installation/removal should have `packages-` as a prefix. @@ -11,7 +11,8 @@ set -euo pipefail run_buildscripts_for() { WHAT=$1 shift - find "/var/tmp/build_scripts/overrides/$WHAT" -iname "*-*.sh" | while read -r -d $'\0' script; do + # Complex "find" expression here since there might not be any overrides + find "/var/tmp/build_scripts/overrides/$WHAT" -iname "*-*.sh" -print0 | while IFS= read -r -d $'\0' script; do printf "::group:: ===$WHAT-%s===\n" "$(basename "$script")" $script printf "::endgroup::\n" @@ -22,36 +23,32 @@ copy_systemfiles_for() { WHAT=$1 shift printf "::group:: ===%s-file-copying===\n" "$WHAT" - cp -a "/var/tmp/system_files_overrides/$WHAT/." / + cp -av "/var/tmp/system_files_overrides/$WHAT/." / printf "::endgroup::\n" } MAJOR_VERSION_NUMBER="$(sh -c '. /usr/lib/os-release ; echo $VERSION_ID')" export MAJOR_VERSION_NUMBER -# Copy files before running scripts since the scripts often rely on files being present -copy_systemfiles_for "$(arch)" -if [ "$ENABLE_HWE" == "1" ]; then - copy_systemfiles_for hwe -fi -if [ "$ENABLE_DX" == "1" ]; then - copy_systemfiles_for dx -fi - -# Specifically the dash here to indicate that we do not want to run this script again for script in /var/tmp/build_scripts/*-*.sh; do printf "::group:: ===%s===\n" "$(basename "$script")" $script printf "::endgroup::\n" done +copy_systemfiles_for "$(arch)" run_buildscripts_for "$(arch)" -if [ "$ENABLE_HWE" == "1" ]; then - run_buildscripts_for hwe -fi + if [ "$ENABLE_DX" == "1" ]; then + copy_systemfiles_for dx run_buildscripts_for dx fi +if [ "$ENABLE_HWE" == "1" ]; then + copy_systemfiles_for hwe + run_buildscripts_for hwe +fi + + # Ensure these get run at the _end_ of the build no matter what /var/tmp/build_scripts/cleanup.sh diff --git a/build_scripts/overrides/aarch64/00-flatpaks.sh b/build_scripts/overrides/aarch64/00-flatpaks.sh new file mode 100755 index 0000000..a624e77 --- /dev/null +++ b/build_scripts/overrides/aarch64/00-flatpaks.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -xeuo pipefail + +# Bucket list again, this needs to be fixed upstream! + +TARGET_FLATPAK_FILE="/etc/ublue-os/system-flatpaks.list" + +sed -i "/org\.mozilla.*/d" "$TARGET_FLATPAK_FILE" +echo "org.chromium.Chromium" >> "$TARGET_FLATPAK_FILE" + +sed -i "s/org.mozilla.Firefox/org.chromium.Chromium/g" /usr/share/glib-2.0/schemas/zz0-bluefin-modifications.gschema.override diff --git a/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list b/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list deleted file mode 100644 index fdf50d2..0000000 --- a/system_files_overrides/aarch64/etc/ublue-os/system-flatpaks.list +++ /dev/null @@ -1,35 +0,0 @@ -io.github.dvlv.boxbuddyrs -com.github.rafostar.Clapper -io.gitlab.adhami3310.Impression -com.github.tchx84.Flatseal -io.github.flattool.Ignition -io.github.flattool.Warehouse -org.gnome.baobab -org.gnome.Calculator -org.gnome.Calendar -org.gnome.Characters -org.gnome.clocks -org.gnome.Connections -org.gnome.Contacts -org.gnome.DejaDup -org.gnome.Papers -com.mattjakeman.ExtensionManager -org.gnome.FileRoller -org.gnome.font-viewer -org.gnome.Logs -org.gnome.Loupe -org.gnome.Maps -org.gnome.NautilusPreviewer -org.gnome.World.PikaBackup -org.gnome.TextEditor -org.gnome.Weather -io.missioncenter.MissionCenter -org.chromium.Chromium -page.tesk.Refine -runtime/org.gtk.Gtk3theme.adw-gtk3 -runtime/org.gtk.Gtk3theme.adw-gtk3-dark -io.podman_desktop.PodmanDesktop -io.github.pwr_solaar.solaar -io.github.input_leap.input-leap -org.virt_manager.virt-manager -org.virt_manager.virt_manager.Extension.Qemu diff --git a/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override b/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override deleted file mode 100644 index 61c6535..0000000 --- a/system_files_overrides/aarch64/usr/share/glib-2.0/schemas/zz2-bluefin-aarch-modifications.gschema.override +++ /dev/null @@ -1,3 +0,0 @@ -[org.gnome.shell] -favorite-apps = ['org.chromium.Chromium.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Rhythmbox3.desktop', 'org.libreoffice.LibreOffice.writer.desktop', 'org.gnome.Software.desktop', 'code.desktop', 'ubuntu.desktop', 'yelp.desktop'] -enabled-extensions = ['appindicatorsupport@rgcjonas.gmail.com', 'dash-to-dock@micxgx.gmail.com', 'blur-my-shell@aunetx', 'gsconnect@andyholmes.github.io', 'logomenu@aryan_k', 'tailscale@joaophi.github.com', 'search-light@icedman.github.com']