sort duplicate sources list entries and use dedicated sources list files
git-svn-id: http://emdebian.org/svn/current@7121 563faec7-e20c-0410-992a-a66f704d0ccd
This commit is contained in:
parent
02888a842e
commit
e52a364fa4
5 changed files with 101 additions and 11 deletions
26
cross/crosschroot-lenny.conf
Normal file
26
cross/crosschroot-lenny.conf
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Example multistrap configuration file for a cross chroot for armel
|
||||
# Need to use cascading to select the toolchain for the requested arch.
|
||||
|
||||
[General]
|
||||
arch=
|
||||
directory=
|
||||
# same as --tidy-up option if set to true
|
||||
cleanup=true
|
||||
# same as --no-auth option if set to true
|
||||
# keyring packages listed in each debootstrap will
|
||||
# still be installed.
|
||||
noauth=false
|
||||
# extract all downloaded archives (default is true)
|
||||
unpack=true
|
||||
# the order of sections is not important.
|
||||
# the debootstrap option determines which repository
|
||||
# is used to calculate the list of Priority: required packages.
|
||||
debootstrap=Debian Base Toolchains
|
||||
aptsources=Debian Toolchains
|
||||
|
||||
# Lenny toolchains need -base from Lenny.
|
||||
[Base]
|
||||
packages=gcc-4.2-base dpkg-dev binutils-multiarch
|
||||
source=http://ftp.uk.debian.org/debian
|
||||
keyring=debian-archive-keyring
|
||||
suite=stable
|
33
cross/crosschroot-squeeze.conf
Normal file
33
cross/crosschroot-squeeze.conf
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Example multistrap configuration file for a cross chroot for armel
|
||||
# Need to use cascading to select the toolchain for the requested arch.
|
||||
|
||||
[General]
|
||||
arch=
|
||||
directory=
|
||||
# same as --tidy-up option if set to true
|
||||
cleanup=true
|
||||
# same as --no-auth option if set to true
|
||||
# keyring packages listed in each debootstrap will
|
||||
# still be installed.
|
||||
noauth=false
|
||||
# extract all downloaded archives (default is true)
|
||||
unpack=true
|
||||
# the order of sections is not important.
|
||||
# the debootstrap option determines which repository
|
||||
# is used to calculate the list of Priority: required packages.
|
||||
debootstrap=Debian Base Toolchains
|
||||
aptsources=Debian Toolchains
|
||||
|
||||
# Lenny toolchains need -base from Lenny.
|
||||
[Base]
|
||||
packages=gcc-4.2-base
|
||||
source=http://ftp.uk.debian.org/debian
|
||||
keyring=debian-archive-keyring
|
||||
suite=stable
|
||||
|
||||
# this is a duplicate if the suite is the same as the toolchain.
|
||||
[Debian]
|
||||
packages=dpkg-dev binutils-multiarch
|
||||
source=http://ftp.uk.debian.org/debian
|
||||
keyring=debian-archive-keyring
|
||||
suite=testing
|
|
@ -25,8 +25,9 @@ source=http://ftp.uk.debian.org/debian
|
|||
keyring=debian-archive-keyring
|
||||
suite=stable
|
||||
|
||||
# this is a duplicate if the suite is the same as the toolchain.
|
||||
[Debian]
|
||||
packages=dpkg-dev binutils-multiarch
|
||||
source=http://ftp.uk.debian.org/debian
|
||||
keyring=debian-archive-keyring
|
||||
suite=stable
|
||||
suite=unstable
|
||||
|
|
4
debian/changelog
vendored
4
debian/changelog
vendored
|
@ -10,8 +10,10 @@ multistrap (2.1.2) experimental; urgency=low
|
|||
* Add support for reinstalling packages known to fail due to preinst
|
||||
problems.
|
||||
* Add a simple C file to test the compiler inside the chroot
|
||||
* sort duplicate sources list entries and use dedicated sources list
|
||||
files
|
||||
|
||||
-- Neil Williams <codehelp@debian.org> Tue, 20 Apr 2010 18:15:22 +0100
|
||||
-- Neil Williams <neilw@toby-churchill.com> Wed, 21 Apr 2010 15:23:23 +0100
|
||||
|
||||
multistrap (2.1.1) experimental; urgency=low
|
||||
|
||||
|
|
46
multistrap
46
multistrap
|
@ -31,7 +31,7 @@ use vars qw/ $progname $ourversion $dstrap $extra @aptsources $mirror
|
|||
$component $repo @dirs @touch %sources $section %keys $host $key $value
|
||||
$type $file $config $tidy $noauth $keyring %keyrings $deflist $cfgdir
|
||||
@extrapkgs @includes %source $setupsh $configsh $omitrequired $dryrun
|
||||
$omitpreinst @reinstall $tgzname /;
|
||||
$omitpreinst @reinstall $tgzname %uniq /;
|
||||
|
||||
setlocale(LC_MESSAGES, "");
|
||||
textdomain("multistrap");
|
||||
|
@ -237,7 +237,14 @@ foreach $repo (sort keys %suites)
|
|||
mkdir "$dir/${cachedir}archives/partial";
|
||||
}
|
||||
}
|
||||
foreach my $aptsrc (@aptsources)
|
||||
%uniq=();
|
||||
foreach my $line (@debootstrap)
|
||||
{
|
||||
$uniq{$line}++;
|
||||
}
|
||||
@debootstrap=sort keys %uniq;
|
||||
%uniq=();
|
||||
foreach my $aptsrc (@debootstrap)
|
||||
{
|
||||
if (defined $deflist)
|
||||
{
|
||||
|
@ -248,7 +255,7 @@ foreach my $aptsrc (@aptsources)
|
|||
}
|
||||
elsif (-d "${dir}etc/apt/")
|
||||
{
|
||||
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap.sources.list")
|
||||
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap-${aptsrc}.list")
|
||||
or die _g("Cannot open sources list"). $!;
|
||||
$mirror = $sources{$aptsrc};
|
||||
$suite = $suites{$aptsrc};
|
||||
|
@ -324,7 +331,7 @@ foreach my $sect (sort keys %packages)
|
|||
chomp($str);
|
||||
$str .= " " . join (' ', values %keyrings) . " ";
|
||||
chomp($str);
|
||||
my %uniq=();
|
||||
%uniq=();
|
||||
@s = split (' ', $str);
|
||||
foreach my $a (@s)
|
||||
{
|
||||
|
@ -353,11 +360,28 @@ if (-l "${dir}lib64" ) {
|
|||
}
|
||||
else
|
||||
{
|
||||
printf (_g("\nMultistrap system installed successfully in %s.\n\n"), $dir);
|
||||
printf (_g("\nMultistrap system installed successfully in %s.\n"), $dir);
|
||||
}
|
||||
}
|
||||
# cleanly separate the debootstrap sources from the final apt sources.
|
||||
unlink ("${dir}etc/apt/sources.list.d/multistrap.sources.list")
|
||||
if (-f "${dir}etc/apt/sources.list.d/multistrap.sources.list");
|
||||
opendir (LISTS, "${dir}etc/apt/sources.list.d/")
|
||||
or die (_g("Cannot read apt sources list directory.\n"));
|
||||
my @sources=grep(!m:\.\.?$:, readdir LISTS);
|
||||
closedir (LISTS);
|
||||
foreach my $filelist (@sources)
|
||||
{
|
||||
next if (-d $filelist);
|
||||
unlink ("${dir}etc/apt/sources.list.d/$filelist");
|
||||
}
|
||||
%uniq=();
|
||||
foreach my $line (@aptsources)
|
||||
{
|
||||
$uniq{$line}++;
|
||||
}
|
||||
@aptsources=sort keys %uniq;
|
||||
%uniq=();
|
||||
foreach my $aptsrc (@aptsources)
|
||||
{
|
||||
if (defined $deflist)
|
||||
|
@ -369,7 +393,7 @@ foreach my $aptsrc (@aptsources)
|
|||
}
|
||||
elsif (-d "${dir}etc/apt/")
|
||||
{
|
||||
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap.sources.list")
|
||||
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap-${aptsrc}.list")
|
||||
or die _g("Cannot open sources list"). $!;
|
||||
$mirror = $sources{$aptsrc};
|
||||
$suite = $suites{$aptsrc};
|
||||
|
@ -381,6 +405,8 @@ END
|
|||
close SOURCES;
|
||||
}
|
||||
}
|
||||
# altered the sources, so get apt to update.
|
||||
(not defined $tidy) ? system ("apt-get $config_str update") : &tidy_apt;
|
||||
|
||||
if (defined $tgzname)
|
||||
{
|
||||
|
@ -391,12 +417,14 @@ if (defined $tgzname)
|
|||
$retval /= 256;
|
||||
if ($retval == 0)
|
||||
{
|
||||
printf (_g("\nRemoving build directory: '%s'\n\n"), $dir);
|
||||
printf (_g("\nRemoving build directory: '%s'\n"), $dir);
|
||||
system ("rm -rf $dir/*");
|
||||
}
|
||||
printf (_g("\nMultistrap system packaged successfully as %s.\n\n"), $tgzname);
|
||||
my $final_path=`realpath $dir/../$tgzname`;
|
||||
chomp ($final_path);
|
||||
printf (_g("\nMultistrap system packaged successfully as %s.\n"), $final_path);
|
||||
}
|
||||
|
||||
print "\n";
|
||||
exit 0;
|
||||
|
||||
sub our_version {
|
||||
|
|
Loading…
Reference in a new issue