Compare commits

...
16 changed files with 26 additions and 478 deletions

No files matched your search

-2
View File
@@ -28,14 +28,12 @@ users don't need any build dependencies.
| `sharpemu-bin` | [sharpemu/sharpemu](https://github.com/sharpemu/sharpemu) — experimental PlayStation 5 emulator | [sharpemu-bin](https://aur.archlinux.org/packages/sharpemu-bin) |
| `thonny-bin` | [thonny/thonny](https://github.com/thonny/thonny) — Python IDE for beginners (bundles a standalone CPython + tcl/tk) | [thonny-bin](https://aur.archlinux.org/packages/thonny-bin) |
| `gearlever-bin` | [mijorus/gearlever](https://github.com/mijorus/gearlever) — "Gear Lever", a GTK4 + LibAdwaita AppImage manager | [gearlever-bin](https://aur.archlinux.org/packages/gearlever-bin) |
| `bottles-bin` | [bottlesdevs/Bottles](https://github.com/bottlesdevs/Bottles) — wine/proton prefix manager (GTK4 + LibAdwaita) | [bottles-bin](https://aur.archlinux.org/packages/bottles-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) |
| `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) |
-43
View File
@@ -1,43 +0,0 @@
pkgbase = bottles-bin
pkgdesc = Easily manage wine and proton prefixes (prebuilt)
pkgver = 64.1
pkgrel = 2
url = https://usebottles.com
arch = any
license = GPL-3.0-only
depends = gtk4
depends = gtksourceview5
depends = hicolor-icon-theme
depends = icoextract
depends = libadwaita
depends = libportal-gtk4
depends = python
depends = python-cairo
depends = python-certifi
depends = python-chardet
depends = python-charset-normalizer
depends = python-gobject
depends = python-idna
depends = python-markdown
depends = python-orjson
depends = python-pefile
depends = python-pycurl
depends = python-requests
depends = python-urllib3
depends = python-yaml
depends = python-yara
optdepends = vkbasalt: post-processing layer that applies the configured effects
optdepends = vulkan-tools: vkcube test / Vulkan info
optdepends = xorg-xdpyinfo: display info detection
optdepends = imagemagick: icon/image conversion
optdepends = vmtouch: preload bottle files into memory
optdepends = mangohud: performance overlay
optdepends = gamemode: feral gamemode integration
optdepends = gamescope: gamescope session integration
optdepends = xterm: fallback terminal for "Run executable in terminal"
provides = bottles
conflicts = bottles
source = bottles-bin-64.1-2.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/bottles-bin-64.1/bottles-bin-64.1.tar.zst
sha256sums = 94dd4c5138ef491fed0502e87be2bebde6e7fe9d2881fc66285d12a0451ef0a3
pkgname = bottles-bin
-34
View File
@@ -1,34 +0,0 @@
# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=bottles-bin
pkgver=64.1
pkgrel=2
pkgdesc="Easily manage wine and proton prefixes (prebuilt)"
arch=('any')
url="https://usebottles.com"
license=('GPL-3.0-only')
depends=('gtk4' 'gtksourceview5' 'hicolor-icon-theme' 'icoextract'
'libadwaita' 'libportal-gtk4' 'python' 'python-cairo'
'python-certifi' 'python-chardet' 'python-charset-normalizer'
'python-gobject' 'python-idna' 'python-markdown' 'python-orjson'
'python-pefile' 'python-pycurl'
'python-requests' 'python-urllib3' 'python-yaml' 'python-yara')
optdepends=('vkbasalt: post-processing layer that applies the configured effects'
'vulkan-tools: vkcube test / Vulkan info'
'xorg-xdpyinfo: display info detection'
'imagemagick: icon/image conversion'
'vmtouch: preload bottle files into memory'
'mangohud: performance overlay'
'gamemode: feral gamemode integration'
'gamescope: gamescope session integration'
'xterm: fallback terminal for "Run executable in terminal"')
provides=('bottles')
conflicts=('bottles')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
sha256sums=('94dd4c5138ef491fed0502e87be2bebde6e7fe9d2881fc66285d12a0451ef0a3')
package() {
cp -a "$srcdir/usr" "$pkgdir/"
}
-81
View File
@@ -1,81 +0,0 @@
# bottles-bin - prebuilt package of https://github.com/bottlesdevs/Bottles
# (GTK4 + LibAdwaita wine/proton prefix manager written in Python).
#
# Upstream only supports Flatpak officially and publishes no usable binary
# assets, so build_artifact() builds from the release tarball, carrying the
# same de-flatpak patch the AUR source package uses (upstream's meson refuses
# to configure outside a Flatpak sandbox and the code hard-requires the
# portal).
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
# resolves Gtk/Adw/GtkSource imports via their typelibs, hence the GUI libs.
BUILD_DEPS=(meson ninja blueprint-compiler gobject-introspection
desktop-file-utils appstream-glib gettext glib2-devel
python python-gobject gtk4 libadwaita gtksourceview5
libportal-gtk4 go python-pip)
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)"
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/$ver.tar.gz" | tar -xz -C "$workdir"
srctree="$workdir/Bottles-$ver"
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 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
# 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"
}
-172
View File
@@ -1,172 +0,0 @@
diff -Naur Bottles-64.1-orig/bottles/frontend/meson.build Bottles-64.1/bottles/frontend/meson.build
--- Bottles-64.1-orig/bottles/frontend/meson.build 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/meson.build 2026-06-25 20:16:08.858675375 +0200
@@ -23,12 +23,6 @@
configuration: conf
)
-fs = import('fs')
-
-if not fs.is_file('/' + '.flatpak-info')
- error('file does not exist')
-endif
-
bottles_sources = [
'__init__.py',
'main.py',
diff -Naur Bottles-64.1-orig/bottles/frontend/views/bottle_details.py Bottles-64.1/bottles/frontend/views/bottle_details.py
--- Bottles-64.1-orig/bottles/frontend/views/bottle_details.py 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/views/bottle_details.py 2026-06-25 20:17:24.688847866 +0200
@@ -21,7 +21,7 @@
from gettext import gettext as _
from typing import Dict, List, Optional
-from gi.repository import Adw, Gdk, Gio, GLib, Gtk, Xdp
+from gi.repository import Adw, Gdk, Gio, GLib, Gtk
from bottles.backend.managers.backup import BackupManager
from bottles.backend.models.config import BottleConfig
@@ -692,20 +692,17 @@
dialog.connect("response", execute)
dialog.show()
- if Xdp.Portal.running_under_sandbox():
- if self.window.settings.get_boolean("show-sandbox-warning"):
- dialog = Adw.MessageDialog.new(
- self.window,
- _("Be Aware of Sandbox"),
- _(
- "Bottles is running in a sandbox, a restricted permission environment needed to keep you safe. If the program won't run, consider moving inside the bottle (3 dots icon on the top), then launch from there."
- ),
- )
- dialog.add_response("dismiss", _("_Dismiss"))
- dialog.connect("response", lambda *args: show_chooser())
- dialog.present()
- else:
- show_chooser()
+ if self.window.settings.get_boolean("show-sandbox-warning"):
+ dialog = Adw.MessageDialog.new(
+ self.window,
+ _("Be Aware of Sandbox"),
+ _(
+ "Bottles is running in a sandbox, a restricted permission environment needed to keep you safe. If the program won't run, consider moving inside the bottle (3 dots icon on the top), then launch from there."
+ ),
+ )
+ dialog.add_response("dismiss", _("_Dismiss"))
+ dialog.connect("response", lambda *args: show_chooser())
+ dialog.present()
else:
show_chooser()
diff -Naur Bottles-64.1-orig/bottles/frontend/views/bottle_preferences.py Bottles-64.1/bottles/frontend/views/bottle_preferences.py
--- Bottles-64.1-orig/bottles/frontend/views/bottle_preferences.py 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/views/bottle_preferences.py 2026-06-25 20:17:51.920386139 +0200
@@ -20,7 +20,7 @@
import re
from gettext import gettext as _
-from gi.repository import Adw, Gdk, Gtk, Xdp
+from gi.repository import Adw, Gdk, Gtk
from bottles.backend.globals import (
gamemode_available,
@@ -141,7 +141,7 @@
self.queue = details.queue
self.details = details
- if not gamemode_available or not Xdp.Portal.running_under_sandbox():
+ if not gamemode_available:
return
_not_available = _("This feature is unavailable on your system.")
diff -Naur Bottles-64.1-orig/bottles/frontend/views/list.py Bottles-64.1/bottles/frontend/views/list.py
--- Bottles-64.1-orig/bottles/frontend/views/list.py 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/views/list.py 2026-06-25 20:18:08.351774840 +0200
@@ -18,7 +18,7 @@
from datetime import datetime
from gettext import gettext as _, ngettext
-from gi.repository import Adw, GLib, Gtk, Xdp
+from gi.repository import Adw, GLib, Gtk
from bottles.backend.models.config import BottleConfig
from bottles.backend.models.result import Result
@@ -83,9 +83,6 @@
def run_executable(self, *_args):
"""Display file dialog for executable"""
- if not Xdp.Portal.running_under_sandbox():
- return
-
def set_path(_dialog, response):
if response != Gtk.ResponseType.ACCEPT:
return
diff -Naur Bottles-64.1-orig/bottles/frontend/views/new_bottle_dialog.py Bottles-64.1/bottles/frontend/views/new_bottle_dialog.py
--- Bottles-64.1-orig/bottles/frontend/views/new_bottle_dialog.py 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/views/new_bottle_dialog.py 2026-06-25 20:18:22.465190406 +0200
@@ -20,7 +20,7 @@
from threading import Event
from typing import Any, Optional
-from gi.repository import Adw, Gio, GLib, GObject, Gtk, Pango, Xdp
+from gi.repository import Adw, Gio, GLib, GObject, Gtk, Pango
from pathvalidate import sanitize_filename
from bottles.backend.models.config import BottleConfig
@@ -86,7 +86,7 @@
super().__init__(**kwargs)
# common variables and references
self.window = GtkUtils.get_parent_window()
- if not self.window or not Xdp.Portal.running_under_sandbox():
+ if not self.window:
return
self.app = self.window.get_application()
diff -Naur Bottles-64.1-orig/bottles/frontend/windows/window.py Bottles-64.1/bottles/frontend/windows/window.py
--- Bottles-64.1-orig/bottles/frontend/windows/window.py 2026-05-30 13:20:17.000000000 +0200
+++ Bottles-64.1/bottles/frontend/windows/window.py 2026-06-25 20:18:50.936202160 +0200
@@ -22,7 +22,7 @@
from gettext import gettext as _
from typing import Optional
-from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk, Xdp
+from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk
from bottles.backend.globals import Paths
from bottles.backend.health import HealthChecker
@@ -125,35 +125,6 @@
manager = Adw.StyleManager.get_default()
manager.set_color_scheme(Adw.ColorScheme.FORCE_DARK)
- # Be VERY explicit that non-sandboxed environments are unsupported
- if not Xdp.Portal.running_under_sandbox():
-
- def response(dialog, response, *args):
- if response == "close":
- quit(1)
-
- body = _(
- "Bottles is only supported within a sandboxed environment. Official sources of Bottles are available at"
- )
- download_url = "usebottles.com/download"
-
- error_dialog = Adw.AlertDialog.new(
- _("Unsupported Environment"),
- f"{body} <a href='https://{download_url}' title='https://{download_url}'>{download_url}.</a>",
- )
-
- error_dialog.add_response("close", _("Close"))
- error_dialog.set_body_use_markup(True)
- error_dialog.connect("response", response)
- error_dialog.present(self)
- logging.error(
- _(
- "Bottles is only supported within a sandboxed format. Official sources of Bottles are available at:"
- )
- )
- logging.error("https://usebottles.com/download/")
- return
-
# Loading view
self.page_loading = LoadingView()
+3 -3
View File
@@ -1,7 +1,7 @@
pkgbase = gearlever-bin
pkgdesc = Manage AppImages with ease (prebuilt)
pkgver = 4.6.2
pkgrel = 2
pkgrel = 3
url = https://gearlever.mijorus.it
arch = any
license = GPL-3.0-or-later
@@ -18,12 +18,12 @@ pkgbase = gearlever-bin
depends = 7zip
depends = binutils
depends = squashfs-tools
depends = dwarfs
depends = fuse2
optdepends = dwarfs: extract AppImages that use a DwarFS filesystem
optdepends = libxml2-legacy: required by the LibreOffice AppImage
provides = gearlever
conflicts = gearlever
source = gearlever-bin-4.6.2-2.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/gearlever-bin-4.6.2/gearlever-bin-4.6.2.tar.zst
source = gearlever-bin-4.6.2-3.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/gearlever-bin-4.6.2/gearlever-bin-4.6.2.tar.zst
sha256sums = 225dd08d1fbdf33bb5979660737cee180f60b8cfa6477f1553025a6c2f5236a5
pkgname = gearlever-bin
+7 -4
View File
@@ -4,16 +4,19 @@
pkgname=gearlever-bin
pkgver=4.6.2
pkgrel=2
pkgrel=3
pkgdesc="Manage AppImages with ease (prebuilt)"
arch=('any')
url="https://gearlever.mijorus.it"
license=('GPL-3.0-or-later')
# dwarfs is only needed for AppImages using a DwarFS filesystem, but a hard
# dependency: without dwarfsck Gear Lever cannot tell those apart from squashfs
# images and fails on them with a confusing "Can't find a valid SQUASHFS
# superblock" from its unsquashfs fallback.
depends=('gtk4' 'libadwaita' 'glib2' 'dconf' 'hicolor-icon-theme' 'python'
'python-gobject' 'python-dbus' 'python-requests' 'python-pyxdg'
'7zip' 'binutils' 'squashfs-tools' 'fuse2')
optdepends=('dwarfs: extract AppImages that use a DwarFS filesystem'
'libxml2-legacy: required by the LibreOffice AppImage')
'7zip' 'binutils' 'squashfs-tools' 'dwarfs' 'fuse2')
optdepends=('libxml2-legacy: required by the LibreOffice AppImage')
provides=('gearlever')
conflicts=('gearlever')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
-29
View File
@@ -1,29 +0,0 @@
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 = linux-wallpaperengine-bin-r627.b016d7d-1.tar.zst::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
-23
View File
@@ -1,23 +0,0 @@
# 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=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::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/"
}
-71
View File
@@ -1,71 +0,0 @@
# 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"
}
+4 -4
View File
@@ -1,6 +1,6 @@
pkgbase = modrinth-app-bin
pkgdesc = Minecraft mod manager and launcher from Modrinth (upstream binary)
pkgver = 0.15.20
pkgver = 0.16.1
pkgrel = 1
url = https://modrinth.com/app
arch = x86_64
@@ -10,10 +10,10 @@ pkgbase = modrinth-app-bin
depends = hicolor-icon-theme
provides = modrinth-app
conflicts = modrinth-app
noextract = modrinth-app-bin-0.15.20.deb
noextract = modrinth-app-bin-0.16.1.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
source = modrinth-app-bin-0.16.1.deb::https://github.com/modrinth/code/releases/download/v0.16.1/Modrinth.App_0.16.1_amd64.deb
sha256sums = 484c721e90f8628550d5920ea0a128fe77cc23f281ef4fdaa82bd9f044345c7e
pkgname = modrinth-app-bin
+2 -2
View File
@@ -3,7 +3,7 @@
# https://github.com/Felitendo/PKGBUILDS
pkgname=modrinth-app-bin
pkgver=0.15.20
pkgver=0.16.1
pkgrel=1
pkgdesc="Minecraft mod manager and launcher from Modrinth (upstream binary)"
arch=('x86_64')
@@ -15,7 +15,7 @@ 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')
sha256sums=('484c721e90f8628550d5920ea0a128fe77cc23f281ef4fdaa82bd9f044345c7e')
package() {
bsdtar -xOf "$srcdir/${pkgname}-${pkgver}.deb" 'data.tar.*' \
+3 -3
View File
@@ -1,6 +1,6 @@
pkgbase = protonplus-bin
pkgdesc = Modern compatibility tools manager (prebuilt)
pkgver = 0.5.21
pkgver = 0.5.22
pkgrel = 1
url = https://github.com/Vysp3r/ProtonPlus
arch = x86_64
@@ -14,7 +14,7 @@ pkgbase = protonplus-bin
depends = hicolor-icon-theme
provides = protonplus
conflicts = protonplus
source = protonplus-bin-0.5.21-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/protonplus-bin-0.5.21/protonplus-bin-0.5.21.tar.zst
sha256sums = 144992c7ad6a614cb05742ba2106cdc6a03329631fd64905932e11dd3636d7f2
source = protonplus-bin-0.5.22-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/protonplus-bin-0.5.22/protonplus-bin-0.5.22.tar.zst
sha256sums = b5e0d6966c62f624017f0672688c3d57b2fda637ecbe47cc50dd043a92c52770
pkgname = protonplus-bin
+2 -2
View File
@@ -3,7 +3,7 @@
# https://github.com/Felitendo/PKGBUILDS
pkgname=protonplus-bin
pkgver=0.5.21
pkgver=0.5.22
pkgrel=1
pkgdesc="Modern compatibility tools manager (prebuilt)"
arch=('x86_64')
@@ -14,7 +14,7 @@ depends=('gtk4' 'json-glib' 'libadwaita' 'libarchive' 'libgee' 'libsoup3'
provides=('protonplus')
conflicts=('protonplus')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
sha256sums=('144992c7ad6a614cb05742ba2106cdc6a03329631fd64905932e11dd3636d7f2')
sha256sums=('b5e0d6966c62f624017f0672688c3d57b2fda637ecbe47cc50dd043a92c52770')
package() {
cp -a "$srcdir/usr" "$pkgdir/"
+3 -3
View File
@@ -1,6 +1,6 @@
pkgbase = wiiudownloader-bin
pkgdesc = Download encrypted Wii U files from Nintendo's official servers (prebuilt)
pkgver = 2.98
pkgver = 2.99
pkgrel = 1
url = https://github.com/Xpl0itU/WiiUDownloader
arch = x86_64
@@ -16,7 +16,7 @@ pkgbase = wiiudownloader-bin
depends = fontconfig
provides = wiiudownloader
conflicts = wiiudownloader
source = wiiudownloader-bin-2.98-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/wiiudownloader-bin-2.98/wiiudownloader-bin-2.98.tar.zst
sha256sums = 5b2bd57e6531aee1774ca3b9acc70bc402eab585a2532a666f4484584412622e
source = wiiudownloader-bin-2.99-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/wiiudownloader-bin-2.99/wiiudownloader-bin-2.99.tar.zst
sha256sums = 1a43185b07869b8c25b71c3d43ddd829fd79af9d4cf6bfcfddb201f12cf8ff2e
pkgname = wiiudownloader-bin
+2 -2
View File
@@ -3,7 +3,7 @@
# https://github.com/Felitendo/PKGBUILDS
pkgname=wiiudownloader-bin
pkgver=2.98
pkgver=2.99
pkgrel=1
pkgdesc="Download encrypted Wii U files from Nintendo's official servers (prebuilt)"
arch=('x86_64')
@@ -14,7 +14,7 @@ depends=('glibc' 'glib2' 'hicolor-icon-theme' 'libx11' 'gtk3' 'gdk-pixbuf2'
provides=('wiiudownloader')
conflicts=('wiiudownloader')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
sha256sums=('5b2bd57e6531aee1774ca3b9acc70bc402eab585a2532a666f4484584412622e')
sha256sums=('1a43185b07869b8c25b71c3d43ddd829fd79af9d4cf6bfcfddb201f12cf8ff2e')
package() {
cp -a "$srcdir/usr" "$pkgdir/"