Coeur / swiftmission

Official SwiftMission BitTorrent client repository
Other
0 stars 0 forks source link

bump fmt to 11.0.0 #7

Closed GaryElshaw closed 3 months ago

GaryElshaw commented 4 months ago

What is the issue?

New fmt release. I've tested on Linux and there are some minor issues.

https://github.com/fmtlib/fmt/releases/tag/11.0.0

/home/gary/Documents/GitHub/transmission-primary/third-party/fmt/include/fmt/base.h: In instantiation of ‘constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::context; T = const Glib::ustring; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’: /home/gary/Documents/GitHub/transmission-primary/third-party/fmt/include/fmt/base.h:2002:74: required from ‘constexpr fmt::v10::detail::format_arg_store<Context, NUM_ARGS, 0, DESC> fmt::v10::make_format_args(T& ...) [with Context = context; T = {const Glib::ustring}; long unsigned int NUM_ARGS = 1; long unsigned int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15; typename std::enable_if<(NUM_NAMED_ARGS == 0), int>::type <anonymous> = 0]’ 2002 | return {{detail::make_arg<NUM_ARGS <= detail::max_packed_args, Context>( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2003 | args)...}}; | ~~~~~ /home/gary/Documents/GitHub/transmission-primary/third-party/fmt/include/fmt/format.h:4357:44: required from ‘std::string fmt::v10::format(format_string<T ...>, T&& ...) [with T = {const Glib::ustring&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const Glib::ustring&>]’ 4357 | return vformat(fmt, fmt::make_format_args(args...)); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ /home/gary/Documents/GitHub/transmission-primary/gtk/Application.cc:1649:30: required from here 1649 | gtr_error(fmt::format("Unhandled action: {}", action_name)); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/gary/Documents/GitHub/transmission-primary/third-party/fmt/include/fmt/base.h:1611:17: error: static assertion failed: Mixing character types is disallowed. 1611 | static_assert(formattable_char, "Mixing character types is disallowed."); | ^~~~~~~~~~~~~~~~ /home/gary/Documents/GitHub/transmission-primary/third-party/fmt/include/fmt/base.h:1611:17: note: ‘formattable_char’ evaluates to false cc1plus: note: unrecognized command-line option ‘-Wno-exit-time-destructors’ may have been intended to silence earlier diagnostics make[2]: *** [gtk/CMakeFiles/transmission-gtk.dir/build.make:158: gtk/CMakeFiles/transmission-gtk.dir/Application.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:838: gtk/CMakeFiles/transmission-gtk.dir/all] Error 2 make: *** [Makefile:166: all] Error 2

Which application of Transmission?

None

Which version of Transmission?

4.1

Coeur commented 4 months ago

Is fmt 11 forbidding std::string as a parameter for printing? That would be awkward.

GaryElshaw commented 4 months ago

My sense is that there is a fmt 10 parameter, on our side, possibly in cmake, that needs to be changed from 10 to 11. But you are far more accomplished than me to diagnose that.

I haven't tested in MacOS, i'll try and report what happens.

Coeur commented 4 months ago

The macOS app builds fine. The Qt app builds fine. The GTK app has various build issues (at least 10).

GaryElshaw commented 4 months ago

Point release is out, but the GTK errors remain.

image

GaryElshaw commented 3 months ago

fmt response: https://github.com/fmtlib/fmt/issues/4052#issuecomment-2211763813

Coeur commented 3 months ago

Thanks for opening the issue. It doesn't help that I'm also facing a build issue of the GTK target due to https://github.com/Homebrew/homebrew-core/issues/172204. [edit: ah, the workaround is brew reinstall -s glibmm]

GaryElshaw commented 3 months ago

No worries, got your back with a relatively vanilla linux setup.

Coeur commented 3 months ago

@GaryElshaw note for testing that after fmt will do their fix, we'll still need to add ourselves #include <fmt/ranges.h> in our DetailsDialog.cc.

GaryElshaw commented 3 months ago

Thanks mate, GTK is compiling and running fine.