Compare commits

1 Commits

Author SHA1 Message Date
b6b7233adc Attempt rechunking again
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 2m4s
2025-06-25 12:55:33 -04:00
28 changed files with 296 additions and 343 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,16 +9,16 @@ 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
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
@@ -43,3 +43,4 @@ jobs:
# enabled by default, disable if your image is small and you want faster builds
maximize_build_space: true
rechunk: true

View File

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

View File

@@ -1,8 +0,0 @@
[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

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

View File

@@ -1,27 +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=$(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

@@ -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,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<service>
<port port="12315" protocol="tcp"/>
</service>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<service>
<port port="53317" protocol="tcp"/>
<port port="53317" protocol="udp"/>
</service>

View File

@@ -1 +0,0 @@
nct6775

View File

@@ -1 +0,0 @@
ntsync

View File

@@ -1,27 +0,0 @@
[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

@@ -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,19 +1,14 @@
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
notify: true
system:
install:
- com.github.tchx84.Flatseal
- io.missioncenter.MissionCenter
- io.github.flattool.Ignition
- net.davidotek.pupgui2
- org.gnome.Loupe
user:
install:
- one.ablaze.floorp
- io.github.equicord.equibop

View File

@@ -1,8 +1,148 @@
modules:
- from-file: dnf/multimedia.yml
- from-file: dnf/sddm.yml
- from-file: dnf/hyprland.yml
- from-file: dnf/environment.yml
- from-file: dnf/applications.yml
- from-file: dnf/themes.yml
- from-file: dnf/drivers.yml
- type: dnf
repos:
copr:
- ublue-os/packages
- solopasha/hyprland
- peterwu/rendezvous
nonfree: negativo17
install:
packages:
# sddm
- sddm
- sddm-themes
- qt5-qtgraphicaleffects
- qt5-qtquickcontrols2
- qt5-qtsvg
# password keeper
- kf6-kwallet
- kwalletmanager
- pam-kwallet
# hyprland
- hyprland-git
- hyprpanel
- hyprpolkitagent
- hyprshot
# ublue udev rules and signing
- ublue-os-udev-rules
- ublue-os-signing
# environment
# power profiles like
- tuned-ppd
# 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
# polkit
- polkit
# sound
- wireplumber
- pipewire
- headsetcontrol
# networking
- bluez
- bluez-tools
- firewall-config
# power
- powerstat
# applications
# fuzzy finder
- fzf
# dmenu runner
- fuzzel
# file manager
- nautilus
- file-roller
- file-roller-nautilus
# text editor
- neovim
# software store
- gnome-software
# disk management
- gnome-disk-utility
# kdeconnect
- kde-connect
# settings apps
# qt
- qt5ct
- qt6ct
# gtk
- nwg-look
# Themes and fonts
# emoji fonts
- google-noto-emoji-fonts
# theme and GUI
- fontawesome-fonts-all
- gnome-themes-extra
- papirus-icon-theme
- bibata-cursor-themes
# zsh
- zsh
# zoxide for z stuff
- zoxide
# steam
- steam
# for game mode and big picture mode
- gamescope
# for performance view
- mangohud
# xpadneo
- dkms-xpadneo
remove:
packages:
# remove firefox
- firefox
- firefox-langpacks
replace:
- from-repo: fedora-multimedia
packages:
- libheif
- libva
- libva-intel-media-driver
- mesa-dri-drivers
- mesa-filesystem
- mesa-libEGL
- mesa-libGL
- mesa-libgbm
- mesa-va-drivers
- mesa-vulkan-drivers
- gstreamer1-plugin-libav
- type: script
scripts:
- install-xpadneo.sh

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

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

View File

@@ -1,70 +0,0 @@
modules:
- type: dnf
repos:
nonfree: rpmfusion
files:
- codium.repo
copr:
- mavit/discover-overlay
keys:
- https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
install:
packages:
# applications
# fuzzy finder
- fzf
# dmenu runner
- fuzzel
# file manager
- nautilus
- file-roller
- file-roller-nautilus
- ffmpegthumbnailer
# music / video player
- vlc
# text editor
- neovim
- codium
# software store
- gnome-software
# disk management
- gnome-disk-utility
# kdeconnect
- kde-connect
# discord overlay
- discover-overlay
# settings apps
# qt
- qt5ct
- qt6ct
# gtk
- nwg-look
# zsh
- zsh
# zoxide for z stuff
- zoxide
# steam
- steam
# for game mode and big picture mode
- gamescope
# for performance view
- mangohud
remove:
packages:
# remove firefox
- firefox
- firefox-langpacks

View File

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

View File

@@ -1,47 +0,0 @@
modules:
- type: dnf
repos:
files:
- codium.repo
copr:
- ublue-os/packages
install:
packages:
# ublue udev rules and signing
- ublue-os-udev-rules
- ublue-os-signing
# 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-gnome
# polkit
- polkit
# sound
- wireplumber
- pipewire
- headsetcontrol
# networking
- bluez
- bluez-tools
- firewall-config

View File

@@ -1,20 +0,0 @@
modules:
- type: dnf
repos:
copr:
- solopasha/hyprland
- errornointernet/quickshell
install:
packages:
- aquamarine
- hyprland-git
- hyprpolkitagent
- hyprshot
- hyprland-qt-support
- hyprland-qtutils
- xdg-desktop-portal-hyprland
- swww
- matugen
# quickshell
- quickshell

View File

@@ -1,38 +0,0 @@
modules:
- type: dnf
repos:
nonfree: rpmfusion
install:
packages:
# other multimedia
- gstreamer1-plugin-libav
- gstreamer1-plugins-bad-free-extras
- gstreamer1-plugins-bad-freeworld
- gstreamer1-plugins-ugly
- gstreamer1-vaapi
remove:
packages:
# old codecs
- fdk-aac-free
- libavcodec-free
- libavdevice-free
- libavfilter-free
- libavformat-free
- libavutil-free
- libpostproc-free
- libswresample-free
- libswscale-free
- ffmpeg-free
replace:
- from-repo: rpmfusion-free-updates
packages:
- old: mesa-va-drivers
new: mesa-va-drivers-freeworld
- type: dnf
install:
packages:
- ffmpeg
- mesa-vdpau-drivers-freeworld

View File

@@ -1,28 +0,0 @@
modules:
- type: dnf
install:
packages:
# sddm
- sddm
- sddm-themes
- qt5-qtgraphicaleffects
- qt5-qtquickcontrols2
- qt5-qtsvg
# added libraries for quickshell
- 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

@@ -1,17 +0,0 @@
modules:
- type: dnf
repos:
copr:
- peterwu/rendezvous
install:
packages:
# Themes and fonts
# emoji fonts
- google-noto-emoji-fonts
# theme and GUI
- fontawesome-fonts-all
- gnome-themes-extra
- papirus-icon-theme
- bibata-cursor-themes
- material-icons-fonts

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