vcswatch reports that
this package seems to have a new changelog entry (version
20241210-4, distribution
UNRELEASED) and new commits
in its VCS. You should consider whether it's time to make
an upload.
Here are the relevant commit messages:
commit 23e54681645e39119822dfd21f3547a447766e9f
Merge: 6f32c7d dbaf044
Author: Ben Hutchings <benh@debian.org>
Date: Tue Jun 2 17:11:14 2026 +0200
Merge branch 'sync-from-nonfree' into 'debian/latest'
Apply relevant changes from firmware-nonfree
See merge request kernel-team/firmware-free!11
commit dbaf044fcee3f64604c71255492b8ec8e4d932a2
Author: Agathe Porte <agathe.porte@oss.qualcomm.com>
Date: Tue May 5 13:22:40 2026 +0200
control: stop suggesting initramfs-tools
The use of initramfs-tools in forky is being phased out for dracut, so
this suggestion is becoming obsolete. Suggesting an initramfs generator
for every firmware package also do not seem to be a sensible solution,
since some firmware can just be loaded when the root file system is
mounted.
Remove the Suggest: initramfs-tools line in the generated binary
packages to reflect this.
Closes: #1135736
Signed-off-by: Agathe Porte <agathe.porte@oss.qualcomm.com>
[bwh: Cherry-picked from firmware-nonfree commit
cf0df1b48a6284fd5a5da49a931dac3f475f9897]
commit 1c2f18fb99be2b71f4986bfe5c6196953f4788e2
Author: Agathe Porte <debian@microjoe.org>
Date: Tue May 5 14:07:33 2026 +0200
gencontrol: s/initramfs-tools/update-initramfs/
[bwh: Cherry-picked from firmware-nonfree commit
02124d59c838bc17905bd085d7d9ea9334c70b20]
commit 510fbd72da5e8c8dc075adf95b28bd4b65ccfaa4
Author: Ben Hutchings <benh@debian.org>
Date: Thu Apr 2 19:38:54 2026 +0200
Move EULA text into configuration file
Since TOML supports multi-line strings with newlines preserved, we can
now include the EULAs for ipw2x00 and ivtv firmware in the
configuration file. Do that, removing the last per-package files
under debian/config.
Group the 2 EULA fields into a subsection so we can require that both
or neither are present.
[Cherry-picked from firmware-nonfree commit
3328ca498600e9a23e46dbe5776d47fd381a35fb:
- There are no EULAs here, but I need to keep the scripts in sync
- Leave the config fields undocumented here as we will never use
them here
]
commit 69db420323a0febdd669dc7391df55ff20cd7b83
Author: Ben Hutchings <benh@debian.org>
Date: Mon Apr 6 15:18:16 2026 +0200
d/b/gencontrol.py: Disable makefile generation more cleanly
Instead of monkey-patching the bundle object's write_makefile method,
override our own write method to only call write_control.
[Cherry-picked from firmware-nonfree commit
2db9c73610bb39a6b60c19520769d8c97f7b9cf1]
commit 78daefc22246e9e6bf9f554ff7c5636a1433184a
Author: Ben Hutchings <benh@debian.org>
Date: Thu Apr 2 17:47:46 2026 +0200
Change configuration handling to use TOML format and dacite
Switch configuration parsing over to TOML, with a schema defined via
dacite and dataclasses. The same change was previously done in
src:linux.
Since TOML allows defining an 'array of tables', take this opportunity
to put the per-package and global config together.
- debian_firmware.config:
- Define dataclasses for global and per-package config
- Read the config from d/c/defines.toml using tomllib and dacite
- Rename some fields to use underscores instead of hyphens
- d/config: Convert to the new format
- d/rules: Update CONTROL_FILES for the above change
- d/README.source: Update to describe the new format
- d/b/{check_upstream.py,gencontrol.py,install-files}: Update to use
the new config API
- d/t/source.control.in: Add dependency on dacite
[Cherry-picked from firmware-nonfree commit
9499157d141d63b144f49477af0e8ca8330b497c:
- Apply the same conversion to our configuration
- Leave the license_title field undocumented here as we will never
use it
- Also update d/b/release-update, fixed separately in
firmware-nonfree
]
commit 2c7a890dca897cdbbd7af61c4fbceb625d6ce9ed
Author: Ben Hutchings <benh@debian.org>
Date: Thu Apr 2 17:16:56 2026 +0200
Move added/replacement firmware to debian/added-firmware/
Currently added and replacement firmware files and symlinks are placed
under debian/config/<package>, but they are not config so this doesn't
make a lot of sense. It also complicates install-files which has to
filter out various filenames to determine whether any of that firmware
is unused.
- d/config: Move all firmware files and symlinks directly under
debian/added-firmware/
- d/bin: Change check_upstream.py and install-files to look there
- d/copyright, d/source/include-binaries: Update filenames and patterns
- d/c/misc-nonfree: Since this includes v4l-*, exclude files that
belong in ivtv and would otherwise now be included
- d/README.source: Remove text stating non-upstream files go under
debian/config and add a separate section describing
debian/added-firmware
[Cherry-picked from firmware-nonfree commit
650c376c4ba850204a4be634808596b1dbd3bc99:
- There are no such firmware blobs here, but I need to keep the
scripts in sync
- In d/b/check_upstream.py, update the second call to update_file()
as well
]
commit 837aa369bb7260832ece1341fb27adc7a7ae04b8
Author: Ben Hutchings <benh@debian.org>
Date: Thu Apr 2 19:04:02 2026 +0200
d/b/check_upstream.py: Fix name of 'files-excluded' config field
The package config field is called 'files-excluded', like in
debian/copyright, not 'files-exclude'.
This fix results in reporting several more files as not included in
binary packages, but these seem to all be either legal notices which
we don't need to include (as they are already copied into
debian/copyright) or firmware that we intentionally don't want to
ship. These should be resolved later on.
[Cherry-picked from firmware-nonfree commit
403c960195eb8917a92727a11cc75c07eba7b010]
commit c4d786a48eb1a3da29896ca2dc6bc295bc46971f
Author: Ben Hutchings <benh@debian.org>
Date: Thu Mar 26 21:31:09 2026 +0100
Replace upstream copy-firmware.sh with our own WHENCE parser
The upstream copy-firmware.sh script doesn't work that well for us.
I've had to patch it to cope with the fact that we exclude some files,
and it's also rather slow.
Since we already have our own code to parse WHENCE, we don't actually
need copy-firmware.sh to do it.
In install-files:
- Parse WHENCE to find the upstream files and links.
- Apply file and link exclusion patterns from debian/copyright and
debian/config/defines.
- Report the installation actions, as copy-firmware.sh previously did.
In debian/rules:
- Change override_dh_auto_install to do nothing.
Drop all our patches to copy-firmware.sh.
[Cherry-picked from firmware-nonfree commit
2934a774f32777d2699f5d4707c90a53af284ba5]
commit c740c39db06b234e878e03642b0431c3b15c5688
Author: Ben Hutchings <benh@debian.org>
Date: Thu May 7 20:03:25 2026 +0200
WHENCE: Add separator and Driver field to satisfy our own parser
We create our own WHENCE file from scratch, which was sufficient to
make copy-firmware.sh work but did not satisfy our own parser(!). Fix
that so that we can start using our own parser.
commit 91e3288198496a00b6b5ac9df2ab7412eeb5aee5
Author: Ben Hutchings <benh@debian.org>
Date: Sat Mar 28 13:07:00 2026 +0100
debian_firmware.firmware: Handle filename escaping and extra spaces
File/RawFile/Link fields can and do use backslash as an escape in
filenames. Change our parser to decode those.
Link fields are also allowed to have multiple spaces to the left or
right of the '->' separator. Use a regex to split at the separator.
[Cherry-picked from firmware-nonfree commit
1875e02d32bd5b14a9d9ea34030ae79a996fe4dc]
commit e34bd1959fd1d852d8d81ab367ea21e8eec91d29
Author: Ben Hutchings <benh@debian.org>
Date: Sat Mar 28 01:04:05 2026 +0100
debian_firmware.firmware: Handle file groups with only links
There is currently a single section in WHENCE with only a link and no
files. This gets discarded because I failed to update the condition
for adding a new file group in commit febfc38e00df
"debian_firmware.firmware: Parse Link fields and include in
FirmwareGroup". Update that condition to check for files or links.
[Cherry-picked from firmware-nonfree commit
1d5adb095ab2c22fde4cd77c76a13dc3922d6a84]
commit 39cfeb13e4d77d45b8549163da14d7056ae44af3
Author: Ben Hutchings <benh@debian.org>
Date: Sat Mar 28 13:27:51 2026 +0100
Only install files and generate metainfo.xml at build time
Currently we generate the metainfo.xml files and dh_install file lists
from gencontrol.py, which requires installing files as part of source
package preparation. This was mostly done because it was convenient
to extend gencontrol.py, but it is not really necessary and it's
annoying to have to run the file installation multiple times when
building source and then binary packages.
In a new script debian/bin/install-files:
- Replace the generation of dh_install file lists in gencontrol.py
with immediate installation of the selected files in this script
- Move all the metainfo.xml generation from gencontrol.py into this
script
In debian/rules:
- Remove the now-unneeded execution of copy-firmware.sh from the
debian/control-real rule
- Change the execute_after_dh_install rule to override_dh_install and
run install-files there
[Cherry-picked from firmware-nonfree commit
56ef6cd062d75f26f1a960376c2c9582992cfc1c. Also remove the generated
metainfo files from d/copyright, which was a separate fix in
firmware-nonfree.]
commit a2dc266be9627fd15c066dd038001627978629b4
Author: Ben Hutchings <benh@debian.org>
Date: Thu Mar 26 11:53:17 2026 +0100
d/README.source: Delete obsolete description of per-file metadata
Since commit 0a3c14827c2f "Remove file lists from package
descriptions" there is no per-file metadata.
[Cherry-picked from firmware-nonfree commit
2ab5e459ebaa2438a37a135fe8d1129db77f0509]
commit c44929eed2adf4998f54e989711898f56454d973
Author: Ben Hutchings <benh@debian.org>
Date: Thu Mar 26 11:37:49 2026 +0100
d/changelog: Add lines for the preceding changes by Nicolas Boulenguez
commit 7868cf9bf9e4cf177e87b47214abc5ce436d15fc
Author: Nicolas Boulenguez <nicolas@debian.org>
Date: Thu Feb 19 17:18:18 2026 +0100
d/rules: remove gencontrol.py from GENCONTROL
GENCONTROL is expanded before each expansion of CONTROL_FILES.
[bwh: Cherry-picked from firmware-nonfree commit
a74d06106eda570bfb578633e420691da275e268]
commit 906767186ef330859f58578cf9d76950d50c8942
Author: Nicolas Boulenguez <nicolas@debian.org>
Date: Fri Feb 23 17:22:19 2024 +0100
gencontrol.py: open files with context managers
[bwh: Cherry-picked from firmware-nonfree commit
a3db96e108700c941205bc9efd796d55a6456f21]
commit e235a804f5f0e16a24bcfb522cfd7136ed0db020
Author: Nicolas Boulenguez <nicolas@debian.org>
Date: Sun Feb 25 01:16:09 2024 +0100
gencontrol.py: remove unused process_template methods
[bwh: Cherry-picked from firmware-nonfree commit
c1c696f80bfbd7d009534dbe2811a2e424289ea6]
commit 4c5e566b12492aef5810b8b41af01406a237aa56
Author: Nicolas Boulenguez <nicolas@debian.org>
Date: Fri Feb 23 17:28:04 2024 +0100
d/rules: include /usr/share/dpkg/pkg-info.mk
Also compute VERSION_SOURCE on demand with one rewriting.
[bwh: Cherry-picked from firmware-nonfree commit
03363774dad1bcc99a4e2421ea5d44b48d785136]
commit 6f32c7dc1ba840a6254170c6a90f115522c2a997
Author: Ben Hutchings <benh@debian.org>
Date: Fri Feb 27 16:14:46 2026 +0100
Fix link check copied from firmware-nonfree
- d/b/check_upstream.py: Check links if distribution status is
free, not non-free
- d/c/defines: Add empty links-excluded field
commit 5f00e3b9a8a9812dfa441837f87175981522836e
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 21:15:13 2026 +0100
d/b/check_upstream.py: Check for links not included in binary packages
Check for and report links listed in WHENCE that aren't included in
any binary packages, similarly to what we do for files.
The checks are a bit different, though:
- Since these links are only defined in WHENCE and created by
copy-firmware.sh, they aren't affected by debian/copyright's
Files-Excluded. So check that the link *target* is not excluded,
and also support a new config field in debian/config/defines for
symlinks we want to exclude. There are some compatibility links in
the top-level firmware directory that we probably shouldn't bother
adding.
- Check that the link target is a file listed in the same group.
Handling links to directories, or files in another group, would be
much more complicated to do correctly.
[Cherry-picked from firmware-nonfree commit
4095dab91a108cf45948608d269fc602db4f216a]
commit a1b52e9c4404ebeac68ee043a083b0764b96f610
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 20:30:37 2026 +0100
check_upstream.py: Replace use of os.path with pathlib
[Cherry-picked from firmware-nonfree commit
0d366622ec1c6146cae6fd0b84f13780ab39c316]
For firmware-free, update the update_file() call for source code too.
commit ee8da055483d28d582f76da491d5a0daab951557
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 21:02:21 2026 +0100
d/b/check_upstream.py: Ignore file existence when checking license status
The tests for file existence here date from when firmware-nonfree was
a native package, or immediately after. They don't make sense now,
because whether a file will be copied from upstream into the source or
binary is determined by the exclusion and inclusion patterns that we
are already checking.
Rearrange the per-file checks so we first check whether the file will
be included in the source package, and never check whether the file is
currently present.
[Cherry-picked from firmware-nonfree commit
72063b342715fd4e49c59a64d293d6f71b918063]
For firmware-free, adjust the patch to cover all 3 distribution
states.
commit ff6388e3535b0640a81f3a70a6297268d4d1eabb
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 20:27:59 2026 +0100
d/b/check_upstream.py: Remove support for encoding file version in filename
Commit 658f5e733956 removed support in debian/bin/gencontrol.py for
extra or overriding files under debian/config that included a version
suffix in their filename. However check_upstream.py also supported
this, and doesn't need to any more. Remove that support.
[Cherry-picked from firmware-nonfree commit
cca15a9ddcb30d69fed938390bd833509588e2d4]
commit 27f5bac6b08d082702bd2f22a9ecb67123181248
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 20:15:02 2026 +0100
debian_firmware.firmware: Parse Link fields and include in FirmwareGroup
[Cherry-picked from firmware-nonfree commit
febfc38e00dfc6c438bb7558e15a62f0521ed036]
commit 43a7dd69df1db000b7b96f1c3dcff46a9822ffca
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 20:08:35 2026 +0100
debian_firmware.firmware: Use dataclasses to define Firmware{File,Group}
[Cherry-picked from firmware-nonfree commit
02acbd724a50e9242937f4156039f7b32e1ef38d]
commit 4a86f411a487be0b0b7b89763f043ff0f93b7555
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 19:59:26 2026 +0100
Move Python debian_linux.firmware module into debian_firmware package
This is actually a copy rather than a move, since debian_linux is
supposed to be copied from src:linux. I will delete it from src:linux
later.
Update the one script that uses it.
[Cherry-picked from firmware-nonfree commit
cb8e165e456e7041db7befcf501135c3e7d853f2]
commit 71d31377d4b60633007e3ad5d953a4303bc55bf6
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 19:55:44 2026 +0100
Replace sys.path manipulation in debian/bin with symlink to debian_firmware
Use a symlink to the debian_firmware package under debian/bin, the
same way we do with the debian_linux package. Remove the
now-redundant change to sys.path in several scripts in debian/bin.
[Cherry-picked from firmware-nonfree commit
e7005b4754c3c422da29d76e404872c81285e778]
commit 34b675edf265dcda8ec83534da48b09925096a14
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 19:51:31 2026 +0100
Move Python config module into a debian_firmware package
[Cherry-picked from firmware-nonfree commit
19e296ab1dd00eb50ec3f2dab4fe68f5c0a21fc4]
commit 9361496128124b613965b2d0b5af8621c0f064f5
Author: Ben Hutchings <benh@debian.org>
Date: Thu Feb 26 18:40:56 2026 +0100
Change our filename pattern matching to handle '**' without following '/'
Our filename pattern matching is supposed to follow the behaviour of
glob.glob or pathlib.Path.glob. That means we should handle '**'
without a following '/' as matching all descendents. Currently
config.pattern_to_re effectively treats it as equivalent to '*'.
[Cherry-picked from firmware-nonfree commit
55bfc30a99c0528ad0d31a74f715fad265b6510f]