Package Details: dusklight 1.4.1-2

Git Clone URL: https://aur.archlinux.org/dusklight.git (read-only, click to copy)
Package Base: dusklight
Description: Dusklight brings a classic adventure to PC and mobile platforms with a variety of fixes and improvements.
Upstream URL: https://github.com/TwilitRealm/dusklight
Licenses: CC0-1.0
Conflicts: tp-dusk
Provides: tp-dusk
Replaces: tp-dusk
Submitter: HurricanePootis
Maintainer: HurricanePootis
Last Packager: HurricanePootis
Votes: 12
Popularity: 4.22
First Submitted: 2026-05-13 03:52 (UTC)
Last Updated: 2026-06-19 04:45 (UTC)

Latest Comments

« First ‹ Previous 1 2 3

fruitigearist commented on 2026-05-11 16:14 (UTC) (edited on 2026-05-11 16:22 (UTC) by fruitigearist)

On 1.0.1-5 the initial Dusk menu doesn't show up for me, and the program's icon doesn't show in the task manager etc.

Output if I launch from terminal:

[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element span < div.eyebrow < hero.intro-item.delay-0 < menu < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element div.eyebrow < hero.intro-item.delay-0 < menu < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element button.intro-item.delay-1 < div#menu-list < menu < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element button.intro-item.delay-2 < div#menu-list < menu < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element button.intro-item.delay-3 < div#menu-list < menu < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element span#disc-status-label < div#disc-status < disc-info.intro-item.delay-4 < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element span#disc-version.detail < disc-info.intro-item.delay-4 < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element div.version < version-info.intro-item.delay-5 < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element span#version-text < div.version < version-info.intro-item.delay-5 < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element span#update-message < div#update-status.update < version-info.intro-item.delay-5 < content#root < body.animate-in.disc-ready < #root#main
[WARNING | aurora::rmlui] No font face defined. Missing 'font-family' property. On element button#update-download < div#update-status.update < version-info.intro-item.delay-5 < content#root < body.animate-in.disc-ready < #root#main

HurricanePootis commented on 2026-05-11 13:30 (UTC)

@R0dn3yS

Thank you for implementing my suggestions! As a reminder, to pass all command line arguments to a program when making a wrapper, it needs to "$@" not "@"

diff --git a/launcher.sh b/launcher.sh
index 57062fe..567020f 100644
--- a/launcher.sh
+++ b/launcher.sh
@@ -4,7 +4,7 @@ dir=$(mktemp -d)

 ln -s /usr/lib/tp-dusk/dusk "$dir/dusk" && echo linked 1
 ln -s /usr/share/tp-dusk/res "$dir/res" && echo linked 2
-"/$dir/dusk" "@"
+"/$dir/dusk" "$@"
 wait
 rmdir "$dir"
-exit
\ No newline at end of file
+exit

Thank you!

HurricanePootis commented on 2026-05-11 07:42 (UTC) (edited on 2026-05-11 07:43 (UTC) by HurricanePootis)

@R0dn3yS

I have a few suggestions for your PKGBUILD:

  1. Remove provides=() and conflicts=(). You are the base tp-dusk. Any other derivative of tp-dusk, such as tp-dusk-bin or tp-dusk-git is responsible for putting provides=(tp-dusk) conflicts=(tp-dusk) in their PKGBUILD.
  2. Follow CMake Package Guidelines. I see that you copied the build instructions off of the Github for dusk, which is a good start. However, we can do better. We are going to call CMake with no build type, ask for clang, thinlto, and use lld (as you indicated by including them in makedepends). We are also going to disable dusk update checker as this is an AUR package.
  3. Binaries should never be installed in /usr/share, they need to go into /usr/lib. This is a problem, since dusk is hard coded to check for a directory res/ next to it. Therefore, (I have used this trick in other packages before), we will create a temporary directory (part of coreutils package, which is in base, so everyone who uses arch has this) and link both the binary and directory into there. We will then execute the binary (passing along any flags), then exit and delete everything once done. /tmp on default arch installs is a ram disk, so this isn't expensive to do.
  4. Dusk has an insecure runtime path in it. Therefore, we need to use patchelf to remove it.
diff --git a/PKGBUILD b/PKGBUILD
index 41361b9..09a2973 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,4 +1,5 @@
 # Maintainer: Rodney van den Velden <rodney@dfagaming.nl>
+# Contributor: HurricanePootis <hurricanepootis@protonmail.com>

 pkgname=tp-dusk
 pkgver=1.0.1
@@ -7,10 +8,8 @@ pkgdesc="Dusk is a reverse-engineered reimplementation of Twilight Princess."
 arch=('x86_64')
 url="https://github.com/TwilitRealm/dusk"
 license=('CC0-1.0')
-depends=(libjpeg-turbo glibc curl libgcc sdl3 abseil-cpp freetype2 libstdc++)
-makedepends=(cmake ninja llvm vulkan-headers python python-markupsafe clang lld alsa-lib libpulse libxrandr)
-provides=(tp-dusk)
-conflicts=(tp-dusk-git)
+depends=(libjpeg-turbo glibc libgcc sdl3 abseil-cpp freetype2 libstdc++ hicolor-icon-theme bash)
+makedepends=(cmake ninja llvm vulkan-headers python python-markupsafe clang lld alsa-lib libpulse libxrandr patchelf)
 source=(
   "git+$url#tag=v${pkgver}"
   "git+https://github.com/encounter/aurora.git"
@@ -20,8 +19,8 @@ source=(

 sha256sums=('0d76d2fe29a0273aea84f3d71807c09b08911523ebeca8a7db8c8c8fdaae7022'
             'SKIP'
-            '9bcacbd0a3da8a4149dd8cc4b904f3e9df6af59eb86de5cd6ece1f6ee1179ad5'
-            '1e6547cf4dd69f0ecb6895733dcd13f3e265c6267298c7bf83dd6acbad42fda5')
+            '897e5bb82d8699845fa73a5a70f1d9d28e9a0ed2895bb6351e8a5378912dd6a9'
+            '92ed09437a21fd3e3e935725d6089ce0398771b44e31361114cf9204c3d992a6')

 prepare() {
   cd dusk
@@ -32,18 +31,29 @@ prepare() {
 }

 build() {
-  cd "$srcdir/dusk"
-
-  cmake --preset linux-default-relwithdebinfo
-  cmake --build --preset linux-default-relwithdebinfo
+  cd "$srcdir"
+
+  cmake -B build -S dusk -GNinja \
+  -DCMAKE_BUILD_TYPE=None \
+  -DCMAKE_C_COMPILER=clang \
+  -DCMAKE_CXX_COMPILER=clang++ \
+  -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS} -fuse-ld=lld" \
+  -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS} -fuse-ld=lld" \
+  -DCMAKE_C_FLAGS="${CFLAGS} -flto=thin -DNDEBUG" \
+  -DCMAKE_CXX_FLAGS="${CXXFLAGS} -flto=thin -DNDEBUG" \
+  -DDUSK_ENABLE_UPDATE_CHECKER=OFF
+
+  cmake --build build
 }

 package() {
-  install -Dm 755 "launcher.sh" "${pkgdir}/usr/bin/tp-dusk"
-
-  install -Dm 755 "${srcdir}/dusk/build/linux-default-relwithdebinfo/dusk" "${pkgdir}/usr/share/tp-dusk/dusk"
+  install -Dm755 "${srcdir}/build/dusk" "$pkgdir/usr/lib/${pkgname}/dusk"
+  install -Dm755 "${srcdir}/launcher.sh" "${pkgdir}/usr/bin/${pkgname}"
+  install -dm755 "${pkgdir}/usr/share/${pkgname}"
   cp -r "${srcdir}/dusk/res" "${pkgdir}/usr/share/tp-dusk/res"

-  install -Dm 644 "${srcdir}/dusk/res/icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
-  install -Dm 755 "tp-dusk.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" 
+  install -Dm 644 "${srcdir}/dusk/res/icon.png" "${pkgdir}/usr/share/icons/hicolor/1024x1024/apps/tp-dusk.png"
+  install -Dm 755 "tp-dusk.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+
+  patchelf --remove-rpath "${pkgdir}/usr/lib/${pkgname}/dusk"
 }
diff --git a/launcher.sh b/launcher.sh
index a0033dc..0d7b7c9 100644
--- a/launcher.sh
+++ b/launcher.sh
@@ -1,4 +1,12 @@
-#!/usr/bin/bash
+#!/usr/bin/env sh
+
+dir=$(mktemp -d)
+
+ln -s /usr/lib/tp-dusk/dusk "$dir/dusk" && echo linked 1
+ln -s /usr/share/tp-dusk/res "$dir/res" && echo linked 2
+"/$dir/dusk" "$@"
+wait
+rm "$dir/dusk" "$dir/res"
+rmdir "$dir"
+exit

-cd /usr/share/tp-dusk || exit 0
-/usr/share/tp-dusk/dusk
\ No newline at end of file

kodr commented on 2026-05-10 12:02 (UTC)

it fails during checksum validation.
I had to do this: paru -S --mflags --skipchecksums tp-dusk