Add generate_firmware_patterns script and dependencies (see: #989863).
This commit is contained in:
parent
845cbb1b61
commit
ff8ef160ea
|
@ -15,7 +15,7 @@ Vcs-Browser: https://salsa.debian.org/images-team/debian-cd
|
|||
|
||||
Package: debian-cd
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, curl, perl, dpkg-dev, cpp, libdigest-md5-perl, libdigest-sha-perl, tofrodos, apt, make, xorriso | genisoimage, lynx, grep-dctrl, bc, libcompress-zlib-perl, bzip2, libdpkg-perl, wget
|
||||
Depends: ${misc:Depends}, curl, perl, dpkg-dev, cpp, libdigest-md5-perl, libdigest-sha-perl, tofrodos, apt, make, xorriso | genisoimage, lynx, grep-dctrl, bc, libcompress-zlib-perl, bzip2, libdpkg-perl, wget, libfile-slurp-perl, libyaml-libyaml-perl
|
||||
Recommends: hfsutils, isolinux, syslinux-common, mtools, dosfstools
|
||||
Description: Tools for building (Official) Debian CD set
|
||||
Debian-cd is the official tool for building Debian CD set since the potato
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/perl
|
||||
# © 2021 Cyril Brulebois <kibi@debian.org>
|
||||
#
|
||||
# Generate ready-to-use pattern files so that one can use grep to
|
||||
# perform hardware to firmware-package lookups in the installer
|
||||
# (see MODALIAS= lines in `udevadm info --export-db`), see the
|
||||
# hw-detect component.
|
||||
#
|
||||
# Parameters: dists/<suite>/*/dep11/Components-<arch>.yml.(gz|xz)
|
||||
#
|
||||
# We're limiting ourselves to packages announcing Type: firmware, and
|
||||
# they need to include such information in their metadata, e.g.
|
||||
# src:firmware-nonfree
|
||||
# (https://salsa.debian.org/kernel-team/firmware-nonfree/-/merge_requests/19).
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Slurp;
|
||||
use YAML::XS;
|
||||
|
||||
process_components($_) for @ARGV;
|
||||
|
||||
sub process_components {
|
||||
my $input = shift;
|
||||
my $content;
|
||||
print STDERR "processing $input\n";
|
||||
|
||||
if ($input =~ /\.gz$/) {
|
||||
$content = `zcat $input`;
|
||||
}
|
||||
elsif ($input =~ /\.xz$/) {
|
||||
$content = `xzcat $input`;
|
||||
}
|
||||
else {
|
||||
die "only gz and xz suffixes are supported";
|
||||
}
|
||||
|
||||
foreach my $array (Load $content) {
|
||||
next if not defined $array->{Type};
|
||||
next if $array->{Type} ne 'firmware';
|
||||
next if not defined $array->{Provides};
|
||||
next if not defined $array->{Provides}->{modaliases};
|
||||
|
||||
|
||||
# XXX: Support output directory
|
||||
my $pattern_file = $array->{Package} . ".pattern";
|
||||
|
||||
# For each alias, anchor the pattern on the left (^) and on
|
||||
# the right ($), and replace each '*' with '.*':
|
||||
write_file($pattern_file,
|
||||
map { $a = $_; $a =~ s/[*]/.*/g; "^$a\$\n" }
|
||||
@{ $array->{Provides}->{modaliases} });
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue