Package Details: citron-git 0.6.1.r62.g046538b-2

Git Clone URL: https://aur.archlinux.org/citron-git.git (read-only, click to copy)
Package Base: citron-git
Description: Nintendo Switch emulator forked from yuzu.
Upstream URL: https://citron-emu.org
Keywords: emulator nintendo switch yuzu
Licenses: GPL-2.0-or-later
Conflicts: citron
Provides: citron
Submitter: None
Maintainer: HurricanePootis
Last Packager: HurricanePootis
Votes: 6
Popularity: 0.74
First Submitted: 2025-01-20 20:17 (UTC)
Last Updated: 2025-06-10 04:01 (UTC)

Latest Comments

1 2 3 Next › Last »

HurricanePootis commented on 2025-06-08 06:59 (UTC) (edited on 2025-06-08 07:09 (UTC) by HurricanePootis)

diff --git a/PKGBUILD b/PKGBUILD
index 93d2cbd..d72dccd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,20 +1,23 @@
 # Maintainer: Sébastien TERRIER <ouinouin at ouinouin dot eu>
 _pkgname=citron
 pkgname=citron-git
-pkgver=v0.6.1.canary.refresh.r52.gba98d0f
+pkgver=0.6.1.r62.g046538b
 pkgrel=1
+epoch=1
 pkgdesc="Nintendo Switch emulator forked from yuzu."
 arch=(x86_64)
 url=https://citron-emu.org
 license=(GPL-2.0-or-later)
 provides=('citron')
-depends=('qt6-base' 'qt6-webengine' 'qt6-multimedia' 'qt6-wayland' 'qt6-tools' 'ffmpeg' 'sdl2-compat' 'gamemode' 'hicolor-icon-theme' 'brotli' 'libusb' 'enet' 'opus' 'boost')
-makedepends=('curl' 'git' 'cmake' 'clang' 'llvm' 'doxygen' 'python-pip' 'glslang' 'ninja' 'zip' 'unzip' 'libzip' 'fmt' 'nlohmann-json' 'zlib' 'zstd')
+depends=('qt6-base' 'qt6-webengine' 'ffmpeg' 'sdl2-compat' 'hicolor-icon-theme' 'brotli' 'libusb' 'enet' 'opus' 'fmt' 'zydis' 'glibc' 'boost-libs' 'gcc-libs' 'lz4' 'openssl' 'zstd' 'libva' 'zlib')
+makedepends=('git' 'cmake' 'glslang' 'ninja' 'doxygen' 'nlohmann-json' 'vulkan-headers' 'boost' 'qt6-tools' 'qt6-multimedia' 'rapidjson')
+optdepends=('gamemode: Gamemoded support')
 conflicts=('citron')
 options=(!debug)
 source=(citron::git+https://git.citron-emu.org/citron/emu.git
         cubeb::git+https://github.com/mozilla/cubeb.git
         dynarmic::git+https://github.com/yuzu-mirror/dynarmic.git
+   discord-rpc::git+https://github.com/yuzu-mirror/discord-rpc.git
         Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
         sirit::git+https://github.com/yuzu-mirror/sirit.git
         SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers
@@ -56,11 +59,12 @@ b2sums=('SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
+        'SKIP'
         'SKIP')

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

 prepare() {
@@ -72,10 +76,9 @@ prepare() {
   git rm -f externals/opus
   git rm -f externals/vcpkg
   git rm -f externals/libusb/libusb
-  git rm -f externals/discord-rpc

   git submodule init
-  for _submodule in cubeb dynarmic Vulkan-Headers sirit mbedtls xbyak cpp-httplib cpp-jwt libadrenotools tzdb_to_nx VulkanMemoryAllocator breakpad simpleini oaknut Vulkan-Utility-Libraries;
+  for _submodule in cubeb dynarmic discord-rpc Vulkan-Headers sirit mbedtls xbyak cpp-httplib cpp-jwt libadrenotools tzdb_to_nx VulkanMemoryAllocator breakpad simpleini oaknut Vulkan-Utility-Libraries;
     do
       git config submodule.$_submodule.url "${srcdir}/$_submodule"
     done
@@ -133,9 +136,7 @@ build() {
     -DENABLE_QT_TRANSLATION=ON \
     -DCITRON_USE_FASTER_LD=OFF \
     -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_CXX_FLAGS="-march=native -mtune=native -Wno-error" \
-    -DCMAKE_C_FLAGS="-march=native -mtune=native" \
-    -DUSE_DISCORD_PRESENCE=OFF \
+    -DUSE_DISCORD_PRESENCE=ON \
     -DBUNDLE_SPEEX=ON \
     -DCMAKE_SYSTEM_PROCESSOR=x86_64 \
     -DCMAKE_BUILD_TYPE=Release \

HurricanePootis commented on 2025-06-08 06:58 (UTC) (edited on 2025-06-08 07:09 (UTC) by HurricanePootis)

@ouinouin, I'm not sure if this was intentional, but you are currently overriding any CFLAGS/CXXFLAGS set in /etc/makepkg.conf.

By doing -DCMAKE_CXX_FLAGS="-whatever" instead of -DCMAKE_CXX_FLAGS="$CXXFLAGS -whatever", you have effectively overwritten the default build flags and custom that the user sets. No PIE, no -Owhatever, no protection. This is obviously incorrect. Furthermore, it is my opinion that the package should not be set to -march=native by default, as it is not known if the package will or will not be shared across systems, or distributed by a AUR builder system.

I am saying this as the previous maintainer for yuzu and citra, and current maintainer for some of the forks, but this PKGBUILD needs some serious TLC, and you should took a deeper look into the rest of your packages.

Also, here are a few problems with your PKGBUILD

  1. Improper pkgver. pkgver is not supposed to start with a prefix, nor is it supposed to contain any words in it.
  2. Missing and extra dependencies listed in depends. You were missing fmt, zydis, glibc, boost-libs, gcc-libs, lz4, openssl, zstd, libva, and zlib. The dependenciesboost,qt6-multimedia,qt6-tools, andqt6-waylandare not required by the package.boostis the development package, not the actual libraries. There is no need forqt6-multimedia, as it is a makedepends,qt6-toolsis used for making the package, and qt6-wayland is already an optional dependency for qt6-base.
  3. Missing and extra makedpeneds(). Some of the missing depends() were listed in makedepends. Also, there is no need for having llvm, python-pip, zip, unzip, libzip installed. You were missing vulkan-headers, and boost should've been in makedepends()
  4. You removed discord-rpc, which honestly makes no sense. If there is a deeper reason to it, sure. But, it seems kind of weird.

Anyways, for future reference, you should use the tool namcap to verify your work on the packages produced and read the guidelines on the wiki. A lot of this stuff would've been flagged. Also, to verify all of your makedepends, you can use extra-x86-64-build to build software in a clean and automated chroot.

I am going to fix up your other packages too. If you want, you can make a co-maintainer, and I will happily do all of this myself.

The patch file will be posted above.

<deleted-account> commented on 2025-05-03 07:02 (UTC)

PKGBUILD updated for Boost 1.88

Samueru commented on 2025-05-03 04:24 (UTC) (edited on 2025-05-03 04:37 (UTC) by Samueru)

The latest version of boost broke compilation for some reason and now it fails with:

[1587/2299] Building CXX object src/core/CMakeFiles/core.dir/debugger/debugger.cpp.o
FAILED: src/core/CMakeFiles/core.dir/debugger/debugger.cpp.o 
/usr/bin/c++ -DARCHITECTURE_x86_64=1 -DBOOST_ASIO_DISABLE_CONCEPTS -DBOOST_CONTEXT_DYN_LINK -DBOOST_CONTEXT_NO_LIB -DCITRON_UNIX=1 -DENABLE_WEB_SERVICE -DFMT_SHARED -DNDEBUG -D_FILE_OFFSET_BITS=64 -I/tmp/samuel/cache/yay/citron-git/src/citron/src/. -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/./microprofile -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/./stb -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/glad/include -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/sirit/src/../include -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/sirit/externals/SPIRV-Headers/include -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/./bc_decoder -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/xbyak -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/nx_tzdb/include -I/tmp/samuel/cache/yay/citron-git/src/citron/build/externals/nx_tzdb/include -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/./tz -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/./mbedtls/include -I/tmp/samuel/cache/yay/citron-git/src/citron/externals/dynarmic/src/dynarmic/.. -isystem /usr/include/opus -isystem /tmp/samuel/cache/yay/citron-git/src/citron/externals/./renderdoc -march=native -mtune=native -Wno-error -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -fwrapv -Werror=all -Werror=extra -Werror=missing-declarations -Werror=shadow -Werror=unused -Wno-attributes -Wno-invalid-offsetof -Wno-unused-parameter -Wno-missing-field-initializers -mcx16 -Wno-array-bounds -Wno-stringop-overread -Wno-stringop-overflow -Werror=conversion -Wno-sign-conversion -Wno-cast-function-type -Winvalid-pch -include /tmp/samuel/cache/yay/citron-git/src/citron/build/src/core/CMakeFiles/core.dir/cmake_pch.hxx -MD -MT src/core/CMakeFiles/core.dir/debugger/debugger.cpp.o -MF src/core/CMakeFiles/core.dir/debugger/debugger.cpp.o.d -o src/core/CMakeFiles/core.dir/debugger/debugger.cpp.o -c /tmp/samuel/cache/yay/citron-git/src/citron/src/core/debugger/debugger.cpp
/tmp/samuel/cache/yay/citron-git/src/citron/src/core/debugger/debugger.cpp:9:10: fatal error: boost/process/async_pipe.hpp: No such file or directory
    9 | #include <boost/process/async_pipe.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

downgrading boost to 1.87 works in the meantime.

EDIT: The reason is literary that the updated package is missing /usr/include/boost/async_pipe.hpp lol

tb0n3 commented on 2025-04-26 21:23 (UTC)

Thanks. It really seems like a major change like this can be a real PITA for you guys doing the work of maintaining these scripts. It's appreciated.

<deleted-account> commented on 2025-04-26 07:06 (UTC)

PKGBUILD updated !

tb0n3 commented on 2025-04-25 18:37 (UTC)

Just as with the non-git version this version is currently not building due to the change in cmake major version and depreciation of older syntax.

username227 commented on 2025-04-23 19:25 (UTC)

Is this still being maintained? Hasn't built for quite awhile.

<deleted-account> commented on 2025-03-28 12:29 (UTC)

Solved upstream here : https://git.citron-emu.org/Citron/Citron/commit/edfb500ee73d402dcb4f3db492f4eeb3343cca05

username227 commented on 2025-03-27 23:51 (UTC)

Now, in addition to the errors outside of a chroot, i'm getting the following error even when building inside a chroot:

FAILED: src/video_core/CMakeFiles/video_core.dir/renderer_opengl/gl_graphics_pipeline.cpp.o 
/usr/bin/c++ -DARCHITECTURE_x86_64=1 -DBOOST_ASIO_DISABLE_CONCEPTS -DBOOST_CONTEXT_DYN_LINK -DBOOST_CONTEXT_NO_LIB -DCITRON_UNIX=1 -DFMT_SHARED -DNDEBUG -D_FILE_OFFSET_BITS=64 -I/build/citron-git/src/citron/src/. -I/build/citron-git/src/citron/build/src/video_core/host_shaders/include -I/build/citron-git/src/citron/externals/./microprofile -I/build/citron-git/src/citron/externals/./stb -I/build/citron-git/src/citron/externals/glad/include -I/build/citron-git/src/citron/externals/sirit/src/../include -I/build/citron-git/src/citron/externals/sirit/externals/SPIRV-Headers/include -I/build/citron-git/src/citron/externals/./bc_decoder -I/build/citron-git/src/citron/externals/Vulkan-Headers/include -I/build/citron-git/src/citron/externals/Vulkan-Utility-Libraries/include -I/build/citron-git/src/citron/externals/VulkanMemoryAllocator/include -I/build/citron-git/src/citron/externals/xbyak -I/build/citron-git/src/citron/externals/dynarmic/src/dynarmic/.. -march=native -mtune=native -Wno-error -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -fwrapv -Werror=all -Werror=extra -Werror=missing-declarations -Werror=shadow -Werror=unused -Wno-attributes -Wno-invalid-offsetof -Wno-unused-parameter -Wno-missing-field-initializers -mcx16 -Wno-array-bounds -Wno-stringop-overread -Wno-stringop-overflow -Werror=conversion -Wno-sign-conversion -Winvalid-pch -include /build/citron-git/src/citron/build/src/video_core/CMakeFiles/video_core.dir/cmake_pch.hxx -MD -MT src/video_core/CMakeFiles/video_core.dir/renderer_opengl/gl_graphics_pipeline.cpp.o -MF src/video_core/CMakeFiles/video_core.dir/renderer_opengl/gl_graphics_pipeline.cpp.o.d -o src/video_core/CMakeFiles/video_core.dir/renderer_opengl/gl_graphics_pipeline.cpp.o -c /build/citron-git/src/citron/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
/build/citron-git/src/citron/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp:1:1: error: multi-line comment [-Werror=comment]
    1 | // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project\
      | ^
cc1plus: some warnings being treated as errors