From 5210b5dd614bf44f81abe3d173c9dd546fef0b10 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 16:21:02 +0200 Subject: [PATCH 1/7] add dx-flatpaks brewfile --- .../usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile diff --git a/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile b/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile new file mode 100644 index 0000000..e69de29 From 4a29be1e279ea3ba035f7f8cb634793a2d308f2c Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 16:21:51 +0200 Subject: [PATCH 2/7] add system-flatpaks brewfile --- .../homebrew/system-flatpaks.Brewfile | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile diff --git a/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile b/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile new file mode 100644 index 0000000..9a5770f --- /dev/null +++ b/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile @@ -0,0 +1,20 @@ +com.github.tchx84.Flatseal +com.ranfdev.DistroShelf +io.github.flattool.Warehouse +io.github.kolunmi.Bazaar +io.missioncenter.MissionCenter +org.deskflow.deskflow +org.fedoraproject.MediaWriter +org.fkoehler.KTailctl +org.gnome.DejaDup +org.gtk.Gtk3theme.Breeze +org.kde.gwenview +org.kde.haruna +org.kde.kcalc +org.kde.kclock +org.kde.kontact +org.kde.kweather +org.kde.okular +org.kde.skanpage +org.mozilla.Thunderbird +org.mozilla.firefox From 67880605329f1ee19e0907ae35c4e507ac548d3a Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 16:22:22 +0200 Subject: [PATCH 3/7] add system-dx flatpaks --- .../usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile b/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile index e69de29..8ffe51b 100644 --- a/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile +++ b/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile @@ -0,0 +1,3 @@ +io.podman_desktop.PodmanDesktop +io.github.getnf.embellish +me.iepure.devtoolbox From ee0e1e9fca9d77a0d84048f0bafd82be785ed70c Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:06:47 +0200 Subject: [PATCH 4/7] add brewfile validation --- .github/workflows/validate-brewfiles.yml | 66 +++++++++++++++++------- 1 file changed, 46 insertions(+), 20 deletions(-) diff --git a/.github/workflows/validate-brewfiles.yml b/.github/workflows/validate-brewfiles.yml index c852e6c..78f78ee 100644 --- a/.github/workflows/validate-brewfiles.yml +++ b/.github/workflows/validate-brewfiles.yml @@ -5,7 +5,7 @@ permissions: on: pull_request: paths: - - "brew/**" + - "system_files/shared/usr/share/ublue-os/homebrew/**" jobs: validate: runs-on: ubuntu-latest @@ -16,25 +16,51 @@ jobs: - name: Set up Homebrew uses: Homebrew/actions/setup-homebrew@main - - name: Validate Brewfiles shell: bash run: | - echo "Validating Brewfiles..." - - - find "system_files/shared/usr/share/ublue-os/homebrew" -iname '*\.Brewfile*' -print0 | \ - while IFS= read -r -d '' brewfile ; do \ - echo "::group:: ===$(basename $brewfile)===" - grep -E -e "^tap" $brewfile > taps.Brewfile - set -xeuo pipefail - brew bundle --file=./taps.Brewfile - if brew bundle exec whoami --file="$brewfile" | grep -F -e "${USER}" ; then - echo "✓ $brewfile is valid" - else - echo "✗ $brewfile validation failed" - exit 1 - fi - set +xeuo pipefail - echo "::endgroup::" - done + echo "Validating Brewfiles in homebrew directory..." + + STATUS_FILE=$(mktemp) + echo "PASS" > "$STATUS_FILE" + + while IFS= read -r -d '' brewfile ; do + echo "::group:: ===$(basename $brewfile)===" + + grep -E -e "^tap" "$brewfile" > taps.Brewfile || true + echo "Syncing taps..." + brew bundle --file=./taps.Brewfile > /dev/null 2>&1 || true + + # Extract combined list for parallel check + FORMULAS=$(grep -E '^\s*brew\s+["'\'']' "$brewfile" | sed -E 's/^\s*brew\s+["'\'']([^"'\'']+)["'\''].*/formula \1/' || true) + CASKS=$(grep -E '^\s*cask\s+["'\'']' "$brewfile" | sed -E 's/^\s*cask\s+["'\'']([^"'\'']+)["'\''].*/cask \1/' || true) + + ENTRIES=$(printf "%s\n%s" "$FORMULAS" "$CASKS" | grep -v '^\s*$' || true) + + if [ -n "$ENTRIES" ]; then + echo "$ENTRIES" | xargs -P 8 -I {} bash -c ' + TYPE=$(echo "{}" | cut -d" " -f1) + NAME=$(echo "{}" | cut -d" " -f2) + if ! brew info --$TYPE "$NAME" &> /dev/null; then + echo "✗ $TYPE \"$NAME\" is invalid or missing tap" + echo "FAIL" >> "'"$STATUS_FILE"'" + else + echo "✓ $TYPE \"$NAME\" is valid" + fi + ' + else + echo "No formulas or casks found." + fi + + echo "::endgroup::" + done < <(find "system_files/shared/usr/share/ublue-os/homebrew" -iname '*\.Brewfile*' -print0) + + rm -f taps.Brewfile + + if grep -q "FAIL" "$STATUS_FILE"; then + echo "Validation complete. Some Brewfiles FAILED." + exit 1 + else + echo "Validation complete. All Brewfiles PASSED." + exit 0 + fi From 0bb333421dcaa8af0a50bedf6a79dc1b319d4637 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:07:59 +0200 Subject: [PATCH 5/7] remove flatpak validation workflow not needed anymore --- .github/workflows/validate-flatpaks.yml | 43 ------------------------- 1 file changed, 43 deletions(-) delete mode 100644 .github/workflows/validate-flatpaks.yml diff --git a/.github/workflows/validate-flatpaks.yml b/.github/workflows/validate-flatpaks.yml deleted file mode 100644 index a32c106..0000000 --- a/.github/workflows/validate-flatpaks.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Validate Flatpaks -permissions: - contents: read - -on: - pull_request: - paths: - - "flatpaks/**" -jobs: - validate: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6 - - - name: Get Flathub apps - shell: bash - run: | - FLATHUB_LIST=$(mktemp) - curl -X 'GET' \ - 'https://flathub.org/api/v2/appstream?filter=apps' \ - -H 'accept: application/json' | jq -r ".[]" >> "${FLATHUB_LIST}" - - curl -X 'GET' \ - 'https://flathub.org/api/v2/appstream?filter=runtime' \ - -H 'accept: application/json' | jq -r ".[]" >> "${FLATHUB_LIST}" - - set -xeuo pipefail - - find "flatpaks" -iname '*.list*' -print0 | \ - while IFS= read -r -d '' flatpaks_file; do - echo "::group:: ===$(basename "$flatpaks_file")===" - grep -vE '^#' "$flatpaks_file" | while read -r flatpak; do - # Only output on errors - if ! grep -Fxq "$flatpak" "$FLATHUB_LIST"; then - echo "$flatpak NOT found on Flathub" - exit 1 - fi - done - - echo "::endgroup::" - done - From a276570ae25a8abef833eb4765bddb1f3d8856f2 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:10:07 +0200 Subject: [PATCH 6/7] no need to copy flatpaks --- Containerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Containerfile b/Containerfile index 5ac448d..ee7f11c 100644 --- a/Containerfile +++ b/Containerfile @@ -70,5 +70,4 @@ FROM scratch AS ctx COPY --from=ghcr.io/projectbluefin/common:latest /system_files/shared /system_files/shared COPY --from=builder /out/wallpapers /wallpapers COPY --from=builder /out/logos /logos -COPY /flatpaks /flatpaks COPY /system_files /system_files From 6f96017fec53d24548c2d0b505920a94e6603c4c Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:14:13 +0200 Subject: [PATCH 7/7] fix the brewfiles fix the brewfiles fix typo small typo in comments --- .../homebrew/system-dx-flatpaks.Brewfile | 7 ++-- .../homebrew/system-flatpaks.Brewfile | 41 ++++++++++--------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile b/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile index 8ffe51b..e1e3ffb 100644 --- a/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile +++ b/system_files/shared/usr/share/ublue-os/homebrew/system-dx-flatpaks.Brewfile @@ -1,3 +1,4 @@ -io.podman_desktop.PodmanDesktop -io.github.getnf.embellish -me.iepure.devtoolbox +# Flatpaks for DX mode on Aurora +flatpak "io.podman_desktop.PodmanDesktop" +flatpak "io.github.getnf.embellish" +flatpak "me.iepure.devtoolbox" diff --git a/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile b/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile index 9a5770f..79b70a6 100644 --- a/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile +++ b/system_files/shared/usr/share/ublue-os/homebrew/system-flatpaks.Brewfile @@ -1,20 +1,21 @@ -com.github.tchx84.Flatseal -com.ranfdev.DistroShelf -io.github.flattool.Warehouse -io.github.kolunmi.Bazaar -io.missioncenter.MissionCenter -org.deskflow.deskflow -org.fedoraproject.MediaWriter -org.fkoehler.KTailctl -org.gnome.DejaDup -org.gtk.Gtk3theme.Breeze -org.kde.gwenview -org.kde.haruna -org.kde.kcalc -org.kde.kclock -org.kde.kontact -org.kde.kweather -org.kde.okular -org.kde.skanpage -org.mozilla.Thunderbird -org.mozilla.firefox +# Default system-wide flatpaks for Aurora +flatpak "com.github.tchx84.Flatseal" +flatpak "com.ranfdev.DistroShelf" +flatpak "io.github.flattool.Warehouse" +flatpak "io.github.kolunmi.Bazaar" +flatpak "io.missioncenter.MissionCenter" +flatpak "org.deskflow.deskflow" +flatpak "org.fedoraproject.MediaWriter" +flatpak "org.fkoehler.KTailctl" +flatpak "org.gnome.DejaDup" +flatpak "org.gtk.Gtk3theme.Breeze" +flatpak "org.kde.gwenview" +flatpak "org.kde.haruna" +flatpak "org.kde.kcalc" +flatpak "org.kde.kclock" +flatpak "org.kde.kontact" +flatpak "org.kde.kweather" +flatpak "org.kde.okular" +flatpak "org.kde.skanpage" +flatpak "org.mozilla.Thunderbird" +flatpak "org.mozilla.firefox"