summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiota2024-06-07 03:42:21 +0000
committerxiota2024-06-07 04:08:22 +0000
commite62fd812cbd6b6afd5221acd51505d15d4045edf (patch)
tree6838735272842bd73c9e626dad8357695e66ca38
parent06bd47ecdceb14f9ac4a7935cbd3566860c16585 (diff)
downloadaur-e62fd812cbd6b6afd5221acd51505d15d4045edf.tar.gz
fix rpath
-rw-r--r--.SRCINFO13
-rw-r--r--PKGBUILD43
2 files changed, 36 insertions, 20 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ff04f59c2285..db7fe3a7ded9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,28 +1,27 @@
pkgbase = duckstation
pkgdesc = Playstation emulator
pkgver = 0.1.6759
- pkgrel = 3
+ pkgrel = 4
url = https://github.com/stenzek/duckstation
arch = x86_64
license = GPL-3.0-only
makedepends = clang
+ makedepends = lld
+ makedepends = llvm
makedepends = cmake
makedepends = extra-cmake-modules
makedepends = git
- makedepends = lld
- makedepends = llvm
makedepends = ninja
- makedepends = patchelf
- makedepends = patchutils
- makedepends = python
makedepends = qt6-tools
makedepends = qt6-wayland
makedepends = spirv-headers
- depends = glslang
+ makedepends = chrpath
+ makedepends = patchutils
depends = libwebp
depends = libxrandr
depends = qt6-base
depends = sdl2
+ depends = glslang
depends = spirv-tools
source = google.shaderc::git+https://github.com/google/shaderc.git
source = ianlancetaylor.libbacktrace::git+https://github.com/ianlancetaylor/libbacktrace.git
diff --git a/PKGBUILD b/PKGBUILD
index 01eb193c0d4f..afc3b43607ec 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -15,18 +15,21 @@ unset _pkgtype
_pkgname="duckstation"
pkgname="$_pkgname${_pkgtype:-}"
pkgver=0.1.6759
-pkgrel=3
+pkgrel=4
pkgdesc="Playstation emulator"
url="https://github.com/stenzek/duckstation"
arch=('x86_64')
license=('GPL-3.0-only')
depends=(
- 'glslang'
+ ## duckstation
'libwebp'
'libxrandr'
'qt6-base'
'sdl2'
+
+ ## shaderc
+ 'glslang'
'spirv-tools'
## implicit
@@ -42,19 +45,27 @@ depends=(
)
makedepends=(
+ ## compiler
'clang'
+ 'lld'
+ 'llvm'
+
+ ## build
'cmake'
'extra-cmake-modules'
'git'
- 'lld'
- 'llvm'
'ninja'
- 'patchelf'
- 'patchutils'
- 'python'
+
+ ## duckstation
'qt6-tools'
'qt6-wayland'
+
+ ## shaderc
'spirv-headers'
+
+ ## fixups
+ 'chrpath'
+ 'patchutils'
)
_src_shaderc="google.shaderc"
@@ -185,6 +196,8 @@ build() {
_build_libbacktrace
_build_shaderc
+
+ LDFLAGS+=" -Wl,--rpath=XORIGIN -Wl,-z,origin"
_build_duckstation
}
@@ -192,17 +205,23 @@ package() {
install -dm755 "$pkgdir/opt/$_pkgname/"
cp --reflink=auto -r build/bin/{resources,translations,duckstation-qt} "$pkgdir/opt/$_pkgname/"
- # add rpath
- patchelf --force-rpath --set-rpath '$ORIGIN' "$pkgdir/opt/$_pkgname/duckstation-qt"
+ # rpath
+ chrpath -r '$ORIGIN' "$pkgdir/opt/$_pkgname/duckstation-qt"
- # bundle libraries
+ # libraries
install -Dm644 "$srcdir/deps/usr/lib/libshaderc_shared.so.1" -t "$pkgdir/opt/$_pkgname/"
+ # icon
+ install -dm755 "$pkgdir/usr/share/pixmaps/"
+ ln -sf "$pkgdir/opt/$_pkgname/resources/images/duck.png" "$pkgdir/usr/share/pixmaps/duckstation.png"
+
+ # script
install -Dm755 /dev/stdin "$pkgdir/usr/bin/duckstation" << END
#!/usr/bin/env bash
exec /opt/$_pkgname/duckstation-qt "\$@"
END
+ # launcher
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/duckstation.desktop" << END
[Desktop Entry]
Type=Application
@@ -215,8 +234,6 @@ Exec=duckstation %f
Categories=Game;Emulator;Qt;
END
- install -dm755 "$pkgdir/usr/share/pixmaps/"
- ln -sf "$pkgdir/opt/$_pkgname/resources/images/duck.png" "$pkgdir/usr/share/pixmaps/duckstation.png"
-
+ # permissions
chmod -R u+rwX,go+rX,go-w "$pkgdir/"
}