Big refactor to use custom base images

This commit is contained in:
2025-09-08 19:38:17 -04:00
parent 0f61b0ea40
commit 541fe893e8
24 changed files with 46 additions and 397 deletions

View File

@@ -46,7 +46,7 @@ base-images:
- base-kinoite-nvidia.yml
- base-cosmic-nvidia.yml
# TAG: 519-device-or-resource-busy-when-trying-to-rechunk-the-image-in-gitlab-ci
BB_BUILD_PUSH: 'true'
# BB_BUILD_PUSH: 'true'
BB_CACHE_LAYERS: 'true'
# BB_BUILD_RECHUNK: 'true'
@@ -65,4 +65,4 @@ build-image:
- wke-worker.yml
- jp-laptop.yml
BB_CACHE_LAYERS: 'true'
BB_BUILD_PUSH: 'true'
# BB_BUILD_PUSH: 'true'

View File

@@ -0,0 +1 @@
compress="zstd"

View File

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -1,5 +0,0 @@
[fury]
name=Gemfury Private Repo
baseurl=https://yum.fury.io/rsteube/
enabled=1
gpgcheck=0

View File

@@ -1,7 +0,0 @@
[google-cloud-cli]
name=Google Cloud CLI
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el9-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

View File

@@ -1,6 +0,0 @@
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key

View File

@@ -1,7 +0,0 @@
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# For option meanings, see rpm-ostreed.conf(5).
[Daemon]
AutomaticUpdatePolicy=stage
#IdleExitTimeout=60

View File

@@ -1,9 +0,0 @@
[Desktop Entry]
Name=uBlue First Boot Setup
Comment=Sets up the uBlue desktop on first boot.
GenericName=Launcher
Categories=Utility;System;
Exec=/usr/share/ublue-os/firstboot/launcher/autostart.sh
Icon=application-x-executable
Terminal=false
Type=Application

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# Simply launches the "yafti" GUI with the uBlue image's configuration.
/usr/bin/yafti /usr/share/ublue-os/firstboot/yafti.yml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,15 +0,0 @@
# Only process users with home directories, but skip the "root" user.
if [ "$(id -u)" != "0" ] && [ ! -z "$HOME" ] && [ -d "$HOME" ]; then
# Ensure target file exists and is a symlink (not a regular file or dir).
if [ ! -L "$HOME"/.config/autostart/ublue-firstboot.desktop ]; then
# Remove any leftovers or incorrect (non-link) files with the same name.
rm -rf "$HOME"/.config/autostart/ublue-firstboot.desktop
# Create symlink to uBlue's autostart runner.
# Note that "broken autostart symlinks" are harmless if they remain
# after distro switching, and just cause a minor syslog warning. The
# user can manually delete this file if they migrate away from uBlue.
mkdir -p "$HOME"/.config/autostart
ln -s "/usr/share/ublue-os/firstboot/launcher/autostart.desktop" "$HOME"/.config/autostart/ublue-firstboot.desktop
fi
fi

View File

@@ -1,141 +0,0 @@
title: Welcome to Wunker OS!
properties:
mode: "run-on-change"
screens:
first-screen:
source: yafti.screen.title
values:
title: "Welcome to Wunker OS!"
icon: "/path/to/icon"
description: |
This guided installer will help you get started with your new system.
can-we-modify-your-flatpaks:
source: yafti.screen.consent
values:
title: Welcome, Traveler!
condition:
run: flatpak remotes --columns=name | grep fedora
description: |
We have detected the limited, Fedora-provided Flatpak remote on your system, whose applications are usually missing important codecs and other features. This step will therefore remove all basic Fedora Flatpaks from your system! We will instead switch all core Flatpak applications over to the vastly superior, unfiltered Flathub. If you don't want to do this, simply exit this installer.
actions:
- run: flatpak remote-delete --system --force fedora
- run: flatpak remote-delete --user --force fedora
- run: flatpak remove --system --noninteractive --all
- run: flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
- run: flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
check-system-flathub:
source: yafti.screen.consent
values:
title: Missing Flathub Repository (System)
condition:
run: flatpak remotes --system --columns=name | grep flathub | wc -l | grep '^0$'
description: |
We have detected that you don't have Flathub's repository on your system. We will now add that repository to your system-wide list.
actions:
- run: flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
check-user-flathub:
source: yafti.screen.consent
values:
title: Missing Flathub Repository (User)
condition:
run: flatpak remotes --user --columns=name | grep flathub | wc -l | grep '^0$'
description: |
We have detected that you don't have Flathub's repository on your current user account. We will now add that repository to your account.
actions:
- run: flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
applications:
source: yafti.screen.package
values:
title: Application Installer
show_terminal: true
package_manager: yafti.plugin.flatpak
package_manager_defaults:
user: true
system: false
groups:
Core GNOME Apps:
description: Core system applications for the GNOME desktop environment.
default: true
packages:
- Calculator: org.gnome.Calculator
- Calendar: org.gnome.Calendar
- Characters: org.gnome.Characters
- Cheese: org.gnome.Cheese
- Clocks: org.gnome.clocks
- Connections: org.gnome.Connections
- Contacts: org.gnome.Contacts
- Disk Usage Analyzer: org.gnome.baobab
- Document Scanner: org.gnome.SimpleScan
- Document Viewer: org.gnome.Evince
- Extension Manager: com.mattjakeman.ExtensionManager
- Font Viewer: org.gnome.font-viewer
- Image Viewer: org.gnome.eog
- Logs: org.gnome.Logs
- Maps: org.gnome.Maps
- Photos (Organizer): org.gnome.Photos
- Sushi (Nautilus Previewer): org.gnome.NautilusPreviewer
- Text Editor: org.gnome.TextEditor
- Videos (Player): org.gnome.Totem
- Weather: org.gnome.Weather
System Apps:
description: System applications for all desktop environments.
default: false
packages:
- Deja Dup Backups: org.gnome.DejaDup
- Fedora Media Writer: org.fedoraproject.MediaWriter
- Flatseal (Permission Manager): com.github.tchx84.Flatseal
- Font Downloader: org.gustavoperedo.FontDownloader
- Mozilla Firefox: org.mozilla.firefox
Web Browsers:
description: Additional browsers to complement or replace Firefox.
default: false
packages:
- Brave: com.brave.Browser
- Google Chrome: com.google.Chrome
- Microsoft Edge: com.microsoft.Edge
- Opera: com.opera.Opera
Gaming:
description: "Rock and Stone!"
default: false
packages:
- Bottles: com.usebottles.bottles
- Discord: com.discordapp.Discord
- GNOME Games: org.gnome.Games
- Heroic Games Launcher: com.heroicgameslauncher.hgl
- Steam: com.valvesoftware.Steam
- Gamescope (Utility): com.valvesoftware.Steam.Utility.gamescope
- MangoHUD (Utility): org.freedesktop.Platform.VulkanLayer.MangoHud//22.08
- SteamTinkerLaunch (Utility): com.valvesoftware.Steam.Utility.steamtinkerlaunch
- Proton Updater for Steam: net.davidotek.pupgui2
Office:
description: Boost your productivity.
default: false
packages:
- LibreOffice: org.libreoffice.LibreOffice
- OnlyOffice: org.onlyoffice.desktopeditors
- Obsidian: md.obsidian.Obsidian
- Slack: com.slack.Slack
- Standard Notes: org.standardnotes.standardnotes
- Thunderbird Email: org.mozilla.Thunderbird
Streaming:
description: Stream to the Internet.
default: false
packages:
- OBS Studio: com.obsproject.Studio
- VkCapture for OBS: com.obsproject.Studio.OBSVkCapture
- Gstreamer for OBS: com.obsproject.Studio.Plugin.Gstreamer
- Gstreamer VAAPI for OBS: com.obsproject.Studio.Plugin.GStreamerVaapi
- Boatswain for Streamdeck: com.feaneron.Boatswain
final-screen:
source: yafti.screen.title
values:
title: "All done!"
icon: "/path/to/icon"
# links:
# - "Website":
# run: /usr/bin/xdg-open https://ublue.it
# - "Join the Discord Community":
# run: /usr/bin/xdg-open https://discord.gg/XjG48C7VHx
description: |
Thanks for using Wunker OS, we hope you enjoy it!

View File

@@ -1,12 +1,29 @@
modules:
- type: script
env:
CSFG: /usr/lib/systemd/system-generators/coreos-sulogin-force-generator
snippets:
- systemctl set-default graphical.target
- from-file: common/updates.yml
- from-file: common/bluebuild-logo.yml
- type: os-release
properties:
NAME: WunkerOS
ID: wunker_os
PRETTY_NAME: Wunker OS
# use CoreOS' generator for emergency/rescue boot
# see detail: https://github.com/ublue-os/main/issues/653
- curl -sSLo ${CSFG} https://raw.githubusercontent.com/coreos/fedora-coreos-config/refs/heads/stable/overlay.d/05core/usr/lib/systemd/system-generators/coreos-sulogin-force-generator
- chmod +x ${CSFG}
- type: files
files:
- source: bootc-update
destination: /usr/lib/systemd/system
- type: systemd
system:
masked:
- rpm-ostreed-automatic.timer
enabled:
- bootc-fetch-apply-updates.timer
- type: copy
src: files/base/usr/share/plymouth
dest: /usr/share/plymouth
# - type: os-release
# properties:
# NAME: WunkerOS
# ID: wunker_os
# PRETTY_NAME: Wunker OS
- from-file: common/post-build.yml

View File

@@ -1,13 +0,0 @@
modules:
# - type: files
# # - type: files-update
# # source: local
# files:
# - source: bluebuild-logo
# destination: /
- type: copy
src: files/bluebuild-logo/
dest: /
# - type: script
# scripts:
# - initramfs.sh

View File

@@ -1,15 +0,0 @@
stages:
- name: blue-build
from: rust
modules:
- type: containerfile
snippets:
- |
RUN cargo install blue-build --all-features --target x86_64-unknown-linux-gnu \
&& mkdir -p /out/ \
&& mv $CARGO_HOME/bin/bluebuild /out/bluebuild
modules:
- type: copy
from: blue-build
src: /out/bluebuild
dest: /usr/bin/bluebuild

View File

@@ -1,125 +0,0 @@
---
# yaml-language-server: $schema=https://schema.blue-build.org/module-list-v1.json
modules:
- type: dnf
install:
packages:
- dnf5-plugins
- type: dnf
repos:
files:
- https://negativo17.org/repos/fedora-multimedia.repo
copr:
- ublue-os/staging
- kylegospo/oversteer
install:
packages:
- https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-%OS_VERSION%.noarch.rpm
- https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-%OS_VERSION%.noarch.rpm
- type: script
snippets:
- dnf -y config-manager setopt 'fedora-multimedia.priority=90'
- type: dnf
install:
packages:
- mesa-libxatracker
replace:
- from-repo: fedora-multimedia
packages:
- libheif
- libva
- libva-intel-media-driver
- mesa-dri-drivers
- mesa-filesystem
- mesa-libEGL
- mesa-libGL
- mesa-libgbm
- mesa-libglapi
- mesa-libxatracker
- mesa-va-drivers
- mesa-vulkan-drivers
- libvdpau
- type: dnf
remove:
auto-remove: false
packages:
# - fdk-aac-free
# - ffmpeg-free
# - google-noto-sans-cjk-vf-fonts
# - libavcodec-free
# - libavdevice-free
# - libavfilter-free
# - libavformat-free
# - libavutil-free
# - libpostproc-free
# - libswresample-free
# - libswscale-free
# - default-fonts-cjk-sans
# - ffmpegthumbnailer
- plasma-discover-rpm-ostree
install:
packages:
- alsa-firmware
# - android-udev-rules
- apr
- apr-util
- distrobox
- ffmpeg
- ffmpeg-libs
- ffmpegthumbnailer
- flatpak-spawn
- fuse
- fzf
- google-noto-sans-balinese-fonts
- google-noto-sans-cjk-fonts
- google-noto-sans-javanese-fonts
- google-noto-sans-sundanese-fonts
- grub2-tools-extra
- heif-pixbuf-loader
- htop
- intel-vaapi-driver
- just
- kernel-tools
- libcamera
- libcamera-tools
- libcamera-gstreamer
- libcamera-ipa
- libfdk-aac
- libratbag-ratbagd
- libva-utils
- lshw
- net-tools
- nvme-cli
- nvtop
- openrgb-udev-rules
- openssl
- oversteer-udev
- pam-u2f
- pam_yubico
- pamu2fcfg
- pipewire-libs-extra
- pipewire-plugin-libcamera
- powerstat
- smartmontools
- solaar-udev
- squashfs-tools
- symlinks
- tcpdump
- tmux
- traceroute
- vim
- wireguard-tools
- wl-clipboard
- yubikey-manager
- zstd
- icoutils
- kate
- kio-admin
- ksshaskpass
- kf6-kimageformats
- qt6-qtimageformats
- type: containerfile
snippets:
- |
RUN --mount=type=bind,from=ghcr.io/ublue-os/config,src=/rpms,dst=/tmp/rpms \
ls -lh /tmp/rpms/ && dnf -y install /tmp/rpms/ublue-os-luks.noarch.rpm && ostree container commit

View File

@@ -9,6 +9,10 @@ modules:
- google-cloud-sdk.repo
- https://cli.github.com/packages/rpm/gh-cli.repo
- https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
# copr:
# - name: ublue-os/packages
# chroot: fedora-42-x86_64
nonfree: negativo17
group-install:
packages:
- development-tools
@@ -48,7 +52,7 @@ modules:
- tofu
- terraform
- terraform-ls
- android-udev-rules
- android-tools
- argon2
- type: script
scripts:

View File

@@ -2,13 +2,11 @@
# yaml-language-server: $schema=https://schema.blue-build.org/module-list-v1.json
modules:
- from-file: common/common.yml
- from-file: common/cosmic.yml
- from-file: common/pipewire-tweaks.yml
- from-file: common/jp-packages.yml
- from-file: common/gaming.yml
- from-file: common/dev-packages.yml
- from-file: common/dev-apps.yml
- from-file: common/updates.yml
- type: files
files:
- source: distrobox
@@ -20,5 +18,4 @@ modules:
nerd-fonts:
- JetBrainsMono
- NerdFontsSymbolsOnly
- from-file: common/bluebuild-logo.yml
- from-file: common/jp-chezmoi.yml

View File

@@ -1,4 +0,0 @@
type: rpm-ostree
remove:
- firefox
- firefox-langpacks

View File

@@ -1,22 +0,0 @@
modules:
- type: dnf
install:
packages:
- sway
- wofi
- light
- swaybg
- swayidle
- waybar
- mako
- fontawesome-fonts
- type: dnf
repos:
copr:
- eddsalkield/swaylock-effects
remove:
packages:
- swaylock
install:
packages:
- swaylock-effects

View File

@@ -1,7 +1,6 @@
modules:
- from-file: common/common.yml
- from-file: common/updates.yml
- from-file: common/bluebuild-logo.yml
- from-file: common/jp-chezmoi.yml
- type: dnf
repos:

View File

@@ -27,5 +27,7 @@ modules:
- libreoffice
- from-file: common/ms-fonts.yml
- from-file: common/updates.yml
- from-file: common/bluebuild-logo.yml
- type: copy
src: files/base/usr/share/plymouth
dest: /usr/share/plymouth
- from-file: common/post-build.yml

View File

@@ -1,11 +1,13 @@
---
# yaml-language-server: $schema=https://schema.blue-build.org/recipe-v1.json
name: jp-desktop-nvidia
# base-image: ghcr.io/ublue-os/base-nvidia
# image-version: latest
base-image: ghcr.io/ublue-os/bazzite-nvidia-open
# image-version: stable
image-version: "42.20250828.1"
# Bazzite
# base-image: ghcr.io/ublue-os/bazzite-nvidia-open
# image-version: "42.20250828.1"
# Custom Base
base-image: registry.gitlab.com/wunker-bunker/wunker-os/cosmic-nvidia
image-version: 42
description: The image of Wunker OS for JP's desktop gaming.
blue-build-tag: none
nushell-version: none

View File

@@ -1,10 +1,10 @@
---
# yaml-language-server: $schema=https://schema.blue-build.org/recipe-v1.json
name: jp-laptop
# base-image: ghcr.io/ublue-os/kinoite-main
base-image: ghcr.io/ublue-os/bazzite
# image-version: stable
image-version: "42.20250828"
# base-image: ghcr.io/ublue-os/bazzite
# image-version: "42.20250828"
base-image: registry.gitlab.com/wunker-bunker/wunker-os/cosmic
image-version: 42
description: The image of Wunker OS for JP's Laptop.
stages:
- from-file: common/helix.yml