From c682a61468d3dd5a6c939840358e25d826671405 Mon Sep 17 00:00:00 2001 From: Johannes Schauer Marin Rodrigues Date: Mon, 16 Jan 2023 08:09:54 +0100 Subject: [PATCH] to find signed-by value, run gpg on the individual keys to print better error messages in case it fails (gpg doesn't give an indication which file it was unable to read) and print progress bar --- mmdebstrap | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mmdebstrap b/mmdebstrap index 068c85a..658663d 100755 --- a/mmdebstrap +++ b/mmdebstrap @@ -5213,9 +5213,13 @@ sub main() { $signedby = " [signed-by=\"$keyring\"]"; last; } - { - open(my $fh, '-|', @gpgcmd, '--with-colons', '--show-keys', - @keyrings) // error "failed to fork(): $!"; + info "Finding correct signed-by value..."; + my $progress = 0.0; + print_progress($progress); + for (my $i = 0 ; $i < scalar @keyrings ; $i++) { + my $k = $keyrings[$i]; + open(my $fh, '-|', @gpgcmd, '--with-colons', + '--show-keys', $k) // error "failed to fork(): $!"; while (my $line = <$fh>) { if ($line !~ /^fpr:::::::::([^:]+):/) { next; @@ -5223,10 +5227,12 @@ sub main() { push @aptfingerprints, $1; } close $fh; + if ($? != 0) { + warning("gpg failed to read $k"); + } + print_progress($i / (scalar @keyrings) * 100.0, undef); } - if ($? != 0) { - error "gpg failed"; - } + print_progress("done"); if (scalar @aptfingerprints == 0) { $signedby = " [signed-by=\"$keyring\"]"; last;