[Midnightbsd-cvs] [MidnightBSD/mports] 15dadf: devel/libfmt: update to 12.1.0 and bump consumers

Lucas Holt noreply at github.com
Mon Sep 7 11:17:36 EDT 2026


  Branch: refs/heads/devel/libfmt
  Home:   https://github.com/MidnightBSD/mports
  Commit: 15dadf245b3343c9081fdbb94676a342966d1ec7
      https://github.com/MidnightBSD/mports/commit/15dadf245b3343c9081fdbb94676a342966d1ec7
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M audio/musicpd/Makefile
    M audio/sdl_audiolib/Makefile
    M cad/freecad/Makefile
    M cad/openroad/Makefile
    M chinese/fcitx5-chinese-addons/Makefile
    M databases/mariadb114-server/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 games/devilutionX/Makefile
    M multimedia/kodi/Makefile
    M net-im/telegram-desktop/Makefile
    M textproc/fcitx5/Makefile
    M x11-toolkits/kddockwidgets/Makefile
    M x11/waybar/Makefile

  Log Message:
  -----------
  devel/libfmt: update to 12.1.0 and bump consumers

Update libfmt from 9.1.0 to 12.1.0 to match the version FreeBSD ports
carries. This is needed by ai/pytorch 2.13.0, which no longer builds
against fmt 9.

The shared library SONAME changes from libfmt.so.9 to libfmt.so.12, so
PORTREVISION is bumped on the 17 ports that link against it directly,
via Tools/scripts/bump_revision.pl -f -l devel/libfmt.

LICENSE_FILE moves from LICENSE.rst to LICENSE (upstream renamed it) and
pkg-plist gains include/fmt/base.h.

Note that x11/waybar has two INDEX entries because of its FLAVORS, so
bump_revision.pl bumped it twice; corrected by hand to a single bump.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: 844e5bffaf351b82edd5c52da7687f87ea15978d
      https://github.com/MidnightBSD/mports/commit/844e5bffaf351b82edd5c52da7687f87ea15978d
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M devel/spdlog/Makefile
    M devel/spdlog/distinfo
    M devel/spdlog/pkg-plist

  Log Message:
  -----------
  devel/spdlog: update to 1.17.0 for fmt 12 compatibility

spdlog 1.15.0 does not build against fmt 12.1.0: fmt::basic_format_string
was removed, which breaks include/spdlog/common.h:369. 1.17.0 is the first
release that supports fmt 12.

The shared library SONAME changes from libspdlog.so.1.15 to
libspdlog.so.1.17. pkg-plist now derives that from a new SHLIB_VER
PLIST_SUB rather than hardcoding the version, so future updates only need
the DISTVERSION change.

Consumers were already bumped in the libfmt commit on this branch, so they
pick up both SONAME changes in a single rebuild.

Built and packaged on MidnightBSD 4.2 amd64.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: d5a6b3056904574a4e5ba0ed5f5e18b4b4e50001
      https://github.com/MidnightBSD/mports/commit/d5a6b3056904574a4e5ba0ed5f5e18b4b4e50001
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M ai/ollama/Makefile
    M cad/cura-engine/Makefile
    M devel/ccache4/Makefile
    M filesystems/ntfs2btrfs/Makefile
    M graphics/podofo/Makefile
    M net-p2p/transmission-components/Makefile

  Log Message:
  -----------
  *: bump PORTREVISION for fmt 12 / spdlog 1.17 consumers missed by bump_revision.pl

Tools/scripts/bump_revision.pl -l only bumps ports that declare a
libfmt.so or libspdlog.so LIB_DEPENDS recorded in INDEX. It therefore
missed six ports that consume fmt or spdlog another way:

  graphics/podofo                   libfmt>=0 package dependency
  devel/ccache4                     libfmt.so inside an option block
  filesystems/ntfs2btrfs            fmt/format.h build dependency
  ai/ollama                         libfmt cmake config, option block
  net-p2p/transmission-components   fmt/format.h build dependency
  cad/cura-engine                   fmt/format.h plus libspdlog.so

cura-engine links libspdlog.so, whose SONAME changed, so it would
otherwise have been left linked against a library that no longer exists.
The rest use fmt header-only; they emit no NEEDED entry, but fmt 9 to 12
changes the inlined code, so the installed artifacts differ and a rebuild
is still required.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: a805ed30054ab8eb989c988a2dbc14e981c0fb9a
      https://github.com/MidnightBSD/mports/commit/a805ed30054ab8eb989c988a2dbc14e981c0fb9a
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    A cad/cura-engine/files/patch-include_utils_format_filesystem__path.h

  Log Message:
  -----------
  cad/cura-engine: fix build against fmt 12

fmt 10 and later require the format() member of a custom formatter to be
const. CuraEngine's std::filesystem::path formatter is non-const, so every
spdlog call that logs a path fails to compile, e.g.
src/communication/CommandLine.cpp:408.

Adds files/patch-include_utils_format_filesystem__path.h from the FreeBSD
port, which is at the same 5.7.0 version.

PORTREVISION was already bumped on this branch for the fmt and spdlog
SONAME changes, so no further bump is needed.

Built on MidnightBSD 4.2 amd64.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: 23b27f5830202682c703187901970356127d972d
      https://github.com/MidnightBSD/mports/commit/23b27f5830202682c703187901970356127d972d
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    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

  Log Message:
  -----------
  audio/musicpd: update to 0.24.14 for fmt 12 compatibility

musicpd 0.23.15 does not build against fmt 12. Its five custom formatters
have a non-const format(), which fmt 10 and later require to be const, and
src/Log.cxx relies on <iterator> arriving transitively through fmt. Patching
those fixes the first wall and then hits a second one: 0.23.x uses the
FMT_COMPILE_STRING to fmt::string_view conversion that fmt 12 removed. 0.24
is the branch that supports fmt 12, so update rather than keep patching.

The port is resynced with the FreeBSD one at the same version:
- boost-libs is no longer needed, and -licuuc is no longer needed in LDFLAGS
- the compiler requirement moves from c++17 to c++20
- bzip2 is enabled, chromaprint and shine are explicitly disabled
- SOUNDCLOUD and YAJL options are gone; QOBUZ now uses devel/nlohmann-json
  instead of libyajl
- MANPAGES additionally needs textproc/py-sphinx_rtd_theme

The mports deltas are kept: MAINTAINER, LICENSE=gpl2+, and do-install using
${PREFIX} rather than ${STAGEDIR}${PREFIX}, since PREFIX already includes
FAKE_DESTDIR during fake. do-install-MANPAGES-on keeps its explicit
${FAKE_DESTDIR}${PREFIX}, because do-install-* targets do not get it
prepended.

Three mports-only patches are dropped as fixed upstream: the libavutil/error.h
include in FfmpegIo.cxx, the header reordering in nfs/Error.cxx, and the
stdio.h include in ArgParser.cxx. patch-doc_mpdconf.example is refreshed
against 0.24 and keeps the same /var/mpd paths. Two patches are picked up from
the FreeBSD port, for CdioParanoiaInputPlugin.cxx and DscpParser.cxx.

pkg-plist is unchanged. distinfo SHA256 matches the FreeBSD port.

Built and packaged on MidnightBSD 4.2 amd64.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: 9b59df4fcf335b6a26bd2b6069cf03d246f75723
      https://github.com/MidnightBSD/mports/commit/9b59df4fcf335b6a26bd2b6069cf03d246f75723
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    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

  Log Message:
  -----------
  net-p2p/transmission-components: fix build against fmt 12

transmission 4.0.6 uses three fmt APIs that fmt 12 changed:

- fmt::localtime was removed. localtime_r is what it wrapped, so call that
  directly and format the resulting std::tm, which is behaviour preserving.
  Six call sites: libtransmission/torrent.cc,
  libtransmission/session-alt-speeds.cc, utils/remote.cc, utils/show.cc and
  two in gtk/DetailsDialog.cc.
- fmt::ptr no longer accepts smart pointers, so pass the raw pointer in
  libtransmission/peer-msgs.cc.
- fmt::join moved to <fmt/ranges.h>, which gtk/DetailsDialog.cc did not
  include.

In utils/show.cc and gtk/DetailsDialog.cc the ternaries are expanded to if
statements so both arms still yield std::string.

Updating to 4.1.3, which is what FreeBSD carries and which needs none of
this, was considered and rejected for now: it depends on math/wide-integer
and devel/small, neither of which exists in mports, so it would turn one fmt
fix into three new or updated ports. Worth doing separately.

PORTREVISION was already bumped on this branch for the fmt 12 and spdlog 1.17
SONAME changes, so no further bump is needed.

Built on MidnightBSD 4.2 amd64 for the cli, daemon, utils, web, docs and qt
flavors; cli additionally staged and packaged. The gtk flavor could not be
built here because its dependency devel/libayatana-appindicator fails to link
against gtk3, dbusmenu and the ayatana indicator libraries even though all of
them are installed. That port has no fmt dependency and is not installed on
this host, so the failure is pre-existing and unrelated. The gtk sources are
still covered, since the qt flavor compiles gtk/DetailsDialog.cc as well.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


  Commit: 57d660a55b4a9482092d4b04283ad91f80b55f3d
      https://github.com/MidnightBSD/mports/commit/57d660a55b4a9482092d4b04283ad91f80b55f3d
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    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 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/plasma-wayland-protocols/Makefile
    M x11/plasma-wayland-protocols/distinfo
    M x11/plasma-wayland-protocols/pkg-plist

  Log Message:
  -----------
  fcitx5, libime: update the input method stack for fmt 12

chinese/fcitx5-chinese-addons 5.1.8 does not build against fmt 12. It uses
fmt::localtime, which fmt 12 removed, and around eight format strings that
fmt 11's consteval checking rejects. Upstream fixed all of it by 5.1.13, and
the FreeBSD port at that version carries no patches at all, so update rather
than hand-patch. That pulls the rest of the stack forward, because
fcitx5-chinese-addons 5.1.13 needs Fcitx5Core 5.1.20 or newer and
LibIMEPinyin 1.1.14 or newer:

  x11/plasma-wayland-protocols  1.19.0 -> 1.21.0  (fcitx5 needs >= 1.20)
  textproc/fcitx5               5.1.13 -> 5.1.21
  textproc/fcitx5-qt            5.1.12 -> 5.1.14
  chinese/libime                1.1.13 -> 1.1.15
  chinese/libime-jyutping       1.0.13 -> 1.0.17
  chinese/fcitx5-chinese-addons 5.1.8  -> 5.1.13

textproc/fcitx5-qt-common is a slave port of fcitx5-qt and picks the version
up from the master, so it only needs rebuilding.

fcitx5 5.1.21 drops its libfmt dependency entirely in favour of C++20
std::format, which needs -fexperimental-library with libc++, so this actually
removes a port from the fmt dependency graph. It also switches from
misc/e2fsprogs-libuuid to misc/libuuid and gains a nlohmann-json build
dependency.

fcitx5-chinese-addons moves its GUI option from Qt5 to Qt6, matching upstream;
mports has Qt 6.10.1 and fcitx5-qt has a qt6 flavor, so nothing else is
needed.

libime-jyutping 1.0.13 additionally fails against libime 1.1.15, which moved
marshall and unmarshall out of the headers it was using, so its update is
required by this change rather than only by fmt.

mports needs an explicit version for the kde USES where FreeBSD accepts a bare
kde, so those become kde:6. MAINTAINER and the mports license identifiers are
kept throughout. All distinfo checksums match the FreeBSD ports byte for byte.

Neither libFcitx5Core.so.7 nor libIMEPinyin.so.0 changes SONAME, so no
consumer PORTREVISION bumps are needed for this update.

Built and packaged on MidnightBSD 4.2 amd64, including both fcitx5-qt flavors.
chinese/fcitx5-table-other and textproc/fcitx5-lua were rebuilt against the
new stack and are unaffected.

AI-Assisted-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkHF8bn8Ehit2aSoWjCshm
Signed-off-by: Lucas Holt <luke at foolishgames.com>


Compare: https://github.com/MidnightBSD/mports/compare/15dadf245b33%5E...57d660a55b4a

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