DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: fmtlib 12.1.0+ds1-1

Package Information

Descriptionfast type-safe C++ formatting library -- development files

This library provides fast, type-safe, small, C++11-aware replacement of (s)printf and related machinery. In some cases it's noticeably faster than boost::format, boost::lexical_cast and even sprintf itself.

This package contains the development files, include the static library.

MaintainerShengjing Zhu <zhsj@debian.org>
Changed ByShengjing Zhu <zhsj@debian.org>
Sponsorzhsj@debian.org
Distributionexperimental
Architectureany all
VCSgit: https://salsa.debian.org/zhsj/fmtlib.git (browse)
Closes#1149808
Popcon Installs53308
Binary NEWYes (new binary packages of a source already in sid)
Trackerhttps://tracker.debian.org/pkg/fmtlib
Uploaded1 month, 1 day ago

New Package Report

.changes◂
Sourcefmtlib
Version12.1.0+ds1-1
Changed-ByShengjing Zhu <zhsj@debian.org>
Architecturesource amd64 all
Distributionexperimental
DateThu, 08 Oct 2026 02:59:21 +0800
Changelog◂
fmtlib (12.1.0+ds1-1) experimental; urgency=medium
 .
   * New upstream version 12.1.0+ds1
   * Update SO version to 12.
   * Update d/copyright.
   * Define nodoc and nocheck build profiles. (Closes: #1149808)
.dsc◂
Priorityoptional
Componentmain
Package-Listlibfmt-dev deb libdevel optional arch=any
libfmt-doc deb doc optional arch=all profile=!nodoc profile:v1=!nodoc
libfmt12 deb libs optional arch=any
Sectionlibdevel
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: fmt
Source: https://github.com/fmtlib/fmt
Files-Excluded:
  .github
  doc/python-license.txt
  support/Android*
  support/C++.sublime-syntax
  support/README
  support/Vagrantfile
  support/build.gradle
  support/docopt.py
  support/manage.py
  support/printable.py
  test/gtest

Files: *
Copyright: 2012-present Victor Zverovich and {fmt} contributors
License: Expat with embedded exception

Files: include/fmt/chrono.h
       test/fuzzing/build.sh
       test/fuzzing/CMakeLists.txt
       test/fuzzing/one-arg.cc
       test/fuzzing/chrono-duration.cc
       test/fuzzing/two-args.cc
       test/fuzzing/fuzzer-common.h
       test/fuzzing/chrono-timepoint.cc
       test/fuzzing/named-arg.cc
Copyright: 2019 Paul Dreik
License: Expat with embedded exception

Files: support/cmake/JoinPaths.cmake
Copyright: 2020 Jan Tojnar
License: Expat or CC0-1.0

Files: debian/*
Copyright: 2020 Shengjing Zhu <zhsj@debian.org>
License: Expat

License: Expat with embedded exception
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 "Software"), to deal in the Software without restriction, including
 without limitation the rights to use, copy, modify, merge, publish,
 distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to
 the following conditions:
 .
 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 .
 --- Optional exception to the license ---
 .
 As an exception, if, as a result of your compiling your source code, portions
 of this Software are embedded into a machine-executable object form of such
 source code, you may redistribute such embedded portions in such object form
 without including the above copyright and permission notices.

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

License: CC0-1.0
 On Debian systems, the complete text of the CC0 1.0 license can be found in
 /usr/share/common-licenses/CC0-1.0

Review Information

accepted — allocated to awm 1 month, 1 day ago, started 1 month, 1 day ago, completed 1 month, 1 day ago.

Final Comment

Hi,

Minor issues - please fix on your next upload.

1 (real, accuracy): include/fmt/chrono.h is wrongly attributed in debian/copyright. The stanza beginning at Files: include/fmt/chrono.h … test/fuzzing/… declares Copyright: 2019 Paul Dreik and, being later than Files: *, overrides it for chrono.h. But include/fmt/chrono.h:2-4 reads // Copyright (c) 2012 - present, Victor Zverovich / All rights reserved. — Zverovich is the file's holder, with a safe_duration_cast sub-section at chrono.h:38 attributed Copyright Paul Dreik 2019. As written, Debian's records list only Paul Dreik for a Zverovich header. Fix: drop include/fmt/chrono.h from the Dreik stanza (it then falls under the Zverovich catch-all) and optionally note the Dreik source of the safe_duration_cast block there. (Year drift on chrono-timepoint.cc says 2021 vs 2019 — noted, not worth changing.)

2 (real, completeness): the shipped documentation carries PSF terms that debian/copyright neither lists nor provides text for. README.md "# Documentation License" states the Format String Syntax section derives from Python's string module docs and "is distributed under the Python Software Foundation license available in doc/python-license.txt". doc/syntax.md indeed reproduces the Python "Format Specification Mini-Language" grammar and prose more or less verbatim (e.g. syntax.md:76-93). Debian ships this doc in libfmt-doc, but the PSF text (doc/python-license.txt) is listed in Files-Excluded and removed, and no PSF stanza is in the copyright file. The PSF licence is DFSG-free and lives in /usr/share/common-licenses/PSF, so this is not a DFSG violation — but the file is incomplete. Fix: add a Files: doc/* (or doc/syntax.md) stanza with Copyright: 2012-present Victor Zverovich and {fmt} contributors and License: Expat... + a PSF reference (common-licenses), or keep the PSF text instead of excluding it.

Some nits that you may want to also address...

  • watch file: version 4 (debian/watch:1). One-sentence note: it should be converted to version 5. Syntax reviewed otherwise: it targets fmtlib/fmt tags, dversionmangle=auto + repacksuffix=+ds1 correctly yield 12.1.0+ds1 matching the changelog, and Files-Excluded is present, so the +ds1 suffix is consistent. No debian/upstream/ metadata or signing key; acceptable.

  • Minor — debian/patches/0003-mkdocstrings.patch lacks DEP-3 Forwarded:/Description: (the other two have Forwarded: not-needed). The patch is a 267/148-line rewrite of the cxx handler to adapt to mkdocstrings 1.0 (#1135498); it is a genuine compatibility fix that should be forwarded upstream, currently unlabeled.

  • Minor/real — the shipped docs reference an external CDN. support/mkdocs.yml sets extra_javascript: https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js (and matching extra_css), and use_pygments: false makes the HTML rely on that JS. The built libfmt-doc pages therefore embed links to cdnjs.cloudflare.com — a privacy/offline concern for shipped docs. [INFERENCE] standard mkdocs behaviour; not executed. Fix: patch mkdocs.yml to drop the CDN entries (and enable Pygments for highlighting).

  • Minor — debian/doxygen.conf is dead. Nothing in debian/ or the build references it; the mkdocstrings cxx handler now generates its own doxygen config inline (support/python/mkdocstrings_handlers/cxx/init.py:261-305), writing XML to build/doxyxml. Leftover from the Sphinx-era build.

  • Minor/cosmetic — libfmt-dev Description says "include the static library" but rules sets BUILD_SHARED_LIBS=on and only libfmt.so is installed; no static archive is built. Stale upstream text; harmless.

Thanks!

Back to Dashboard | View all reviews for this package