aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranzQDH <f.pitschmann@icloud.com>2026-11-03 08:49:02 +0100
committerGitHub <noreply@github.com>2026-11-03 08:49:02 +0100
commit46967a1b84e857a783ace6dcbabffddd008463ff (patch)
tree6a8f5fba9d243116242a4e9f58fa564a4fa5593c
parent4b62edbeb2a97e5d50431019ea4027d2e44141e7 (diff)
Add Arch Linux eglantine-git Package (#323)
This PR introduces an Arch Linux development package called eglantine-git, addressing Issue #167. The package allows Arch Linux users to build and install Eglantine directly from its source code and keep it up to date through AUR helpers such as yay or paru. Changes Add a PKGBUILD for building Eglantine from the nx2 branch. Build both the graphical application (eglantine) and the CLI tool (eden-cli). Use system-provided dependencies for Qt, SDL3 and FFmpeg. Integrate the project's installation rules. Add the expected desktop icon name so the application icon is displayed correctly. Disable the application's built-in updater, as updates are handled through the package manager. Add Qt Wayland as an optional dependency. Validation bash -n PKGBUILD passes. git diff --check passes. A full package build and runtime test have not yet been performed in an Arch Linux environment. namcap validation is also pending. Further testing on Arch Linux is required to verify the complete build and installation process. Assisted by: Claude Opus 5.5
-rw-r--r--dist/packaging/arch/eglantine-git/PKGBUILD78
-rw-r--r--dist/packaging/arch/eglantine-git/README.md26
2 files changed, 104 insertions, 0 deletions
diff --git a/dist/packaging/arch/eglantine-git/PKGBUILD b/dist/packaging/arch/eglantine-git/PKGBUILD
new file mode 100644
index 0000000000..2c536e7b98
--- /dev/null
+++ b/dist/packaging/arch/eglantine-git/PKGBUILD
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+pkgname=eglantine-git
+pkgver=0.r0.g0000000
+pkgrel=1
+pkgdesc='Nintendo Switch emulator (development branch)'
+arch=('x86_64')
+url='https://github.com/Djihads80/Eglantine'
+license=('GPL-3.0-or-later')
+depends=(
+ 'enet'
+ 'ffmpeg'
+ 'libusb'
+ 'opus'
+ 'openssl'
+ 'qt6-base'
+ 'qt6-charts'
+ 'sdl3'
+ 'vulkan-icd-loader'
+)
+makedepends=(
+ 'boost'
+ 'cmake'
+ 'git'
+ 'glslang'
+ 'libzip'
+ 'lz4'
+ 'ninja'
+ 'nlohmann-json'
+ 'opus'
+ 'qt6-base'
+ 'qt6-charts'
+ 'spirv-headers'
+ 'spirv-tools'
+ 'vulkan-headers'
+ 'vulkan-utility-libraries'
+ 'xbyak'
+ 'zlib'
+ 'zstd'
+)
+optdepends=(
+ 'qt6-wayland: native Wayland support'
+)
+provides=('eglantine')
+conflicts=('eglantine')
+source=("eglantine::git+https://github.com/Djihads80/Eglantine.git#branch=nx2")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/eglantine"
+ printf '0.r%s.g%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
+}
+
+build() {
+ cmake -S "$srcdir/eglantine" -B "$srcdir/build" -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DENABLE_QT=ON \
+ -DENABLE_UPDATE_CHECKER=OFF \
+ -DYUZU_CMD=ON \
+ -DYUZU_ROOM=OFF \
+ -DYUZU_USE_BUNDLED_QT=OFF \
+ -DYUZU_USE_BUNDLED_SDL3=OFF \
+ -DYUZU_USE_BUNDLED_FFMPEG=OFF \
+ -DYUZU_TESTS=OFF \
+ -DBUILD_TESTING=OFF
+ cmake --build "$srcdir/build" --parallel
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install "$srcdir/build"
+
+ # The desktop entry uses the Eglantine icon name; the upstream install uses
+ # the older Eden filename, so install an alias that matches the desktop file.
+ install -Dm644 "$srcdir/eglantine/dist/dev.eden_emu.eden.svg" \
+ "$pkgdir/usr/share/icons/hicolor/scalable/apps/dev.eglantine.eglantine.svg"
+}
diff --git a/dist/packaging/arch/eglantine-git/README.md b/dist/packaging/arch/eglantine-git/README.md
new file mode 100644
index 0000000000..ef201872c4
--- /dev/null
+++ b/dist/packaging/arch/eglantine-git/README.md
@@ -0,0 +1,26 @@
+# Arch Linux development package
+
+This directory contains a draft `eglantine-git` PKGBUILD for the open Linux
+packaging request in [issue #167](https://github.com/Djihads80/Eglantine/issues/167).
+It builds the `nx2` branch from source against Arch's system Qt, SDL3 and FFmpeg.
+That avoids shipping Ubuntu-linked binaries to a rolling-release distribution
+and gives the Qt frontend access to the host's platform plugins, including
+Wayland when `qt6-wayland` is installed.
+
+## Local build
+
+On an up-to-date Arch Linux system, install the dependencies listed in
+`PKGBUILD`, then run:
+
+```sh
+makepkg --syncdeps --cleanbuild
+```
+
+For package review, also build it in a clean chroot with `extra-x86_64-build`
+and inspect the result with `namcap`. The source branch moves over time, so
+review the generated `.SRCINFO` after each `pkgver` update before publishing
+this recipe to the AUR.
+
+This recipe is a starting point for review, not an official AUR package. It
+does not modify the project's release binaries or CI workflow. The updater is
+disabled because package updates should be handled by pacman/AUR helpers.