Compare commits

..

2 Commits

Author SHA1 Message Date
fcf019fddf Switching back to ubuntu-latest to attempt to use rechunk
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 17s
2025-07-30 02:24:09 -04:00
eabd27c3c8 Attempt rechunking again
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 57s
2025-07-28 10:41:19 -04:00
35 changed files with 249 additions and 130 deletions

30
.github/workflows/build-nvidia.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: bluebuild-nvidia
on:
workflow_dispatch: # allow manually triggering builds
jobs:
bluebuild:
name: Build Custom Image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
strategy:
fail-fast: false # stop GH from cancelling all matrix builds if one fails
matrix:
recipe:
# !! Add your recipes here
- recipe_nvidia.yml
steps:
# the build is fully handled by the reusable github action
- name: Build Custom Image
uses: blue-build/github-action@v1.8
with:
recipe: ${{ matrix.recipe }}
cosign_private_key: ${{ secrets.SIGNING_SECRET }}
registry: 'git.hydrosaber.com'
registry_token: ${{ secrets.PACKAGE_BUILDER_TOKEN }}
pr_event_number: ${{ github.event.number }}
# enabled by default, disable if your image is small and you want faster builds
maximize_build_space: true

View File

@@ -9,12 +9,12 @@ on:
- main
paths-ignore: # don't rebuild if only documentation has changed
- "**.md"
- ".github/workflows/build-nvidia.yml"
- "files/scripts/nvidia/**"
- "recipes/components/nvidia-module.yml"
- "recipes/recipe_nvidia.yml"
pull_request:
workflow_dispatch: # allow manually triggering builds
concurrency:
# only run one build at a time
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
bluebuild:
name: Build Custom Image

1
.gitignore vendored
View File

@@ -1,4 +1,3 @@
cosign.key
cosign.private
/Containerfile
/.bluebuild-scripts_*

View File

@@ -1,4 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDgbLqIZdNv3Lx7jEKq3l6UImgXi/
MdQ51/79s4zfI2f4wQ8ran/sZO3y91hhsImytGqfSpNZmMV8T0rmOAAXkg==
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzzK2nfqN5MlTqBitNsehDVnITGSF
r9FQRKI6dNDXRjlKgcMaa88Mb9FdfqFVHSPesN1mHz3/QfZIPG/s7mJAfw==
-----END PUBLIC KEY-----

8
files/dnf/codium.repo Normal file
View File

@@ -0,0 +1,8 @@
[gitlab.com_paulcarroty_vscodium_repo]
name=download.vscodium.com
baseurl=https://download.vscodium.com/rpms/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
metadata_expire=1h

View File

@@ -31,7 +31,7 @@ sed -i "s|^HOME_URL=.*|HOME_URL=\"$HOME_URL\"|" /usr/lib/os-release
sed -i "s|^DOCUMENTATION_URL=.*|DOCUMENTATION_URL=\"$DOCUMENTATION_URL\"|" /usr/lib/os-release
sed -i "s|^SUPPORT_URL=.*|SUPPORT_URL=\"$SUPPORT_URL\"|" /usr/lib/os-release
sed -i "s|^BUG_REPORT_URL=.*|BUG_REPORT_URL=\"$BUG_SUPPORT_URL\"|" /usr/lib/os-release
sed -i "s|^CPE_NAME=\"cpe:/o:fedoraproject:fedora|CPE_NAME=\"cpe:/o:linux:${IMAGE_PRETTY_NAME,}|" /usr/lib/os-release
sed -i "s|^CPE_NAME=\"cpe:/o:fedoraproject:fedora|CPE_NAME=\"cpe:/o:wayblue:${IMAGE_PRETTY_NAME,}|" /usr/lib/os-release
sed -i "s/^DEFAULT_HOSTNAME=.*/DEFAULT_HOSTNAME=\"${IMAGE_PRETTY_NAME,}\"/" /usr/lib/os-release
sed -i "s/^ID=fedora/ID=\"${IMAGE_LIKE,}\"\nID_LIKE=\"${IMAGE_PRETTY_NAME,}\"/" /usr/lib/os-release
sed -i "/^REDHAT_BUGZILLA_PRODUCT=/d; /^REDHAT_BUGZILLA_PRODUCT_VERSION=/d; /^REDHAT_SUPPORT_PRODUCT=/d; /^REDHAT_SUPPORT_PRODUCT_VERSION=/d" /usr/lib/os-release

View File

@@ -1,7 +0,0 @@
#!/usr/bin/env bash
set -oue pipefail
QUALIFIED_KERNEL="$(rpm -qa | grep -P 'kernel-(\d+\.\d+\.\d+)' | sed -E 's/kernel-//')"
sudo akmods --kernels $QUALIFIED_KERNEL

View File

@@ -4,13 +4,24 @@
set -oue pipefail
echo "INFO: grab kernel module"
KERNEL_VER="$(rpm -qa | grep -P 'kernel-(\d+\.\d+\.\d+)' | sed -E 's/kernel-//')"
KERNEL_VER=$(ls /lib/modules | head -n 1)
echo $KERNEL_VER
echo "INFO: list all modules"
ls /usr/src
echo "INFO: grab xpad modules"
XPAD_MODULE_VER=$(ls /usr/src | grep xpadneo | sed 's/-/\//')
echo $XPAD_MODULE_VER
echo "INFO: grab open razer modules"
RAZER_MODULE_VER=$(ls /usr/src | grep razer | sed -E 's/(.*)-/\1\//')
echo $RAZER_MODULE_VER
echo "INFO: build and install xpadneo"
sudo dkms build -m $XPAD_MODULE_VER -k $KERNEL_VER
sudo dkms install -m $XPAD_MODULE_VER -k $KERNEL_VER
echo "INFO: build and install openrazer"
sudo dkms build -m $RAZER_MODULE_VER -k $KERNEL_VER
sudo dkms install -m $RAZER_MODULE_VER -k $KERNEL_VER

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -oue pipefail
echo "INFO: grab kernel module"
KERNEL_VER="$(rpm -qa | grep -P 'kernel-(\d+\.\d+\.\d+)' | sed -E 's/kernel-//')"
echo $KERNEL_VER
echo "INFO: grab xpad modules"
XPAD_MODULE_VER=$(ls /usr/src | grep xpadneo | sed 's/-/\//')
echo $XPAD_MODULE_VER
echo "INFO: build and install xpadneo"
sudo dkms build -m $XPAD_MODULE_VER -k $KERNEL_VER
sudo dkms install -m $XPAD_MODULE_VER -k $KERNEL_VER

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -oue pipefail
semodule --verbose --install /usr/share/selinux/packages/nvidia-container.pp

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -oue pipefail
rm -f /etc/yum.repos.d/negativo17-fedora-nvidia.repo
rm -f /etc/yum.repos.d/negativo17-fedora-multimedia.repo
rm -f /etc/yum.repos.d/eyecantcu-supergfxctl.repo
rm -f /etc/yum.repos.d/_copr_ublue-os-akmods.repo
rm -f /etc/yum.repos.d/nvidia-container-toolkit.repo

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -oue pipefail
echo '
# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting
# support. This must be disabled in case of SLI Mosaic.
options nvidia-drm modeset=1 fbdev=1
' > /usr/lib/modprobe.d/nvidia-modeset.conf
cp /usr/lib/modprobe.d/nvidia-modeset.conf /etc/modprobe.d/nvidia-modeset.conf

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -oue pipefail
sed -i 's@omit_drivers@force_drivers@g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf
sed -i 's@ nvidia @ i915 amdgpu nvidia @g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf

View File

@@ -1,8 +0,0 @@
#!/usr/bin/env bash
# Obtained from wayblue project https://github.com/wayblueorg/wayblue/blob/live/files/scripts/regenerateinitramfs.sh
set -oue pipefail
QUALIFIED_KERNEL="$(rpm -qa | grep -P 'kernel-(\d+\.\d+\.\d+)' | sed -E 's/kernel-//')"
/usr/bin/dracut --no-hostonly --kver "$QUALIFIED_KERNEL" --reproducible -v --add ostree -f "/lib/modules/$QUALIFIED_KERNEL/initramfs.img"
chmod 0600 "/lib/modules/$QUALIFIED_KERNEL/initramfs.img"

View File

@@ -0,0 +1,4 @@
# monitors.conf
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto

View File

@@ -0,0 +1,2 @@
[Theme]
Current=maldives

View File

@@ -0,0 +1,27 @@
[Desktop Entry]
Name=VSCodium
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/share/codium/codium --ozone-platform=wayland %F
Icon=vscodium
Type=Application
StartupNotify=false
StartupWMClass=VSCodium
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-codium-workspace;
Actions=new-empty-window;
Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=新しい空のウィンドウ
Name[ko]=새 빈 창
Name[ru]=Новое пустое окно
Name[zh_CN]=新建空窗口
Name[zh_TW]=開新空視窗
Exec=/usr/share/codium/codium --new-window %F
Icon=vscodium

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

View File

@@ -1,5 +1,6 @@
[Unit]
Description=A panel bar branched from AGS maintained by Hyprland devs.
Documentation=man:waybar(5)
# order startup after WM
After=graphical-session.target
@@ -7,7 +8,7 @@ After=graphical-session.target
Type=exec
# Repurpose XDG Autostart filtering
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
ExecStart=/usr/bin/quickshell
ExecStart=/usr/bin/hyprpanel
Restart=on-failure
Slice=app-graphical.slice

View File

@@ -1,3 +1,7 @@
modules:
- type: chezmoi
repository: "https://git.hydrosaber.com/eriq12/dotfiles"
- type: script
scripts:
- setupchezmoiskel.sh

View File

@@ -0,0 +1,19 @@
modules:
- type: default-flatpaks
configurations:
- scope: user
repo:
title: Flathub (user)
install:
- one.ablaze.floorp
- io.github.equicord.equibop
- scope: system
repo:
title: Flathub
notify: true
install:
- com.github.tchx84.Flatseal
- io.missioncenter.MissionCenter
- io.github.flattool.Ignition
- net.davidotek.pupgui2
- org.gnome.Loupe

View File

@@ -1,9 +1,8 @@
modules:
- from-file: dnf/multimedia.yml
- from-file: dnf/greeter.yml
- from-file: dnf/sddm.yml
- from-file: dnf/hyprland.yml
- from-file: dnf/environment.yml
- from-file: dnf/applications.yml
- from-file: dnf/vr.yml
- from-file: dnf/themes.yml
- from-file: dnf/drivers.yml

View File

@@ -0,0 +1,16 @@
modules:
- type: containerfile
snippets:
- COPY --from=ghcr.io/ublue-os/akmods-nvidia:main-42 /rpms/ /tmp/rpms
- RUN find /tmp/rpms
- RUN rpm-ostree install /tmp/rpms/ublue-os/ublue-os-nvidia*.rpm
- RUN sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/nvidia-container-toolkit.repo
- RUN sed -i '0,/enabled=0/{s/enabled=0/enabled=1\npriority=90/}' /etc/yum.repos.d/negativo17-fedora-nvidia.repo
- RUN rpm-ostree install /tmp/rpms/kmods/kmod-nvidia*.rpm libnvidia-fbc libva-nvidia-driver nvidia-driver nvidia-modprobe nvidia-persistenced nvidia-settings nvidia-container-toolkit
- type: script
scripts:
- nvidia/installtoolkitpolicy.sh
- nvidia/removeunusedrepos.sh
- nvidia/setearlyloading.sh
- nvidia/setdrmvariables.sh

View File

@@ -7,6 +7,6 @@ modules:
user:
enabled:
- flatpak-user-update.timer
- quickshell.service
- hyprpolkitagent.service
- swww.service
- hyprpanel.service
- hyprpolkitagent.service

View File

@@ -2,6 +2,13 @@ modules:
- type: dnf
repos:
nonfree: rpmfusion
files:
- codium.repo
- https://openrazer.github.io/hardware:razer.repo
copr:
- mavit/discover-overlay
keys:
- https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
install:
packages:
# applications
@@ -12,16 +19,15 @@ modules:
- fuzzel
# file manager
- dolphin
- ark
- nautilus
- file-roller
- file-roller-nautilus
- ffmpegthumbnailer
# music / video player
- vlc
# text editor
- neovim
- codium
# software store
- gnome-software
@@ -29,11 +35,12 @@ modules:
# disk management
- gnome-disk-utility
- qdirstat
# kdeconnect
- kde-connect
# discord overlay
- discover-overlay
# settings apps
# qt
- qt5ct
@@ -54,6 +61,9 @@ modules:
# for performance view
- mangohud
# simple editing softare
- avidemux
remove:
packages:
# remove firefox

View File

@@ -1,12 +1,17 @@
modules:
- type: dnf
repos:
copr:
- atim/xpadneo
files:
- https://negativo17.org/repos/fedora-steam.repo
- https://openrazer.github.io/hardware:razer.repo
install:
packages:
- xpadneo
- dkms
- openrazer-meta
- repo: fedora-steam
packages:
- dkms-xpadneo
- type: script
scripts:
- buildakmods.sh
- installdkmsmodules.sh

View File

@@ -1,6 +1,8 @@
modules:
- type: dnf
repos:
files:
- codium.repo
copr:
- ublue-os/packages
install:
@@ -12,30 +14,24 @@ modules:
# environment
# xwayland
- xorg-x11-server-Xwayland
# headset control
- headsetcontrol
# media related
- mediainfo
- playerctl
- alsa-firmware
# zip utilities
- p7zip
# qt libraries
- qt5-qtwayland
- qt6-qtwayland
# vulkan
- vulkan-tools
- vulkan-validation-layers
# xdg-desktop-portals
- xdg-desktop-portal
- xdg-desktop-portal-gtk
- xdg-desktop-portal-kde
- xdg-desktop-portal-gnome
# polkit
- polkit
@@ -46,13 +42,6 @@ modules:
- headsetcontrol
# networking
- network-manager-applet
- NetworkManager
- NetworkManager-bluetooth
- NetworkManager-wifi
- bluez
- bluez-tools
- firewall-config
# packages for steam script
- lsb_release

View File

@@ -1,26 +0,0 @@
modules:
- type: dnf
install:
packages:
# sddm
- sddm
- sddm-themes
# added libraries for quickshell
- qt5-qtgraphicaleffects
- qt5-qtimageformats
- qt5-qtmultimedia
- qt6-qtquickcontrols2
- qt6-qtsvg
- qt6-qtimageformats
- qt6-qtmultimedia
- qt6-qt5compat
# added for editing quickshell (qmlls)
- qt5-qtdeclarative-devel
- qt6-qtdeclarative-devel
# password keeper
- kf6-kwallet
- kwalletmanager
- pam-kwallet

View File

@@ -3,19 +3,13 @@ modules:
repos:
copr:
- solopasha/hyprland
- errornointernet/quickshell
install:
packages:
- aquamarine
- hyprland-git
- hyprpanel
- hyprpolkitagent
- hyprshot
- hyprland-qt-support
- hyprland-qtutils
- xdg-desktop-portal-hyprland
- swww
- matugen
- wlogout
# quickshell
- quickshell-git

15
recipes/dnf/sddm.yml Normal file
View File

@@ -0,0 +1,15 @@
modules:
- type: dnf
install:
packages:
# sddm
- sddm
- sddm-themes
- qt5-qtgraphicaleffects
- qt5-qtquickcontrols2
- qt5-qtsvg
# password keeper
- kf6-kwallet
- kwalletmanager
- pam-kwallet

View File

@@ -14,4 +14,3 @@ modules:
- gnome-themes-extra
- papirus-icon-theme
- bibata-cursor-themes
- material-icons-fonts

View File

@@ -1,21 +0,0 @@
modules:
- type: dnf
install:
packages:
# monado
- eigen3-devel
- glslang-devel
- glslc
- libbsd-devel
- libdrm-devel
- libusb1
- libusb1-devel
- libXrandr-devel
- mesa-libGL-devel
- ninja-build
- openxr-devel
- SDL2-devel
- wayland-devel
- wayland-protocols-devel
# wayvr dashboard
- webkit2gtk4.1

View File

@@ -16,6 +16,7 @@ modules:
- from-file: components/script-module.yml
- from-file: components/sys-files-module.yml
- from-file: components/systemd-module.yml
- from-file: components/default-flatpak.yml
- from-file: components/chezmoi-module.yml
- type: signing

25
recipes/recipe_nvidia.yml Normal file
View File

@@ -0,0 +1,25 @@
---
# yaml-language-server: $schema=https://schema.blue-build.org/recipe-v1.json
# image will be published to ghcr.io/<user>/<name>
name: hydro-os-nvidia
# description will be included in the image's metadata
description: This is my personal OS image.
# the base image to build on top of (FROM) and the version tag to use
base-image: quay.io/fedora-ostree-desktops/base-atomic
image-version: 42 # latest is also supported if you want new updates ASAP
# module configuration, executed in order
# you can include multiple instances of the same module
modules:
- from-file: components/dnf-module.yml
- from-file: components/script-module.yml
- from-file: components/sys-files-module.yml
- from-file: components/systemd-module.yml
- from-file: components/nvidia-module.yml
- from-file: components/default-flatpak.yml
- from-file: components/chezmoi-module.yml
- type: initramfs
- type: signing