Package Details: duckstation-git 0.1.r7059.g487eb10-1

Git Clone URL: https://aur.archlinux.org/duckstation-git.git (read-only, click to copy)
Package Base: duckstation-git
Description: A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version)
Upstream URL: https://github.com/stenzek/duckstation
Keywords: emulator game gaming psone psx
Licenses: Apache-2.0, GPL-3.0-only
Conflicts: duckstation
Provides: duckstation
Submitter: jackdroido
Maintainer: eugene
Last Packager: eugene
Votes: 24
Popularity: 1.69
First Submitted: 2020-04-25 18:24 (UTC)
Last Updated: 2024-07-04 10:46 (UTC)

Dependencies (43)

Required by (0)

Sources (8)

Latest Comments

1 2 3 4 5 6 .. 9 Next › Last »

MaximGun commented on 2024-07-14 21:07 (UTC) (edited on 2024-07-14 21:18 (UTC) by MaximGun)

I realize this is a bit of a bespoke request, but on my configuration I get a argument unused during compilation error because I have -fuse-ld=mold in my makepkg.conf. Would you consider adding the -Qunused-arguments lines to the PKGBUILD as below?

--- PKGBUILD.original   2024-07-14 17:17:32.941723155 -0400
+++ PKGBUILD    2024-07-14 17:17:23.995548951 -0400
@@ -110,6 +110,8 @@
         -DCMAKE_BUILD_TYPE=Release \
         -DCMAKE_C_COMPILER=clang \
         -DCMAKE_CXX_COMPILER=clang++ \
+        -DCMAKE_C_FLAGS="$CFLAGS -Qunused-arguments" \
+        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Qunused-arguments" \
         -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \
@@ -125,6 +127,8 @@
         -DCMAKE_BUILD_TYPE=Release \
         -DCMAKE_C_COMPILER=clang \
         -DCMAKE_CXX_COMPILER=clang++ \
+        -DCMAKE_C_FLAGS="$CFLAGS -Qunused-arguments" \
+        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Qunused-arguments" \
         -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \
@@ -157,6 +161,8 @@
         -DCMAKE_BUILD_TYPE=None \
         -DCMAKE_C_COMPILER=clang \
         -DCMAKE_CXX_COMPILER=clang++ \
+        -DCMAKE_C_FLAGS="$CFLAGS -Qunused-arguments" \
+        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Qunused-arguments" \
         -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \
@@ -175,6 +181,8 @@
         -DCMAKE_BUILD_TYPE=None \
         -DCMAKE_C_COMPILER=clang \
         -DCMAKE_CXX_COMPILER=clang++ \
+        -DCMAKE_C_FLAGS="$CFLAGS -Qunused-arguments" \
+        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Qunused-arguments" \
         -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \
@@ -200,8 +208,8 @@
         -DCMAKE_BUILD_TYPE=None \
         -DCMAKE_C_COMPILER=clang \
         -DCMAKE_CXX_COMPILER=clang++ \
-        -DCMAKE_C_FLAGS="$CFLAGS -Wno-error=format-security" \
-        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=format-security" \
+        -DCMAKE_C_FLAGS="$CFLAGS -Wno-error=format-security -Qunused-arguments" \
+        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=format-security -Qunused-arguments" \
         -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
         -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \

patlefort commented on 2024-07-03 03:54 (UTC)

Your pkgver is set in the future, a commit that doesn't yet exists. Aur helpers will think that there is always an update.

sultanoswing commented on 2024-06-23 11:01 (UTC) (edited on 2024-06-23 11:26 (UTC) by sultanoswing)

Not building - wants a newer version of qt-base:

CMake Error at src/duckstation-qt/CMakeLists.txt:1 (find_package):
Could not find a configuration file for package "Qt6" that is compatible
with requested version "6.7.2".

The following configuration files were considered but not accepted:

/usr/lib/cmake/Qt6/Qt6Config.cmake, version: 6.7.1
/lib/cmake/Qt6/Qt6Config.cmake, version: 6.7.1

And so I installed qt6-base 6.7.2 from the extra-testing repo, then got another make error:

CMake Warning at /usr/lib/cmake/Qt6/Qt6Config.cmake:179 (find_package):
Could not find a configuration file for package "Qt6LinguistTools" that is
compatible with requested version "6.7.2".

The following configuration files were considered but not accepted:
/usr/lib/cmake/Qt6LinguistTools/Qt6LinguistToolsConfig.cmake, version: 6.7.1

Call Stack (most recent call first):
src/duckstation-qt/CMakeLists.txt:1 (find_package)

CMake Error at src/duckstation-qt/CMakeLists.txt:1 (find_package):
Found package configuration file:
/usr/lib/cmake/Qt6/Qt6Config.cmake

but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
FOUND.  Reason given by package:

Failed to find required Qt component "LinguistTools".

Expected Config file at
"/usr/lib/cmake/Qt6LinguistTools/Qt6LinguistToolsConfig.cmake" exists

Configuring with --debug-find-pkg=Qt6LinguistTools might reveal details why
the package was not found.

Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
of the path variables that find_package uses to try and find the package.

And so you also need qt6-tools 6.7.2-1 from extra-testing

eugene commented on 2024-05-27 00:13 (UTC)

@MaximGun, @LarryDave I've updated the package to bundle patched version of shaderc. So you should now have no issues having both pcsx2 and duckstation installed.

MaximGun commented on 2024-05-25 14:08 (UTC)

Failing to build for me:

FAILED: src/util/CMakeFiles/util.dir/gpu_device.cpp.o 
/usr/lib/ccache/bin/clang++ -DENABLE_EGL=1 -DENABLE_OPENGL=1 -DENABLE_VULKAN=1 -DENABLE_WAYLAND=1 -DENABLE_X11=1 -DSOUNDTOUCH_FLOAT_SAMPLES -DST_NO_EXCEPTION_HANDLING=1 -DXXH_STATIC_LINKING_ONLY -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/src/util/.. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/src/common/.. -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/fmt/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/fast_float/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/simpleini/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/imgui/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/libchdr/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/soundtouch/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/xxhash/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/reshadefx/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/glad/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/vulkan/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/cubeb/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/freesurround/include -I/home/maximgun/.cache/yay/duckstation-git/src/duckstation/dep/kissfft/include -isystem /usr/include/freetype2 -isystem /usr/include/SDL2 -march=znver3 -mtune=generic -O3 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -fuse-ld=mold         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer         -Wno-implicit-function-declaration -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -Wno-error=format-security -Wno-switch -fno-exceptions -fno-rtti -DFMT_EXCEPTIONS=0 -O3 -DNDEBUG -std=gnu++20 -flto=thin -Winvalid-pch -Xclang -include-pch -Xclang /home/maximgun/.cache/yay/duckstation-git/src/build/src/util/CMakeFiles/util.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /home/maximgun/.cache/yay/duckstation-git/src/build/src/util/CMakeFiles/util.dir/cmake_pch.hxx -MD -MT src/util/CMakeFiles/util.dir/gpu_device.cpp.o -MF src/util/CMakeFiles/util.dir/gpu_device.cpp.o.d -o src/util/CMakeFiles/util.dir/gpu_device.cpp.o -c /home/maximgun/.cache/yay/duckstation-git/src/duckstation/src/util/gpu_device.cpp
clang++: warning: argument unused during compilation: '-fuse-ld=mold' [-Wunused-command-line-argument]
/home/maximgun/.cache/yay/duckstation-git/src/duckstation/src/util/gpu_device.cpp:1226:79: error: too few arguments to function call, expected 3, have 1
1226 |     dyn_shaderc::shaderc_compile_options_set_generate_debug_info(options.get());
    |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              ^
/home/maximgun/.cache/yay/duckstation-git/src/duckstation/src/util/gpu_device.cpp:1239:56: error: too few arguments to function call, expected 8, have 7
1237 |     dyn_shaderc::shaderc_compile_into_spv(dyn_shaderc::s_compiler.get(), source.data(), source.length(),
    |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1238 |                                           stage_kinds[static_cast<size_t>(stage)], "source", entry_point,
1239 |                                           options.get()),
    |                                                        ^
2 errors generated.

LarryDave commented on 2024-05-14 09:13 (UTC)

Can't build because now this packages needs normal shaderc, while pcsx2-git needs shaderc-non-semantic-debug. Don't know what to do, help? :D

eugene commented on 2024-04-18 10:25 (UTC)

I adopted most of your changes, @sl1pkn07. Your input is greatly appreciated.

sl1pkn07 commented on 2024-04-17 19:16 (UTC)

take one:. please test (for me build and run bioses, not tested with games)

# Contributor: katt <magunasu.b97@gmail.com>

pkgname=duckstation-git
_pkgname=duckstation
pkgver=0.1.r6674.gd918705
pkgdesc='A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version)'
pkgrel=1
arch=(x86_64 aarch64)
url=https://github.com/stenzek/duckstation
license=(GPL-3.0-only)
depends=(
    sh
    glibc
    gcc-libs
    sdl2
    qt6-base
    libwebp libwebp.so
    libjpeg-turbo libjpeg.so
    libpng libpng16.so
    libxrandr
    libx11
    freetype2 libfreetype.so
    zstd libzstd.so
    zlib libz.so
    dbus libdbus-1.so
    curl libcurl.so
    systemd-libs libudev.so
    hicolor-icon-theme
    libbacktrace-git libbacktrace.so
    )
makedepends=(
    git
    cmake
    clang
    lld
    llvm
    extra-cmake-modules
    qt6-tools
    qt6-wayland
    libdrm
    libpulse
    libwebp
    alsa-lib
    sndio
    ninja
    jack
    python
    )
optdepends=(
    'qt6-wayland: Wayland support'
    'libpulse: Pulseaudio support'
    'sndio: Small audio support'
    'alsa-lib: ALSA support'
    'jack: JACK support'
)
provides=('duckstation')
conflicts=('duckstation')
source=(git+"$url".git
    git+https://github.com/google/shaderc.git#tag=v2024.0
    git+https://github.com/KhronosGroup/glslang.git#commit=d73712b8f6c9047b09e99614e20d456d5ada2390
    git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=8b246ff75c6615ba4532fe4fde20f1be090c3764
    git+https://github.com/KhronosGroup/SPIRV-Tools.git#commit=04896c462d9f3f504c99a4698605b6524af813c1
    duckstation-qt.desktop
    duckstation-qt.sh)
sha256sums=(
    'SKIP'
    'c1f935c1e0338e274cea4f106fc3b13e02f4150e504a255ddb18221bd80bb416'
    '8c97fbe90abb311903b29d1fec8799e6e8a618ed2b69de6833dfed9252c85dad'
    'bbbdf1f65d11a5e6a1f03da5804e555af9c027e76f9dd22135a092f88b8a9b2b'
    '56bb21ba0a74b6a489398d5a6d429d7e38346ef67c21ee6df00395c990224701'
    'ec2d7358f81598390a8ceca2d1974be3e5f7c45602b550c89a1e9323ab45474b'
    '221a8fc0d1f0cebdf281acc26484e98ebbb59f876e12fdef3f03cf91380e31f5'
)
options=('!lto')

pkgver() {
    cd "$srcdir/$_pkgname"
    git describe --long --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
    echo "Building shaderc..."
    cd "$srcdir/shaderc"
    pushd third_party
        ln -sf ../../glslang ./
        ln -sf ../../SPIRV-Headers ./spirv-headers
        ln -sf ../../SPIRV-Tools ./spirv-tools
    popd
    git apply "$srcdir/$_pkgname/scripts/shaderc-changes.patch" \
      --exclude=CMakeLists.txt \
      --exclude=libshaderc/CMakeLists.txt \
      --exclude third_party/CMakeLists.txt

    cmake -B build \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_PREFIX_PATH="$srcdir/deps" \
        -DCMAKE_INSTALL_PREFIX="$srcdir/deps" \
        -DSHADERC_SKIP_TESTS=ON \
        -DSHADERC_SKIP_EXAMPLES=ON \
        -DSHADERC_SKIP_COPYRIGHT_CHECK=ON \
        -G Ninja
    cmake --build build --parallel
    cmake --install build

    echo "Building duckstation..."
    cd "$srcdir"

    # preparation for find shaderc as static
    sed -e 's|shaderc_shared|shaderc_combined|g' \
        -e 's|PUBLIC Shaderc|PRIVATE Shaderc|g' \
        -i duckstation/CMakeModules/FindShaderc.cmake \
        -i duckstation/src/util/CMakeLists.txt
    sed '/INTERFACE_COMPILE/d' -i duckstation/CMakeModules/FindShaderc.cmake

    cmake -B build -S duckstation \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_C_COMPILER=clang \
        -DCMAKE_CXX_COMPILER=clang++ \
        -DCMAKE_C_FLAGS="$CFLAGS -Wno-error=format-security" \
        -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=format-security" \
        -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
        -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
        -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \
        -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
        -DCMAKE_PREFIX_PATH="$srcdir/deps" \
        -DCMAKE_SKIP_RPATH=ON \
        -DBUILD_NOGUI_FRONTEND=OFF \
        -DBUILD_QT_FRONTEND=ON \
        -G Ninja \
        -Wno-dev
    cmake --build build --parallel
}

package() {
    # Initially install everything into /usr/lib/duckstation
    install -m 755 -d "${pkgdir}/usr/lib"
    cp -drv --no-preserve='ownership' build/bin "${pkgdir}/usr/lib/${_pkgname}"

    # Move shared data to /usr/share/duckstation
    cd "${pkgdir}/usr/lib/${_pkgname}"
    install -m 755 -d "${pkgdir}/usr/share/${_pkgname}"
    for _dir in resources translations
    do
        mv "${_dir}" "${pkgdir}/usr/share/${_pkgname}"
        ln -s "/usr/share/${_pkgname}/${_dir}" .
    done

    # Install additional license
    install -m 755 -d "${pkgdir}/usr/share/licenses/${pkgname}/"
    mv "${pkgdir}/usr/share/${_pkgname}/resources/thirdparty.html" "${pkgdir}/usr/share/licenses/${pkgname}/"
    ln -s "/usr/share/licenses/${pkgname}/thirdparty.html" "${pkgdir}/usr/share/${_pkgname}/resources/"

    install -Dvm755 "${srcdir}/duckstation-qt.sh" "${pkgdir}/usr/bin/duckstation-qt"
    install -Dvm644 "${srcdir}/duckstation-qt.desktop" "${pkgdir}/usr/share/applications/duckstation-qt.desktop"
    install -Dvm644 "${pkgdir}/usr/share/${_pkgname}/resources/images/duck.png" "${pkgdir}/usr/share/icons/hicolor/64x64/apps/duckstation-qt.png"
}

i take the liberty to add some dependencies described in the build process. can remove it if not need at all

greetings