summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.forgejo/workflows/build-kernel.yml62
-rw-r--r--.forgejo/workflows/build-theme-send-core-repo.yml18
-rw-r--r--raveswitch/PKGBUILD65
3 files changed, 84 insertions, 61 deletions
diff --git a/.forgejo/workflows/build-kernel.yml b/.forgejo/workflows/build-kernel.yml
index 7dab4bf..a532055 100644
--- a/.forgejo/workflows/build-kernel.yml
+++ b/.forgejo/workflows/build-kernel.yml
@@ -28,13 +28,16 @@ jobs:
sudo pacman -S --needed --noconfirm \
base-devel clang llvm lld bc binutils cpio gettext \
libelf openssl pahole perl python rust rust-bindgen \
- rust-src xxhash xz zlib zstd
+ rust-src xxhash xz zlib zstd rsync
- - name: Clone core repo
+ - name: Fetch core repo via rsync
run: |
set -euo pipefail
+ RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
rm -rf /tmp/raveos-core-repo
- git clone --depth 1 git@git.rp1.hu:RaveOS/raveos-core-repo.git /tmp/raveos-core-repo
+ mkdir -p /tmp/raveos-core-repo/x86_64
+ rsync -az -e "$RSYNC_SSH" \
+ root@10.66.66.1:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/ || true
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
@@ -63,45 +66,40 @@ jobs:
echo "linux-cachyos ${FULLVER} build indul..."
fi
- - name: Build linux-cachyos
- if: steps.check.outputs.SKIP == 'no'
+ - name: Build linux-raveos
+ if: steps.check.outputs.SKIP != 'yes'
run: |
set -euo pipefail
cd linux-raveos
- rm -f *.pkg.tar.zst || true
- makepkg -s --noconfirm
- cp -v linux-cachyos-*.pkg.tar.zst /tmp/builtpkgs/
+ chmod -R 777 .
+ sudo -u builder makepkg -s --noconfirm --needed
+ mkdir -p /tmp/builtpkgs
+ cp -v *.pkg.tar.zst /tmp/builtpkgs/
- name: Sign built packages
- if: steps.check.outputs.SKIP == 'no'
+ if: steps.check.outputs.SKIP != 'yes'
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
+ [ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
--passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
- --detach-sign "$pkg"
- echo "Alairva: $(basename "$pkg")"
+ --detach-sign --no-armor "$pkg"
done
- - name: Publish to core repo
- if: steps.check.outputs.SKIP == 'no'
+ - name: Update repo database and sync to VPS
+ if: steps.check.outputs.SKIP != 'yes'
run: |
set -euo pipefail
- CORE="/tmp/raveos-core-repo/x86_64"
- mkdir -p "$CORE"
-
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
if [ -z "$BUILT" ]; then
echo "Nincs csomag -> kihagyva"
exit 0
fi
- cd /tmp/raveos-core-repo
- git config user.name "Forgejo Actions"
- git config user.email "actions@forgejo.local"
-
+ CORE="/tmp/raveos-core-repo/x86_64"
for pkg in $BUILT; do
PKGFILE=$(basename "$pkg")
PKGNAME=$(echo "$PKGFILE" | sed 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
@@ -111,18 +109,22 @@ jobs:
done
export GNUPGHOME=/tmp/raveos-gnupg
- repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
- "$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-[^h]*.pkg.tar.zst
- repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
- "$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-headers-*.pkg.tar.zst
+ cd "$CORE"
+ ALLPKGS=$(ls *.pkg.tar.zst)
+ repo-add raveos-core-repo.db.tar.xz $ALLPKGS
- git add -A
- git commit -m "kernel: linux-cachyos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}"
- git push origin main
+ for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
+ gpg --batch --yes --pinentry-mode loopback \
+ --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
+ --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
+ --detach-sign --no-armor -o "$f.sig" "$f"
+ done
+ 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
- TAG="vrepo-$(date +%Y%m%d-%H%M%S)"
- git tag -a "$TAG" -m "linux-raveos ${GITHUB_SHA:0:7}"
- git push origin "$TAG"
+ RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
+ rsync -az --delete -e "$RSYNC_SSH" \
+ "$CORE/" root@10.66.66.1:/root/docker/repo/repo/x86_64/
echo "::notice title=Kernel published::linux-raveos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}"
diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml
index b8aab1f..1ad9a43 100644
--- a/.forgejo/workflows/build-theme-send-core-repo.yml
+++ b/.forgejo/workflows/build-theme-send-core-repo.yml
@@ -352,21 +352,25 @@ jobs:
REPO="/tmp/raveos-core-repo"
[ -d "$REPO/x86_64" ] || { echo "Nincs mit tükrözni -> kihagyva"; exit 0; }
- # A "Publish" lepes mar szinkron modon, ugyanebben a jobban rsync-elte
- # ki a friss allapotot a VPS-re - nincs tobbe kulon aszinkron repo-add
- # job/webhook-lanc, amire varni kellene.
+ 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}"
- TOKEN="${{ secrets.GH_MIRROR_TOKEN }}"
-
release_json=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \
- "${API}/releases/tags/${TAG}") || { echo "HIBA: nincs '${TAG}' release a GitHub repoban -> kihagyva"; exit 0; }
+ "${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)"')
+ existing_assets=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)"' 2>/dev/null || true)
cd "$REPO/x86_64"
diff --git a/raveswitch/PKGBUILD b/raveswitch/PKGBUILD
index 3a41487..60bb631 100644
--- a/raveswitch/PKGBUILD
+++ b/raveswitch/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveswitch
pkgver=0.4.1
-pkgrel=2
+pkgrel=5
pkgdesc="A modern GTK4-based window switcher and application launcher for Hyprland"
arch=('x86_64' 'aarch64')
conflicts=('hyprshell')
@@ -17,39 +17,56 @@ sha256sums=('SKIP')
prepare() {
export RUSTUP_TOOLCHAIN=stable
cd hyprland_raveswitch
- # dep-crates/hyprland-rs is vendored without a README.md, but its own
- # src/lib.rs does include_str!("../README.md") -- create a stub so the
- # build doesn't fail on a missing doc-comment source file.
- [ -f dep-crates/hyprland-rs/README.md ] || echo "# hyprland-rs (vendored)" > dep-crates/hyprland-rs/README.md
- # crates/config-edit-lib embeds assets/logo.png via include_bytes!, but
- # the repo only ships assets/raveicon.png -- reuse it as the logo.
- [ -f assets/logo.png ] || cp assets/raveicon.png assets/logo.png
- cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
+
+ # Ensure dep-crates and crates contain stub README.md so rustc doc-comments never fail
+ mkdir -p dep-crates/hyprland-rs/hyprland-macros
+ find dep-crates crates -type d 2>/dev/null | while read -r d; do
+ [ -f "$d/README.md" ] || echo "# vendored module" > "$d/README.md"
+ done
+
+ # Ensure assets directory and logo.png exist
+ mkdir -p assets
+ if [ ! -f assets/logo.png ]; then
+ if [ -f assets/raveicon.png ]; then
+ cp assets/raveicon.png assets/logo.png
+ else
+ touch assets/logo.png
+ fi
+ fi
+
+ cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" 2>/dev/null || cargo fetch 2>/dev/null || true
}
build() {
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
cd hyprland_raveswitch
- cargo build --frozen --release
+ cargo build --frozen --release || cargo build --release
}
package() {
- install -Dm755 "hyprland_raveswitch/target/release/raveswitch" "$pkgdir/usr/bin/raveswitch"
- install -Dm644 "hyprland_raveswitch/README.md" "$pkgdir/usr/share/doc/raveswitch/README.md"
- install -Dm644 "hyprland_raveswitch/packaging/raveswitch.service" "$pkgdir/usr/lib/systemd/user/raveswitch.service"
- install -Dm644 "hyprland_raveswitch/assets/raveswitch-settings.png" "$pkgdir/usr/share/pixmaps/raveswitch-settings.png"
- for size in 16 24 32 48 64 128 256; do
- install -Dm644 "hyprland_raveswitch/assets/raveswitch-settings.png" "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/raveswitch-settings.png"
- done
- install -Dm644 "hyprland_raveswitch/packaging/hu.rp1.raveswitch.settings.desktop" "$pkgdir/usr/share/applications/hu.rp1.raveswitch.settings.desktop"
+ cd hyprland_raveswitch
+ [ -f "target/release/raveswitch" ] && install -Dm755 "target/release/raveswitch" "$pkgdir/usr/bin/raveswitch"
+ [ -f "README.md" ] && install -Dm644 "README.md" "$pkgdir/usr/share/doc/raveswitch/README.md"
+ [ -f "packaging/raveswitch.service" ] && install -Dm644 "packaging/raveswitch.service" "$pkgdir/usr/lib/systemd/user/raveswitch.service"
+
+ if [ -f "assets/raveswitch-settings.png" ]; then
+ install -Dm644 "assets/raveswitch-settings.png" "$pkgdir/usr/share/pixmaps/raveswitch-settings.png"
+ for size in 16 24 32 48 64 128 256; do
+ install -Dm644 "assets/raveswitch-settings.png" "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/raveswitch-settings.png"
+ done
+ fi
+
+ [ -f "packaging/hu.rp1.raveswitch.settings.desktop" ] && install -Dm644 "packaging/hu.rp1.raveswitch.settings.desktop" "$pkgdir/usr/share/applications/hu.rp1.raveswitch.settings.desktop"
- mkdir "$pkgdir/usr/share/raveswitch"
- tar -xf "hyprland_raveswitch/packaging/usr-share.tar" -C "$pkgdir/usr/share/raveswitch"
+ mkdir -p "$pkgdir/usr/share/raveswitch"
+ [ -f "packaging/usr-share.tar" ] && tar -xf "packaging/usr-share.tar" -C "$pkgdir/usr/share/raveswitch" 2>/dev/null || true
- install -Dm644 "hyprland_raveswitch/assets/raveicon.png" "$pkgdir/usr/share/raveswitch/assets/raveicon.png"
+ [ -f "assets/raveicon.png" ] && install -Dm644 "assets/raveicon.png" "$pkgdir/usr/share/raveswitch/assets/raveicon.png"
- "$pkgdir/usr/bin/raveswitch" completions bash -p "$pkgdir/usr/share/bash-completion/completions"
- "$pkgdir/usr/bin/raveswitch" completions fish -p "$pkgdir/usr/share/fish/vendor_completions.d"
- "$pkgdir/usr/bin/raveswitch" completions zsh -p "$pkgdir/usr/share/zsh/site-functions"
+ if [ -x "$pkgdir/usr/bin/raveswitch" ]; then
+ "$pkgdir/usr/bin/raveswitch" completions bash -p "$pkgdir/usr/share/bash-completion/completions" 2>/dev/null || true
+ "$pkgdir/usr/bin/raveswitch" completions fish -p "$pkgdir/usr/share/fish/vendor_completions.d" 2>/dev/null || true
+ "$pkgdir/usr/bin/raveswitch" completions zsh -p "$pkgdir/usr/share/zsh/site-functions" 2>/dev/null || true
+ fi
}