port apt fix from branch
git-svn-id: http://emdebian.org/svn/current@7510 563faec7-e20c-0410-992a-a66f704d0ccd
This commit is contained in:
parent
cc1f6a57db
commit
f255133dd0
1 changed files with 27 additions and 14 deletions
39
multistrap
39
multistrap
|
@ -162,6 +162,8 @@ system ("mkdir -p ${dir}${libdir}") if (not -d "${dir}${libdir}");
|
||||||
system ("mkdir -p ${dir}${dpkgdir}") if (not -d "${dir}${dpkgdir}");
|
system ("mkdir -p ${dir}${dpkgdir}") if (not -d "${dir}${dpkgdir}");
|
||||||
system ("mkdir -p ${dir}etc/apt/sources.list.d/")
|
system ("mkdir -p ${dir}etc/apt/sources.list.d/")
|
||||||
if (not -d "${dir}etc/apt/sources.list.d/");
|
if (not -d "${dir}etc/apt/sources.list.d/");
|
||||||
|
system ("mkdir -p ${dir}etc/apt/trusted.gpg.d/")
|
||||||
|
if (not -d "${dir}etc/apt/trusted.gpg.d/");
|
||||||
system ("mkdir -p ${dir}etc/apt/preferences.d/")
|
system ("mkdir -p ${dir}etc/apt/preferences.d/")
|
||||||
if (not -d "${dir}etc/apt/preferences.d/");
|
if (not -d "${dir}etc/apt/preferences.d/");
|
||||||
system ("mkdir -p ${dir}usr/share/info/")
|
system ("mkdir -p ${dir}usr/share/info/")
|
||||||
|
@ -261,26 +263,37 @@ my $k;
|
||||||
foreach my $pkg (values %keyrings) {
|
foreach my $pkg (values %keyrings) {
|
||||||
next if (not defined $pkg);
|
next if (not defined $pkg);
|
||||||
next if ("" eq "$pkg");
|
next if ("" eq "$pkg");
|
||||||
my $status = `LC_ALL=C dpkg -s $pkg`;
|
|
||||||
next if $status =~ /Status: install ok installed/;
|
|
||||||
$k .= "$pkg ";
|
$k .= "$pkg ";
|
||||||
}
|
}
|
||||||
if (defined $k) {
|
if ((defined $k) and (not defined $noauth)) {
|
||||||
my $e=`LC_ALL=C printenv`;
|
|
||||||
if ($e !~ /\nFAKEROOTKEY=[0-9]+\n/) {
|
|
||||||
my $str = "";
|
|
||||||
if (($e =~ /\nUSER=root\n/)) {
|
|
||||||
$str = "sudo" if (-f "/usr/bin/sudo");
|
|
||||||
}
|
|
||||||
printf (_g("I: Installing %s\n"), $k);
|
printf (_g("I: Installing %s\n"), $k);
|
||||||
system ("$str apt-get install $k");
|
system ("apt-get -d --reinstall install $k");
|
||||||
|
foreach my $keyring_pkg (values %keyrings) {
|
||||||
|
my @files=();
|
||||||
|
my $file = `find /var/cache/apt/archives/ -name "$keyring_pkg*"`;
|
||||||
|
chomp ($file);
|
||||||
|
my $xdir = `mktemp -d -t keyring.XXXXXX`;
|
||||||
|
chomp ($xdir);
|
||||||
|
system ("dpkg -X $file $xdir >/dev/null");
|
||||||
|
if (-d "${xdir}/usr/share/keyrings") {
|
||||||
|
opendir (DIR, "${xdir}/usr/share/keyrings");
|
||||||
|
@files=grep(!m:\.\.?$:,readdir DIR);
|
||||||
|
closedir (DIR);
|
||||||
|
}
|
||||||
|
foreach my $gpg (@files) {
|
||||||
|
next if ($gpg =~ /removed/);
|
||||||
|
system ("gpg --no-default-keyring ".
|
||||||
|
"--homedir=${dir}/etc/apt/trusted.gpg.d/ ".
|
||||||
|
"--keyring=multistrap.gpg ".
|
||||||
|
" --import ${xdir}/usr/share/keyrings/${gpg} 2>/dev/null");
|
||||||
|
}
|
||||||
|
system ("rm -rf ${xdir}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$config_str = '';
|
$config_str = '';
|
||||||
$config_str .= " -o Apt::Architecture=$arch";
|
$config_str .= " -o Apt::Architecture=$arch";
|
||||||
$config_str .= " -o Dir::Etc::TrustedParts=/etc/apt/trusted.gpg.d";
|
$config_str .= " -o Dir::Etc::TrustedParts=${dir}${etcdir}trusted.gpg.d";
|
||||||
$config_str .= " -o Dir::Etc::Trusted=/etc/apt/trusted.gpg";
|
$config_str .= " -o Dir::Etc::Trusted=${dir}${etcdir}trusted.gpg";
|
||||||
$config_str .= " -o Apt::Get::AllowUnauthenticated=true"
|
$config_str .= " -o Apt::Get::AllowUnauthenticated=true"
|
||||||
if (defined $noauth);
|
if (defined $noauth);
|
||||||
$config_str .= " -o Apt::Get::Download-Only=true";
|
$config_str .= " -o Apt::Get::Download-Only=true";
|
||||||
|
|
Loading…
Reference in a new issue