@HurricanePootis, Thanks for the help, I tried building it in chroot but my system still froze. I fixed the issue for now by building citron while isolating to multi-user. I concluded that the problem is due likely to some incompatibility with NVIDIA proprietary drivers.
Search Criteria
Package Details: citron 0.11.0-1
Package Actions
| Git Clone URL: | https://aur.archlinux.org/citron.git (read-only, click to copy) |
|---|---|
| Package Base: | citron |
| Description: | Nintendo Switch emulator forked from yuzu. |
| Upstream URL: | https://citron-emu.org |
| Keywords: | emulator nintendo switch yuzu |
| Licenses: | GPL-2.0-or-later |
| Submitter: | None |
| Maintainer: | HurricanePootis |
| Last Packager: | HurricanePootis |
| Votes: | 17 |
| Popularity: | 2.49 |
| First Submitted: | 2025-01-20 20:23 (UTC) |
| Last Updated: | 2025-11-12 05:45 (UTC) |
Dependencies (36)
- bash (bash-devel-gitAUR, bash-gitAUR)
- boost-libs
- brotli (brotli-gitAUR)
- enet (enet-gtkorvo-gitAUR, enet-gitAUR)
- ffmpeg (ffmpeg-nvcodec-11-1-gitAUR, ffmpeg-ffplayoutAUR, ffmpeg-cudaAUR, ffmpeg-gitAUR, ffmpeg-headlessAUR, ffmpeg-obsAUR, ffmpeg-libfdk_aacAUR, ffmpeg-decklinkAUR, ffmpeg-amd-fullAUR, ffmpeg-amd-full-gitAUR, ffmpeg-fullAUR, ffmpeg-full-gitAUR)
- fmt (fmt-gitAUR)
- gcc-libs (gcc-libs-gitAUR, gccrs-libs-gitAUR, gcc-libs-snapshotAUR)
- glibc (glibc-gitAUR, glibc-eacAUR)
- hicolor-icon-theme (hicolor-icon-theme-gitAUR)
- libusb (libusb-gitAUR)
- libva (libva-gitAUR, libva-headlessAUR, intel-media-stack-legacy-binAUR, intel-media-stack-binAUR)
- lz4 (lz4-gitAUR)
- openal (openal-gitAUR)
- openssl (openssl-gitAUR, openssl-aegisAUR, openssl-staticAUR)
- opus (opus-gitAUR)
- qt6-base (qt6-base-gitAUR, qt6-base-headlessAUR, qt6-base-hifpsAUR, qt6-base-scrollfixAUR, qt6-base-scrollfixAUR, qt6-xcb-private-headers-scrollfixAUR, qt6-xcb-private-headers-scrollfixAUR)
- qt6-webengine
- sdl2AUR (sdl2-compat-gitAUR, sdl2-gitAUR, sdl2-compat)
- speexdsp (speexdsp-gitAUR)
- zlib (zlib-gitAUR, zlib-ng-compat-gitAUR, zlib-ng-compat)
- Show 16 more dependencies...
Required by (0)
Sources (23)
Iacoviola commented on 2025-10-26 10:52 (UTC)
HurricanePootis commented on 2025-10-25 21:42 (UTC)
@Iacoviola,
If you can, install the package devtools and build citron with the command extra-x86_64-build. This will automatically create a clean chroot at /var/lib/archbuild/extra-x86_64 and make the package in there. It should build properly, as I am able to build it in there myself. If it fails, then let me know. If your system crashes, try forcing your build to only use one threaded compile. It would be really slow, but you may not run out of system resources. If it is a system problem, then I don't know how I could help you, but I would try my best with whatever information I am given.
Iacoviola commented on 2025-10-25 17:11 (UTC)
Build fails on my system once again, I don't know whether this is a problem with my computer or whether everyone is experiencing this. I cannot add the error message from the build process because 90% of the times I try to build the package result in my system freezing without recovering (I am not running out of RAM). Just wanted to know if anyone has this happening or if you have any suggestions for me.
skogsmaskin commented on 2025-10-14 21:25 (UTC) (edited on 2025-10-14 21:26 (UTC) by skogsmaskin)
If a rebuild does not fix it, please notify me. If it does, also notify me :3.
@HurricanePootis, I can confirm that it builds successfully.
HurricanePootis commented on 2025-10-13 20:59 (UTC)
I recently patched citron to work with 6.10.0. Part of this patch was using the GuiPrivate. I got a warning where it says that by using the private api, citron may be locked to a specific version of Qt 6. Therefore, I am writing this comment in case a future Qt6 update breaks citron. If a rebuild does not fix it, please notify me. If it does, also notify me :3.
HurricanePootis commented on 2025-10-12 21:10 (UTC)
@korialo his patch does work. Qt 6.10.0 now makes qplatformnativeinterface part of the private api or whatever for the Gui.
Korialo commented on 2025-10-12 21:09 (UTC) (edited on 2025-10-13 10:57 (UTC) by Korialo)
@skogsmaskin How is your patch fixes the fact that the header qpa/qplatformnativeinterface.h does not exist for the compiler while building the qt_common.cpp? the correct path for our distro would be like this 6.10.0/QtGui/qpa/qplatformnativeinterface.h
skogsmaskin commented on 2025-10-12 20:07 (UTC)
Got it working with QT 6.10 with the following patching of src/citron/src/CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 947a1615b..d6f5f17f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -420,7 +420,7 @@ if (ENABLE_QT)
download_qt(6.7.3)
endif()
- find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent)
+ find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent GuiPrivate)
if (UNIX AND NOT APPLE)
find_package(Qt6 REQUIRED COMPONENTS DBus)
@@ -463,7 +463,7 @@ endif()
function(set_citron_qt_components)
# Best practice is to ask for all components at once, so they are from the same version
-set(CITRON_QT_COMPONENTS2 Core Widgets Concurrent)
+set(CITRON_QT_COMPONENTS2 Core Widgets Concurrent GuiPrivate)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
list(APPEND CITRON_QT_COMPONENTS2 DBus)
endif()
@@ -672,6 +672,10 @@ endfunction()
# Prevent boost from linking against libs when building
target_link_libraries(Boost::headers INTERFACE Boost::disable_autolinking)
+
+# Link against the private GUI module
+target_link_libraries(Qt6::GuiPrivate)
+
skogsmaskin commented on 2025-10-12 15:38 (UTC) (edited on 2025-10-12 15:46 (UTC) by skogsmaskin)
@eradan: I have the same error. So, yes, something changed with the QT 6.10 update. I found this, which seems related.
Before the error you posted, there is another error:
/home/xxx/Downloads/citron/src/citron/src/citron/qt_common.cpp:12:10: fatal error: qpa/qplatformnativeinterface.h: No such file or directory
12 | #include <qpa/qplatformnativeinterface.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
eradan commented on 2025-10-12 12:50 (UTC)
I'm still unable to build. Since the recent pacman -Syu which updated qt6-base to 6.10.0-1, the citron build is failing with a fatal compilation error. It appears the source code is referencing a Qt 5-style private header path that has been removed or deprecated in 6.10.x. This or I have some f'd up dependencies on my system. Can anyone confirm this or are you all able to build with the latest packages?
Pinned Comments
HurricanePootis commented on 2025-10-13 20:59 (UTC)
I recently patched citron to work with 6.10.0. Part of this patch was using the GuiPrivate. I got a warning where it says that by using the private api, citron may be locked to a specific version of Qt 6. Therefore, I am writing this comment in case a future Qt6 update breaks citron. If a rebuild does not fix it, please notify me. If it does, also notify me :3.