[Midnightbsd-cvs] [MidnightBSD/mports] e7b961: devel/libfmt: update to 12.1.0 and fix the tree fo...
Lucas Holt
noreply at github.com
Mon Sep 7 11:19:09 EDT 2026
Branch: refs/heads/master
Home: https://github.com/MidnightBSD/mports
Commit: e7b96113b02f7d30d441c18435c941ce79d57081
https://github.com/MidnightBSD/mports/commit/e7b96113b02f7d30d441c18435c941ce79d57081
Author: Lucas Holt <luke at foolishgames.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M ai/ollama/Makefile
M audio/musicpd/Makefile
M audio/musicpd/distinfo
M audio/musicpd/files/patch-doc_mpdconf.example
R audio/musicpd/files/patch-src_decoder_plugins_FfmpegIo.cxx
A audio/musicpd/files/patch-src_input_plugins_CdioParanoiaInputPlugin.cxx
R audio/musicpd/files/patch-src_lib_nfs_Error.cxx
A audio/musicpd/files/patch-src_net_DscpParser.cxx
R audio/musicpd/files/patch-src_protocol_ArgParser.cxx
M audio/sdl_audiolib/Makefile
M cad/cura-engine/Makefile
A cad/cura-engine/files/patch-include_utils_format_filesystem__path.h
M cad/freecad/Makefile
M cad/openroad/Makefile
M chinese/fcitx5-chinese-addons/Makefile
M chinese/fcitx5-chinese-addons/distinfo
M chinese/fcitx5-chinese-addons/pkg-plist
M chinese/libime-jyutping/Makefile
M chinese/libime-jyutping/distinfo
M chinese/libime-jyutping/pkg-plist
M chinese/libime/Makefile
M chinese/libime/distinfo
M databases/mariadb114-server/Makefile
M devel/ccache4/Makefile
M devel/level-zero/Makefile
M devel/libfmt/Makefile
M devel/libfmt/distinfo
M devel/libfmt/pkg-plist
M devel/log4cxx/Makefile
M devel/spdlog/Makefile
M devel/spdlog/distinfo
M devel/spdlog/pkg-plist
M filesystems/ntfs2btrfs/Makefile
M games/devilutionX/Makefile
M graphics/podofo/Makefile
M multimedia/kodi/Makefile
M net-im/telegram-desktop/Makefile
M net-p2p/transmission-components/Makefile
A net-p2p/transmission-components/files/patch-gtk_DetailsDialog.cc
A net-p2p/transmission-components/files/patch-libtransmission_peer-msgs.cc
A net-p2p/transmission-components/files/patch-libtransmission_session-alt-speeds.cc
A net-p2p/transmission-components/files/patch-libtransmission_torrent.cc
A net-p2p/transmission-components/files/patch-utils_remote.cc
A net-p2p/transmission-components/files/patch-utils_show.cc
M textproc/fcitx5-qt/Makefile
M textproc/fcitx5-qt/distinfo
M textproc/fcitx5-qt/pkg-plist.common
M textproc/fcitx5/Makefile
M textproc/fcitx5/distinfo
M textproc/fcitx5/pkg-plist
M x11-toolkits/kddockwidgets/Makefile
M x11/plasma-wayland-protocols/Makefile
M x11/plasma-wayland-protocols/distinfo
M x11/plasma-wayland-protocols/pkg-plist
M x11/waybar/Makefile
Log Message:
-----------
devel/libfmt: update to 12.1.0 and fix the tree for fmt 12 (#853)
Updates `devel/libfmt` from 9.1.0 to 12.1.0 and fixes every consumer
that
breaks as a result. Originally a prerequisite for `ai/pytorch` 2.13.0
(#851),
which vendors fmt 12.1.0 and does not build against fmt 9.
> **This must land as a single unit.** Between libfmt 12 going in and
the
> consumers being rebuilt, a stale consumer breaks *unrelated* builds
with
> misleading errors — a leftover `libze_loader.so.1` needing
`libfmt.so.9`
> made `net/openmpi4`'s configure report a bogus "cannot link hwloc".
The
> builder should rebuild all 26 touched ports.
## Core
| Port | Change |
|---|---|
| `devel/libfmt` | 9.1.0 → 12.1.0 (SONAME `.so.9` → `.so.12`) |
| `devel/spdlog` | 1.15.0 → 1.17.0 — 1.15 doesn't compile against fmt 12
(`fmt::basic_format_string` removed); SONAME `1.15` → `1.17` |
## The fmt 10/11/12 API changes actually hit
- custom `formatter::format()` must be `const` — cura-engine, musicpd
- `fmt::basic_format_string` removed — spdlog
- `fmt::localtime` removed — 6 sites in transmission. `localtime_r` is
what it
wrapped, so calling it directly is behaviour-preserving
- `fmt::ptr` dropped its smart-pointer overloads — use `.get()`
- `fmt::join` moved to `<fmt/ranges.h>`
- fmt no longer includes `<iterator>` transitively
- fmt 11 `consteval` format-string checking — musicpd 0.23, fcitx5
addons
## Fixed by patching
- `cad/cura-engine` — non-const formatter (patch from the FreeBSD port)
- `net-p2p/transmission-components` — 6 patches covering all three API
changes
## Fixed by updating
- `audio/musicpd` 0.23.15 → 0.24.14. Patching 0.23 fixed five formatters
and a
missing include, then hit `FMT_COMPILE_STRING`; 0.24 is the branch that
supports fmt 12.
- The fcitx5 stack, because `fcitx5-chinese-addons` 5.1.8 is a real
casualty
and 5.1.13 (which FreeBSD ships unpatched) needs newer `Fcitx5Core` and
`LibIMEPinyin`:
`plasma-wayland-protocols` 1.19.0→1.21.0, `fcitx5` 5.1.13→5.1.21,
`fcitx5-qt` 5.1.12→5.1.14, `libime` 1.1.13→1.1.15,
`libime-jyutping` 1.0.13→1.0.17, `fcitx5-chinese-addons` 5.1.8→5.1.13.
Side benefit: **fcitx5 5.1.21 drops libfmt** for C++20 `std::format`, so
the
tree ends with one fewer fmt consumer than it started with.
## PORTREVISION bumps
`Tools/scripts/bump_revision.pl -f -l devel/libfmt` bumped 17 ports. It
misses
consumers that depend via header or package deps, or inside option
blocks, so
six more were bumped by hand: `graphics/podofo`, `devel/ccache4`,
`filesystems/ntfs2btrfs`, `ai/ollama`,
`net-p2p/transmission-components`,
`cad/cura-engine`. It also double-bumps `x11/waybar` (two INDEX entries
from
its FLAVORS); corrected to a single bump.
Neither `libFcitx5Core.so.7` nor `libIMEPinyin.so.0` changes SONAME, so
the
fcitx5 update needs no extra bumps.
## Testing — MidnightBSD 4.2 amd64
**Built clean (13):** libfmt, spdlog, cura-engine, musicpd, transmission
(cli/daemon/utils/web/docs/qt), fcitx5, fcitx5-qt (qt5+qt6), libime,
libime-jyutping, fcitx5-chinese-addons, plasma-wayland-protocols,
sdl_audiolib,
podofo, ntfs2btrfs, log4cxx, level-zero, kddockwidgets, ollama,
openroad, kodi,
waybar.
**Not built here — pre-existing failures unrelated to fmt:**
| Port | Reason |
|---|---|
| `devel/ccache4` | `hs-pandoc` / Haskell dependency chain fails |
| `games/devilutionX` | `isascii` undeclared in the system libc++ header
|
| `cad/freecad` | `patch-cMake_FreeCAD__Helpers_SetupSalomeSMESH.cmake`
no longer applies |
| `net-im/telegram-desktop` | `tg_owt`: "Missing byte order functions
for this arch" |
| `databases/mariadb114-server` | host has `mysql80-client`, conflicts
with `mariadb114-client` |
| transmission `gtk` flavor | `devel/libayatana-appindicator` fails to
link gtk3/dbusmenu though all are installed |
`mariadb114-server` is the only one of these that genuinely links
`libfmt.so`.
FreeBSD's 11.4.13 links it with no fmt patches against libfmt 12.1.0 and
mports
is three patch releases behind on the same branch, so it is expected to
be
fine, but it was not built here. The transmission gtk sources *are*
covered —
the qt flavor compiles `gtk/DetailsDialog.cc`.
Each of those six is worth its own issue; none is caused by this change.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
## Summary by Sourcery
Upgrade the formatting library stack to fmt 12.1.0 and update or patch
all affected consumers across the ports tree.
Bug Fixes:
- Update fmt consumers and apply compatibility fixes for fmt 12 API
changes, including formatter const-correctness, removed time helpers,
smart-pointer formatting, and relocated range support.
Enhancements:
- Upgrade libfmt to 12.1.0 and spdlog to 1.17.0, including their
shared-library version changes.
- Refresh the Music Player Daemon and Fcitx5 ecosystem versions to
releases compatible with fmt 12.
- Synchronize dependent ports and adjust their revisions for the libfmt
ABI transition.
Tests:
- Verify the updated ports and their fmt consumers build successfully on
MidnightBSD 4.2 amd64.
---------
Signed-off-by: Lucas Holt <luke at foolishgames.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
To unsubscribe from these emails, change your notification settings at https://github.com/MidnightBSD/mports/settings/notifications
More information about the Midnightbsd-cvs
mailing list