summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.forgejo/scripts/mirror-core-repo.sh14
-rw-r--r--.forgejo/workflows/artcraft-update.yml2
-rw-r--r--.forgejo/workflows/build-gnome.yml2
-rw-r--r--.forgejo/workflows/build-hyprland.yml2
-rw-r--r--.forgejo/workflows/build-kernel.yml2
-rw-r--r--.forgejo/workflows/build-theme-send-core-repo.yml2
-rw-r--r--.forgejo/workflows/hyprland-update-check.yml2
-rw-r--r--raveos-calamares-theme/PKGBUILD2
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh85
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/partition.conf7
10 files changed, 85 insertions, 35 deletions
diff --git a/.forgejo/scripts/mirror-core-repo.sh b/.forgejo/scripts/mirror-core-repo.sh
index 9c6d5e0..20ee1dc 100644
--- a/.forgejo/scripts/mirror-core-repo.sh
+++ b/.forgejo/scripts/mirror-core-repo.sh
@@ -46,14 +46,12 @@ for f in *.pkg.tar.zst; do
[ -n "$pkgname" ] || continue
while IFS=$'\t' read -r aid aname; do
[ -n "$aid" ] || continue
- case "$aname" in
- "${pkgname}-"*.pkg.tar.zst | "${pkgname}-"*.pkg.tar.zst.sig)
- if [ "$aname" != "$f" ] && [ "$aname" != "${f}.sig" ]; then
- curl -sf -X DELETE -H "@${HDRFILE}" "${API}/releases/assets/${aid}" || true
- echo "torolve (regi verzio): $aname"
- fi
- ;;
- esac
+ aname_nosig="${aname%.sig}"
+ apkg=$(echo "$aname_nosig" | sed -E 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
+ if [ "$apkg" = "$pkgname" ] && [ "$aname" != "$f" ] && [ "$aname" != "${f}.sig" ]; then
+ curl -sf -X DELETE -H "@${HDRFILE}" "${API}/releases/assets/${aid}" || true
+ echo "torolve (regi verzio): $aname"
+ fi
done <<< "$existing_names"
done
diff --git a/.forgejo/workflows/artcraft-update.yml b/.forgejo/workflows/artcraft-update.yml
index 5934ffd..a7a0ba2 100644
--- a/.forgejo/workflows/artcraft-update.yml
+++ b/.forgejo/workflows/artcraft-update.yml
@@ -21,7 +21,7 @@ jobs:
- name: Install build tools
run: |
set -euo pipefail
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm base-devel git pacman-contrib rsync curl jq cargo
- name: Check latest versions and bump PKGBUILDs
diff --git a/.forgejo/workflows/build-gnome.yml b/.forgejo/workflows/build-gnome.yml
index 0f0b931..c3c29fd 100644
--- a/.forgejo/workflows/build-gnome.yml
+++ b/.forgejo/workflows/build-gnome.yml
@@ -26,7 +26,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm base-devel zstd rsync pacman-contrib gobject-introspection
- name: Fetch core repo via rsync
diff --git a/.forgejo/workflows/build-hyprland.yml b/.forgejo/workflows/build-hyprland.yml
index 01adee0..cbde5a4 100644
--- a/.forgejo/workflows/build-hyprland.yml
+++ b/.forgejo/workflows/build-hyprland.yml
@@ -26,7 +26,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm \
base-devel cmake meson ninja clang llvm lld rust go git \
wayland wayland-protocols cairo pango libxkbcommon libinput \
diff --git a/.forgejo/workflows/build-kernel.yml b/.forgejo/workflows/build-kernel.yml
index 5c2b0e5..28faeff 100644
--- a/.forgejo/workflows/build-kernel.yml
+++ b/.forgejo/workflows/build-kernel.yml
@@ -26,7 +26,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm \
base-devel clang llvm lld bc binutils cpio gettext \
libelf openssl pahole perl python rust rust-bindgen \
diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml
index 7e22e11..c3973e3 100644
--- a/.forgejo/workflows/build-theme-send-core-repo.yml
+++ b/.forgejo/workflows/build-theme-send-core-repo.yml
@@ -23,7 +23,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm \
base-devel git pacman-contrib cmake qt6-tools go cargo gtk4-layer-shell
diff --git a/.forgejo/workflows/hyprland-update-check.yml b/.forgejo/workflows/hyprland-update-check.yml
index fd198eb..44e5782 100644
--- a/.forgejo/workflows/hyprland-update-check.yml
+++ b/.forgejo/workflows/hyprland-update-check.yml
@@ -48,7 +48,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm pacman-contrib curl jq
UPDATED_PKGS=()
diff --git a/raveos-calamares-theme/PKGBUILD b/raveos-calamares-theme/PKGBUILD
index f27527f..9474c43 100644
--- a/raveos-calamares-theme/PKGBUILD
+++ b/raveos-calamares-theme/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveos-calamares-theme
pkgver=2.0.0
-pkgrel=75
+pkgrel=76
pkgdesc="RaveOS Calamares Theme"
arch=('any')
url="https://git.rp1.hu/RaveOS"
diff --git a/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh
index 462a289..7038237 100644
--- a/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh
+++ b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh
@@ -7,16 +7,17 @@ GPU_INFO="$(lspci -nn | grep -E 'VGA|3D|Display' || true)"
echo ">>> [gpu] Detected devices:"
echo "$GPU_INFO"
+pacman -Syy --noconfirm || true
+
install_pkgs() {
- pacman -Syy --noconfirm || true
- pacman -S --noconfirm "$@" || true
+ pacman -S --needed --noconfirm "$@" || true
}
install_pkgs mesa libglvnd vulkan-icd-loader
if echo "$GPU_INFO" | grep -qi "Intel"; then
echo ">>> [gpu] Installing Intel stack..."
- install_pkgs mesa vulkan-intel intel-media-driver
+ install_pkgs mesa vulkan-intel intel-media-driver
fi
if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then
@@ -25,41 +26,93 @@ if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then
fi
if echo "$GPU_INFO" | grep -qi "NVIDIA"; then
- echo ">>> [gpu] Installing NVIDIA DKMS stack..."
+ echo ">>> [gpu] NVIDIA detected -> driver kivalasztasa..."
+
+ NV_IDS=$( { lspci -n -d 10de::0300; lspci -n -d 10de::0302; lspci -n -d 10de::0380; } | awk '{print $3}' | cut -d: -f2 | sort -u || true )
+
+ driver_family() {
+ local id="$1" dec
+ [[ "$id" =~ ^[0-9a-fA-F]{4}$ ]] || { echo unsupported; return; }
+ dec=$((16#$id))
+ if [ "$dec" -ge $((0x1E00)) ]; then echo open; return; fi
+ if [ "$dec" -ge $((0x1340)) ] && [ "$dec" -le $((0x13FF)) ]; then echo 580xx; return; fi
+ if [ "$dec" -ge $((0x1400)) ] && [ "$dec" -le $((0x1DFF)) ]; then echo 580xx; return; fi
+ if [ "$dec" -ge $((0x0FC0)) ] && [ "$dec" -le $((0x103F)) ]; then echo 470xx; return; fi
+ if [ "$dec" -ge $((0x1180)) ] && [ "$dec" -le $((0x11FF)) ]; then echo 470xx; return; fi
+ if [ "$dec" -ge $((0x1280)) ] && [ "$dec" -le $((0x12BF)) ]; then echo 470xx; return; fi
+ echo unsupported
+ }
+
+ BESTFAM=unsupported
+ BESTRANK=0
+ for id in $NV_IDS; do
+ fam=$(driver_family "$id")
+ echo ">>> [gpu] NVIDIA ${id} -> ${fam}"
+ rank=0
+ case "$fam" in
+ open) rank=4 ;;
+ 580xx) rank=3 ;;
+ 470xx) rank=2 ;;
+ esac
+ if [ "$rank" -gt "$BESTRANK" ]; then BESTRANK=$rank; BESTFAM=$fam; fi
+ done
- install_pkgs dkms linux-cachyos-headers nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils
+ case "$BESTFAM" in
+ open)
+ echo ">>> [gpu] Turing+ -> nvidia-open-dkms"
+ install_pkgs dkms linux-cachyos-headers nvidia-open-dkms nvidia-utils nvidia-settings lib32-nvidia-utils
+ ;;
+ 580xx)
+ echo ">>> [gpu] Pascal/Maxwell/Volta -> nvidia-580xx-dkms (legacy)"
+ install_pkgs dkms linux-cachyos-headers nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
+ ;;
+ 470xx)
+ echo ">>> [gpu] Kepler -> nvidia-470xx-dkms (legacy, unsupported)"
+ install_pkgs dkms linux-cachyos-headers nvidia-470xx-dkms nvidia-470xx-utils nvidia-470xx-settings lib32-nvidia-470xx-utils
+ ;;
+ *)
+ echo ">>> [gpu] Nem tamogatott NVIDIA (Fermi vagy regebbi) -> nouveau marad"
+ ;;
+ esac
if echo "$GPU_INFO" | grep -qi "Intel\|AMD\|ATI"; then
echo ">>> [gpu] Hybrid laptop detected -> installing nvidia-prime"
install_pkgs nvidia-prime
fi
- echo ">>> [gpu] Enabling NVIDIA module autoload..."
- mkdir -p /etc/modules-load.d
- cat > /etc/modules-load.d/nvidia.conf <<EOF
+ NV_MODULE_OK=0
+ if [ "$BESTFAM" != unsupported ] && modinfo -k "$(ls /usr/lib/modules | head -1)" nvidia >/dev/null 2>&1; then
+ NV_MODULE_OK=1
+ fi
+
+ if [ "$NV_MODULE_OK" -eq 1 ]; then
+ echo ">>> [gpu] NVIDIA modul elerheto -> beallitasok..."
+
+ mkdir -p /etc/modules-load.d
+ cat > /etc/modules-load.d/nvidia.conf <<'EOF'
nvidia
nvidia_modeset
nvidia_uvm
nvidia_drm
EOF
- echo ">>> [gpu] Enabling NVIDIA DRM modeset..."
- mkdir -p /etc/modprobe.d
- cat > /etc/modprobe.d/nvidia-drm.conf <<'EOF'
+ mkdir -p /etc/modprobe.d
+ cat > /etc/modprobe.d/nvidia-drm.conf <<'EOF'
options nvidia_drm modeset=1
EOF
- echo ">>> [gpu] Disabling nouveau (blacklist in /etc so initramfs keeps it)..."
- cat > /etc/modprobe.d/99-nvidia-blacklist.conf <<'EOF'
+ cat > /etc/modprobe.d/99-nvidia-blacklist.conf <<'EOF'
blacklist nouveau
options nouveau modeset=0
EOF
- echo ">>> [gpu] Embedding NVIDIA modules into initramfs..."
- mkdir -p /etc/mkinitcpio.conf.d
- cat > /etc/mkinitcpio.conf.d/raveos-nvidia.conf <<'EOF'
+ mkdir -p /etc/mkinitcpio.conf.d
+ cat > /etc/mkinitcpio.conf.d/raveos-nvidia.conf <<'EOF'
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
EOF
+ else
+ echo ">>> [gpu] NVIDIA modul NEM erheto el -> nouveau marad (nincs blacklist)"
+ fi
if pacman -Q plasma-desktop >/dev/null 2>&1; then
echo ">>> [gpu] NVIDIA + Plasma -> installing X11 session (plasma-x11-session)"
diff --git a/raveos-calamares-theme/etc/calamares/modules/partition.conf b/raveos-calamares-theme/etc/calamares/modules/partition.conf
index 732a5df..2b460a9 100644
--- a/raveos-calamares-theme/etc/calamares/modules/partition.conf
+++ b/raveos-calamares-theme/etc/calamares/modules/partition.conf
@@ -123,10 +123,9 @@ defaultPartitionTableType: gpt
#
# If nothing is specified, Calamares defaults to both "msdos" and "gpt".
#
-requiredPartitionTableType: gpt
-# requiredPartitionTableType:
-# - msdos
-# - gpt
+requiredPartitionTableType:
+ - msdos
+ - gpt
# Default filesystem type, used when a "new" partition is made.
#