#65619 closed defect (fixed)
libfmt @9.x: upstream changes break dependents; create new segregated port libfmt8
Reported by: | mascguy (Christopher Nielsen) | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.2 |
Keywords: | pending | Cc: | barracuda156, thomasfiala (Thomas Fiala), poac@…, ryandesign (Ryan Carsten Schmidt), l2dy (Zero King), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
Port: | libfmt cantera poac mkvtoolnix mpd |
Description
The latest update of this port - to 9.0 - breaks a number a of dependents.
https://github.com/macports/macports-ports/pull/15589
Details of upstream's breaking changes:
https://github.com/fmtlib/fmt/blob/master/ChangeLog.rst
Thus far, at least three ports have been identified as being affected:
cantera
:
src/thermo/RedlichKwongMFTP.cpp:1049:21: error: no matching function for call to 'format_to' format_to(b, ", {}", speciesName(k)); ^~~~~~~~~
poac
:
/opt/local/include/fmt/ostream.h:98:19: error: use of undeclared identifier 'FMT_MSC_VERSION' if (const_check(FMT_MSC_VERSION)) { ^ In file included from poac-0.3.10/lib/util/archive.cc:6: In file included from poac-0.3.10/include/poac/util/archive.hpp:13: In file included from poac-0.3.10/include/poac/poac.hpp:26: /opt/local/include/fmt/ranges.h:403:9: error: use of undeclared identifier 'disjunction' disjunction< ^ /opt/local/include/fmt/ranges.h:467:9: error: use of undeclared identifier 'disjunction' disjunction< ^ /opt/local/include/fmt/ranges.h:473:72: error: expected unqualified-id detail::has_fallback_formatter<detail::uncvref_second_type<T>, Char> ^
mpd
:
../mpd-0.23.7/src/Log.hxx:50:15: error: no member named 'make_args_checked' in namespace 'fmt' fmt::make_args_checked<Args...>(format_str, ~~~~~^ ../mpd-0.23.7/src/Log.hxx:50:33: error: 'Args' does not refer to a value fmt::make_args_checked<Args...>(format_str, ^ ../mpd-0.23.7/src/Log.hxx:43:34: note: declared here template<typename S, typename... Args> ^ ../mpd-0.23.7/src/Log.hxx:49:32: error: no member named 'to_string_view' in namespace 'fmt'; did you mean 'fmt::detail::to_string_view'? return LogVFmt(level, domain, fmt::to_string_view(format_str), ^~~~~~~~~~~~~~~~~~~ fmt::detail::to_string_view /opt/local/include/fmt/core.h:532:17: note: 'fmt::detail::to_string_view' declared here FMT_INLINE auto to_string_view(const Char* s) -> basic_string_view<Char> { ^ In file included from ../mpd-0.23.7/src/LogBackend.cxx:21: ../mpd-0.23.7/src/Log.hxx:46:39: warning: unused parameter 'args' [-Wunused-parameter] const S &format_str, Args&&... args) noexcept ^ 1 warning and 3 errors generated.
There may also be more dependents affected, but those three are confirmed based on the buildbots.
So we either need to patch those, or simply revert libfmt
to the previous release (8.1.1).
Change History (24)
comment:1 Changed 2 years ago by mascguy (Christopher Nielsen)
Cc: | thomasfiala poac@… added |
---|
comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)
Cc: | ryandesign added |
---|---|
Port: | mkvtoolnix added |
comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)
This is also affecting older versions of mkvoolnix
, used for macOS releases 10.14 and earlier. See: issue:65635
comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)
After pondering this for a few days, I'm thinking that we might need to create a new port - libfmt8
- segregated from libfmt
. That way we can support ports that are broken, without having to go back and patch each one.
comment:5 Changed 2 years ago by mascguy (Christopher Nielsen)
Owner: | set to mascguy |
---|---|
Status: | new → assigned |
comment:6 Changed 2 years ago by mascguy (Christopher Nielsen)
Summary: | libfmt @9.x: upstream changes break dependents → libfmt @9.x: upstream changes break dependents; create new segregated port libfmt8 |
---|
comment:7 follow-up: 8 Changed 2 years ago by ken-matsui (Ken Matsui)
Since I'm an owner of poac
, I'll dig into the error while not sure I can fix it soon. I would be grateful if you could create the versioned libfmt8
. Thank you.
comment:8 follow-up: 16 Changed 2 years ago by mascguy (Christopher Nielsen)
Replying to ken-matsui:
Since I'm an owner of
poac
, I'll dig into the error while not sure I can fix it soon. I would be grateful if you could create the versionedlibfmt8
. Thank you.
Sounds good, I'll try to get this taken care of ASAP.
comment:9 Changed 2 years ago by mascguy (Christopher Nielsen)
Keywords: | pending added |
---|
comment:10 follow-up: 11 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:11 follow-up: 12 Changed 2 years ago by mascguy (Christopher Nielsen)
Replying to Christopher Nielsen <mascguy@…>:
In ec448312e241563c5df6413edf55f23f13b9035d/macports-ports (master):
FYI, for libfmt8
, everything has been pushed down one level:
$ port contents libfmt8 Port libfmt8 contains: /opt/local/include/libfmt8/fmt/args.h /opt/local/include/libfmt8/fmt/chrono.h /opt/local/include/libfmt8/fmt/color.h /opt/local/include/libfmt8/fmt/compile.h /opt/local/include/libfmt8/fmt/core.h /opt/local/include/libfmt8/fmt/format-inl.h /opt/local/include/libfmt8/fmt/format.h /opt/local/include/libfmt8/fmt/locale.h /opt/local/include/libfmt8/fmt/os.h /opt/local/include/libfmt8/fmt/ostream.h /opt/local/include/libfmt8/fmt/printf.h /opt/local/include/libfmt8/fmt/ranges.h /opt/local/include/libfmt8/fmt/xchar.h /opt/local/lib/libfmt8/cmake/fmt/fmt-config-version.cmake /opt/local/lib/libfmt8/cmake/fmt/fmt-config.cmake /opt/local/lib/libfmt8/cmake/fmt/fmt-targets-release.cmake /opt/local/lib/libfmt8/cmake/fmt/fmt-targets.cmake /opt/local/lib/libfmt8/libfmt.8.1.1.dylib /opt/local/lib/libfmt8/libfmt.8.dylib /opt/local/lib/libfmt8/libfmt.dylib /opt/local/lib/libfmt8/pkgconfig/fmt.pc
comment:12 Changed 2 years ago by mascguy (Christopher Nielsen)
Replying to mascguy:
FYI, for
libfmt8
, everything has been pushed down one level
For consistency, I'll update libfmt
to be similarly segregated. Otherwise, the headers may inadvertently be used, when both are installed.
While the segregation changes are trivial, it'll take some time to tweak all dependents. More to follow.
comment:13 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:14 Changed 2 years ago by mascguy (Christopher Nielsen)
Port: | mpd removed |
---|
It looks like mpd
has been updated, and the new upstream release takes care of this issue.
comment:15 Changed 2 years ago by mascguy (Christopher Nielsen)
Update: I'm almost done with migrating libfmt
dependents, with two troublesome ports left: cherrytree
and openimageio
. Once those are fixed, I'll push all of the changes.
comment:16 Changed 2 years ago by ken-matsui (Ken Matsui)
Replying to mascguy:
Replying to ken-matsui:
Since I'm an owner of
poac
, I'll dig into the error while not sure I can fix it soon. I would be grateful if you could create the versionedlibfmt8
. Thank you.Sounds good, I'll try to get this taken care of ASAP.
Thank you so much :)
comment:17 Changed 2 years ago by mascguy (Christopher Nielsen)
Cc: | l2dy added |
---|---|
Port: | mpd added |
comment:18 Changed 2 years ago by mascguy (Christopher Nielsen)
Cc: | MarcusCalhoun-Lopez added |
---|
Adding Marcus, for openimageio
.
comment:19 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:20 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:21 Changed 2 years ago by mascguy (Christopher Nielsen)
Folks, there is only one straggler left, cherrytree
. And currently working on it.
comment:22 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:23 Changed 2 years ago by Christopher Nielsen <mascguy@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
CCing maintainers for
cantera
andpoac
. How do you folks prefer to handle this?