Initial support for Multi-Arch paths. (Closes: #616111)

git-svn-id: http://emdebian.org/svn/current@7971 563faec7-e20c-0410-992a-a66f704d0ccd
This commit is contained in:
codehelp 2011-04-01 21:45:11 +00:00
parent b1cc79e790
commit 46b72b659b
2 changed files with 14 additions and 6 deletions

3
debian/changelog vendored
View file

@ -16,8 +16,9 @@ multistrap (2.1.13) unstable; urgency=low
breakage if the repository is incomplete. breakage if the repository is incomplete.
* Complete the support for 'flat' repositories (Closes: #619959) * Complete the support for 'flat' repositories (Closes: #619959)
* Update config files for build and cross chroot (Closes: #610631) * Update config files for build and cross chroot (Closes: #610631)
* Initial support for Multi-Arch paths. (Closes: #616111)
-- Neil Williams <codehelp@debian.org> Fri, 01 Apr 2011 20:15:06 +0100 -- Neil Williams <codehelp@debian.org> Fri, 01 Apr 2011 22:44:10 +0100
multistrap (2.1.12) unstable; urgency=low multistrap (2.1.12) unstable; urgency=low

View file

@ -524,9 +524,15 @@ sub force_unpack {
my $ver=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Version`; my $ver=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Version`;
my $pkg=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Package`; my $pkg=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Package`;
my $src=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Source`; my $src=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Source`;
my $multi=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Multi-Arch`;
chomp ($ver); chomp ($ver);
chomp ($pkg); chomp ($pkg);
chomp ($src); chomp ($src);
chomp ($multi);
if ($multi eq "same") {
$multi=":".`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Architecture`;
chomp ($multi);
}
$src =~ s/ \(.*\)//; $src =~ s/ \(.*\)//;
push @dsclist, $src; push @dsclist, $src;
mkdir ("./tmp"); mkdir ("./tmp");
@ -540,7 +546,7 @@ sub force_unpack {
next; next;
} }
my @lines = split("\n", $datatar); my @lines = split("\n", $datatar);
open (LIST, ">>./${dpkgdir}info/${pkg}.list"); open (LIST, ">>./${dpkgdir}info/${pkg}${multi}.list");
foreach my $l (@lines) { foreach my $l (@lines) {
chomp ($l); chomp ($l);
$l =~ s:^\.::; $l =~ s:^\.::;
@ -556,9 +562,9 @@ sub force_unpack {
open (AVAIL, ">>./${dpkgdir}available"); open (AVAIL, ">>./${dpkgdir}available");
open (STATUS, ">>./${dpkgdir}status"); open (STATUS, ">>./${dpkgdir}status");
foreach my $mscript (@maint) { foreach my $mscript (@maint) {
rename "./${tmpdir}/$mscript", "./${dpkgdir}info/$pkg.$mscript"; rename "./${tmpdir}/$mscript", "./${dpkgdir}info/$pkg${multi}.$mscript";
if ( $mscript eq "control" ) { if ( $mscript eq "control" ) {
open (MSCRIPT, "./${dpkgdir}info/$pkg.$mscript"); open (MSCRIPT, "./${dpkgdir}info/$pkg${multi}.$mscript");
my @scr=<MSCRIPT>; my @scr=<MSCRIPT>;
close (MSCRIPT); close (MSCRIPT);
my @avail = grep(!/^$/, @scr); my @avail = grep(!/^$/, @scr);
@ -570,10 +576,10 @@ sub force_unpack {
} }
} }
close (AVAIL); close (AVAIL);
if ( -f "./${dpkgdir}info/$pkg.conffiles") { if ( -f "./${dpkgdir}info/$pkg${multi}.conffiles") {
print STATUS "Conffiles:\n"; print STATUS "Conffiles:\n";
printf (_g(" -> Processing conffiles for %s\n"), $pkg); printf (_g(" -> Processing conffiles for %s\n"), $pkg);
open (CONF, "./${dpkgdir}info/$pkg.conffiles"); open (CONF, "./${dpkgdir}info/$pkg${multi}.conffiles");
my @lines=<CONF>; my @lines=<CONF>;
close (CONF); close (CONF);
foreach my $line (@lines) { foreach my $line (@lines) {
@ -704,6 +710,7 @@ sub check_bin_sh {
# (always expects a diversion to already exist). # (always expects a diversion to already exist).
# (works OK in subsequent upgrades.) #546528 # (works OK in subsequent upgrades.) #546528
unlink ("$dir/var/lib/dpkg/info/dash.postinst"); unlink ("$dir/var/lib/dpkg/info/dash.postinst");
unlink ("$dir/var/lib/dpkg/info/dash:${host}.postinst");
# now ensure that a usable shell is available as /bin/sh # now ensure that a usable shell is available as /bin/sh
if (not -l "$dir/bin/sh") { if (not -l "$dir/bin/sh") {
print (_g("I: ./bin/sh symbolic link does not exist.\n")); print (_g("I: ./bin/sh symbolic link does not exist.\n"));