summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.forgejo/scripts/mirror-core-repo.sh91
-rw-r--r--.forgejo/workflows/artcraft-update.yml141
-rw-r--r--.forgejo/workflows/build-gnome.yml16
-rw-r--r--.forgejo/workflows/build-hyprland.yml16
-rw-r--r--.forgejo/workflows/build-kernel.yml16
-rw-r--r--.forgejo/workflows/build-theme-send-core-repo.yml86
-rw-r--r--.forgejo/workflows/hyprland-update-check.yml17
-rw-r--r--.forgejo/workflows/kernel-update-check.yml14
-rw-r--r--artcraft-raveos/designcraft/PKGBUILD6
-rw-r--r--artcraft-raveos/effectcraft/PKGBUILD6
-rw-r--r--artcraft-raveos/filmcraft/PKGBUILD6
-rw-r--r--artcraft-raveos/lightcraft/PKGBUILD6
-rw-r--r--artcraft-raveos/pdfcraft/PKGBUILD6
-rw-r--r--artcraft-raveos/photocraft/PKGBUILD6
-rw-r--r--artcraft-raveos/vectorcraft/PKGBUILD6
-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
18 files changed, 313 insertions, 220 deletions
diff --git a/.forgejo/scripts/mirror-core-repo.sh b/.forgejo/scripts/mirror-core-repo.sh
new file mode 100644
index 0000000..20ee1dc
--- /dev/null
+++ b/.forgejo/scripts/mirror-core-repo.sh
@@ -0,0 +1,91 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+REPO_DIR="${1:-/tmp/raveos-core-repo}"
+X86="$REPO_DIR/x86_64"
+
+OWNER="rave-os"
+GH_REPO="RaveOS-core-repo-mirror"
+TAG="core-repo-x86_64"
+API="https://api.github.com/repos/${OWNER}/${GH_REPO}"
+UPLOADS="https://uploads.github.com/repos/${OWNER}/${GH_REPO}/releases"
+
+if [ ! -d "$X86" ]; then
+ echo "Nincs mit tukrozni (${X86}) -> kihagyva"
+ exit 0
+fi
+
+if [ -z "${GH_MIRROR_TOKEN:-}" ]; then
+ echo "FIGYELMEZTETES: GH_MIRROR_TOKEN nincs beallitva -> GitHub tukrozes kihagyva"
+ exit 0
+fi
+
+HDRFILE=$(mktemp)
+chmod 600 "$HDRFILE"
+trap 'rm -f "$HDRFILE"' EXIT
+printf 'Authorization: Bearer %s\n' "$GH_MIRROR_TOKEN" > "$HDRFILE"
+
+fetch_release() {
+ curl -sf -H "@${HDRFILE}" "${API}/releases/tags/${TAG}" || true
+}
+
+release_json=$(fetch_release)
+if [ -z "$release_json" ] || ! echo "$release_json" | jq -e .id &>/dev/null; then
+ echo "FIGYELMEZTETES: GitHub release nem erheto el (${TAG}) -> kihagyva"
+ exit 0
+fi
+release_id=$(echo "$release_json" | jq -r .id)
+
+cd "$X86"
+
+existing_names=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)"' 2>/dev/null || true)
+
+for f in *.pkg.tar.zst; do
+ [ -f "$f" ] || continue
+ pkgname=$(echo "$f" | sed -E 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
+ [ -n "$pkgname" ] || continue
+ while IFS=$'\t' read -r aid aname; do
+ [ -n "$aid" ] || continue
+ 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
+
+release_json=$(fetch_release)
+if [ -z "$release_json" ]; then
+ echo "FIGYELMEZTETES: GitHub release ujra nem erheto el -> kihagyva"
+ exit 0
+fi
+assets_tsv=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)\t\(.digest // "-")"' 2>/dev/null || true)
+
+UPLOADED=0
+SKIPPED=0
+
+for f in *; do
+ [ -f "$f" ] || continue
+ local_sha=$(sha256sum "$f" | cut -d' ' -f1)
+ asset_line=$(echo "$assets_tsv" | awk -F'\t' -v n="$f" '$2==n {print; exit}')
+ if [ -n "$asset_line" ]; then
+ asset_id=$(echo "$asset_line" | cut -f1)
+ asset_digest=$(echo "$asset_line" | cut -f3)
+ if [ "sha256:${local_sha}" = "$asset_digest" ]; then
+ SKIPPED=$((SKIPPED + 1))
+ continue
+ fi
+ curl -sf -X DELETE -H "@${HDRFILE}" "${API}/releases/assets/${asset_id}" || true
+ fi
+ if curl -sf -X POST -H "@${HDRFILE}" \
+ -H "Content-Type: application/octet-stream" \
+ --data-binary "@${f}" \
+ "${UPLOADS}/${release_id}/assets?name=${f}"; then
+ UPLOADED=$((UPLOADED + 1))
+ else
+ echo "HIBA: ${f} feltoltese sikertelen"
+ fi
+done
+
+echo "GitHub mirror kesz: ${UPLOADED} feltoltve, ${SKIPPED} valtozatlan (kihagyva)"
diff --git a/.forgejo/workflows/artcraft-update.yml b/.forgejo/workflows/artcraft-update.yml
index 419d627..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
@@ -32,24 +32,39 @@ jobs:
set -euo pipefail
APPS=(designcraft effectcraft filmcraft lightcraft pdfcraft photocraft vectorcraft)
CHANGED=0
+ HDRFILE=$(mktemp)
+ chmod 600 "$HDRFILE"
+ trap 'rm -f "$HDRFILE"' EXIT
+ AUTH=()
+ if [ -n "${GH_TOKEN:-}" ]; then
+ printf 'Authorization: Bearer %s\n' "$GH_TOKEN" > "$HDRFILE"
+ AUTH=(-H "@${HDRFILE}")
+ fi
for app in "${APPS[@]}"; do
- AUTH=()
- [ -n "${GH_TOKEN:-}" ] && AUTH=(-H "Authorization: Bearer ${GH_TOKEN}")
- LATEST=$(curl -fsSL --retry 3 "${AUTH[@]}" \
+ TAG=$(curl -fsSL --retry 3 "${AUTH[@]}" \
"https://api.github.com/repos/storytold/${app}/releases/latest" \
- | jq -r '.tag_name // empty' 2>/dev/null | sed 's/^v//' || true)
- CUR=$(grep '^pkgver=' "artcraft-raveos/${app}/PKGBUILD" | cut -d= -f2)
- if [ -z "$LATEST" ]; then
+ | jq -r '.tag_name // empty' 2>/dev/null || true)
+ if [ -z "$TAG" ]; then
echo "FIGYELEM: ${app}: a legfrissebb verziot nem sikerult lekerdezni -> kihagyva"
continue
fi
- if [ "$LATEST" = "$CUR" ]; then
+ if [ "${TAG#v}" = "$TAG" ]; then
+ echo "FIGYELEM: ${app}: nem v-elotagos tag (${TAG}) -> kihagyva"
+ continue
+ fi
+ LATEST="${TAG#v}"
+ CUR=$(grep '^pkgver=' "artcraft-raveos/${app}/PKGBUILD" | cut -d= -f2)
+ if [ "$(vercmp "$LATEST" "$CUR")" -le 0 ]; then
echo "${app}: naprakesz (${CUR})"
continue
fi
echo "${app}: ${CUR} -> ${LATEST}"
- curl -fsSL --retry 3 -o "/tmp/${app}-src.tar.gz" \
- "https://github.com/storytold/${app}/archive/refs/tags/v${LATEST}/${app}-${LATEST}.tar.gz"
+ if ! curl -fsSL --retry 3 -o "/tmp/${app}-src.tar.gz" \
+ "https://github.com/storytold/${app}/archive/refs/tags/${TAG}/${app}-${LATEST}.tar.gz"; then
+ echo "FIGYELEM: ${app}: a forras letoltese sikertelen -> kihagyva"
+ rm -f "/tmp/${app}-src.tar.gz"
+ continue
+ fi
SHA=$(sha256sum "/tmp/${app}-src.tar.gz" | cut -d' ' -f1)
sed -i "s/^pkgver=.*/pkgver=${LATEST}/" "artcraft-raveos/${app}/PKGBUILD"
sed -i "s/^sha256sums=('.*')$/sha256sums=('${SHA}')/" "artcraft-raveos/${app}/PKGBUILD"
@@ -57,7 +72,7 @@ jobs:
CHANGED=1
done
rm -f /tmp/*-src.tar.gz || true
- echo "CHANGED=${CHANGED}" >> $GITHUB_OUTPUT
+ echo "CHANGED=${CHANGED}" >> "$GITHUB_OUTPUT"
- name: Commit PKGBUILD bumps
if: steps.bump.outputs.CHANGED == '1'
@@ -80,20 +95,24 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import
- name: Build ArtCraft packages
+ id: build
run: |
set -euo pipefail
CORE="/tmp/raveos-core-repo/x86_64"
APPS=(designcraft effectcraft filmcraft lightcraft pdfcraft photocraft vectorcraft)
+ FAILED=()
for app in "${APPS[@]}"; do
- cd "artcraft-raveos/${app}"
+ cd "artcraft-raveos/${app}" || { FAILED+=("$app"); continue; }
PKGVER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2)
PKGREL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2)
if ls "$CORE/${app}-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then
@@ -103,12 +122,23 @@ jobs:
fi
echo "=== Building ${app} ${PKGVER}-${PKGREL} ==="
rm -rf src pkg *.pkg.tar.zst || true
- makepkg -s --noconfirm -f
- cp -v "${app}"-*.pkg.tar.zst /tmp/builtpkgs/
+ if ! makepkg -s --noconfirm -f; then
+ echo "HIBA: ${app} build sikertelen"
+ FAILED+=("$app")
+ cd - >/dev/null
+ continue
+ fi
+ if ! cp -v "${app}"-[0-9]*.pkg.tar.zst /tmp/builtpkgs/; then
+ echo "HIBA: ${app} csomag masolasa sikertelen"
+ FAILED+=("$app")
+ fi
cd - >/dev/null
done
+ echo "failed=${FAILED[*]:-}" >> "$GITHUB_OUTPUT"
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
@@ -118,15 +148,21 @@ jobs:
echo "Nincs csomag alairashoz -> kihagyva"
exit 0
fi
+ PASSFILE=$(mktemp)
+ chmod 600 "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in $BUILT; do
gpg --batch --yes --pinentry-mode loopback \
- --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
+ --passphrase-file "$PASSFILE" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign "$pkg"
echo "Alairva: $(basename "$pkg")"
done
- name: Publish packages (repo-add + rsync push, only if changed)
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
CORE="/tmp/raveos-core-repo/x86_64"
@@ -151,14 +187,14 @@ jobs:
repo-add raveos-core-repo.db.tar.xz $ALLPKGS
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign --no-armor -o "$f.sig" "$f"
done
- rm -f "$PASSFILE"
ln -sf raveos-core-repo.db.tar.xz.sig raveos-core-repo.db.sig
ln -sf raveos-core-repo.files.tar.xz.sig raveos-core-repo.files.sig
rm -f raveos-core-repo.db.tar.gz* raveos-core-repo.files.tar.gz* 2>/dev/null || true
@@ -168,70 +204,17 @@ jobs:
echo "::notice title=Published packages::ArtCraft csomagok publikálva"
- name: Mirror raveos-core-repo to GitHub Releases
- if: always()
+ env:
+ GH_MIRROR_TOKEN: ${{ secrets.GH_MIRROR_TOKEN }}
run: |
set -euo pipefail
- REPO="/tmp/raveos-core-repo"
- [ -d "$REPO/x86_64" ] || { echo "Nincs mit tukrozni -> kihagyva"; exit 0; }
-
- TOKEN="${{ secrets.GH_MIRROR_TOKEN }}"
- if [ -z "${TOKEN:-}" ]; then
- echo "FIGYELMEZTETES: GH_MIRROR_TOKEN nincs beallitva -> GitHub tukrozes kihagyva"
- exit 0
- fi
-
- OWNER="rave-os"
- GH_REPO="RaveOS-core-repo-mirror"
- TAG="core-repo-x86_64"
- API="https://api.github.com/repos/${OWNER}/${GH_REPO}"
-
- release_json=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/tags/${TAG}" || true)
- if [ -z "$release_json" ] || ! echo "$release_json" | jq -e .id &>/dev/null; then
- echo "FIGYELMEZTETES: GitHub release nem erheto el (${TAG}) -> kihagyva"
- exit 0
- fi
- release_id=$(echo "$release_json" | jq -r .id)
- existing_assets=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)"' 2>/dev/null || true)
-
- cd "$REPO/x86_64"
-
- for f in *.pkg.tar.zst; do
- [ -f "$f" ] || continue
- pkgname=$(echo "$f" | sed -E 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
- [ -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 "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/assets/${aid}" || true
- echo "torolve (regi verzio): $aname"
- fi
- ;;
- esac
- done <<< "$existing_assets"
- done
+ bash .forgejo/scripts/mirror-core-repo.sh /tmp/raveos-core-repo
- existing_assets=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/${release_id}" | jq -r '.assets[] | "\(.id)\t\(.name)"')
-
- for f in *; do
- [ -f "$f" ] || continue
- asset_id=$(echo "$existing_assets" | awk -F'\t' -v n="$f" '$2==n {print $1}')
- if [ -n "$asset_id" ]; then
- curl -sf -X DELETE -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/assets/${asset_id}" || true
- fi
- curl -sf -X POST \
- -H "Authorization: Bearer ${TOKEN}" \
- -H "Content-Type: application/octet-stream" \
- --data-binary "@${f}" \
- "https://uploads.github.com/repos/${OWNER}/${GH_REPO}/releases/${release_id}/assets?name=${f}" \
- || echo "HIBA: ${f} feltoltese sikertelen"
- done
- echo "::notice title=GitHub mirror::Kesz"
+ - name: Report failed builds
+ if: steps.build.outputs.failed != ''
+ run: |
+ echo "Sikertelen buildek: ${{ steps.build.outputs.failed }}"
+ exit 1
- name: Cleanup
if: always()
diff --git a/.forgejo/workflows/build-gnome.yml b/.forgejo/workflows/build-gnome.yml
index a908960..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
@@ -41,12 +41,14 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import
- name: Build gnome-raveos 50 pin stack
run: |
@@ -106,12 +108,15 @@ jobs:
done
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
[ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
@@ -122,6 +127,8 @@ jobs:
rm -f "$PASSFILE"
- name: Update repo database and sync to VPS
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
@@ -146,7 +153,8 @@ jobs:
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \
diff --git a/.forgejo/workflows/build-hyprland.yml b/.forgejo/workflows/build-hyprland.yml
index 87297ad..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 \
@@ -44,12 +44,14 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import
- name: Build hyprland-raveos stack
run: |
@@ -91,12 +93,15 @@ jobs:
done
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
[ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
@@ -107,6 +112,8 @@ jobs:
rm -f "$PASSFILE"
- name: Update repo database and sync to VPS
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
@@ -130,7 +137,8 @@ jobs:
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \
diff --git a/.forgejo/workflows/build-kernel.yml b/.forgejo/workflows/build-kernel.yml
index 3940aa8..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 \
@@ -44,12 +44,14 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import
- name: Build linux-raveos
run: |
@@ -61,12 +63,15 @@ jobs:
cp -v *.pkg.tar.zst /tmp/builtpkgs/
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
[ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
@@ -77,6 +82,8 @@ jobs:
rm -f "$PASSFILE"
- name: Update repo database and sync to VPS
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
@@ -100,7 +107,8 @@ jobs:
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \
diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml
index 59ee204..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
@@ -38,15 +38,15 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
gpgconf --launch gpg-agent >/dev/null 2>&1 || true
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d > /tmp/raveos-signing-key.asc
- gpg --batch --yes --import /tmp/raveos-signing-key.asc || true
- rm -f /tmp/raveos-signing-key.asc
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --yes --import || true
gpg --list-secret-keys --with-colons | grep -q '^sec:' || {
echo "HIBA: a RaveOS titkos kulcs nem importalodott"
exit 1
@@ -328,6 +328,8 @@ jobs:
cp -v opentubex-*.pkg.tar.zst /tmp/builtpkgs/
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
@@ -337,15 +339,21 @@ jobs:
echo "Nincs csomag alairashoz -> kihagyva"
exit 0
fi
+ PASSFILE=$(mktemp)
+ chmod 600 "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in $BUILT; do
gpg --batch --yes --pinentry-mode loopback \
- --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
+ --passphrase-file "$PASSFILE" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign "$pkg"
echo "Alairva: $(basename "$pkg")"
done
- name: Publish packages (repo-add + rsync push, only if changed)
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
@@ -375,7 +383,8 @@ jobs:
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \
@@ -395,70 +404,11 @@ jobs:
echo "::notice title=Published packages::rsync-alapu publikalas kesz"
- name: Mirror raveos-core-repo to GitHub Releases
- if: always()
+ env:
+ GH_MIRROR_TOKEN: ${{ secrets.GH_MIRROR_TOKEN }}
run: |
set -euo pipefail
- REPO="/tmp/raveos-core-repo"
- [ -d "$REPO/x86_64" ] || { echo "Nincs mit tükrözni -> kihagyva"; exit 0; }
-
- TOKEN="${{ secrets.GH_MIRROR_TOKEN }}"
- if [ -z "${TOKEN:-}" ]; then
- echo "FIGYELMEZTETES: GH_MIRROR_TOKEN nincs beallitva -> GitHub tukrozes kihagyva"
- exit 0
- fi
-
- OWNER="rave-os"
- GH_REPO="RaveOS-core-repo-mirror"
- TAG="core-repo-x86_64"
- API="https://api.github.com/repos/${OWNER}/${GH_REPO}"
-
- release_json=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/tags/${TAG}" || true)
- if [ -z "$release_json" ] || ! echo "$release_json" | jq -e .id &>/dev/null; then
- echo "FIGYELMEZTETES: GitHub release nem erheto el (${TAG}) -> kihagyva"
- exit 0
- fi
- release_id=$(echo "$release_json" | jq -r .id)
- existing_assets=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)"' 2>/dev/null || true)
-
- cd "$REPO/x86_64"
-
- for f in *.pkg.tar.zst; do
- [ -f "$f" ] || continue
- pkgname=$(echo "$f" | sed -E 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
- [ -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 "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/assets/${aid}" || true
- echo "torolve (regi verzio): $aname"
- fi
- ;;
- esac
- done <<< "$existing_assets"
- done
-
- existing_assets=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/${release_id}" | jq -r '.assets[] | "\(.id)\t\(.name)"')
-
- for f in *; do
- [ -f "$f" ] || continue
- asset_id=$(echo "$existing_assets" | awk -F'\t' -v n="$f" '$2==n {print $1}')
- if [ -n "$asset_id" ]; then
- curl -sf -X DELETE -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/assets/${asset_id}" || true
- fi
- curl -sf -X POST \
- -H "Authorization: Bearer ${TOKEN}" \
- -H "Content-Type: application/octet-stream" \
- --data-binary "@${f}" \
- "https://uploads.github.com/repos/${OWNER}/${GH_REPO}/releases/${release_id}/assets?name=${f}" \
- || echo "HIBA: ${f} feltoltese sikertelen"
- done
- echo "::notice title=GitHub mirror::Kesz"
+ bash .forgejo/scripts/mirror-core-repo.sh /tmp/raveos-core-repo
- name: Cleanup (SAFE)
if: always()
diff --git a/.forgejo/workflows/hyprland-update-check.yml b/.forgejo/workflows/hyprland-update-check.yml
index bd1c4cb..44e5782 100644
--- a/.forgejo/workflows/hyprland-update-check.yml
+++ b/.forgejo/workflows/hyprland-update-check.yml
@@ -22,10 +22,16 @@ jobs:
- name: Check for existing open PR
id: prcheck
+ env:
+ FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
run: |
set -euo pipefail
+ HDRFILE=$(mktemp)
+ chmod 600 "$HDRFILE"
+ trap 'rm -f "$HDRFILE"' EXIT
+ printf 'Authorization: token %s\n' "$FORGEJO_TOKEN" > "$HDRFILE"
OPEN_PRS=$(curl -fsSL \
- -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ -H "@${HDRFILE}" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls?state=open&limit=50")
EXISTS=$(echo "$OPEN_PRS" | python3 -c "
import sys, json
@@ -42,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=()
@@ -103,6 +109,7 @@ jobs:
env:
COUNT: ${{ steps.check.outputs.COUNT }}
SUMMARY: ${{ steps.check.outputs.SUMMARY }}
+ FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
run: |
set -euo pipefail
DATE=$(date +%Y%m%d-%H%M)
@@ -119,8 +126,12 @@ jobs:
PR_BODY="$(printf 'Automata Hyprland stack frissítés (%s csomag):\n%s\n\nA csomagok a merge után az \`iso-builder\` runneren sorrendben fordulnak le, GPG aláírással kerülnek a RaveOS repóba.' "$COUNT" "$SUMMARY")"
+ HDRFILE=$(mktemp)
+ chmod 600 "$HDRFILE"
+ trap 'rm -f "$HDRFILE"' EXIT
+ printf 'Authorization: token %s\n' "$FORGEJO_TOKEN" > "$HDRFILE"
curl -fsSL -X POST \
- -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ -H "@${HDRFILE}" \
-H "Content-Type: application/json" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls" \
-d "$(jq -n \
diff --git a/.forgejo/workflows/kernel-update-check.yml b/.forgejo/workflows/kernel-update-check.yml
index 5e7e16d..32d4962 100644
--- a/.forgejo/workflows/kernel-update-check.yml
+++ b/.forgejo/workflows/kernel-update-check.yml
@@ -85,11 +85,16 @@ jobs:
NEW_MAJOR: ${{ steps.check.outputs.MAJOR }}
NEW_MINOR: ${{ steps.check.outputs.MINOR }}
NEW_TAGREL: ${{ steps.check.outputs.TAGREL }}
+ FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
run: |
set -euo pipefail
BRANCH="update/kernel-${NEW_MAJOR}.${NEW_MINOR}-${NEW_TAGREL}"
+ HDRFILE=$(mktemp)
+ chmod 600 "$HDRFILE"
+ trap 'rm -f "$HDRFILE"' EXIT
+ printf 'Authorization: token %s\n' "$FORGEJO_TOKEN" > "$HDRFILE"
OPEN_PRS=$(curl -fsSL \
- -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ -H "@${HDRFILE}" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls?state=open&limit=50")
EXISTS=$(echo "$OPEN_PRS" | python3 -c "
import sys, json
@@ -111,6 +116,7 @@ jobs:
OLD_MAJOR: ${{ steps.current.outputs.MAJOR }}
OLD_MINOR: ${{ steps.current.outputs.MINOR }}
OLD_TAGREL: ${{ steps.current.outputs.TAGREL }}
+ FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
run: |
set -euo pipefail
@@ -152,8 +158,12 @@ jobs:
git push origin "$BRANCH"
+ HDRFILE=$(mktemp)
+ chmod 600 "$HDRFILE"
+ trap 'rm -f "$HDRFILE"' EXIT
+ printf 'Authorization: token %s\n' "$FORGEJO_TOKEN" > "$HDRFILE"
curl -fsSL -X POST \
- -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ -H "@${HDRFILE}" \
-H "Content-Type: application/json" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls" \
-d "{
diff --git a/artcraft-raveos/designcraft/PKGBUILD b/artcraft-raveos/designcraft/PKGBUILD
index 7a1a578..99559fd 100644
--- a/artcraft-raveos/designcraft/PKGBUILD
+++ b/artcraft-raveos/designcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=designcraft
pkgver=0.8.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe InDesign'
@@ -20,10 +20,6 @@ sha256sums=('e47b926827dd6c8db2dc7d2af7914fa270d5d5ef05896f80ecee442d9e391ea8')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/effectcraft/PKGBUILD b/artcraft-raveos/effectcraft/PKGBUILD
index 095d358..72b0ba8 100644
--- a/artcraft-raveos/effectcraft/PKGBUILD
+++ b/artcraft-raveos/effectcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=effectcraft
pkgver=0.10.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe After Effects'
@@ -21,10 +21,6 @@ sha256sums=('bb7487b28b08e440128d5e4f6261ae43ad44c323bcc3f4b9bc0a09d1209bedb8')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/filmcraft/PKGBUILD b/artcraft-raveos/filmcraft/PKGBUILD
index 2c465dc..291c2a0 100644
--- a/artcraft-raveos/filmcraft/PKGBUILD
+++ b/artcraft-raveos/filmcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=filmcraft
pkgver=0.8.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe Premiere Pro'
@@ -21,10 +21,6 @@ sha256sums=('4f4fe5572841baee1266c35a06fc6eea5583cb29f39aa21d03ec9655a206e081')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/lightcraft/PKGBUILD b/artcraft-raveos/lightcraft/PKGBUILD
index 2ca0390..b2f99d8 100644
--- a/artcraft-raveos/lightcraft/PKGBUILD
+++ b/artcraft-raveos/lightcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=lightcraft
pkgver=0.8.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe Lightroom'
@@ -20,10 +20,6 @@ sha256sums=('456c2d41b3981f432909fb5f798044118a29a4ca72066adc490041d9730c7fea')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/pdfcraft/PKGBUILD b/artcraft-raveos/pdfcraft/PKGBUILD
index 90bb7fc..c019d77 100644
--- a/artcraft-raveos/pdfcraft/PKGBUILD
+++ b/artcraft-raveos/pdfcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=pdfcraft
pkgver=0.8.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe Acrobat'
@@ -23,10 +23,6 @@ sha256sums=('64c32b6cdab2d6334d16ac8c65b3425718cb88594e6347ebe25efc1aaf5e0bae')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/photocraft/PKGBUILD b/artcraft-raveos/photocraft/PKGBUILD
index d365a77..e6b99fa 100644
--- a/artcraft-raveos/photocraft/PKGBUILD
+++ b/artcraft-raveos/photocraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=photocraft
pkgver=0.9.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe Photoshop'
@@ -20,10 +20,6 @@ sha256sums=('add4b604f0e754bb78f3320821cc4438940bb51c2cd51c0666ce2cfcb525bb3a')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
diff --git a/artcraft-raveos/vectorcraft/PKGBUILD b/artcraft-raveos/vectorcraft/PKGBUILD
index d712c42..4704b18 100644
--- a/artcraft-raveos/vectorcraft/PKGBUILD
+++ b/artcraft-raveos/vectorcraft/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=vectorcraft
pkgver=0.12.0
-pkgrel=1
+pkgrel=2
url="https://getartcraft.com/apps/$pkgname"
_url="https://github.com/storytold/$pkgname"
pkgdesc='vibe coded clean-room reimplementation of Adobe Illustrator'
@@ -20,10 +20,6 @@ sha256sums=('266cc34c93b68d3bec847452674fce99b5695e2f233451957eef8ce39a5ce325')
_srcenv() {
cd "$_archive"
export CARGO_HOME="$srcdir"
- export CARGO_PROFILE_RELEASE_DEBUG=2
- export CARGO_PROFILE_RELEASE_STRIP=false
- export CARGO_PROFILE_RELEASE_LTO=thin
- export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
export CARGO_TARGET_DIR=target
export RUSTUP_TOOLCHAIN=stable
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.
#