Package Details: yuzu-early-access-git 3567-1

Git Clone URL: https://aur.archlinux.org/yuzu-early-access-git.git (read-only, click to copy)
Package Base: yuzu-early-access-git
Description: An experimental open-source Nintendo Switch emulator/debugger (early access version)
Upstream URL: https://yuzu-emu.org/
Licenses: GPL3
Conflicts: yuzu
Provides: yuzu
Submitter: Skyluker4
Maintainer: Skyluker4
Last Packager: Skyluker4
Votes: 4
Popularity: 0.30
First Submitted: 2023-05-06 21:16 (UTC)
Last Updated: 2023-05-08 00:45 (UTC)

Latest Comments

ekpyron commented on 2023-06-25 20:17 (UTC)

Depends on https://aur.archlinux.org/packages/vulkan-memory-allocator now - and it needs some additional work for its building of time zone data. Just adding -DYUZU_DOWNLOAD_TIME_ZONE_DATA=ON as cmake option worked as a workaround (with vulkan-memory-allocator installed).

jamesmcm commented on 2023-05-22 20:38 (UTC)

Fixed by including <cstring> in bcn.cpp - here's a temporary PKGBUILD diff (along with Prior511's helpful comment below!):

6c6
< pkgver=3567
---
> pkgver=3603
23c23,24
<       "https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/master/yuzu.xml")
---
>       "https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/master/yuzu.xml"
>         "git+https://github.com/yuzu-emu/yuzu.git")
25a27
>             'SKIP'
29,47c31
<   cd "$srcdir/pineapple-src/"
<   LATEST_VERSION=$(git describe --tags --always)
<   WINDOWS_FILENAME=Windows-Yuzu-$LATEST_VERSION.zip
<   cd "$srcdir"
<   if [[ ! -f $WINDOWS_FILENAME ]]  ; then
<     wget https://github.com/pineappleEA/pineapple-src/releases/download/$LATEST_VERSION/$WINDOWS_FILENAME
<   fi
<   unzip $WINDOWS_FILENAME
<
<   cd "$srcdir/yuzu-windows-msvc-early-access"
<   tar -xvf *.tar.xz
<   cd $(ls *.tar.xz | sed -e 's/.tar.xz//')
<   cp -R .git* $srcdir/pineapple-src/
<
<   cd $srcdir/pineapple-src
<   for i in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }') ; do
<       rm -rf "$i"
<   done
<
---
>   cd "$srcdir/yuzu"
49a34,36
>   cp -r externals/{sirit,mbedtls} ../pineapple-src/externals/
>
>   cd "$srcdir/pineapple-src"
57a45
>   sed -i -e 's/#include <stb_dxt.h>/#include <stb_dxt.h>\r\n#include <cstring>/g' src/video_core/textures/bcn.cpp

jamesmcm commented on 2023-05-22 17:05 (UTC)

Seems to be broken with the latest version:

[800/1165] Building CXX object src/video_core/CMakeFiles/video_core.dir/textures/bcn.cpp.o
FAILED: src/video_core/CMakeFiles/video_core.dir/textures/bcn.cpp.o
/usr/bin/g++ -DARCHITECTURE_x86_64=1 -DBOOST_ASIO_DISABLE_CONCEPTS -DBOOST_CONTEXT_DYN_LINK -DBOOST_CONTEXT_NO_LIB -DFMT_SHARED -DNDEBUG -DYUZU_UNIX=1 -D_FILE_OFFSET_BITS=64 -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/. -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/build/src/video_core/host_shaders/include -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/externals/./microprofile -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/externals/glad/include -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/externals/sirit/src/../include -I/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/externals/./stb -isystem /usr/include/xbyak -lxml2 -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wno-attributes -Wno-invalid-offsetof -Wno-unused-parameter -mcx16 -fwrapv -Wno-array-bounds -Wno-stringop-overread -Wno-stringop-overflow -Wno-sign-conversion -MD -MT src/video_core/CMakeFiles/video_core.dir/textures/bcn.cpp.o -MF src/video_core/CMakeFiles/video_core.dir/textures/bcn.cpp.o.d -o src/video_core/CMakeFiles/video_core.dir/textures/bcn.cpp.o -c /home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp: In lambda function:
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:45:41: error: there are no arguments to ‘memset’ that depend on a template parameter, so a declaration of ‘memset’ must be available [-fpermissive]
   45 |                                         memset(input_colors[j][i], 0, bytes_per_px);
      |                                         ^~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:45:41: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:48:37: error: there are no arguments to ‘memcpy’ that depend on a template parameter, so a declaration of ‘memcpy’ must be available [-fpermissive]
   48 |                                     memcpy(input_colors[j][i], &data[coord], bytes_per_px);
      |                                     ^~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:51:33: error: there are no arguments to ‘memset’ that depend on a template parameter, so a declaration of ‘memset’ must be available [-fpermissive]
   51 |                                 memset(input_colors[j][i], 0, bytes_per_px);
      |                                 ^~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp: In instantiation of ‘void Tegra::Texture::BCN::CompressBCN(std::span<const unsigned char>, uint32_t, uint32_t, uint32_t, std::span<unsigned char>, void (*)(u8*, const u8*, bool)) [with unsigned int BytesPerBlock = 8; bool ThresholdAlpha = true; uint32_t = unsigned int; BCNCompressor = void(unsigned char*, const unsigned char*, bool)]’:
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:71:25:   required from here
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:45:47: error: ‘memset’ was not declared in this scope
   45 |                                         memset(input_colors[j][i], 0, bytes_per_px);
      |                                         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:9:1: note: ‘memset’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
    8 | #include "video_core/textures/workers.h"
  +++ |+#include <cstring>
    9 |
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:51:39: error: ‘memset’ was not declared in this scope
   51 |                                 memset(input_colors[j][i], 0, bytes_per_px);
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:51:39: note: ‘memset’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp: In instantiation of ‘void Tegra::Texture::BCN::CompressBCN(std::span<const unsigned char>, uint32_t, uint32_t, uint32_t, std::span<unsigned char>, void (*)(u8*, const u8*, bool)) [with unsigned int BytesPerBlock = 16; bool ThresholdAlpha = false; uint32_t = unsigned int; BCNCompressor = void(unsigned char*, const unsigned char*, bool)]’:
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:80:27:   required from here
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:48:43: error: ‘memcpy’ was not declared in this scope
   48 |                                     memcpy(input_colors[j][i], &data[coord], bytes_per_px);
      |                                     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:48:43: note: ‘memcpy’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:51:39: error: ‘memset’ was not declared in this scope
   51 |                                 memset(input_colors[j][i], 0, bytes_per_px);
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/archie/.cache/paru/clone/yuzu-early-access-git/src/pineapple-src/src/video_core/textures/bcn.cpp:51:39: note: ‘memset’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
[809/1165] Building CXX object src/video_core/CMakeFiles/video_core.dir/video_core.cpp.o
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
    Aborting...

Prior5151 commented on 2023-05-18 00:33 (UTC) (edited on 2023-05-18 00:48 (UTC) by Prior5151)

Currently, the pkgver() evaluation seems to be broken due to the fixes needed to resolve the submodule issue. What you can do instead of getting the .git folder from downloading the Windows blob, is add:

"git+https://github.com/yuzu-emu/yuzu.git"

To the source list, and replace lines 29-49 with:

cd "$srcdir/yuzu"
git submodule update --init --remote externals/sirit
git submodule update --init --remote externals/mbedtls
cp -r externals/{sirit,mbedtls} ../pineapple-src/externals/

cd "$srcdir/pineapple-src"

I got the justification for doing so here, and I think it's worth applying even though they weren't entirely certain: https://github.com/pineappleEA/pineapple-src/issues/96#issuecomment-1310505378

I'd much prefer to use this package if possible, since with this change, you can get much smaller downloads (due to it utilizing git deltas rather than multiple blobs), and better compilation times because it preserves the build cache.

heavysink commented on 2023-05-12 14:13 (UTC)

Hi, this package should be the same as yuzu-early-access since pineappleea will only update git source code every EA version.