Arch Linux PKGBUILDs I maintain, one folder per package. These are either not
available on the AUR at all, or are customised forks of AUR packages.
Each folder contains the PKGBUILD plus everything it needs at build time —
patches, .install scripts, .desktop entries, launcher scripts and
.SRCINFO. Sources fetched by source=() (tarballs, wheels, git clones) and
makepkg output (src/, pkg/, *.pkg.tar.zst) are not tracked.
git clone https://github.com/ThomasEricB/my-pkgbuilds.git
cd my-pkgbuilds/<package>
makepkg -si| Package | Version | Description |
|---|---|---|
githublauncher-bin |
1.73-3 | Launcher for downloading, managing and running GitHub-hosted apps and game ports, from the prebuilt release (SirDiabo/GithubLauncher). Builds for x86_64 and aarch64. |
libadlmidi |
1.6.1-1 | MIDI playback library with OPL3 (YMF262) emulation (Wohlstand/libADLMIDI). The AUR only has libadlmidi-git; this builds the stable release. |
libopnmidi |
1.6.1-1 | MIDI playback library with OPN2 (YM2612) emulation (Wohlstand/libOPNMIDI). The AUR only has libopnmidi-git; this builds the stable release. |
midieditor |
4.5.0-3 | The Meowchestra fork of MidiEditor (pkgname=midieditor-meowchestra), which has no AUR package. Builds against a vendored rtmidi pinned to commit a3233c22, with a local build patch. |
sus |
20260730.1-2 | Per-wire 12V-2x6 current monitor and overload daemon for ASUS ROG ASTRAL RTX 5090 boards (jan-provaznik/sus). See the notes below. |
The 12V-2x6 connector on the RTX 5090 is rated for roughly 8.5 A per wire at the
card's 600 W limit, and a faulty cable or connector can push that load out of
balance. ASUS ROG ASTRAL boards expose a per-wire voltage/current sensor over the
GPU's SMBus segment; upstream provides a native Linux reader for it, and this is
its packaging. Only ROG-ASTRAL-RTX5090-O32G and the -WHITE variant are
supported — no other boards were available to the upstream authors.
Two binaries are installed:
susm— one-shot or continuous monitor, printing per-pin draw and the min/max mismatch ratio. Needs root for/dev/i2caccess:sudo susm, orsudo susm -t 10s.susd— protection daemon, enabled withsudo systemctl enable --now susd.service. When any wire exceeds the current limit it lowers the power limit, or locks clocks to minimum if the required target falls below the card's configurable ~400 W floor.
susd only ever reduces power — it never restores it. That is upstream's
deliberate design: an overload signals a hardware fault that will not fix itself.
After it fires, check the cable and connector, then undo the limits by hand:
nvidia-smi --power-limit 600
nvidia-smi --reset-gpu-clocks
nvidia-smi --reset-memory-clocksPackaging notes:
- The
susd.serviceunit'sExecStartis repointed from upstream's/usr/local/bin/susdto the packaged/usr/bin/susd. - A
modules-load.dsnippet loadsi2c-devat boot. The sensor is only reachable through/dev/i2c-*and nothing in a stock Arch install guarantees the module is loaded; without itsusdexits 1. To use it before rebooting:sudo modprobe i2c-dev. -fno-pltis stripped from theCGO_*FLAGSand-Wl,-z,lazyadded toCGO_LDFLAGS.go-nvmlleaves everynvml*symbol undefined anddlopen()slibnvidia-ml.so.1insidenvml.Init(), so those symbols must stay lazily bound; Arch's default-fno-pltand-z noweach break that on their own and the binaries fail at runtime withundefined symbol: nvmlGpuInstance…. PIE and partial RELRO are retained.- Upstream ships no LICENSE file (sources carry only "2026 Jan Provaznik"), so
the
licensefield isLicenseRef-unknown.
FFmpeg with CUDA/NVENC and all codecs including nonfree, forked from the AUR package of the same name. Two changes:
- Pinned to the FFmpeg 8.x series. The upstream
pkgver()resolves the newest stable tag of any major version; here it is restricted ton8.*. Thelibav*sonames track the major version, so an automatic jump to 9.x is an ABI break for every installed consumer rather than a drop-in upgrade. - CUDA arch targets the installed GPU. Instead of nvcc's lowest supported
arch, the live compute capability is read from
nvidia-smi, validated againstnvcc --list-gpu-arch, and falls back to the lowest arch when no GPU is visible (e.g. containers).--nvccflagsemits PTX (code=compute_NN) alongside native SASS (code=sm_NN) so the CUDA filters forward-JIT onto future drivers.
Note: the per-package README.md in that folder came from the original AUR
package and still describes the "always builds the newest stable FFmpeg"
behaviour, which the 8.x pin above deliberately changes.
Google AI Edge LiteRT-LM on-device LLM inference CLI, at 0.14.0. Upstream
stopped attaching standalone Linux binaries to GitHub releases as of v0.12.0, so
the AUR recipe (which downloads lit.linux_x86_64) no longer works. This
version installs the PyPI wheels instead — litert-lm (CLI),
litert-lm-api (native engine, arch-specific manylinux wheel) and
litert-lm-builder — via python -m installer, adds aarch64 support, and keeps
/usr/bin/litert as a symlink for compatibility with the pre-0.12 package.
Note: the convert subcommand bootstraps its own venv in ~/.litert-lm/.venv
on first use; everything else runs from the system install.
Fork of the AUR's mpv-full-git, renamed so AUR helpers do not overwrite it
(it provides/conflicts mpv-full-git). Changes:
- Depends on the FFmpeg sonames (
libavcodec.so,libavformat.so, …) rather thanffmpeg-git, so it links against whichever system FFmpeg is installed — including a local CUDA/NVENC build — instead of pulling a conflictingffmpeg-gitfrom the AUR. - Enables the libcurl stream backend (
-Dlibcurl=enabled, plus thecurldependency). - Provides
libmpv.soand pins-Dwin32-smtc=disabled.
The PKGBUILDs and packaging scripts here are provided as-is. Each packaged
project remains under its own upstream licence, declared in the license field
of the respective PKGBUILD.