DFSG NEW Queue

DFSG, Licensing & New Packages Team

python-waf-build 2.0.27+git20241008+dfsg-2

Package Information

DescriptionPython framework for configuring, building and installing software

Waf is a build system written in Python. It supports automatic dependency tracking, parallel builds, configuration checks and extensible build tasks for many programming languages and toolchains.

This package provides the waflib Python 3 library, including its standard tools and contributed extensions.

MaintainerSteffen Moeller <moeller@debian.org>
Changed BySteffen Moeller <moeller@debian.org>
Sponsormoeller@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/python-team/packages/python-waf-build.git (browse)
Closes#843325
Trackerhttps://tracker.debian.org/pkg/python-waf-build
Uploaded3 hours ago

New Package Report

.changes◂
Version2.0.27+git20241008+dfsg-2
Changed-BySteffen Moeller <moeller@debian.org>
Architecturesource all
Distributionunstable
DateTue, 10 Nov 2026 00:08:11 +0100
Sourcepython-waf-build
Changelog◂
python-waf-build (2.0.27+git20241008+dfsg-2) unstable; urgency=medium
 .
   * Initial release. (Closes: #843325)
   * Retain python-waf-build as the source package name and provide waf as
     the command-line binary package, with python3-waflib supplying waflib.
   * Install the unbundled Python 3 launcher and all core and extra tools.
   * Repack to exclude non-free logos and the Xilinx ISE example with unclear
     redistribution terms.
   * Add a manual page, upstream regression tests and a C build/install test.
   * Use Waf's shell quoting helper in genpybind for Python 3.13 and later.
.dsc◂
Priorityoptional
Componentmain
Package-Listpython3-waflib deb python optional arch=all
waf deb devel optional arch=all
Sectionpython
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/ArduPilot/waf
Upstream-Name: waf
Upstream-Contact: https://github.com/ArduPilot/waf/issues
Files-Excluded:
 docs/slides/presentation/gfx/waflogo.svg
 docs/sphinx/_images/waf-64x64.png
 playground/rst/test.svg
 playground/xilinx-ise
Comment:
 The SVG logos explicitly specify CC BY-NC. The companion Sphinx logo is
 also excluded because no separately licensed source is provided for it.
 The Xilinx ISE example includes a vendor copyright notice without a
 redistribution licence. These files are not needed for the Waf library
 or command-line tool.

Files:
 *
Copyright:
 2005-2023 Thomas Nagy
 2005 Scott Newton
 2006 Ralf Habacker
 2006-2007 Carlos Rafael Giani
 2007 Ali Sabil
 2007 Brant Young
 2007 Gustavo Carneiro
 2007 Matthias Jahn
 2007 Tamas Pal
 2007 andersg <andersg@0x63.nu>
 2008 DC
 2008 Daniel Svensson
 2008 Jaap Haitsma
 2008 Sebastian Schlingmann
 2008 Ruediger Sonderfeld
 2008 Bjoern Michaelsen
 2008 Luca Fossati
 2008-2011 Richard Quirk
 2009 Yinon Ehrlich
 2009 Michael Kuhn
 2009-2011 Nicolas Mercier
 2009-2010 Grygoriy Fuchedzhy
 2009 Nicolas Joseph
 2009-2011 Avalanche Studios
 2010 Joshua Simmons
 2010 Mark Coggeshall
 2010 Thomas Frauendorfer
 2010-2014 Jérôme Carretero <cJ-waf@zougloub.eu>
 2011 Antoine Dechaume
 2011 Chris Pickel
 2011 Laurent Birtz
 2011 Per Rosengren
 2011 Yannick LM
 2011-2014 Sylvain Rouquette
 2012 Alex Rønne Petersen
 2012 Anton Feldmann
 2012 Christian Klein <chrikle@berlios.de>
 2012 Hans-Martin von Gaudecker
 2012-2015 Matt Clarkson
 2012 Philipp Bender
 2012-2013, 2018 Garmin International or its subsidiaries
 2013 Christoph Koke
 2013 Mathieu Courtois, EDF R&D
 2014 Alexander Afanasyev
 2014 Krzysztof Kosiński
 2014 Michal Proszek
 2015 Simon Warg
 2016 Przemyslaw Rzepecki
 2016-2018 Calle Rosenquist
 2016-2022 Federico Pellegrin
 2017 Justin Israel
 2018-2019 DragoonX6
 2019 Alibek Omarov
 2019, 2023 Rafaël Kooi
 Waf and ArduPilot contributors
License: BSD-3-clause

Files:
 playground/gtest/tests/gtest_main.cc
Copyright:
 2006 Google Inc.
License: BSD-3-clause

Files:
 demos/intltool/po/sv.po
Copyright:
 None (public domain)
License: public-domain
 This file is in the public domain, as stated in its header.

Files:
 debian/*
Copyright:
 2026 Steffen Moeller <moeller@debian.org>
License: GPL-2+

License: BSD-3-clause
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 .
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 .
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 .
 3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.
 .
 THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.

License: GPL-2+
 This package is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.
 .
 This package is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License
 along with this package. If not, see <https://www.gnu.org/licenses/>.
Comment:
 On Debian systems, the complete text of the GNU General
 Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

DFSG Assistant LLM REVIEW 0 blocker, 1 important, 1 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 1 hour ago.

Report◂

DFSG NEW review for python-waf-build version 2.0.27+git20241008+dfsg-2

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: No
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 1 important, 1 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: 6 found

Licensing

The licences themselves are DFSG-free and internally consistent: apart from demos/intltool/po/sv.po (public domain, matching its own stanza) and playground/gtest/tests/gtest_main.cc (Google's BSD-3, own stanza), every file in the tree is the same BSD-3-clause text as LICENSE, and the non-free material named in Files-Excluded (the two CC BY-NC SVGs, the Sphinx logo PNG and playground/xilinx-ise) is genuinely absent from the unpacked source. debian/copyright is DEP-5 with a valid Format line, matching Files patterns, a full BSD-3 paragraph and a GPL-2+ paragraph pointing at /usr/share/common-licenses. What is not accurate is the holder list: the wide Files: * stanza reproduces the header comments of dozens of contributors but omits five who are named in the headers of files that are shipped in python3-waflib and in the demo tree.

Packaging

The packaging is careful and, in my judgement, uploadable: debhelper 13 with dh-sequence-python3, two Architecture: all binaries split cleanly (/usr/bin/waf in waf, the library in python3-waflib, tied together with = ${binary:Version}), a rules file that does exactly what README.source describes (build the patched waf-light launcher, run two test scripts, install the launcher), both patches with DEP-3 headers, autopkgtests that use @ and work from the source root as the autopkgtest specification requires, and Standards-Version: 4.7.4 against Policy 4.7.4.1. I found no dependency, patch, maintainer-script, changelog or Vcs-* problem to report.

Issues

important licensing 1. Files: * omits the holders John O'Meara, Stian Selnes, Radosław Szkodziński, Thomas Zellman and Gernot Vormayr named in file headers ◂
  • Files: debian/copyright (Copyright field of the Files: * stanza, lines 19-66); waflib/Tools/bison.py:3; waflib/Tools/flex.py:3; waflib/Tools/icc.py:3; waflib/Tools/vala.py:4; demos/jni/wscript:3; waflib/extras/boost.py:4
  • Basis: checked, in the package or with a reference tool
  • Evidence: Headers in the tree: # John O'Meara, 2006 (bison.py, flex.py), # Stian Selnes 2008 (icc.py), # Radosław Szkodziński, 2010 (vala.py), # Thomas Zellman 2009 (demos/jni/wscript), # partially based on boost.py written by Gernot Vormayr (boost.py). The Files: * Copyright list names the other such header lines, e.g. 2005 Scott Newton, 2006 Ralf Habacker, 2007 Ali Sabil, 2009 Yinon Ehrlich, 2010 Mark Coggeshall, 2011 Per Rosengren, but none of the five above.
  • Problem: The list was plainly built from these per-file headers (name and year, as in # Ralf Habacker, 2006 (rh)), so the omissions are oversights rather than a deliberate policy. waflib/Tools/bison.py, flex.py, icc.py, vala.py and waflib/extras/boost.py are installed by python3-waflib (debian/python3-waflib.install), so the binary package ships files whose copyright notice debian/copyright does not reproduce, which is also what BSD-3-clause clause 1 requires ('Redistributions of source code must retain the above copyright notice').
  • Fix: Add 2006 John O'Meara, 2008 Stian Selnes, 2010 Radosław Szkodziński, 2009 Thomas Zellman and Gernot Vormayr to the Copyright field of the Files: * stanza (or add per-file stanzas for waflib/Tools/* and demos/jni/* plus waflib/extras/boost.py). waflib/Tools/g95.py:3 (# KWS 2010) and demos/perl/wscript:3 (# anonymous coward, 2007) name no real holder and cannot be listed as they stand.
minor packaging 2. uscan finds only upstream versions older than the packaged one ◂
  • Files: debian/watch
  • Basis: found by the review tooling's own checks
  • Evidence: upstream 1.9.2, packaged 2.0.27+git20241008+dfsg
  • Problem: The newest version uscan finds with debian/watch is older than the version in debian/changelog, so the watch file does not find the packaged release: it may look in the wrong place, or the versions may need mangling to compare.
  • Fix: Check where debian/watch looks and how it mangles versions.
Verified ◂
  • debian/README.source is the maintainer's note on repacking and testing: its sentence 'The two SVG logos explicitly carry CC BY-NC terms' describes the files excluded from the orig tarball and matches Files-Excluded in debian/copyright; it does not state a licence for anything in the tree. Its instructions (mk-origtargz --copyright-file debian/copyright --repack-suffix +dfsg) produce exactly the four exclusions the tree shows.
  • docs/slides/presentation/gfx/slides-executable_deps.dia (scan: gzip-compressed) is a gzip-compressed Dia diagram, the editable source for the build-dependency slide; the directory's wscript renders it with dia -t png, and the rendered PNG is not shipped. No licence wording inside; it is upstream's own source, covered by Files: *.
  • playground/dynamic_build2/foo.tar (scan: tar archive) holds aa/main.c (23 bytes) and is the input to that playground demo's tar xvf ${SRC[0].abspath()} rule in wscript. Test data, not a built artifact.
  • demos/mac_app/resources/MainMenu.nib/keyedobjects.nib (scan: unrecognised binary) is a compiled Cocoa interface; the editable XML source designable.nib (77 KB) is in the same directory, so the preferred form for modification is present.
  • playground/maxjobs/foo.a, bar.a, truc.a are 7-14 byte dummy archives used as fixtures by playground/maxjobs/wscript, not built objects.
  • playground/cython/cython_cache/src/cy_ctest.c and cy_cxxtest.cc begin /* Generated by Cython 0.29 */; their sources playground/cython/src/cy_ctest.pyx and cy_cxxtest.pyx are present, so the generated files are demo fixtures with their generator input in the tree.
  • build_system_kit/nostate/README.txt:2 ('this example is for research purposes only') is an author's note that the example deliberately uses timestamps instead of signatures, not a licence restriction; the example's code is under the tree's BSD-3.
  • playground/sphinx/src/conf.py:23 copyright = '2019, sphinx' (the scan's one unmatched holder) and docs/sphinx/conf.py:360 copyright = u'2005-2023 waf.io' are sphinx-quickstart / waf build-configuration strings (project = 'project', version = ''), not notices by the Sphinx project or a separate holder; both files are upstream's own and fall under Files: *.
  • All four Files-Excluded paths are absent from the unpacked tree: docs/slides/presentation/gfx/waflogo.svg (the gfx directory holds only the .dia and a wscript), playground/rst/test.svg, docs/sphinx/_images/waf-64x64.png (_images is empty) and playground/xilinx-ise.
  • Licence texts: LICENSE, waf-light, zip/waf-zip, utils/launcher/LICENSE, waflib/extras/codelite.py and waflib/extras/msvs.py all carry the same BSD-3-clause text as the License: BSD-3-clause paragraph; waflib/extras/eclipse.py:4 and waflib/extras/boost.py state the same (New) BSD licence.
  • I read every comment header in the tree that carries a year (130 such lines) and every Copyright/__copyright__/__author__ line: the only licence that is not BSD-3 is demos/intltool/po/sv.po (# public domain, no copyright, matching its own stanza) and playground/gtest/tests/gtest_main.cc (// Copyright 2006, Google Inc., own stanza). demos/tex/src/bib.bib's 'author = Russel Winder and Graham Roberts' is a bibliography entry, and playground/stpl_c_py_cs_satellite_wix/src/gui/AssemblyInfo.cs.stpl and src/msi/readme.rtf contain placeholders (AssemblyCopyright("Copyright © {{company}} 2015"), 'This program itself is nonsense'), not notices.
  • Images in the tree are only demos/mac_app/resources/MacApp.icns, demos/c/program/gfx/semfavicon.ico and playground/stpl_c_py_cs_satellite_wix/src/gui/Resources/Icon1.ico; none carries a separate notice, all are covered by Files: *, and none is installed in either binary package.
  • utils/pubkey.asc is an ASCII-armoured PGP public key, used by utils/verify-sig.py; it is data, not a work with licence terms.
  • debian/lrc.config containing just debian is the licencecheck-exclusion file documented in lrc(1) ('False positives may suppressed by creating a file debian/lrc.config'), not a stray configuration.
  • The genpybind patch is consistent with the library it is applied to: waflib/Utils.py:585-588 defines shell_quote = shlex.quote and only falls back to pipes.quote on AttributeError, so Utils.shell_quote exists on Python 3.13 where waflib/extras/genpybind.py now uses it.
  • debian/python3-waflib.install covers everything under waflib/: the tree has only .py files in waflib/, waflib/Tools/ and waflib/extras/ (no data files that the three install lines would miss).
  • Packaging files read in full: control, rules, changelog, copyright, README.source, gbp.conf, lrc.config, salsa-ci.yml, source/format, both patches and patches/series, tests/{control,upstream,build}, upstream/metadata, waf.1, waf.dirs, waf.docs, waf.manpages, python3-waflib.{install,docs,README.Debian}. No maintainer scripts. waf and python3-waflib are found neither in the archive lists nor in the NEW queue under those names, so both are new binaries of this source and no conflict arises (checked with apt-cache). tests/{general,utils,preproc,post} compile nothing, and dh_installdocs installs debian/package.README.Debian automatically, as its manual page states.
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (GPL-2).
Not confirmed ◂
  • demos/intltool/data/kupfer.desktop.in and kupfer-mimetypes.xml.in carry no licence statement of their own and are declared BSD-3 by Files: *, but their names and the ../data/kupfer.desktop.in references in demos/intltool/po/sv.po show they were copied from the Kupfer project. Whether Kupfer's licence (recalled as GPL-3+, not checked here) needs its own stanza for two trivial desktop-entry/MIME data files that are not installed in any binary could not be decided from the package.
Proposed changes ◂

None.

Uploader's response to the LLM review

Waiting for the uploader's response until , because the review found serious issues.

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
2.0.27+git20241008+dfsg-1 5f79dbb6… 2026-11-10 17:35 2026-11-10 17:35 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package