python-waf-build 2.0.27+git20241008+dfsg-2
Package Information
| Description | Python 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. |
|---|---|
| Maintainer | Steffen Moeller <moeller@debian.org> |
| Changed By | Steffen Moeller <moeller@debian.org> |
| Sponsor | moeller@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/python-team/packages/python-waf-build.git (browse) |
| Closes | #843325 |
| Tracker | https://tracker.debian.org/pkg/python-waf-build |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Version | 2.0.27+git20241008+dfsg-2 |
|---|---|
| Changed-By | Steffen Moeller <moeller@debian.org> |
| Architecture | source all |
| Distribution | unstable |
| Date | Tue, 10 Nov 2026 00:08:11 +0100 |
| Source | python-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
| Priority | optional |
|---|---|
| Component | main |
| Package-List | python3-waflib deb python optional arch=all waf deb devel optional arch=all |
| Section | python |
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/copyrightis 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). TheFiles: *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.pyandwaflib/extras/boost.pyare installed bypython3-waflib(debian/python3-waflib.install), so the binary package ships files whose copyright noticedebian/copyrightdoes 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 ZellmanandGernot Vormayrto theCopyrightfield of theFiles: *stanza (or add per-file stanzas forwaflib/Tools/*anddemos/jni/*pluswaflib/extras/boost.py).waflib/Tools/g95.py:3(# KWS 2010) anddemos/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, packaged2.0.27+git20241008+dfsg - Problem: The newest version uscan finds with
debian/watchis older than the version indebian/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/watchlooks and how it mangles versions.
Verified ◂
debian/README.sourceis 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 matchesFiles-Excludedindebian/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'swscriptrenders it withdia -t png, and the rendered PNG is not shipped. No licence wording inside; it is upstream's own source, covered byFiles: *.playground/dynamic_build2/foo.tar(scan: tar archive) holdsaa/main.c(23 bytes) and is the input to that playground demo'star xvf ${SRC[0].abspath()}rule inwscript. 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 sourcedesignable.nib(77 KB) is in the same directory, so the preferred form for modification is present.playground/maxjobs/foo.a,bar.a,truc.aare 7-14 byte dummy archives used as fixtures byplayground/maxjobs/wscript, not built objects.playground/cython/cython_cache/src/cy_ctest.candcy_cxxtest.ccbegin/* Generated by Cython 0.29 */; their sourcesplayground/cython/src/cy_ctest.pyxandcy_cxxtest.pyxare 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:23copyright = '2019, sphinx'(the scan's one unmatched holder) anddocs/sphinx/conf.py:360copyright = 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 underFiles: *.- All four
Files-Excludedpaths are absent from the unpacked tree:docs/slides/presentation/gfx/waflogo.svg(the gfx directory holds only the.diaand awscript),playground/rst/test.svg,docs/sphinx/_images/waf-64x64.png(_imagesis empty) andplayground/xilinx-ise. - Licence texts:
LICENSE,waf-light,zip/waf-zip,utils/launcher/LICENSE,waflib/extras/codelite.pyandwaflib/extras/msvs.pyall carry the same BSD-3-clause text as theLicense: BSD-3-clauseparagraph;waflib/extras/eclipse.py:4andwaflib/extras/boost.pystate 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 isdemos/intltool/po/sv.po(# public domain, no copyright, matching its own stanza) andplayground/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, andplayground/stpl_c_py_cs_satellite_wix/src/gui/AssemblyInfo.cs.stplandsrc/msi/readme.rtfcontain 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.icoandplayground/stpl_c_py_cs_satellite_wix/src/gui/Resources/Icon1.ico; none carries a separate notice, all are covered byFiles: *, and none is installed in either binary package. utils/pubkey.ascis an ASCII-armoured PGP public key, used byutils/verify-sig.py; it is data, not a work with licence terms.debian/lrc.configcontaining justdebianis the licencecheck-exclusion file documented inlrc(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-588definesshell_quote = shlex.quoteand only falls back topipes.quoteon AttributeError, soUtils.shell_quoteexists on Python 3.13 wherewaflib/extras/genpybind.pynow uses it. debian/python3-waflib.installcovers everything underwaflib/: the tree has only.pyfiles inwaflib/,waflib/Tools/andwaflib/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 andpatches/series,tests/{control,upstream,build},upstream/metadata,waf.1,waf.dirs,waf.docs,waf.manpages,python3-waflib.{install,docs,README.Debian}. No maintainer scripts.wafandpython3-waflibare 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, anddh_installdocsinstallsdebian/package.README.Debianautomatically, as its manual page states. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (GPL-2).
Not confirmed ◂
demos/intltool/data/kupfer.desktop.inandkupfer-mimetypes.xml.incarry no licence statement of their own and are declared BSD-3 byFiles: *, but their names and the../data/kupfer.desktop.inreferences indemos/intltool/po/sv.poshow 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
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 2.0.27+git20241008+dfsg-1 | 5f79dbb6… | 2026-11-10 17:35 | 2026-11-10 17:35 | dfsg-uploader | rejected | VIEW |