Hi, I took the liberty of cleaning up the PKGBUILD. You can find it here https://github.com/loathingKernel/PKGBUILDs/tree/master/aur/duckstation-git .
Some notes about the changes.
gtk3seems to be completely unused and it was removed.libpulse,sndioandlibdrmadded tooptdependstoo.- added
libglvnd,libxrandr,libx11andwaylandas explicit dependecies becausenamcapor building in a clean CHROOT were complaining - added
hicolor-icon-themebecause the icon was moved into the hicolor theme directory structure. That way other themes can override it. - added
qt6-waylandasmakedependandoptdepend, it is needed to run Qt6 applications under a wayland session -
added
jack2inmakedependsandoptdepends. It builds with it in a clean CHROOT. You might want to remove it though as thejack2package conflicts withpipewire-jackif the latter is installed and the user is not building in a clean CHROOT. Otherwise it operates just fine. -
added
duckstation-qt.desktop, it is just cleaner to distribute it as a file with the package instead of a here-script -
added
duckstation-qt.shto be installed in/usr/bin/instead of symlinking the executable. -
I changed the cmake options to more closely follow upstream's AppImage. Namely, duckstation is built with clang/llvm and with
CMAKE_INTERPROCEDURAL_OPTIMIZATION(effectively LTO) enabled. - Upstream is explicit about the options in their CMake invocation so adjusted to that.
USE_DRMKMSwas turned on and the relevant dependency added tomake/optdepends
Pinned Comments
heavysink commented on 2026-07-13 19:21 (UTC) (edited on 2026-07-14 04:22 (UTC) by heavysink)
Important notice
This is an unofficial, community-maintained build recipe intended for private, noncommercial local use. It downloads the upstream DuckStation source and applies Arch-specific changes, including changes needed to build with system libraries.
Do not redistribute modified source code, packages or binaries produced by this recipe. This will violate CC-BY-NC-ND 4.0 license. The resulting build is modified and is not an official DuckStation release.
This package is not supported by the upstream DuckStation developer. Please report Arch-specific build failures, crashes, or behavior differences here rather than to upstream.
Before reporting an apparent emulator bug upstream, reproduce it using an official DuckStation build, such as the official AppImage or Windows release. When reporting it, describe only the behavior observed in that official build.
The upstream developer has no obligation and should not be expected to support this recipe or the environment it creates. Please keep all interactions respectful. Likewise, discussion here should remain technical and should not become personal.
===
The additional packaging restriction in DuckStation’s CMake files should be acknowledged, but I do not think its legal scope has been conclusively established.
Standard CC BY-NC-ND 4.0 permits private, noncommercial adaptations while prohibiting distribution of the adapted material. An independently written PKGBUILD that provides instructions for a local build may also be legally different from distributing modified DuckStation source or binaries.
At the same time, the current CMake files expressly purport to impose an additional packaging restriction, so it would be too categorical to call that restriction either unquestionably enforceable or unquestionably unenforceable. Its effect would depend on the applicable law, the contents of the build recipe and patches, and whether the additional wording constitutes a valid licence or contractual condition.
For practical purposes, this AUR recipe should remain unofficial, its resulting packages should not be redistributed, and Arch-specific problems should not be reported to upstream.
eugene commented on 2025-09-03 18:12 (UTC)
The 'versions' file now includes a curious disclaimer that specifically forbids any packaging scripts from using it.
PN123 commented on 2025-09-03 17:44 (UTC)
Stumbled upon a problem in prepare() while trying to update:
The build fails at this grep. It doesn't find anything because the version strings have been moved to a different file.
They are now listed here: $srcdir/duckstation/scripts/deps/versions