FS#79243 - [furnace] Fails to run, due to depending on old fmt

Attached to Project: Arch Linux
Opened by Filip Szczepański (FreeFull) - Saturday, 29 July 2023, 15:02 GMT
Last edited by George Rawlinson (rawlinsong) - Sunday, 30 July 2023, 08:10 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To George Rawlinson (rawlinsong)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: The furnace package still depends on fmt 9, but Arch now ships fmt 10.0.0.
Trying to run furnace produces this error:

furnace: error while loading shared libraries: libfmt.so.9: cannot open shared object file: No such file or directory

Unfortunately, it doesn't seem like upstream currently builds with fmt 10.

Additional info:
* package versions:
* furnace 0.6pre7-2
* fmt 10.0.0-1

Steps to reproduce:
Try to run `furnace` on an up-to-date Arch system.
This task depends upon

Closed by  George Rawlinson (rawlinsong)
Sunday, 30 July 2023, 08:10 GMT
Reason for closing:  Fixed
Additional comments about closing:  0.6pre7-3
Comment by Ryan Farley (rcf) - Saturday, 29 July 2023, 15:44 GMT
Upstream issue is https://github.com/tildearrow/furnace/issues/1294; there I've included a patch to get furnace-git to build. The regular furnace package ought to work when that is combined with https://github.com/tildearrow/furnace/commit/9d567d8cca6b4a40d61446d7d84839d78d036252
Comment by George Rawlinson (rawlinsong) - Sunday, 30 July 2023, 07:50 GMT
As of last count, there are 298 commits between the current release and HEAD, so there is more than just that patch to apply.

Here's some output from an attempt that includes the two patches:

[ 50%] Building CXX object CMakeFiles/furnace.dir/src/engine/platform/arcade.cpp.o
In file included from /usr/include/fmt/format.h:49,
from /usr/include/fmt/printf.h:14,
from /build/furnace/src/furnace/src/engine/../ta-log.h:27,
from /build/furnace/src/furnace/src/engine/fileOps.cpp:22:
/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_printf_context<fmt::v10::appender, char>; T = const DivSystem&]’:
/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_printf_context<fmt::v10::appender, char>; type <anonymous> = fmt::v10::detail::type::custom_type; T = const DivSystem&; 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 DivSystem&}; Context = fmt::v10::basic_printf_context<fmt::v10::appender, char>; Args = {DivSystem}]’
/usr/include/fmt/printf.h:581:18: required from ‘fmt::v10::format_arg_store<fmt::v10::basic_printf_context<fmt::v10::appender, char>, T ...> fmt::v10::make_printf_args(const T& ...) [with T = {DivSystem}]’
/build/furnace/src/furnace/src/engine/../ta-log.h:78:59: required from ‘int logE(const char*, const T& ...) [with T = {DivSystem}]’
/build/furnace/src/furnace/src/engine/fileOps.cpp:1940:13: 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
[ 51%] Building CXX object CMakeFiles/furnace.dir/src/engine/platform/tx81z.cpp.o
[ 51%] Building CXX object CMakeFiles/furnace.dir/src/engine/platform/ym2203.cpp.o
[ 51%] Building CXX object CMakeFiles/furnace.dir/src/engine/platform/ym2203ext.cpp.o
[ 52%] Building CXX object CMakeFiles/furnace.dir/src/engine/platform/ym2608.cpp.o
make[2]: *** [CMakeFiles/furnace.dir/build.make:1868: CMakeFiles/furnace.dir/src/engine/fileOps.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/furnace.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
Comment by George Rawlinson (rawlinsong) - Sunday, 30 July 2023, 08:03 GMT
Also have to cherry pick 05d101e42e8c327bf83d51688a6c2d9527970e44, gonna run a couple of tests and if that's successful, I'll push a new package to the repos.

Loading...