Summary: | devel/spdlog: unbundle fmtlib or update to 6.0.0 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Jan Beich <jbeich> | ||||||
Component: | Individual Port(s) | Assignee: | Vanilla I. Shu <vanilla> | ||||||
Status: | Closed FIXED | ||||||||
Severity: | Affects Only Me | CC: | tobik, vanilla | ||||||
Priority: | --- | Keywords: | needs-patch | ||||||
Version: | Latest | Flags: | vanilla:
maintainer-feedback+
|
||||||
Hardware: | Any | ||||||||
OS: | Any | ||||||||
Bug Depends on: | |||||||||
Bug Blocks: | 240141 | ||||||||
Attachments: |
|
Description
Jan Beich
2019-08-27 14:34:00 UTC
Created attachment 206981 [details]
unbundle (like Gentoo)
FMT_HEADER_ONLY fix is suboptimal. <spdlog/fmt/fmt.h> and <spdlog/fmt/ostr.h> appear to be wrappers to cheat on libfmt dependency.
Created attachment 206993 [details]
unbundle (like Gentoo), v2
- Avoid having to add -DFMT_HEADER_ONLY in consumers
- Don't break build with libfmt 5.3.0 (from upstream)
Comment on attachment 206993 [details]
unbundle (like Gentoo), v2
I'm still not sure how I feel about preserving the header-only API
with system fmtlib. I think it might be nicer to declare the libfmt
dependency in consumers explicitly instead. However that rabbit
hole seems too deep to be worth it, so I'm ok with the patch as is.
Jan, have you already tested that all spdlog consumers also build
fine in combination with fmtlib 6.0.0 or is that still open?
(In reply to Tobias Kortkamp from comment #3) > Jan, have you already tested that all spdlog consumers also build > fine in combination with fmtlib 6.0.0 or is that still open? I've only tested spdlog against fmtlib 5.3.0 and 6.0.0 and consumers of both against fmtlib 6.0.0. The approach taken was exactly because dropping FMT_HEADER_ONLY required too much work e.g., how a consumer is supposed to figure out whether -lfmt is needed which can be upstreamed. (In reply to Jan Beich from comment #4) > ... how a consumer is supposed to figure out whether -lfmt is needed which can be upstreamed. For one, -lfmt can be part of `pkg-config --libs spdlog` (via Requires) but at least databases/tiledb and net-im/nheko use custom CMake module instead of pkg-config while sysutils/lizardfs doesn't use either relying on -I/usr/local/include from elsewhere. A commit references this bug: Author: tobik Date: Sun Sep 1 06:09:52 UTC 2019 New revision: 510679 URL: https://svnweb.freebsd.org/changeset/ports/510679 Log: devel/spdlog: Use system fmt This is in preparation for updating devel/libfmt to 6.0.0. Spdlog bundles fmt 5.3.0 which is incompatible with 6.0.0. This would lead to problems in consumers that use both. PR: 240148 Submitted by: jbeich Approved by: vanilla (maintainer) Changes: head/devel/spdlog/Makefile head/devel/spdlog/distinfo head/devel/spdlog/files/ head/devel/spdlog/files/patch-system-fmt head/devel/spdlog/pkg-plist Committed. Thanks! |