@scatherinch you just apply the changes in question to the PKGBUILD file from the repo, then run makepkg -si
or whatever the AUR helper you're using expects.
EDIT: never mind, I see it is solved for you
Git Clone URL: | https://aur.archlinux.org/dolphin-emu-git.git (read-only, click to copy) |
---|---|
Package Base: | dolphin-emu-git |
Description: | A Gamecube / Wii emulator - CLI-based utility for functions such as managing disc images - git version |
Upstream URL: | https://dolphin-emu.org |
Keywords: | dolphin emu emulator game gamecube gui nintendo remote revolution triforce wii wiimote |
Licenses: | GPL-2.0-or-later |
Conflicts: | dolphin-emu-tool |
Provides: | dolphin-emu-tool |
Submitter: | None |
Maintainer: | dpeukert |
Last Packager: | dpeukert |
Votes: | 123 |
Popularity: | 0.48 |
First Submitted: | 2011-08-20 13:05 (UTC) |
Last Updated: | 2024-11-10 13:18 (UTC) |
« First ‹ Previous 1 .. 8 9 10 11 12 13 14 15 16 17 18 .. 56 Next › Last »
@scatherinch you just apply the changes in question to the PKGBUILD file from the repo, then run makepkg -si
or whatever the AUR helper you're using expects.
EDIT: never mind, I see it is solved for you
@Peter0x44 I'm still kind of new to Arch. One thing I haven't scratched yet is how to build or modify packages in the way you described. However, maybe you wouldn't mind giving me a quick rundown or pointing me to a resource where I could learn to do this?
I would really like to learn and fix this issue!
EDIT: I figured it out. Seems to have solved it for now, can confirm
@scatherinch My suggestion is (as others have mentioned) that you remove "libfmt.so" from the depends, and build dolphin-emu-git using a static fmt that dolphin provides
Here's the relevant patch to the PKGBUILD
Once this gets resolved (hopefully) this workaround won't be necessary
diff --git a/PKGBUILD b/PKGBUILD
index f7b2dc9..a542a21 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -18,7 +18,7 @@ depends=(
'alsa-lib' 'bluez-libs' 'cubeb' 'enet' 'hidapi' 'libevdev' 'libgl' 'libpulse'
'libspng' 'libx11' 'libxi' 'libxrandr' 'lzo' 'mbedtls2' 'minizip-ng' 'pugixml'
'qt6-base' 'qt6-svg' 'sfml' 'zlib-ng'
- 'libavcodec.so' 'libavformat.so' 'libavutil.so' 'libcurl.so' 'libfmt.so'
+ 'libavcodec.so' 'libavformat.so' 'libavutil.so' 'libcurl.so'
'libminiupnpc.so' 'libsfml-network.so' 'libsfml-system.so' 'libswscale.so'
'libudev.so' 'libusb-1.0.so'
)
@@ -32,15 +32,13 @@ source=(
"$pkgname-rcheevos::git+https://github.com/RetroAchievements/rcheevos.git"
"$pkgname-vma::git+https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git"
'minizip-ng.diff'
- 'fmt-10.diff'
)
sha512sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
- '568ca7db64149e9ac9409947689a8390783b891e6cff7b096690771512db3e19f9d8551a8739921d8a9f6ec4a9de747811a2efc8cdd4791d715677772db7fa8e'
- '57852e07fc6e296598a3351a2ad63ac5af8c0130e1d1d8f0f8f99d0730fe01b1cf206e31efe1837a33ff2971e08fd48e281edc4be625c4660a711062812ae0ee')
+ '568ca7db64149e9ac9409947689a8390783b891e6cff7b096690771512db3e19f9d8551a8739921d8a9f6ec4a9de747811a2efc8cdd4791d715677772db7fa8e')
_sourcedirectory="$pkgname"
@@ -52,9 +50,6 @@ prepare() {
# Fix minizip-ng name for Arch
patch --forward -p1 < "$srcdir/minizip-ng.diff"
- # Fix build with fmt 10
- patch --forward -p1 < "$srcdir/fmt-10.diff"
-
# Provide submodules
declare -A _submodules=(
[implot]='implot/implot'
@@ -89,6 +84,7 @@ build() {
-DENABLE_AUTOUPDATE=OFF \
-DUSE_SYSTEM_LIBS=ON \
-DUSE_SYSTEM_LIBMGBA=OFF \
+ -DUSE_SYSTEM_FMT=OFF \
-Wno-dev
cmake --build 'build/'
}
Then, you should be able to update, without any conflicts on libfmt.so.9
I already had this installed beforehand, but trying to -Syu returns an error claiming that updating will break this. I would like to do the update, but I don't want to lose dolphin because I think removing it to update will most assuredly prevent me from installing again from what I've been reading.
error: failed to prepare transaction (could not satisfy dependencies)
:: installing fmt (10.0.0-1) breaks dependency 'libfmt.so=9-64' required by dolphin-emu-git
Therefore, I have not been able to update my system for a few days. Is there a way around this or should I just wait for this to become compatible with the new version of fmt?
Clean chroot. Successfully built after adding -DUSE_SYSTEM_FMT=OFF
. No other changes to the PKGBUILD
.
One way around some of the system lib issues would be to use internal like so:
-DUSE_SYSTEM_LIBS=ON \
-DUSE_SYSTEM_FMT=OFF \
-DUSE_SYSTEM_LIBMGBA=OFF \
-DUSE_SYSTEM_MINIZIP=OFF \
-DUSE_SYSTEM_SPNG=OFF \
-DUSE_SYSTEM_ZLIB=OFF \
Just a thought.
You can depend on fmt9 if you want ;)
failed to compile
FAILED: Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Assets/DirectFilesystemAssetLibrary.cpp.o
/usr/bin/c++ -DDATA_DIR=\"/usr/share/dolphin-emu/\" -DFMT_SHARED -DHAS_LIBMGBA -DHAS_OPENGL -DHAS_VULKAN -DHAVE_CRC32 -DHAVE_EGL=1 -DHAVE_FFMPEG -DHAVE_LIBEVDEV=1 -DHAVE_LIBSYSTEMD -DHAVE_LIBUDEV=1 -DHAVE_X11=1 -DHAVE_XRANDR=1 -DUSE_ANALYTICS=1 -DUSE_MEMORYWATCHER=1 -DUSE_PIPES=1 -DUSE_UPNP -D_ARCH_64=1 -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_M_X86=1 -D_M_X86_64=1 -D__LIBUSB__ -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/soundtouch -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/discord-rpc/include -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/picojson -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/build/Source/Core -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/expr/include -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/mGBA/mgba/include -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/build/Externals/mGBA/mgba/include -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/xxhash -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/imgui -I/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/implot/implot -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/glslang/glslang/Public -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core/VideoCommon/SYSTEM -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/glslang/StandAlone -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/glslang/SPIRV -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/glslang -isystem /usr/include/mbedtls2 -isystem /usr/include/minizip-ng -isystem /usr/include/libusb-1.0 -isystem /usr/include/hidapi -isystem /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Externals/rangeset/include -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -std=c++20 -msse2 -fdiagnostics-color -fno-strict-aliasing -fno-exceptions -fvisibility-inlines-hidden -fvisibility=hidden -fomit-frame-pointer -Wall -Wtype-limits -Wsign-compare -Wignored-qualifiers -Wuninitialized -Wlogical-op -Wshadow -Winit-self -Wmissing-declarations -Wno-stringop-truncation -Werror=format -MD -MT Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Assets/DirectFilesystemAssetLibrary.cpp.o -MF Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Assets/DirectFilesystemAssetLibrary.cpp.o.d -o Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Assets/DirectFilesystemAssetLibrary.cpp.o -c /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp
In file included from /usr/include/fmt/format.h:49,
from /usr/include/fmt/os.h:20,
from /var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp:7:
/usr/include/fmt/core.h: In instantiation of ‘constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_value(T&&) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const std::error_code&]’:
/usr/include/fmt/core.h:1711:29: required from ‘constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; type <anonymous> = fmt::v10::detail::type::custom_type; T = const std::error_code&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1827:77: required from ‘constexpr fmt::v10::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::error_code&}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::error_code}]’
/usr/include/fmt/core.h:1844:31: required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<_Args>::type>::type ...> fmt::v10::make_format_args(T&& ...) [with Context = basic_format_context<appender, char>; T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::error_code&}]’
/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core/Common/Logging/Log.h:101:75: required from ‘void Common::Log::GenericLogFmt(LogLevel, LogType, const char*, int, const S&, const Args& ...) [with long unsigned int NumFields = 2; S = VideoCommon::DirectFilesystemAssetLibrary::LoadPixelShader(const VideoCommon::CustomAssetLibrary::AssetID&, VideoCommon::PixelShaderData*)::<lambda()>::FMT_COMPILE_STRING; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::error_code}]’
/var/cache/private/pamac/dolphin-emu-git/src/dolphin-emu-git/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp:86:7: required from here
/usr/include/fmt/core.h:1691:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
1691 | formattable,
| ^~~~~~~~~~~
/usr/include/fmt/core.h:1691:7: note: ‘formattable’ evaluates to false
while upstream dolphin doesn't work with vulkan since last update
soo… I can't upgrade until dolphin becomes compatible with fmt10?
Pinned Comments
dpeukert commented on 2020-04-10 12:34 (UTC) (edited on 2020-09-26 17:48 (UTC) by dpeukert)
The PKGBUILD for this package is hosted here (contributions are welcome!): https://gitlab.com/dpeukert/pkgbuilds/tree/main/dolphin-emu-git