Package Details: duckstation-git 0.1.r8555.gf7d7eec-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: cc-by-nc-nd-4.0
Conflicts: duckstation
Provides: duckstation
Submitter: jackdroido
Maintainer: eugene
Last Packager: eugene
Votes: 27
Popularity: 0.71
First Submitted: 2020-04-25 18:24 (UTC)
Last Updated: 2025-01-30 23:54 (UTC)

Required by (0)

Sources (9)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 11 Next › Last »

exploder-jimmy commented on 2023-08-18 03:48 (UTC) (edited on 2023-08-18 03:58 (UTC) by exploder-jimmy)

@eugene Maybe add an .install file?

Something like this:

duckstation-git.install
---
post_upgrade() {
  echo "If you are running Wayland session, make sure qt6-wayland package is installed."
}

post_install() {
  post_upgrade
}

And remove it from both optdepends and depends, since it's already optional for qt6-base: qt6-wayland: to run Qt6 applications in a Wayland session.

exploder-jimmy commented on 2023-08-18 03:22 (UTC)

I think it is wrong to force a wayland dependency to all users

I think so as well.

@eugene Please see https://wiki.archlinux.org/title/Arch_package_guidelines#Package_etiquette

Any optional dependencies that are not needed to run the package or have it generally function should not be included in the depends array;

loathingkernel commented on 2023-08-17 17:06 (UTC) (edited on 2023-08-17 17:06 (UTC) by loathingkernel)

I think it is wrong to force a wayland dependency to all users when the issue is clearly an oversight by the user in this specific case. The optional dependency is there and pacman will alert for it. I assume there is a reason that most software in Arch is only optionally depending on qt6-wayland unless absolutely necessary.

eugene commented on 2023-08-17 10:15 (UTC)

@ShalokShalom: qt6-wayland was optional dependency, but I think it will be fine to make it mandatory. So be it.

ShalokShalom commented on 2023-08-17 08:35 (UTC) (edited on 2023-08-17 08:36 (UTC) by ShalokShalom)

This is missing a dependency, I think.

qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vkkhrdisplay, vnc, xcb.

FabioLolix commented on 2023-08-12 21:01 (UTC)

it's due to format-security which is most likely being forced by makepkg/PKGBUILD settings.

Yes it is forced by makepkg.conf, however format-security isn't a new addition, this is likely a regression upstream because it worked before but issues are disabled on github

noabody commented on 2023-08-12 20:23 (UTC) (edited on 2023-08-12 20:24 (UTC) by noabody)

As FabioLolix pointed out, it's due to format-security which is most likely being forced by makepkg/PKGBUILD settings. You can check with:

grep -A1 -B1 -Pi 'werror' /etc/makepkg.conf 
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
        -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
        -fstack-clash-protection -fcf-protection"

With that in mind, another option would be to do this in the build section:

+  export CFLAGS="${CFLAGS// -Werror=format-security}"
+  export CXXFLAGS="$CFLAGS"

Which strips format-security out of the global flags being forced by makepkg/PKGBUILD. It should also be possible to do this options=!buildflags but I've never seen it work.

FabioLolix commented on 2023-08-12 19:58 (UTC)

I can confirm the build problem which more precisely is:

/home/fabio/Dev/pkg_make/TOBUILD/duckstation-git/src/duckstation/src/util/../common/log.h:70:39: error: format not a string literal and no format arguments [-Werror=format-security]
   70 | #define Log_DevPrintf(...) Log::Writef(___LogChannel___, __func__, LOGLEVEL_DEV, __VA_ARGS__)
      |                            ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fabio/Dev/pkg_make/TOBUILD/duckstation-git/src/duckstation/src/util/cd_image_chd.cpp:166:7: note: in expansion of macro 'Log_DevPrintf'
  166 |       Log_DevPrintf(fmt::format("Found parent CHD '{}' for '{}'.", Path::GetFileName(fd.FileName), Path::GetFileName(filename)).c_str());
      |       ^~~~~~~~~~~~~
cc1plus: some warnings being treated as errors

and can be bypassed by adding right after build():

  CFLAGS+=" -Wno-error=format-security"
  CXXFLAGS+=" -Wno-error=format-security"
  export CFLAGS
  export CXXFLAGS

xAsh commented on 2023-08-12 19:38 (UTC)

can't build since latest commit (FAILED: src/util/CMakeFiles/util.dir/cd_image_chd.cpp.o)

exploder-jimmy commented on 2023-07-25 22:18 (UTC)

added jack2 in makedepends and optdepends. It builds with it in a clean CHROOT. You might want to remove it though as the jack2 package conflicts with pipewire-jack if the latter is installed and the user is not building in a clean CHROOT. Otherwise it operates just fine.

@loathingkernel, Wouldn't it make sense to add jack instead of jack2 there?
Since both jack2 and pipewire-jack provides jack, and their provides=() arrays are exactly the same.

Or does duckstation ignore pipewire-jack during build time for some reason?