Compare commits
17
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c0d79f9c0 | ||
|
|
4c008fd3e4 | ||
|
|
14deed65d7 | ||
|
|
254a666c0d | ||
|
|
83db919716 | ||
|
|
f42572b41a | ||
|
|
1515c673ea | ||
|
|
66736f3fcb | ||
|
|
4014aefcdd | ||
|
|
176c0b4e6e | ||
|
|
ca968f0e26 | ||
|
|
827762a6d4 | ||
|
|
41c6862577 | ||
|
|
b37fa50d17 | ||
|
|
9bdaa7d21e | ||
|
|
d8e0993820 | ||
|
|
051b93e662 |
No files matched your search
@@ -4,3 +4,4 @@
|
|||||||
*.pkg.tar.*
|
*.pkg.tar.*
|
||||||
*/src/
|
*/src/
|
||||||
*/pkg/
|
*/pkg/
|
||||||
|
*.deb
|
||||||
@@ -32,6 +32,18 @@ users don't need any build dependencies.
|
|||||||
| `faugus-launcher-bin` | [Faugus/faugus-launcher](https://github.com/Faugus/faugus-launcher) — launcher for Windows games via UMU-Launcher | [faugus-launcher-bin](https://aur.archlinux.org/packages/faugus-launcher-bin) |
|
| `faugus-launcher-bin` | [Faugus/faugus-launcher](https://github.com/Faugus/faugus-launcher) — launcher for Windows games via UMU-Launcher | [faugus-launcher-bin](https://aur.archlinux.org/packages/faugus-launcher-bin) |
|
||||||
| `protonplus-bin` | [Vysp3r/ProtonPlus](https://github.com/Vysp3r/ProtonPlus) — compatibility-tools manager (Vala/GTK4) | [protonplus-bin](https://aur.archlinux.org/packages/protonplus-bin) |
|
| `protonplus-bin` | [Vysp3r/ProtonPlus](https://github.com/Vysp3r/ProtonPlus) — compatibility-tools manager (Vala/GTK4) | [protonplus-bin](https://aur.archlinux.org/packages/protonplus-bin) |
|
||||||
| `zapzap-bin` | [rafatosta/zapzap](https://github.com/rafatosta/zapzap) — WhatsApp desktop client (PyQt6 + WebEngine) | [zapzap-bin](https://aur.archlinux.org/packages/zapzap-bin) |
|
| `zapzap-bin` | [rafatosta/zapzap](https://github.com/rafatosta/zapzap) — WhatsApp desktop client (PyQt6 + WebEngine) | [zapzap-bin](https://aur.archlinux.org/packages/zapzap-bin) |
|
||||||
|
| `vacuumtube-bin` | [shy1132/VacuumTube](https://github.com/shy1132/VacuumTube) — YouTube Leanback (TV UI) with built-in adblocker (repackaged upstream deb) | [vacuumtube-bin](https://aur.archlinux.org/packages/vacuumtube-bin) |
|
||||||
|
| `wiiudownloader-bin` | [Xpl0itU/WiiUDownloader](https://github.com/Xpl0itU/WiiUDownloader) — Wii U title downloader (Go + GTK3) | [wiiudownloader-bin](https://aur.archlinux.org/packages/wiiudownloader-bin) |
|
||||||
|
| `trayscale-bin` | [DeedleFake/trayscale](https://github.com/DeedleFake/trayscale) — GUI for the Tailscale CLI (Go + GTK4) | [trayscale-bin](https://aur.archlinux.org/packages/trayscale-bin) |
|
||||||
|
| `linux-wallpaperengine-bin` | [Almamu/linux-wallpaperengine](https://github.com/Almamu/linux-wallpaperengine) — Wallpaper Engine on Linux (commit snapshots, bundles CEF) | [linux-wallpaperengine-bin](https://aur.archlinux.org/packages/linux-wallpaperengine-bin) |
|
||||||
|
| `librepods-bin` | [librepods-org/librepods](https://github.com/librepods-org/librepods) — AirPods integration for Linux (Qt6) | [librepods-bin](https://aur.archlinux.org/packages/librepods-bin) |
|
||||||
|
| `planify-bin` | [alainm23/planify](https://github.com/alainm23/planify) — task manager with Todoist/Nextcloud support (Vala/GTK4, bundles gxml) | [planify-bin](https://aur.archlinux.org/packages/planify-bin) |
|
||||||
|
| `modrinth-app-bin` | [modrinth/code](https://github.com/modrinth/code) — Modrinth's Minecraft mod manager/launcher (repackaged upstream deb) | [modrinth-app-bin](https://aur.archlinux.org/packages/modrinth-app-bin) |
|
||||||
|
| `bazaar-bin` | [bazaar-org/bazaar](https://github.com/bazaar-org/bazaar) — GNOME app store for flatpaks/Flathub | [bazaar-bin](https://aur.archlinux.org/packages/bazaar-bin) |
|
||||||
|
| `snapx-bin` | [SnapXL/SnapX](https://github.com/SnapXL/SnapX) — ShareX-fork screenshot/sharing tool (repackaged upstream bundle) | [snapx-bin](https://aur.archlinux.org/packages/snapx-bin) |
|
||||||
|
| `chiaki-ng-bin` | [streetpea/chiaki-ng](https://github.com/streetpea/chiaki-ng) — PlayStation Remote Play client (Qt6) | [chiaki-ng-bin](https://aur.archlinux.org/packages/chiaki-ng-bin) |
|
||||||
|
| `gnome-network-displays-bin` | [GNOME/gnome-network-displays](https://gitlab.gnome.org/GNOME/gnome-network-displays) — GNOME screencasting (Miracast/Chromecast) | [gnome-network-displays-bin](https://aur.archlinux.org/packages/gnome-network-displays-bin) |
|
||||||
|
| `waydroid-helper-bin` | [ayasa520/waydroid-helper](https://github.com/ayasa520/waydroid-helper) — GTK4 GUI for Waydroid configuration and extensions | [waydroid-helper-bin](https://aur.archlinux.org/packages/waydroid-helper-bin) |
|
||||||
|
|
||||||
## Setup (one-time)
|
## Setup (one-time)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
pkgbase = bazaar-bin
|
||||||
|
pkgdesc = App store for GNOME with a focus on flatpaks and Flathub (prebuilt)
|
||||||
|
pkgver = 0.9.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/bazaar-org/bazaar
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-only
|
||||||
|
depends = appstream
|
||||||
|
depends = cairo
|
||||||
|
depends = dconf
|
||||||
|
depends = flatpak
|
||||||
|
depends = glib2
|
||||||
|
depends = glycin
|
||||||
|
depends = glycin-gtk4
|
||||||
|
depends = graphene
|
||||||
|
depends = gtk4
|
||||||
|
depends = gtksourceview5
|
||||||
|
depends = json-glib
|
||||||
|
depends = libadwaita
|
||||||
|
depends = libdex
|
||||||
|
depends = libheif
|
||||||
|
depends = libmalcontent
|
||||||
|
depends = libproxy
|
||||||
|
depends = libsecret
|
||||||
|
depends = libsoup3
|
||||||
|
depends = libxmlb
|
||||||
|
depends = libyaml
|
||||||
|
depends = md4c
|
||||||
|
depends = pango
|
||||||
|
depends = webkitgtk-6.0
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
optdepends = krunner-bazaar: krunner integration
|
||||||
|
optdepends = malcontent: parental controls
|
||||||
|
provides = bazaar
|
||||||
|
conflicts = bazaar
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/bazaar-bin-0.9.1/bazaar-bin-0.9.1.tar.zst
|
||||||
|
sha256sums = 236a8b672a9a67de9a240450f527b119bb4cbdfa0533e49578589fe83638e3dc
|
||||||
|
|
||||||
|
pkgname = bazaar-bin
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=bazaar-bin
|
||||||
|
pkgver=0.9.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="App store for GNOME with a focus on flatpaks and Flathub (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/bazaar-org/bazaar"
|
||||||
|
license=('GPL-3.0-only')
|
||||||
|
depends=('appstream' 'cairo' 'dconf' 'flatpak' 'glib2' 'glycin' 'glycin-gtk4'
|
||||||
|
'graphene' 'gtk4' 'gtksourceview5' 'json-glib' 'libadwaita' 'libdex'
|
||||||
|
'libheif' 'libmalcontent' 'libproxy' 'libsecret' 'libsoup3' 'libxmlb'
|
||||||
|
'libyaml' 'md4c' 'pango' 'webkitgtk-6.0' 'hicolor-icon-theme')
|
||||||
|
optdepends=('krunner-bazaar: krunner integration'
|
||||||
|
'malcontent: parental controls')
|
||||||
|
provides=('bazaar')
|
||||||
|
conflicts=('bazaar')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('236a8b672a9a67de9a240450f527b119bb4cbdfa0533e49578589fe83638e3dc')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# bazaar-bin - prebuilt package of https://github.com/bazaar-org/bazaar
|
||||||
|
# (GNOME app store focused on flatpaks/Flathub, C + GTK4/blueprint).
|
||||||
|
#
|
||||||
|
# Upstream tags releases but ships no binaries, so build_artifact() builds
|
||||||
|
# from the release tarball.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="bazaar-org/bazaar"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(meson ninja blueprint-compiler glib2-devel python-babel gettext
|
||||||
|
gobject-introspection appstream flatpak gtk4 libadwaita
|
||||||
|
gtksourceview5 libdex glycin glycin-gtk4 webkitgtk-6.0 json-glib
|
||||||
|
libxmlb libyaml md4c libmalcontent libsecret libsoup3 libproxy
|
||||||
|
libheif)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/bazaar-$ver"
|
||||||
|
|
||||||
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||||
|
meson install -C "$workdir/build" --destdir "$destdir"
|
||||||
|
|
||||||
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
|
# file conflicts on install.
|
||||||
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
"$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -9,14 +9,14 @@ pkgdesc="Easily manage wine and proton prefixes (prebuilt)"
|
|||||||
arch=('any')
|
arch=('any')
|
||||||
url="https://usebottles.com"
|
url="https://usebottles.com"
|
||||||
license=('GPL-3.0-only')
|
license=('GPL-3.0-only')
|
||||||
depends=('fvs2' 'gtk4' 'gtksourceview5' 'hicolor-icon-theme' 'icoextract'
|
depends=('gtk4' 'gtksourceview5' 'hicolor-icon-theme' 'icoextract'
|
||||||
'libadwaita' 'libportal-gtk4' 'patool' 'python' 'python-cairo'
|
'libadwaita' 'libportal-gtk4' 'python' 'python-cairo'
|
||||||
'python-certifi' 'python-chardet' 'python-charset-normalizer'
|
'python-certifi' 'python-chardet' 'python-charset-normalizer'
|
||||||
'python-gobject' 'python-idna' 'python-markdown' 'python-orjson'
|
'python-gobject' 'python-idna' 'python-markdown' 'python-orjson'
|
||||||
'python-pathvalidate' 'python-pefile' 'python-pycurl'
|
'python-pefile' 'python-pycurl'
|
||||||
'python-requests' 'python-urllib3' 'python-yaml' 'python-yara'
|
'python-requests' 'python-urllib3' 'python-yaml' 'python-yara')
|
||||||
'vkbasalt-cli')
|
optdepends=('vkbasalt: post-processing layer that applies the configured effects'
|
||||||
optdepends=('vulkan-tools: vkcube test / Vulkan info'
|
'vulkan-tools: vkcube test / Vulkan info'
|
||||||
'xorg-xdpyinfo: display info detection'
|
'xorg-xdpyinfo: display info detection'
|
||||||
'imagemagick: icon/image conversion'
|
'imagemagick: icon/image conversion'
|
||||||
'vmtouch: preload bottle files into memory'
|
'vmtouch: preload bottle files into memory'
|
||||||
|
|||||||
+33
-1
@@ -9,12 +9,18 @@
|
|||||||
|
|
||||||
UPSTREAM_REPO="bottlesdevs/Bottles"
|
UPSTREAM_REPO="bottlesdevs/Bottles"
|
||||||
|
|
||||||
|
# fvs-lab/fvs2 (+ its core library) is AUR-only, so the binary is built here
|
||||||
|
# and bundled under /usr/lib/bottles. Versions pinned to the combination the
|
||||||
|
# AUR fvs2 package ships; bump on new fvs2 releases.
|
||||||
|
FVS2_VERSION=0.8.1
|
||||||
|
FVS2_CORE_VERSION=0.1.1
|
||||||
|
|
||||||
# Installed in CI (pacman) before build_artifact runs. blueprint-compiler
|
# Installed in CI (pacman) before build_artifact runs. blueprint-compiler
|
||||||
# resolves Gtk/Adw/GtkSource imports via their typelibs, hence the GUI libs.
|
# resolves Gtk/Adw/GtkSource imports via their typelibs, hence the GUI libs.
|
||||||
BUILD_DEPS=(meson ninja blueprint-compiler gobject-introspection
|
BUILD_DEPS=(meson ninja blueprint-compiler gobject-introspection
|
||||||
desktop-file-utils appstream-glib gettext glib2-devel
|
desktop-file-utils appstream-glib gettext glib2-devel
|
||||||
python python-gobject gtk4 libadwaita gtksourceview5
|
python python-gobject gtk4 libadwaita gtksourceview5
|
||||||
libportal-gtk4)
|
libportal-gtk4 go python-pip)
|
||||||
|
|
||||||
latest_version() {
|
latest_version() {
|
||||||
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
@@ -33,9 +39,35 @@ build_artifact() {
|
|||||||
|
|
||||||
patch -d "$srctree" -p1 < "$pkgdir/remove-flatpak-checks.patch"
|
patch -d "$srctree" -p1 < "$pkgdir/remove-flatpak-checks.patch"
|
||||||
|
|
||||||
|
# the bundled fvs2 lives outside $PATH; point Bottles at it
|
||||||
|
grep -q 'return "fvs2"' "$srctree/bottles/fvs/repo.py" \
|
||||||
|
|| { echo "fvs2 path hook not found in bottles/fvs/repo.py" >&2; return 1; }
|
||||||
|
sed -i 's|return "fvs2"|return "/usr/lib/bottles/fvs2"|' "$srctree/bottles/fvs/repo.py"
|
||||||
|
|
||||||
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||||
meson install -C "$workdir/build" --destdir "$destdir"
|
meson install -C "$workdir/build" --destdir "$destdir"
|
||||||
|
|
||||||
|
# Build the fvs2 CLI (Go) and bundle it. Its "core" library is a sibling
|
||||||
|
# repository that go.mod expects next to the source tree.
|
||||||
|
mkdir -p "$workdir/fvs" "$destdir/usr/lib/bottles"
|
||||||
|
curl -sfL "https://github.com/fvs-lab/fvs2/archive/refs/tags/v$FVS2_VERSION.tar.gz" | tar -xz -C "$workdir/fvs"
|
||||||
|
curl -sfL "https://github.com/fvs-lab/core/archive/refs/tags/v$FVS2_CORE_VERSION.tar.gz" | tar -xz -C "$workdir/fvs"
|
||||||
|
ln -s "core-$FVS2_CORE_VERSION" "$workdir/fvs/core"
|
||||||
|
(cd "$workdir/fvs/fvs2-$FVS2_VERSION" && \
|
||||||
|
GOPATH="$workdir/gopath" \
|
||||||
|
GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" \
|
||||||
|
go build -o "$destdir/usr/lib/bottles/fvs2" ./cmd/fvs2)
|
||||||
|
|
||||||
|
# patool, pathvalidate and vkbasalt-cli are AUR-only pure-python libs;
|
||||||
|
# bundle them into the app's module dir, which the launcher puts on
|
||||||
|
# sys.path. patool/pathvalidate pinned via upstream's requirements.txt.
|
||||||
|
grep -E '^(patool|pathvalidate)==' "$srctree/requirements.txt" > "$workdir/bundle-reqs.txt"
|
||||||
|
[[ "$(wc -l < "$workdir/bundle-reqs.txt")" -eq 2 ]] || { echo "expected patool+pathvalidate pins in requirements.txt" >&2; return 1; }
|
||||||
|
echo 'vkbasalt-cli' >> "$workdir/bundle-reqs.txt"
|
||||||
|
python -m pip install --isolated --no-deps --target "$destdir/usr/share/bottles" \
|
||||||
|
-r "$workdir/bundle-reqs.txt"
|
||||||
|
rm -rf "$destdir/usr/share/bottles/bin"
|
||||||
|
|
||||||
# These caches are generated by pacman hooks; shipping them would cause
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
# file conflicts on install.
|
# file conflicts on install.
|
||||||
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
pkgbase = chiaki-ng-bin
|
||||||
|
pkgdesc = Free and Open Source PlayStation Remote Play client (prebuilt)
|
||||||
|
pkgver = 1.10.0
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://streetpea.github.io/chiaki-ng/
|
||||||
|
arch = x86_64
|
||||||
|
license = LicenseRef-AGPL-3.0-only-OpenSSL
|
||||||
|
depends = curl
|
||||||
|
depends = ffmpeg
|
||||||
|
depends = fftw
|
||||||
|
depends = gcc-libs
|
||||||
|
depends = glibc
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
depends = hidapi
|
||||||
|
depends = json-c
|
||||||
|
depends = libidn2
|
||||||
|
depends = libplacebo
|
||||||
|
depends = libpsl
|
||||||
|
depends = libssh2
|
||||||
|
depends = miniupnpc
|
||||||
|
depends = openssl
|
||||||
|
depends = opus
|
||||||
|
depends = qt6-base
|
||||||
|
depends = qt6-declarative
|
||||||
|
depends = qt6-svg
|
||||||
|
depends = qt6-webengine
|
||||||
|
depends = sdl2
|
||||||
|
depends = speexdsp
|
||||||
|
depends = zlib
|
||||||
|
optdepends = intel-media-driver: vaapi backend for Intel GPUs [>= Broadwell]
|
||||||
|
optdepends = libva-intel-driver: vaapi backend for Intel GPUs [<= Haswell]
|
||||||
|
optdepends = libva-mesa-driver: vaapi backend for AMD GPUs
|
||||||
|
provides = chiaki-ng
|
||||||
|
provides = chiaki
|
||||||
|
conflicts = chiaki-ng
|
||||||
|
conflicts = chiaki
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/chiaki-ng-bin-1.10.0/chiaki-ng-bin-1.10.0.tar.zst
|
||||||
|
sha256sums = 76c55be0342c651a65ffe5df5ed14930d43b844590cac9f4ea67d23e80557599
|
||||||
|
|
||||||
|
pkgname = chiaki-ng-bin
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=chiaki-ng-bin
|
||||||
|
pkgver=1.10.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Free and Open Source PlayStation Remote Play client (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://streetpea.github.io/chiaki-ng/"
|
||||||
|
license=('LicenseRef-AGPL-3.0-only-OpenSSL')
|
||||||
|
depends=('curl' 'ffmpeg' 'fftw' 'gcc-libs' 'glibc' 'hicolor-icon-theme'
|
||||||
|
'hidapi' 'json-c' 'libidn2' 'libplacebo' 'libpsl' 'libssh2'
|
||||||
|
'miniupnpc' 'openssl' 'opus' 'qt6-base' 'qt6-declarative' 'qt6-svg'
|
||||||
|
'qt6-webengine' 'sdl2' 'speexdsp' 'zlib')
|
||||||
|
optdepends=('intel-media-driver: vaapi backend for Intel GPUs [>= Broadwell]'
|
||||||
|
'libva-intel-driver: vaapi backend for Intel GPUs [<= Haswell]'
|
||||||
|
'libva-mesa-driver: vaapi backend for AMD GPUs')
|
||||||
|
provides=('chiaki-ng' 'chiaki')
|
||||||
|
conflicts=('chiaki-ng' 'chiaki')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('76c55be0342c651a65ffe5df5ed14930d43b844590cac9f4ea67d23e80557599')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
--- a/gui/CMakeLists.txt 2025-10-11 20:52:37.048868767 +0100
|
||||||
|
+++ b/gui/CMakeLists.txt 2025-10-11 20:52:42.506427662 +0100
|
||||||
|
@@ -7,7 +7,7 @@
|
||||||
|
enable_language(OBJCXX)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-find_package(Qt6 REQUIRED COMPONENTS Core Gui Concurrent Svg Qml Quick Widgets)
|
||||||
|
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Concurrent Svg Qml Quick Widgets GuiPrivate)
|
||||||
|
find_package(Qt6 COMPONENTS WebEngineQuick)
|
||||||
|
find_package(Qt6 COMPONENTS DBus)
|
||||||
|
|
||||||
|
@@ -154,4 +154,4 @@
|
||||||
|
BUNDLE DESTINATION bin)
|
||||||
|
install(FILES chiaking.desktop DESTINATION share/applications)
|
||||||
|
install(FILES chiaking.png DESTINATION share/icons/hicolor/512x512/apps)
|
||||||
|
-install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
|
||||||
|
\ No newline at end of file
|
||||||
|
+install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# chiaki-ng-bin - prebuilt package of https://github.com/streetpea/chiaki-ng
|
||||||
|
# (free PlayStation Remote Play client, C/C++ + Qt6).
|
||||||
|
#
|
||||||
|
# Upstream ships no plain Linux binaries (only AppImage/flatpak), so
|
||||||
|
# build_artifact() builds from a git checkout of the release tag (the source
|
||||||
|
# tarballs lack the required submodules). Mirrors the AUR source package:
|
||||||
|
# system curl instead of the vendored submodule, plus the Qt6GuiPrivate
|
||||||
|
# CMake fix carried in this directory.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="streetpea/chiaki-ng"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(cmake git python-protobuf python-setuptools protobuf
|
||||||
|
vulkan-headers qt6-base qt6-declarative qt6-svg qt6-webengine
|
||||||
|
sdl2 ffmpeg fftw hidapi json-c libplacebo miniupnpc opus speexdsp
|
||||||
|
openssl curl libssh2)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local pkgdir workdir destdir srctree
|
||||||
|
pkgdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
srctree="$workdir/src"
|
||||||
|
|
||||||
|
git clone --branch "v$ver" --depth 1 "https://github.com/$UPSTREAM_REPO.git" "$srctree"
|
||||||
|
|
||||||
|
# use the system curl instead of the vendored submodule
|
||||||
|
git -C "$srctree" rm -q third-party/curl
|
||||||
|
sed -i 's:libcurl_shared:libcurl:' "$srctree/lib/CMakeLists.txt"
|
||||||
|
# newer tags (>= 1.10.0) carry the GuiPrivate fix themselves
|
||||||
|
if ! grep -q 'GuiPrivate' "$srctree/gui/CMakeLists.txt"; then
|
||||||
|
patch -d "$srctree" -p1 < "$pkgdir/Qt6GuiPrivate-fix.patch"
|
||||||
|
fi
|
||||||
|
git -C "$srctree" submodule update --init
|
||||||
|
|
||||||
|
CFLAGS="${CFLAGS:-} -std=gnu17" cmake -B "$workdir/build" -S "$srctree" -Wno-dev \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCHIAKI_USE_SYSTEM_CURL=ON
|
||||||
|
cmake --build "$workdir/build" -j"$(nproc)"
|
||||||
|
DESTDIR="$destdir" cmake --install "$workdir/build"
|
||||||
|
|
||||||
|
# AGPL-3.0-only-OpenSSL: not a common license, ship the texts
|
||||||
|
mkdir -p "$destdir/usr/share/licenses/chiaki-ng-bin"
|
||||||
|
install -m644 "$srctree/LICENSES/"* "$destdir/usr/share/licenses/chiaki-ng-bin/"
|
||||||
|
|
||||||
|
rm -f "$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
pkgbase = gearlever-bin
|
pkgbase = gearlever-bin
|
||||||
pkgdesc = Manage AppImages with ease (prebuilt)
|
pkgdesc = Manage AppImages with ease (prebuilt)
|
||||||
pkgver = 4.6.2
|
pkgver = 4.6.2
|
||||||
pkgrel = 1
|
pkgrel = 2
|
||||||
url = https://gearlever.mijorus.it
|
url = https://gearlever.mijorus.it
|
||||||
arch = any
|
arch = any
|
||||||
license = GPL-3.0-or-later
|
license = GPL-3.0-or-later
|
||||||
@@ -15,8 +15,6 @@ pkgbase = gearlever-bin
|
|||||||
depends = python-dbus
|
depends = python-dbus
|
||||||
depends = python-requests
|
depends = python-requests
|
||||||
depends = python-pyxdg
|
depends = python-pyxdg
|
||||||
depends = python-ftputil
|
|
||||||
depends = python-desktop-entry-lib
|
|
||||||
depends = 7zip
|
depends = 7zip
|
||||||
depends = binutils
|
depends = binutils
|
||||||
depends = squashfs-tools
|
depends = squashfs-tools
|
||||||
@@ -26,6 +24,6 @@ pkgbase = gearlever-bin
|
|||||||
provides = gearlever
|
provides = gearlever
|
||||||
conflicts = gearlever
|
conflicts = gearlever
|
||||||
source = https://github.com/Felitendo/PKGBUILDS/releases/download/gearlever-bin-4.6.2/gearlever-bin-4.6.2.tar.zst
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/gearlever-bin-4.6.2/gearlever-bin-4.6.2.tar.zst
|
||||||
sha256sums = 319841a5dffd942b6f3b86822ac4d9d52a5b4ee559ea03ee5c2a6318a5161546
|
sha256sums = 225dd08d1fbdf33bb5979660737cee180f60b8cfa6477f1553025a6c2f5236a5
|
||||||
|
|
||||||
pkgname = gearlever-bin
|
pkgname = gearlever-bin
|
||||||
@@ -4,21 +4,20 @@
|
|||||||
|
|
||||||
pkgname=gearlever-bin
|
pkgname=gearlever-bin
|
||||||
pkgver=4.6.2
|
pkgver=4.6.2
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Manage AppImages with ease (prebuilt)"
|
pkgdesc="Manage AppImages with ease (prebuilt)"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
url="https://gearlever.mijorus.it"
|
url="https://gearlever.mijorus.it"
|
||||||
license=('GPL-3.0-or-later')
|
license=('GPL-3.0-or-later')
|
||||||
depends=('gtk4' 'libadwaita' 'glib2' 'dconf' 'hicolor-icon-theme' 'python'
|
depends=('gtk4' 'libadwaita' 'glib2' 'dconf' 'hicolor-icon-theme' 'python'
|
||||||
'python-gobject' 'python-dbus' 'python-requests' 'python-pyxdg'
|
'python-gobject' 'python-dbus' 'python-requests' 'python-pyxdg'
|
||||||
'python-ftputil' 'python-desktop-entry-lib'
|
|
||||||
'7zip' 'binutils' 'squashfs-tools' 'fuse2')
|
'7zip' 'binutils' 'squashfs-tools' 'fuse2')
|
||||||
optdepends=('dwarfs: extract AppImages that use a DwarFS filesystem'
|
optdepends=('dwarfs: extract AppImages that use a DwarFS filesystem'
|
||||||
'libxml2-legacy: required by the LibreOffice AppImage')
|
'libxml2-legacy: required by the LibreOffice AppImage')
|
||||||
provides=('gearlever')
|
provides=('gearlever')
|
||||||
conflicts=('gearlever')
|
conflicts=('gearlever')
|
||||||
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
sha256sums=('319841a5dffd942b6f3b86822ac4d9d52a5b4ee559ea03ee5c2a6318a5161546')
|
sha256sums=('225dd08d1fbdf33bb5979660737cee180f60b8cfa6477f1553025a6c2f5236a5')
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
cp -a "$srcdir/usr" "$pkgdir/"
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
|||||||
+10
-1
@@ -8,7 +8,7 @@
|
|||||||
UPSTREAM_REPO="mijorus/gearlever"
|
UPSTREAM_REPO="mijorus/gearlever"
|
||||||
|
|
||||||
# Installed in CI (pacman) before build_artifact runs.
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
BUILD_DEPS=(meson ninja glib2 glib2-devel python gettext)
|
BUILD_DEPS=(meson ninja glib2 glib2-devel python gettext python-pip)
|
||||||
|
|
||||||
latest_version() {
|
latest_version() {
|
||||||
# gh instead of curl: unauthenticated GitHub API calls are rate-limited on
|
# gh instead of curl: unauthenticated GitHub API calls are rate-limited on
|
||||||
@@ -43,6 +43,15 @@ build_artifact() {
|
|||||||
# files themselves into the install tree.
|
# files themselves into the install tree.
|
||||||
find "$destdir" -name meson.build -delete
|
find "$destdir" -name meson.build -delete
|
||||||
|
|
||||||
|
# ftputil and desktop-entry-lib are AUR-only; bundle them (pure python)
|
||||||
|
# into the app's module dir, which the launcher puts on sys.path. Versions
|
||||||
|
# come from upstream's requirements.txt pins.
|
||||||
|
grep -E '^(ftputil|desktop-entry-lib)' "$srctree/requirements.txt" > "$workdir/bundle-reqs.txt"
|
||||||
|
[[ "$(wc -l < "$workdir/bundle-reqs.txt")" -eq 2 ]] || { echo "expected 2 pinned bundle deps in requirements.txt" >&2; return 1; }
|
||||||
|
python -m pip install --isolated --no-deps --target "$destdir/usr/share/gearlever" \
|
||||||
|
-r "$workdir/bundle-reqs.txt"
|
||||||
|
rm -rf "$destdir/usr/share/gearlever/bin"
|
||||||
|
|
||||||
# These caches are generated by pacman hooks; shipping them would cause
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
# file conflicts on install.
|
# file conflicts on install.
|
||||||
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
pkgbase = gnome-network-displays-bin
|
||||||
|
pkgdesc = Screencasting for GNOME - Miracast and Chromecast (prebuilt)
|
||||||
|
pkgver = 0.99.0
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://gitlab.gnome.org/GNOME/gnome-network-displays
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
depends = avahi
|
||||||
|
depends = dnsmasq
|
||||||
|
depends = gst-plugin-pipewire
|
||||||
|
depends = gst-plugins-bad
|
||||||
|
depends = gst-plugins-good
|
||||||
|
depends = gst-plugins-ugly
|
||||||
|
depends = gst-rtsp-server
|
||||||
|
depends = gstreamer
|
||||||
|
depends = gtk4
|
||||||
|
depends = json-glib
|
||||||
|
depends = libadwaita
|
||||||
|
depends = libnm
|
||||||
|
depends = libportal
|
||||||
|
depends = libportal-gtk4
|
||||||
|
depends = libpulse
|
||||||
|
depends = libsoup3
|
||||||
|
depends = networkmanager
|
||||||
|
depends = protobuf-c
|
||||||
|
depends = xdg-desktop-portal
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
optdepends = gstreamer-vaapi: hardware accelerated encoding
|
||||||
|
provides = gnome-network-displays
|
||||||
|
conflicts = gnome-network-displays
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/gnome-network-displays-bin-0.99.0/gnome-network-displays-bin-0.99.0.tar.zst
|
||||||
|
sha256sums = 6e7f93f491226bab6ae54139dcaf009d9cedd8e983b04b5128701c3250936ac1
|
||||||
|
|
||||||
|
pkgname = gnome-network-displays-bin
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=gnome-network-displays-bin
|
||||||
|
pkgver=0.99.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Screencasting for GNOME - Miracast and Chromecast (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitlab.gnome.org/GNOME/gnome-network-displays"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=('avahi' 'dnsmasq' 'gst-plugin-pipewire' 'gst-plugins-bad'
|
||||||
|
'gst-plugins-good' 'gst-plugins-ugly' 'gst-rtsp-server' 'gstreamer'
|
||||||
|
'gtk4' 'json-glib' 'libadwaita' 'libnm' 'libportal' 'libportal-gtk4'
|
||||||
|
'libpulse' 'libsoup3' 'networkmanager' 'protobuf-c'
|
||||||
|
'xdg-desktop-portal' 'hicolor-icon-theme')
|
||||||
|
optdepends=('gstreamer-vaapi: hardware accelerated encoding')
|
||||||
|
provides=('gnome-network-displays')
|
||||||
|
conflicts=('gnome-network-displays')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('6e7f93f491226bab6ae54139dcaf009d9cedd8e983b04b5128701c3250936ac1')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# gnome-network-displays-bin - prebuilt package of
|
||||||
|
# https://gitlab.gnome.org/GNOME/gnome-network-displays
|
||||||
|
# (GNOME screencasting via Miracast/Chromecast, C + GTK4/LibAdwaita).
|
||||||
|
#
|
||||||
|
# Upstream publishes no binary assets, so build_artifact() builds from the
|
||||||
|
# GitLab release tarball.
|
||||||
|
|
||||||
|
GITLAB_PROJECT="GNOME%2Fgnome-network-displays"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(meson ninja glib2-devel gettext gtk4 libadwaita gstreamer
|
||||||
|
gst-rtsp-server gst-plugins-bad json-glib libnm libportal
|
||||||
|
libportal-gtk4 libpulse libsoup3 protobuf-c avahi)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
curl -sf "https://gitlab.gnome.org/api/v4/projects/$GITLAB_PROJECT/releases?per_page=1" \
|
||||||
|
| jq -r '.[0].tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/archive/$ver/gnome-network-displays-$ver.tar.gz" \
|
||||||
|
| tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/gnome-network-displays-$ver"
|
||||||
|
|
||||||
|
# Arch has no /usr/libexec; same fix as the AUR source package
|
||||||
|
sed -i 's/libexec/lib/g' "$srctree/src/nd-systemd-helpers.c" "$srctree/src/meson.build"
|
||||||
|
|
||||||
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||||
|
meson install -C "$workdir/build" --destdir "$destdir"
|
||||||
|
|
||||||
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
|
# file conflicts on install.
|
||||||
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
"$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
pkgbase = librepods-bin
|
||||||
|
pkgdesc = AirPods liberated from Apple's ecosystem (prebuilt)
|
||||||
|
pkgver = 1.0.0rc1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/librepods-org/librepods
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-only
|
||||||
|
depends = glibc
|
||||||
|
depends = gcc-libs
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
depends = libpulse
|
||||||
|
depends = openssl
|
||||||
|
depends = qt6-base
|
||||||
|
depends = qt6-connectivity
|
||||||
|
depends = qt6-declarative
|
||||||
|
provides = librepods
|
||||||
|
conflicts = librepods
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/librepods-bin-1.0.0rc1/librepods-bin-1.0.0rc1.tar.zst
|
||||||
|
sha256sums = 69ce19414a0205d1d19fb851f6adea6c231013df6ec8a32bc8122d5fd6e9dd52
|
||||||
|
|
||||||
|
pkgname = librepods-bin
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=librepods-bin
|
||||||
|
pkgver=1.0.0rc1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="AirPods liberated from Apple's ecosystem (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/librepods-org/librepods"
|
||||||
|
license=('GPL-3.0-only')
|
||||||
|
depends=('glibc' 'gcc-libs' 'hicolor-icon-theme' 'libpulse' 'openssl'
|
||||||
|
'qt6-base' 'qt6-connectivity' 'qt6-declarative')
|
||||||
|
provides=('librepods')
|
||||||
|
conflicts=('librepods')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('69ce19414a0205d1d19fb851f6adea6c231013df6ec8a32bc8122d5fd6e9dd52')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# librepods-bin - prebuilt package of https://github.com/librepods-org/librepods
|
||||||
|
# (AirPods integration for Linux, Qt6/C++ client in the linux/ subdirectory).
|
||||||
|
#
|
||||||
|
# Upstream releases carry only Android APKs, so build_artifact() builds the
|
||||||
|
# Linux client from the release tarball. Upstream tags look like v1.0.0-rc1;
|
||||||
|
# pkgver strips the hyphen (1.0.0rc1, sorts before 1.0.0 in vercmp) and
|
||||||
|
# build_artifact re-inserts it for the tag URL.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="librepods-org/librepods"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(cmake qt6-base qt6-connectivity qt6-declarative qt6-tools
|
||||||
|
libpulse openssl)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//; s/-//g'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local upver workdir destdir srctree
|
||||||
|
upver="$(sed -E 's/([a-z])/-\1/' <<< "$ver")"
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$upver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/librepods-$upver"
|
||||||
|
|
||||||
|
cmake -B "$workdir/build" -S "$srctree/linux" -Wno-dev \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_SKIP_RPATH=TRUE
|
||||||
|
cmake --build "$workdir/build" -j"$(nproc)"
|
||||||
|
DESTDIR="$destdir" cmake --install "$workdir/build"
|
||||||
|
|
||||||
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
|
# file conflicts on install.
|
||||||
|
rm -f "$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
pkgbase = linux-wallpaperengine-bin
|
||||||
|
pkgdesc = Use Steam's Wallpaper Engine wallpapers on Linux (prebuilt snapshot of main)
|
||||||
|
pkgver = r627.b016d7d
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/Almamu/linux-wallpaperengine
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-only
|
||||||
|
depends = lz4
|
||||||
|
depends = ffmpeg
|
||||||
|
depends = mpv
|
||||||
|
depends = glfw
|
||||||
|
depends = glew
|
||||||
|
depends = freeglut
|
||||||
|
depends = libpulse
|
||||||
|
depends = libcups
|
||||||
|
depends = at-spi2-core
|
||||||
|
depends = nss
|
||||||
|
depends = libxcomposite
|
||||||
|
depends = libxdamage
|
||||||
|
depends = nspr
|
||||||
|
provides = linux-wallpaperengine
|
||||||
|
conflicts = linux-wallpaperengine
|
||||||
|
conflicts = linux-wallpaperengine-git
|
||||||
|
options = !strip
|
||||||
|
options = !debug
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/linux-wallpaperengine-bin-r627.b016d7d/linux-wallpaperengine-bin-r627.b016d7d.tar.zst
|
||||||
|
sha256sums = ed71a7ca046003c368b6af7aa9766dee36cd5da84921a4a34991248d62d7bc6b
|
||||||
|
|
||||||
|
pkgname = linux-wallpaperengine-bin
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=linux-wallpaperengine-bin
|
||||||
|
pkgver=r627.b016d7d
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Use Steam's Wallpaper Engine wallpapers on Linux (prebuilt snapshot of main)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/Almamu/linux-wallpaperengine"
|
||||||
|
license=('GPL-3.0-only')
|
||||||
|
depends=('lz4' 'ffmpeg' 'mpv' 'glfw' 'glew' 'freeglut' 'libpulse' 'libcups'
|
||||||
|
'at-spi2-core' 'nss' 'libxcomposite' 'libxdamage' 'nspr')
|
||||||
|
provides=('linux-wallpaperengine')
|
||||||
|
conflicts=('linux-wallpaperengine' 'linux-wallpaperengine-git')
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('ed71a7ca046003c368b6af7aa9766dee36cd5da84921a4a34991248d62d7bc6b')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
cp -a "$srcdir/opt" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
# linux-wallpaperengine-bin - prebuilt package of
|
||||||
|
# https://github.com/Almamu/linux-wallpaperengine (Wallpaper Engine backgrounds
|
||||||
|
# on Linux, C++/CMake, bundles CEF for web wallpapers).
|
||||||
|
#
|
||||||
|
# Upstream has no releases or tags, so versions are commit snapshots of main
|
||||||
|
# in the same "r<commit count>.<short sha>" format the AUR -git package uses.
|
||||||
|
# Every new upstream commit therefore produces a new build.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="Almamu/linux-wallpaperengine"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(cmake git sdl2 glm wayland-protocols xorg-xrandr lz4 ffmpeg mpv
|
||||||
|
glfw glew freeglut libpulse libcups at-spi2-core nss libxcomposite
|
||||||
|
libxdamage nspr dbus freetype2)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
local sha count
|
||||||
|
sha="$(gh api "repos/$UPSTREAM_REPO/commits/main" --jq '.sha')" || return 1
|
||||||
|
# total commit count on main, from the Link pagination header
|
||||||
|
count="$(gh api -i "repos/$UPSTREAM_REPO/commits?sha=main&per_page=1" \
|
||||||
|
| grep -oiP 'page=\K[0-9]+(?=>; rel="last")')" || return 1
|
||||||
|
[[ -n "$sha" && -n "$count" ]] || return 1
|
||||||
|
echo "r${count}.${sha:0:7}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local sha="${ver##*.}"
|
||||||
|
local workdir destdir srctree actual
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
srctree="$workdir/src"
|
||||||
|
|
||||||
|
git clone "https://github.com/$UPSTREAM_REPO.git" "$srctree"
|
||||||
|
git -C "$srctree" checkout "$sha"
|
||||||
|
git -C "$srctree" submodule update --init --recursive
|
||||||
|
|
||||||
|
# make sure the checkout is really the snapshot the version claims to be
|
||||||
|
actual="r$(git -C "$srctree" rev-list --count HEAD).$(git -C "$srctree" rev-parse --short=7 HEAD)"
|
||||||
|
if [[ "$actual" != "$ver" ]]; then
|
||||||
|
echo "snapshot mismatch: checked out $actual, expected $ver" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# flags as in the AUR -git package; CEF is fetched by CMake during setup
|
||||||
|
cmake -B "$workdir/build" -S "$srctree" \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/opt/linux-wallpaperengine \
|
||||||
|
-Wno-dev \
|
||||||
|
-DCMAKE_CXX_FLAGS='-ffat-lto-objects -Wno-builtin-macro-redefined' \
|
||||||
|
-DCMAKE_C_FLAGS='-Wno-builtin-macro-redefined'
|
||||||
|
cmake --build "$workdir/build" -j"$(nproc)"
|
||||||
|
DESTDIR="$destdir" cmake --install "$workdir/build"
|
||||||
|
chmod 755 "$destdir/opt/linux-wallpaperengine/linux-wallpaperengine"
|
||||||
|
|
||||||
|
# forwarding script, as in the AUR -git package
|
||||||
|
mkdir -p "$destdir/usr/bin"
|
||||||
|
cat > "$destdir/usr/bin/linux-wallpaperengine" << 'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
export LD_LIBRARY_PATH="/opt/linux-wallpaperengine/lib:$LD_LIBRARY_PATH"
|
||||||
|
cd /opt/linux-wallpaperengine
|
||||||
|
exec ./linux-wallpaperengine "$@"
|
||||||
|
EOF
|
||||||
|
chmod 755 "$destdir/usr/bin/linux-wallpaperengine"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr opt
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
pkgbase = modrinth-app-bin
|
||||||
|
pkgdesc = Minecraft mod manager and launcher from Modrinth (upstream binary)
|
||||||
|
pkgver = 0.15.20
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://modrinth.com/app
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-only
|
||||||
|
depends = webkit2gtk-4.1
|
||||||
|
depends = gtk3
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
provides = modrinth-app
|
||||||
|
conflicts = modrinth-app
|
||||||
|
noextract = modrinth-app-bin-0.15.20.deb
|
||||||
|
options = !strip
|
||||||
|
options = !debug
|
||||||
|
source = modrinth-app-bin-0.15.20.deb::https://github.com/modrinth/code/releases/download/v0.15.20/Modrinth.App_0.15.20_amd64.deb
|
||||||
|
sha256sums = b88f8f4b5b2017ad99fb3e89cbfe1dc1a6693aa67c2edf7e94ee959a42fb533a
|
||||||
|
|
||||||
|
pkgname = modrinth-app-bin
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=modrinth-app-bin
|
||||||
|
pkgver=0.15.20
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Minecraft mod manager and launcher from Modrinth (upstream binary)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://modrinth.com/app"
|
||||||
|
license=('GPL-3.0-only')
|
||||||
|
depends=('webkit2gtk-4.1' 'gtk3' 'hicolor-icon-theme')
|
||||||
|
provides=('modrinth-app')
|
||||||
|
conflicts=('modrinth-app')
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
source=("${pkgname}-${pkgver}.deb::https://github.com/modrinth/code/releases/download/v${pkgver}/Modrinth.App_${pkgver}_amd64.deb")
|
||||||
|
noextract=("${pkgname}-${pkgver}.deb")
|
||||||
|
sha256sums=('b88f8f4b5b2017ad99fb3e89cbfe1dc1a6693aa67c2edf7e94ee959a42fb533a')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
bsdtar -xOf "$srcdir/${pkgname}-${pkgver}.deb" 'data.tar.*' \
|
||||||
|
| bsdtar -xpf - -C "$pkgdir" usr
|
||||||
|
ln -s ModrinthApp "$pkgdir/usr/bin/modrinth-app"
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# modrinth-app-bin - Modrinth App (https://github.com/modrinth/code),
|
||||||
|
# Minecraft mod manager/launcher, Tauri.
|
||||||
|
#
|
||||||
|
# Upstream publishes a bundled .deb per release, so there is no
|
||||||
|
# build_artifact() here: on a new version only pkgver and the checksum are
|
||||||
|
# refreshed and the PKGBUILD repackages the deb directly.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="modrinth/code"
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# refresh_checksums <version> <pkgbuild-path>
|
||||||
|
refresh_checksums() {
|
||||||
|
local ver="$1" pkgbuild="$2"
|
||||||
|
local sha
|
||||||
|
sha="$(curl -sfL "https://github.com/$UPSTREAM_REPO/releases/download/v$ver/Modrinth.App_${ver}_amd64.deb" \
|
||||||
|
| sha256sum | cut -d' ' -f1)"
|
||||||
|
sed -i "s|^sha256sums=.*|sha256sums=('$sha')|" "$pkgbuild"
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
pkgbase = planify-bin
|
||||||
|
pkgdesc = Task manager with Todoist and Nextcloud support (prebuilt, bundles gxml)
|
||||||
|
pkgver = 4.19.5
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://useplanify.com
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
depends = evolution-data-server
|
||||||
|
depends = gtk4
|
||||||
|
depends = gtksourceview5
|
||||||
|
depends = icu
|
||||||
|
depends = json-glib
|
||||||
|
depends = libadwaita
|
||||||
|
depends = libgee
|
||||||
|
depends = libical
|
||||||
|
depends = libportal
|
||||||
|
depends = libportal-gtk4
|
||||||
|
depends = libsecret
|
||||||
|
depends = libsoup3
|
||||||
|
depends = libspelling
|
||||||
|
depends = sqlite
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
provides = planify
|
||||||
|
conflicts = planify
|
||||||
|
conflicts = elementary-planner
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/planify-bin-4.19.5/planify-bin-4.19.5.tar.zst
|
||||||
|
sha256sums = 563a80c7660b207f6c139e0f78bcb49631e8369be29369a7a984b022816b8c0f
|
||||||
|
|
||||||
|
pkgname = planify-bin
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=planify-bin
|
||||||
|
pkgver=4.19.5
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Task manager with Todoist and Nextcloud support (prebuilt, bundles gxml)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://useplanify.com"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=('evolution-data-server' 'gtk4' 'gtksourceview5' 'icu' 'json-glib'
|
||||||
|
'libadwaita' 'libgee' 'libical' 'libportal' 'libportal-gtk4'
|
||||||
|
'libsecret' 'libsoup3' 'libspelling' 'sqlite' 'hicolor-icon-theme')
|
||||||
|
provides=('planify')
|
||||||
|
conflicts=('planify' 'elementary-planner')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('563a80c7660b207f6c139e0f78bcb49631e8369be29369a7a984b022816b8c0f')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# planify-bin - prebuilt package of https://github.com/alainm23/planify
|
||||||
|
# (task manager with Todoist/Nextcloud support, Vala/GTK4 + LibAdwaita).
|
||||||
|
#
|
||||||
|
# Upstream publishes no binary assets, so build_artifact() builds from the
|
||||||
|
# release tarball. The chrono and gxml dependencies are resolved through the
|
||||||
|
# meson wrap subprojects upstream ships (gxml is not packaged in the official
|
||||||
|
# Arch repos, so the library ends up bundled inside this package).
|
||||||
|
|
||||||
|
UPSTREAM_REPO="alainm23/planify"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs. gxml is deliberately
|
||||||
|
# absent: meson then falls back to the bundled gxml-0.20.wrap subproject.
|
||||||
|
BUILD_DEPS=(meson ninja vala git gobject-introspection gettext glib2-devel
|
||||||
|
gtk4 libadwaita libgee gtksourceview5 json-glib libical libportal
|
||||||
|
libportal-gtk4 libsecret libsoup3 libspelling sqlite
|
||||||
|
evolution-data-server icu)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/planify-$ver"
|
||||||
|
|
||||||
|
# The preferences dialog suggests a flatpak-only quick-add command; point it
|
||||||
|
# at the plain binary instead (same fix as the AUR source package).
|
||||||
|
grep -q 'flatpak run --command=io.github.alainm23.planify.quick-add' \
|
||||||
|
"$srctree/src/Dialogs/Preferences/Pages/QuickAdd.vala" \
|
||||||
|
&& sed -i 's|flatpak run --command=io.github.alainm23.planify.quick-add|io.github.alainm23.planify.quick-add|' \
|
||||||
|
"$srctree/src/Dialogs/Preferences/Pages/QuickAdd.vala" \
|
||||||
|
|| echo "WARNING: quick-add flatpak command not found, sed skipped" >&2
|
||||||
|
|
||||||
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||||
|
meson install -C "$workdir/build" --destdir "$destdir"
|
||||||
|
|
||||||
|
# convenience names, as in the AUR source package
|
||||||
|
ln -s io.github.alainm23.planify "$destdir/usr/bin/planify"
|
||||||
|
ln -s io.github.alainm23.planify.quick-add "$destdir/usr/bin/planify.quick-add"
|
||||||
|
|
||||||
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
|
# file conflicts on install.
|
||||||
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
"$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -112,7 +112,7 @@ mv "$pkg/.SRCINFO.new" "$pkg/.SRCINFO"
|
|||||||
|
|
||||||
# drop downloaded sources and build leftovers (all gitignored, never tracked)
|
# drop downloaded sources and build leftovers (all gitignored, never tracked)
|
||||||
rm -rf "$pkg/src" "$pkg/pkg"
|
rm -rf "$pkg/src" "$pkg/pkg"
|
||||||
rm -f "$pkg"/*.pkg.tar.* "$pkg"/*.tar.zst "$pkg"/*.tar.gz
|
rm -f "$pkg"/*.pkg.tar.* "$pkg"/*.tar.zst "$pkg"/*.tar.gz "$pkg"/*.deb
|
||||||
|
|
||||||
### 4: commit back to this repository ########################################
|
### 4: commit back to this repository ########################################
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
pkgbase = snapx-bin
|
||||||
|
pkgdesc = Screenshot tool that handles images, text, and video - ShareX fork, Avalonia UI (upstream binary)
|
||||||
|
pkgver = 0.4.0
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/SnapXL/SnapX
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
depends = glibc
|
||||||
|
depends = gcc-libs
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
provides = snapx-ui
|
||||||
|
conflicts = snapx-ui
|
||||||
|
options = !strip
|
||||||
|
options = !debug
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/snapx-bin-0.4.0/snapx-bin-0.4.0.tar.zst
|
||||||
|
sha256sums = d2098cac542bca82e68be0a4fa98db22f2d84d35c683d18582382dc9206eb5ee
|
||||||
|
|
||||||
|
pkgname = snapx-bin
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=snapx-bin
|
||||||
|
pkgver=0.4.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Screenshot tool that handles images, text, and video - ShareX fork, Avalonia UI (upstream binary)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/SnapXL/SnapX"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=('glibc' 'gcc-libs' 'hicolor-icon-theme')
|
||||||
|
provides=('snapx-ui')
|
||||||
|
conflicts=('snapx-ui')
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('d2098cac542bca82e68be0a4fa98db22f2d84d35c683d18582382dc9206eb5ee')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
cp -a "$srcdir/opt" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# snapx-bin - SnapX (https://github.com/SnapXL/SnapX), screenshot/sharing
|
||||||
|
# tool forked from ShareX, C#/.NET Avalonia UI.
|
||||||
|
#
|
||||||
|
# Upstream ships a self-contained Linux bundle per (pre)release, but the
|
||||||
|
# asset names embed build metadata (e.g. ...-0.4.0-alpha.0+g7eafb0f-X64...)
|
||||||
|
# that cannot be derived from the version alone. build_artifact() therefore
|
||||||
|
# resolves the asset by pattern via the GitHub API and repackages it under
|
||||||
|
# our own predictable name. All upstream releases are marked prerelease, so
|
||||||
|
# latest_version() reads the release list instead of /latest.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="SnapXL/SnapX"
|
||||||
|
|
||||||
|
BUILD_DEPS=()
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases" --jq '.[0].tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir asset
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
asset="$(gh api "repos/$UPSTREAM_REPO/releases/tags/v$ver" --jq '.assets[].name' \
|
||||||
|
| grep '^SnapX-UI-Release-Linux-' | grep -v musl | grep -- '-X64\.tar\.zst$')"
|
||||||
|
[[ "$(wc -l <<< "$asset")" -eq 1 ]] || { echo "expected exactly one UI asset, got: $asset" >&2; return 1; }
|
||||||
|
|
||||||
|
gh release download "v$ver" -R "$UPSTREAM_REPO" --pattern "$asset" --dir "$workdir"
|
||||||
|
mkdir -p "$destdir/opt/snapx"
|
||||||
|
tar -xf "$workdir/$asset" -C "$destdir/opt/snapx"
|
||||||
|
chmod 755 "$destdir/opt/snapx/snapx-ui"
|
||||||
|
|
||||||
|
# upstream's launcher resolves its own directory, so a symlink from
|
||||||
|
# /usr/bin would break it - use a wrapper instead
|
||||||
|
mkdir -p "$destdir/usr/bin"
|
||||||
|
cat > "$destdir/usr/bin/snapx-ui" << 'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
exec /opt/snapx/snapx-ui "$@"
|
||||||
|
EOF
|
||||||
|
chmod 755 "$destdir/usr/bin/snapx-ui"
|
||||||
|
|
||||||
|
# desktop file, icons and metainfo from the source tree
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
cp -a "$workdir/SnapX-$ver/packaging/usr/share" "$destdir/usr/"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr opt
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
pkgbase = trayscale-bin
|
||||||
|
pkgdesc = Unofficial GUI wrapper for the Tailscale CLI client (prebuilt)
|
||||||
|
pkgver = 0.18.9
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/DeedleFake/trayscale
|
||||||
|
arch = x86_64
|
||||||
|
license = MIT
|
||||||
|
depends = gtk4
|
||||||
|
depends = libadwaita
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
optdepends = tailscale: provides the daemon that manages the connection
|
||||||
|
provides = trayscale
|
||||||
|
conflicts = trayscale
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/trayscale-bin-0.18.9/trayscale-bin-0.18.9.tar.zst
|
||||||
|
sha256sums = 1b24f332a64a682e972e94fecfc11a7d719a1c74c5fd897c45c08cbd17d0ae93
|
||||||
|
|
||||||
|
pkgname = trayscale-bin
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=trayscale-bin
|
||||||
|
pkgver=0.18.9
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Unofficial GUI wrapper for the Tailscale CLI client (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/DeedleFake/trayscale"
|
||||||
|
license=('MIT')
|
||||||
|
depends=('gtk4' 'libadwaita' 'hicolor-icon-theme')
|
||||||
|
optdepends=('tailscale: provides the daemon that manages the connection')
|
||||||
|
provides=('trayscale')
|
||||||
|
conflicts=('trayscale')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('1b24f332a64a682e972e94fecfc11a7d719a1c74c5fd897c45c08cbd17d0ae93')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# trayscale-bin - prebuilt package of https://github.com/DeedleFake/trayscale
|
||||||
|
# (unofficial GTK4 + LibAdwaita GUI for the Tailscale CLI, written in Go).
|
||||||
|
#
|
||||||
|
# Upstream publishes no Linux binary assets, so build_artifact() builds the
|
||||||
|
# Go binary from the release tarball via upstream's dist.sh (slow: the gotk4
|
||||||
|
# bindings take a while to compile).
|
||||||
|
|
||||||
|
UPSTREAM_REPO="DeedleFake/trayscale"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(go gtk4 libadwaita gobject-introspection)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/trayscale-$ver"
|
||||||
|
|
||||||
|
(cd "$srctree" && \
|
||||||
|
GOMODCACHE="$workdir/gomodcache" GOFLAGS="-modcacherw" \
|
||||||
|
./dist.sh build "v$ver" && \
|
||||||
|
./dist.sh install "$destdir/usr")
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
pkgbase = vacuumtube-bin
|
||||||
|
pkgdesc = YouTube Leanback (TV UI) in Electron, with a built-in adblocker (upstream binary)
|
||||||
|
pkgver = 1.8.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/shy1132/VacuumTube
|
||||||
|
arch = x86_64
|
||||||
|
license = MIT
|
||||||
|
depends = gtk3
|
||||||
|
depends = nss
|
||||||
|
depends = alsa-lib
|
||||||
|
depends = libnotify
|
||||||
|
depends = libxss
|
||||||
|
depends = libxtst
|
||||||
|
depends = xdg-utils
|
||||||
|
depends = at-spi2-core
|
||||||
|
depends = util-linux-libs
|
||||||
|
depends = libsecret
|
||||||
|
optdepends = libappindicator-gtk3: tray icon support
|
||||||
|
provides = vacuumtube
|
||||||
|
conflicts = vacuumtube
|
||||||
|
noextract = vacuumtube-bin-1.8.1.deb
|
||||||
|
options = !strip
|
||||||
|
options = !debug
|
||||||
|
source = vacuumtube-bin-1.8.1.deb::https://github.com/shy1132/VacuumTube/releases/download/v1.8.1/VacuumTube-amd64.deb
|
||||||
|
sha256sums = 652be4e29e85ed31d3a1bae4dad00e6d39967ad0cf7cc47547b0ec94bacd0d51
|
||||||
|
|
||||||
|
pkgname = vacuumtube-bin
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=vacuumtube-bin
|
||||||
|
pkgver=1.8.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="YouTube Leanback (TV UI) in Electron, with a built-in adblocker (upstream binary)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/shy1132/VacuumTube"
|
||||||
|
license=('MIT')
|
||||||
|
depends=('gtk3' 'nss' 'alsa-lib' 'libnotify' 'libxss' 'libxtst' 'xdg-utils'
|
||||||
|
'at-spi2-core' 'util-linux-libs' 'libsecret')
|
||||||
|
optdepends=('libappindicator-gtk3: tray icon support')
|
||||||
|
provides=('vacuumtube')
|
||||||
|
conflicts=('vacuumtube')
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
source=("${pkgname}-${pkgver}.deb::https://github.com/shy1132/VacuumTube/releases/download/v${pkgver}/VacuumTube-amd64.deb")
|
||||||
|
noextract=("${pkgname}-${pkgver}.deb")
|
||||||
|
sha256sums=('652be4e29e85ed31d3a1bae4dad00e6d39967ad0cf7cc47547b0ec94bacd0d51')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
bsdtar -xOf "$srcdir/${pkgname}-${pkgver}.deb" 'data.tar.*' \
|
||||||
|
| bsdtar -xpf - -C "$pkgdir" --exclude './usr/share/doc' ./opt ./usr
|
||||||
|
install -d "$pkgdir/usr/bin"
|
||||||
|
ln -s /opt/VacuumTube/vacuumtube "$pkgdir/usr/bin/vacuumtube"
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# vacuumtube-bin - VacuumTube (https://github.com/shy1132/VacuumTube),
|
||||||
|
# YouTube Leanback (TV UI) wrapper, Electron.
|
||||||
|
#
|
||||||
|
# Upstream publishes a bundled .deb per release, so there is no
|
||||||
|
# build_artifact() here: on a new version only pkgver and the checksum are
|
||||||
|
# refreshed and the PKGBUILD repackages the deb directly.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="shy1132/VacuumTube"
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# refresh_checksums <version> <pkgbuild-path>
|
||||||
|
refresh_checksums() {
|
||||||
|
local ver="$1" pkgbuild="$2"
|
||||||
|
local sha
|
||||||
|
sha="$(curl -sfL "https://github.com/$UPSTREAM_REPO/releases/download/v$ver/VacuumTube-amd64.deb" \
|
||||||
|
| sha256sum | cut -d' ' -f1)"
|
||||||
|
sed -i "s|^sha256sums=.*|sha256sums=('$sha')|" "$pkgbuild"
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
pkgbase = waydroid-helper-bin
|
||||||
|
pkgdesc = GUI application for Waydroid configuration and extension installation (prebuilt)
|
||||||
|
pkgver = 0.2.9
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/ayasa520/waydroid-helper
|
||||||
|
arch = any
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
depends = python
|
||||||
|
depends = fakeroot
|
||||||
|
depends = python-bidict
|
||||||
|
depends = python-httpx
|
||||||
|
depends = python-gobject
|
||||||
|
depends = python-yaml
|
||||||
|
depends = python-pywayland
|
||||||
|
depends = python-cairo
|
||||||
|
depends = gtk4
|
||||||
|
depends = libadwaita
|
||||||
|
depends = python-aiofiles
|
||||||
|
depends = python-dbus
|
||||||
|
depends = android-tools
|
||||||
|
depends = vte4
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
optdepends = bindfs: shared folders support
|
||||||
|
optdepends = waydroid: the container this tool configures
|
||||||
|
provides = waydroid-helper
|
||||||
|
conflicts = waydroid-helper
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/waydroid-helper-bin-0.2.9/waydroid-helper-bin-0.2.9.tar.zst
|
||||||
|
sha256sums = 8a02695c6a3f102d1fa2a0b6266bb1978874338eac5a33b3391ada3243c01e56
|
||||||
|
|
||||||
|
pkgname = waydroid-helper-bin
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=waydroid-helper-bin
|
||||||
|
pkgver=0.2.9
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="GUI application for Waydroid configuration and extension installation (prebuilt)"
|
||||||
|
arch=('any')
|
||||||
|
url="https://github.com/ayasa520/waydroid-helper"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=('python' 'fakeroot' 'python-bidict' 'python-httpx' 'python-gobject'
|
||||||
|
'python-yaml' 'python-pywayland' 'python-cairo' 'gtk4' 'libadwaita'
|
||||||
|
'python-aiofiles' 'python-dbus' 'android-tools' 'vte4'
|
||||||
|
'hicolor-icon-theme')
|
||||||
|
optdepends=('bindfs: shared folders support'
|
||||||
|
'waydroid: the container this tool configures')
|
||||||
|
provides=('waydroid-helper')
|
||||||
|
conflicts=('waydroid-helper')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('8a02695c6a3f102d1fa2a0b6266bb1978874338eac5a33b3391ada3243c01e56')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# waydroid-helper-bin - prebuilt package of https://github.com/ayasa520/waydroid-helper
|
||||||
|
# (GTK4 + LibAdwaita GUI for Waydroid configuration/extensions, Python).
|
||||||
|
#
|
||||||
|
# Upstream only ships AppImages, so build_artifact() builds the meson project
|
||||||
|
# from the release tarball.
|
||||||
|
|
||||||
|
UPSTREAM_REPO="ayasa520/waydroid-helper"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(meson ninja python python-setuptools glib2 glib2-devel gettext)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/waydroid-helper-$ver"
|
||||||
|
|
||||||
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||||
|
meson install -C "$workdir/build" --destdir "$destdir"
|
||||||
|
|
||||||
|
# These caches are generated by pacman hooks; shipping them would cause
|
||||||
|
# file conflicts on install.
|
||||||
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||||
|
"$destdir/usr/share/applications/mimeinfo.cache" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
pkgbase = wiiudownloader-bin
|
||||||
|
pkgdesc = Download encrypted Wii U files from Nintendo's official servers (prebuilt)
|
||||||
|
pkgver = 2.98
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/Xpl0itU/WiiUDownloader
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
depends = glibc
|
||||||
|
depends = glib2
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
depends = libx11
|
||||||
|
depends = gtk3
|
||||||
|
depends = gdk-pixbuf2
|
||||||
|
depends = cairo
|
||||||
|
depends = pango
|
||||||
|
depends = fontconfig
|
||||||
|
provides = wiiudownloader
|
||||||
|
conflicts = wiiudownloader
|
||||||
|
source = https://github.com/Felitendo/PKGBUILDS/releases/download/wiiudownloader-bin-2.98/wiiudownloader-bin-2.98.tar.zst
|
||||||
|
sha256sums = 5b2bd57e6531aee1774ca3b9acc70bc402eab585a2532a666f4484584412622e
|
||||||
|
|
||||||
|
pkgname = wiiudownloader-bin
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Felitendo
|
||||||
|
# This PKGBUILD is updated automatically:
|
||||||
|
# https://github.com/Felitendo/PKGBUILDS
|
||||||
|
|
||||||
|
pkgname=wiiudownloader-bin
|
||||||
|
pkgver=2.98
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Download encrypted Wii U files from Nintendo's official servers (prebuilt)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/Xpl0itU/WiiUDownloader"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=('glibc' 'glib2' 'hicolor-icon-theme' 'libx11' 'gtk3' 'gdk-pixbuf2'
|
||||||
|
'cairo' 'pango' 'fontconfig')
|
||||||
|
provides=('wiiudownloader')
|
||||||
|
conflicts=('wiiudownloader')
|
||||||
|
source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||||
|
sha256sums=('5b2bd57e6531aee1774ca3b9acc70bc402eab585a2532a666f4484584412622e')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -a "$srcdir/usr" "$pkgdir/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# wiiudownloader-bin - prebuilt package of https://github.com/Xpl0itU/WiiUDownloader
|
||||||
|
# (Go + GTK3 downloader for Wii U titles from Nintendo's official servers).
|
||||||
|
#
|
||||||
|
# Upstream only ships AppImages, so build_artifact() builds the Go binary
|
||||||
|
# from the release tarball (grabTitles.py generates the title database that
|
||||||
|
# is compiled in).
|
||||||
|
|
||||||
|
UPSTREAM_REPO="Xpl0itU/WiiUDownloader"
|
||||||
|
|
||||||
|
# Installed in CI (pacman) before build_artifact runs.
|
||||||
|
BUILD_DEPS=(go gtk3 python)
|
||||||
|
|
||||||
|
latest_version() {
|
||||||
|
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# build_artifact <version> <output-file>
|
||||||
|
build_artifact() {
|
||||||
|
local ver="$1" outfile="$2"
|
||||||
|
local workdir destdir srctree
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
destdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
|
||||||
|
srctree="$workdir/WiiUDownloader-$ver"
|
||||||
|
|
||||||
|
(cd "$srctree" && python3 grabTitles.py)
|
||||||
|
|
||||||
|
(cd "$srctree/cmd/WiiUDownloader" && \
|
||||||
|
GOPATH="$workdir/gopath" \
|
||||||
|
GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" \
|
||||||
|
go build -v -o "$destdir/wiiudownloader" .)
|
||||||
|
|
||||||
|
install -Dm755 "$destdir/wiiudownloader" "$destdir/usr/bin/wiiudownloader"
|
||||||
|
rm "$destdir/wiiudownloader"
|
||||||
|
install -Dm644 "$srctree/data/WiiUDownloader.png" \
|
||||||
|
"$destdir/usr/share/icons/hicolor/256x256/apps/wiiudownloader.png"
|
||||||
|
|
||||||
|
mkdir -p "$destdir/usr/share/applications"
|
||||||
|
cat > "$destdir/usr/share/applications/wiiudownloader.desktop" << 'EOF'
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=WiiUDownloader
|
||||||
|
Comment=Download Wii U titles from Nintendo's official servers
|
||||||
|
Exec=wiiudownloader
|
||||||
|
Icon=wiiudownloader
|
||||||
|
Terminal=false
|
||||||
|
Categories=Utility;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
||||||
|
-cf "$outfile" -C "$destdir" usr
|
||||||
|
|
||||||
|
rm -rf "$workdir" "$destdir"
|
||||||
|
}
|
||||||
Reference in new issue
Block a user