Do not split --include values again in run_download and run_install
Closes: #1028977
This commit is contained in:
parent
3db3779b6a
commit
f27ed490d6
4 changed files with 27 additions and 28 deletions
|
@ -358,3 +358,7 @@ Needs-QEMU: true
|
||||||
Test: jessie-or-older
|
Test: jessie-or-older
|
||||||
Needs-QEMU: true
|
Needs-QEMU: true
|
||||||
Variants: essential apt minbase
|
Variants: essential apt minbase
|
||||||
|
|
||||||
|
Test: apt-patterns
|
||||||
|
|
||||||
|
Test: apt-patterns-custom
|
||||||
|
|
34
mmdebstrap
34
mmdebstrap
|
@ -2374,18 +2374,7 @@ sub run_download() {
|
||||||
info "nothing to download -- skipping...";
|
info "nothing to download -- skipping...";
|
||||||
return ([], \@cached_debs);
|
return ([], \@cached_debs);
|
||||||
}
|
}
|
||||||
my @apt_argv = ('install');
|
my @apt_argv = ('install', @{ $options->{include} });
|
||||||
for my $incl (@{ $options->{include} }) {
|
|
||||||
for my $pkg (split /[,\s]+/, $incl) {
|
|
||||||
# strip leading and trailing whitespace
|
|
||||||
$pkg =~ s/^\s+|\s+$//g;
|
|
||||||
# skip if the remainder is an empty string
|
|
||||||
if ($pkg eq '') {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
push @apt_argv, $pkg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@dl_debs = run_apt_download_progress({
|
@dl_debs = run_apt_download_progress({
|
||||||
APT_ARGV => [@apt_argv],
|
APT_ARGV => [@apt_argv],
|
||||||
|
@ -2913,20 +2902,9 @@ sub run_essential() {
|
||||||
sub run_install() {
|
sub run_install() {
|
||||||
my $options = shift;
|
my $options = shift;
|
||||||
|
|
||||||
my %pkgs_to_install;
|
my @pkgs_to_install = (@{ $options->{include} });
|
||||||
for my $incl (@{ $options->{include} }) {
|
|
||||||
for my $pkg (split /[,\s]+/, $incl) {
|
|
||||||
# strip leading and trailing whitespace
|
|
||||||
$pkg =~ s/^\s+|\s+$//g;
|
|
||||||
# skip if the remainder is an empty string
|
|
||||||
if ($pkg eq '') {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
$pkgs_to_install{$pkg} = ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($options->{variant} eq 'buildd') {
|
if ($options->{variant} eq 'buildd') {
|
||||||
$pkgs_to_install{'build-essential'} = ();
|
push @pkgs_to_install, 'build-essential';
|
||||||
}
|
}
|
||||||
if (any { $_ eq $options->{variant} }
|
if (any { $_ eq $options->{variant} }
|
||||||
('required', 'important', 'standard', 'buildd')) {
|
('required', 'important', 'standard', 'buildd')) {
|
||||||
|
@ -2943,7 +2921,8 @@ sub run_install() {
|
||||||
$priority = '?and(?or(~prequired,~pimportant,~pstandard),'
|
$priority = '?and(?or(~prequired,~pimportant,~pstandard),'
|
||||||
. '?not(?essential))';
|
. '?not(?essential))';
|
||||||
}
|
}
|
||||||
$pkgs_to_install{
|
push @pkgs_to_install,
|
||||||
|
(
|
||||||
"?narrow("
|
"?narrow("
|
||||||
. (
|
. (
|
||||||
length($options->{suite})
|
length($options->{suite})
|
||||||
|
@ -2955,9 +2934,8 @@ sub run_install() {
|
||||||
)
|
)
|
||||||
. "?architecture($options->{nativearch}),"
|
. "?architecture($options->{nativearch}),"
|
||||||
. "$priority)"
|
. "$priority)"
|
||||||
} = ();
|
);
|
||||||
}
|
}
|
||||||
my @pkgs_to_install = keys %pkgs_to_install;
|
|
||||||
|
|
||||||
if ($options->{mode} eq 'chrootless') {
|
if ($options->{mode} eq 'chrootless') {
|
||||||
if (scalar @pkgs_to_install > 0) {
|
if (scalar @pkgs_to_install > 0) {
|
||||||
|
|
8
tests/apt-patterns
Normal file
8
tests/apt-patterns
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||||
|
{{ CMD }} --mode={{ MODE }} --variant=essential \
|
||||||
|
--include '?or(?exact-name(dummy-does-not-exist),?exact-name(apt))' \
|
||||||
|
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
|
tar -tf /tmp/debian-chroot.tar | sort | grep -v ./var/lib/apt/extended_states | diff -u tar1.txt -
|
9
tests/apt-patterns-custom
Normal file
9
tests/apt-patterns-custom
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||||
|
{{ CMD }} --mode={{ MODE }} --variant=custom \
|
||||||
|
--include '?narrow(?archive(^{{ DIST }}$),?essential)' \
|
||||||
|
--include apt \
|
||||||
|
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
|
tar -tf /tmp/debian-chroot.tar | sort | diff -u tar1.txt -
|
Loading…
Reference in a new issue