Your message dated Mon, 2 Aug 2021 18:07:27 +0200 with message-id <008bdbd3-20ed-7f6c-bdea-0872d24f9249@debian.org> and subject line Re: Bug#991804: unblock: debian-cd/3.1.25 has caused the Debian Bug report #991804, regarding unblock: debian-cd/3.1.25 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 991804: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=991804 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: debian-cd/3.1.25
- From: Steve McIntyre <steve@einval.com>
- Date: Mon, 02 Aug 2021 10:07:36 +0100
- Message-id: <[🔎] 162789525694.24116.4846103002150232795.reportbug@tack.local>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Hi! Please unblock package debian-cd Here's the traditional last-minute request for a debian-cd unblock, such that the version in the archive for our release is up to date with the software that we use to create it! Two key changes to see here: * Add brltty and espeakup to all images from netinst up, for blind users. Closes: #678065 * Add script to generate firmware metadata from appdata metadata, and use it when building a media tree. See: #989863 Both are tested and known working already, as we use the version from git to build our daily and weekly images. Debdiff attached. unblock debian-cd/3.1.25 -- System Information: Debian Release: 10.10 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'stable'), (500, 'oldstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-0.bpo.5-amd64 (SMP w/4 CPU cores) Kernel taint flags: TAINT_CPU_OUT_OF_SPEC Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enableddiff -Nru debian-cd-3.1.34/debian/changelog debian-cd-3.1.35/debian/changelog --- debian-cd-3.1.34/debian/changelog 2021-04-20 00:03:35.000000000 +0100 +++ debian-cd-3.1.35/debian/changelog 2021-07-26 01:02:03.000000000 +0100 @@ -1,3 +1,15 @@ +debian-cd (3.1.35) unstable; urgency=medium + + [ Steve McIntyre ] + * Add brltty and espeakup to all images from netinst up, for blind + users. Closes: #678065 + + [ Cyril Brulebois ] + * Add script to generate firmware metadata from appdata metadata, + and use it when building a media tree. See: #989863 + + -- Steve McIntyre <93sam@debian.org> Mon, 26 Jul 2021 01:02:03 +0100 + debian-cd (3.1.34) unstable; urgency=medium [ Wolfgang Schweer ] @@ -10,7 +22,7 @@ * debian/control: Drop Recommends: on netpbm and syslinux-utils. These are no longer needed now that custom splash images are used unmodified. - [ Petter Reinholdtse ] + [ Petter Reinholdtsen ] * Include eatmydata deb for d-i to use offline. Closes: #986772 [ Steve McIntyre ] diff -Nru debian-cd-3.1.34/debian/control debian-cd-3.1.35/debian/control --- debian-cd-3.1.34/debian/control 2021-03-22 14:20:37.000000000 +0000 +++ debian-cd-3.1.35/debian/control 2021-07-25 20:39:31.000000000 +0100 @@ -15,7 +15,7 @@ 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 diff -Nru debian-cd-3.1.34/tasks/bullseye/forcd1 debian-cd-3.1.35/tasks/bullseye/forcd1 --- debian-cd-3.1.34/tasks/bullseye/forcd1 2021-04-14 09:45:37.000000000 +0100 +++ debian-cd-3.1.35/tasks/bullseye/forcd1 2021-05-16 15:44:54.000000000 +0100 @@ -6,11 +6,7 @@ openssh-client /* could be used by debconf in certain configurations */ libterm-readline-gnu-perl -/* Accessibility stuff that is installed by base-installer - * in certain situations, but too large for the netinst. */ -brltty -espeakup -alsa-utils + /* See rationale in #630805 */ apt-offline diff -Nru debian-cd-3.1.34/tasks/kali-dev/forcd1 debian-cd-3.1.35/tasks/kali-dev/forcd1 --- debian-cd-3.1.34/tasks/kali-dev/forcd1 2021-04-14 09:45:37.000000000 +0100 +++ debian-cd-3.1.35/tasks/kali-dev/forcd1 2021-05-16 15:44:54.000000000 +0100 @@ -6,11 +6,7 @@ openssh-client /* could be used by debconf in certain configurations */ libterm-readline-gnu-perl -/* Accessibility stuff that is installed by base-installer - * in certain situations, but too large for the netinst. */ -brltty -espeakup -alsa-utils + /* See rationale in #630805 */ apt-offline diff -Nru debian-cd-3.1.34/tasks/kali-last-snapshot/forcd1 debian-cd-3.1.35/tasks/kali-last-snapshot/forcd1 --- debian-cd-3.1.34/tasks/kali-last-snapshot/forcd1 2021-04-14 09:45:37.000000000 +0100 +++ debian-cd-3.1.35/tasks/kali-last-snapshot/forcd1 2021-05-16 15:44:54.000000000 +0100 @@ -6,11 +6,7 @@ openssh-client /* could be used by debconf in certain configurations */ libterm-readline-gnu-perl -/* Accessibility stuff that is installed by base-installer - * in certain situations, but too large for the netinst. */ -brltty -espeakup -alsa-utils + /* See rationale in #630805 */ apt-offline diff -Nru debian-cd-3.1.34/tasks/kali-rolling/forcd1 debian-cd-3.1.35/tasks/kali-rolling/forcd1 --- debian-cd-3.1.34/tasks/kali-rolling/forcd1 2021-04-14 09:45:37.000000000 +0100 +++ debian-cd-3.1.35/tasks/kali-rolling/forcd1 2021-05-16 15:44:54.000000000 +0100 @@ -6,11 +6,7 @@ openssh-client /* could be used by debconf in certain configurations */ libterm-readline-gnu-perl -/* Accessibility stuff that is installed by base-installer - * in certain situations, but too large for the netinst. */ -brltty -espeakup -alsa-utils + /* See rationale in #630805 */ apt-offline diff -Nru debian-cd-3.1.34/tasks/sid/forcd1 debian-cd-3.1.35/tasks/sid/forcd1 --- debian-cd-3.1.34/tasks/sid/forcd1 2021-04-14 09:45:37.000000000 +0100 +++ debian-cd-3.1.35/tasks/sid/forcd1 2021-05-16 15:44:54.000000000 +0100 @@ -6,11 +6,7 @@ openssh-client /* could be used by debconf in certain configurations */ libterm-readline-gnu-perl -/* Accessibility stuff that is installed by base-installer - * in certain situations, but too large for the netinst. */ -brltty -espeakup -alsa-utils + /* See rationale in #630805 */ apt-offline diff -Nru debian-cd-3.1.34/tools/generate_di+k_list debian-cd-3.1.35/tools/generate_di+k_list --- debian-cd-3.1.34/tools/generate_di+k_list 2019-07-07 16:52:46.000000000 +0100 +++ debian-cd-3.1.35/tools/generate_di+k_list 2021-05-16 15:44:50.000000000 +0100 @@ -93,6 +93,12 @@ /* Needed for some languages with bi-directional support */ libfribidi0 +/* Accessibility stuff that is installed by base-installer + * in certain situations. */ +alsa-utils +brltty +espeakup + /* Needed for rootless installs. */ sudo diff -Nru debian-cd-3.1.34/tools/generate_firmware_patterns debian-cd-3.1.35/tools/generate_firmware_patterns --- debian-cd-3.1.34/tools/generate_firmware_patterns 1970-01-01 01:00:00.000000000 +0100 +++ debian-cd-3.1.35/tools/generate_firmware_patterns 2021-07-26 01:01:55.000000000 +0100 @@ -0,0 +1,174 @@ +#!/usr/bin/perl +# © 2021 Cyril Brulebois <kibi@debian.org> +# +# Generate ready-to-use .patterns 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; the --test option can be used until such +# packages appear in the archive. +# +# See: https://salsa.debian.org/kernel-team/firmware-nonfree/-/merge_requests/19 + +use strict; +use warnings; + +use File::Path qw(make_path); +use File::Slurp; +use Getopt::Long; +use YAML::XS; + + +# XXX: Drop support for --test once we have the required metadata in +# the archive. +my $output_dir = '.'; +my $test; +my $verbose; +my $pkgname = "ALL"; + +GetOptions( "output-dir=s" => \$output_dir, + "test" => \$test, + "verbose" => \$verbose, + "package=s" => \$pkgname) + or die "Error in command line arguments"; + + +sub format_alias { + return map { $a = $_; $a =~ s/[*]/.*/g; "^$a\$\n" } @_; +} + + +sub process_components { + my $input = shift; + my $content; + print STDERR "processing $input\n" + if $verbose; + + if ($input =~ /\.gz$/) { + $content = `zcat $input`; + } + elsif ($input =~ /\.xz$/) { + $content = `xzcat $input`; + } + else { + die "only gz and xz suffixes are supported"; + } + + my @packages; + foreach my $array (Load $content) { + # XXX: Drop the condition once we have the required metadata + # in the archive. + if (! $test) { + 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}; + + print STDERR "found modaliases entries for firmware package ", $array->{Package}, "\n" + if $verbose; + + if ($pkgname eq "ALL" or $pkgname eq $array->{Package}) { + + my $patterns_file = $output_dir . "/" . $array->{Package} . ".patterns"; + printf STDERR "writing %d entries to %s\n", + (scalar @{ $array->{Provides}->{modaliases} }), + $patterns_file; + + # For each alias, anchor the pattern on the left (^) and on + # the right ($), and replace each '*' with '.*': + write_file($patterns_file, + format_alias( @{ $array->{Provides}->{modaliases} } )); + push @packages, $array->{Package}; + } + } + return @packages; +} + + +# Prepare output directory: +if (! -d $output_dir) { + print STDERR "creating output directory $output_dir\n" + if $verbose; + make_path($output_dir, { verbose => $verbose }); +} + +write_file("$output_dir/README.txt", + "These files help Debian Installer detect helpful firmware packages (via hw-detect).\n"); + +# Generate .patterns file to match firmware packages found in +# Components-* files: +my @all_packages; +foreach my $component (@ARGV) { + my @packages = process_components($component); + push @all_packages, @packages; +} +@all_packages = sort @all_packages; +print STDERR "firmware packages found across all components: @all_packages\n" + if $verbose; + +# Workaround for firmware-sof-signed, which doesn't advertise firmware +# files it might need through the MODULE_FIRMWARE() macro (meaning no +# chance to generate DEP-11 info from there): alias info manually +# extracted on 2021-07-25 (linux-image-5.10.0-8-amd64, 5.10.46-2). +# +# XXX: To be kept in sync! +my $SOF = 'firmware-sof-signed'; +if (! grep { $_ eq $SOF } @all_packages) { + + if ($pkgname eq 'ALL' or $pkgname eq 'firmware-sof-signed') { + + # Extract on amd64, from the installed package, with the following + # command. Note that descending under intel/ would lead to no + # aliases, so stick to the top-level directory for sof: + # + # for x in $(dpkg -L linux-image-5.10.0-8-amd64 | grep kernel/sound/soc/sof/.*\.ko$); do /usr/sbin/modinfo $x | awk '/^alias:/ { print $2 }'; done | sort + # + # XXX: If that's not enough, there are other modules matching the + # kernel/sound/soc/intel/boards/snd-soc-sof*.ko pattern. + + my @sof_aliases = qw( + pci:v00008086d000002C8sv*sd*bc*sc*i* + pci:v00008086d000006C8sv*sd*bc*sc*i* + pci:v00008086d0000119Asv*sd*bc*sc*i* + pci:v00008086d00001A98sv*sd*bc*sc*i* + pci:v00008086d00003198sv*sd*bc*sc*i* + pci:v00008086d000034C8sv*sd*bc*sc*i* + pci:v00008086d000038C8sv*sd*bc*sc*i* + pci:v00008086d00003DC8sv*sd*bc*sc*i* + pci:v00008086d000043C8sv*sd*bc*sc*i* + pci:v00008086d00004B55sv*sd*bc*sc*i* + pci:v00008086d00004B58sv*sd*bc*sc*i* + pci:v00008086d00004DC8sv*sd*bc*sc*i* + pci:v00008086d00005A98sv*sd*bc*sc*i* + pci:v00008086d00009DC8sv*sd*bc*sc*i* + pci:v00008086d0000A0C8sv*sd*bc*sc*i* + pci:v00008086d0000A348sv*sd*bc*sc*i* + pci:v00008086d0000A3F0sv*sd*bc*sc*i* + platform:jsl_rt5682_max98360a + platform:jsl_rt5682_rt1015 + platform:sof-audio + platform:sof_rt5682 + platform:sof_sdw + platform:tgl_max98357a_rt5682 + platform:tgl_max98373_rt5682 + ); + + print STDERR "deploying manual workaround for $SOF\n" + if $verbose; + + my $sof_file = $output_dir . "/" . $SOF . ".patterns"; + printf STDERR "writing %d entries to %s\n", + (scalar @sof_aliases), + $sof_file; + + write_file($sof_file, + format_alias(@sof_aliases)); + push @all_packages, $SOF; + } +} diff -Nru debian-cd-3.1.34/tools/make_disc_trees.pl debian-cd-3.1.35/tools/make_disc_trees.pl --- debian-cd-3.1.34/tools/make_disc_trees.pl 2021-02-03 16:33:35.000000000 +0000 +++ debian-cd-3.1.35/tools/make_disc_trees.pl 2021-07-25 20:39:31.000000000 +0100 @@ -172,6 +172,7 @@ print "Starting to lay out packages into images:\n"; +# Read in the list of packages that we're expecting to include if (-e "$bdir/firmware-packages") { open(FWLIST, "$bdir/firmware-packages") or die "Unable to read firmware-packages file!\n"; while (defined (my $pkg = <FWLIST>)) { @@ -909,7 +910,7 @@ print " Finishing off md5sum.txt\n"; # Just md5 the bits we won't have seen already open(MD5LIST, ">>md5sum.txt") or die "Failed to open md5sum.txt file: $!\n"; - find (\&md5_files_for_md5sum, ("./.disk", "./dists")); + find (\&md5_files_for_md5sum, ("./.disk", "./dists", "./firmware/dep11")); close(MD5LIST); # And sort; it should make things faster for people checking @@ -1063,8 +1064,8 @@ m/^Package: (\S+)/m and $p = $1; m/^Section: (\S+)/m and $section = $1; - m/^Filename: (\S+)/mi and $file = $1; + $idir = Packages_dir($dir, $file, $section, $in_backports) . "/i18n"; if (! -d $idir) { @@ -1164,6 +1165,62 @@ return $blocks_added; } +# Add sym-links and pattern files for firmware packages +sub add_firmware_stuff { + my $dir = shift; + my $arch = shift; + my $in_backports = shift; + local $_ = shift; + my ($p, $file, $section, $dist, $dep11_dir); + my $blocks_added = 0; + my @args = ("$basedir/tools/generate_firmware_patterns", + "--output-dir", "$dir/firmware/dep11"); + + m/^Package: (\S+)/m and $p = $1; + m/^Section: (\S+)/m and $section = $1; + m/^Filename: (\S+)/mi and $file = $1; + + if ($file =~ /\/main\//) { + $dist = "main"; + } elsif ($file =~ /\/contrib\//) { + $dist = "contrib"; + } elsif ($file =~ /\/non-free\//) { + $dist = "non-free"; + } else { + $dist = "local"; + } + + $dep11_dir = "$mirror/dists/$codename/$dist/dep11"; + if ($in_backports) { + $dep11_dir = "$mirror/dists/$codename-backports/$dist/dep11"; + } + + msg_ap(0, "Symlink fw package $p into /firmware\n"); + symlink("../$file", "$dir/firmware/" . basename($file)); + msg_ap(0, "Symlink ../$file $dir/firmware/.\n"); + if (! -d "$dir/firmware") { + mkdir "$dir/firmware" or die "mkdir $dir/firmware failed $!\n"; + mkdir "$dir/firmware/dep11" or die "mkdir $dir/firmware/dep11 failed $!\n"; + $blocks_added += 2; + } + + # Cope with maybe having the patterns file already + # (e.g. multi-arch), in which case we'll replace it here + if (-f "$dir/firmware/dep11/$p.patterns") { + $blocks_added -= get_file_blocks("$dir/firmware/dep11/$p.patterns"); + } + + msg_ap(0, "(Maybe) generate fw pattern file $dir/firmware/dep11/$p.patterns\n"); + push(@args, "--package", "$p"); + push(@args, "$dep11_dir/Components-$arch.yml.gz"); + system(@args) == 0 or die "generate_firmware_patterns failed: $?"; + if (-f "$dir/firmware/dep11/$p.patterns") { + $blocks_added += get_file_blocks("$dir/firmware/dep11/$p.patterns"); + } + + return $blocks_added; +} + # Roll back the results of add_Packages_entry() sub remove_Packages_entry { my $dir = shift; @@ -1363,6 +1420,29 @@ return $blocks_removed; } +sub remove_firmware_stuff { + my $dir = shift; + my $arch = shift; + my $in_backports = shift; + my ($p, $file); + local $_ = shift; + my $blocks_removed = 0; + + m/^Package: (\S+)/mi and $p = $1; + m/^Filename: (\S+)/mi and $file = $1; + + msg_ap(0, "Remove symlink for fw package $p in /firmware\n"); + unlink("$dir/firmware/" . basename($file)); + + if (-f "$dir/firmware/dep11/$p.patterns") { + $blocks_removed += get_file_blocks("$dir/firmware/dep11/$p.patterns"); + msg_ap(0, "Remove $dir/firmware/dep11/$p.patterns\n"); + unlink("$dir/firmware/dep11/$p.patterns"); + } + + return $blocks_removed; +} + sub get_file_blocks { my $realfile = shift; my $st; @@ -1431,6 +1511,10 @@ if (!($arch eq "source")) { $total_blocks -= remove_trans_desc_entry($dir, $arch, $in_backports, $package_info); } + + if ($firmware_package{$pkgname}) { + $total_blocks -= remove_firmware_stuff($dir, $arch, $in_backports, $package_info); + } foreach my $file (@files) { my $missing = 0; @@ -1479,12 +1563,7 @@ $total_blocks += good_link ($realfile, "$dir/$file"); msg_ap(0, " Linked $dir/$file\n"); if ($firmware_package{$pkgname}) { - msg_ap(0, "Symlink fw package $pkgname into /firmware\n"); - if (! -d "$dir/firmware") { - mkdir "$dir/firmware" or die "symlink failed $!\n"; - } - symlink("../$file", "$dir/firmware/" . basename($file)); - msg_ap(0, "Symlink ../$file $dir/firmware/.\n"); + $total_blocks += add_firmware_stuff($dir, $arch, $in_backports, $package_info); } } else { msg_ap(0, " $dir/$file already linked in\n");
--- End Message ---
--- Begin Message ---
- To: Steve McIntyre <steve@einval.com>, 991804-done@bugs.debian.org
- Subject: Re: Bug#991804: unblock: debian-cd/3.1.25
- From: Paul Gevers <elbrus@debian.org>
- Date: Mon, 2 Aug 2021 18:07:27 +0200
- Message-id: <008bdbd3-20ed-7f6c-bdea-0872d24f9249@debian.org>
- In-reply-to: <[🔎] 162789525694.24116.4846103002150232795.reportbug@tack.local>
- References: <[🔎] 162789525694.24116.4846103002150232795.reportbug@tack.local>
Hi Steve, On 02-08-2021 11:07, Steve McIntyre wrote: > Please unblock package debian-cd unblocked. PaulAttachment: OpenPGP_signature
Description: OpenPGP digital signature
--- End Message ---