diff --git a/debian/changelog b/debian/changelog index ba68562..a05c7b3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,8 +6,9 @@ multistrap (2.1.17) unstable; urgency=low * Improve fakeroot environment variable tests. (Closes: #647240) * Implement support to copy an apt preferences file into place. (Closes: #616420) + * Support not configuring packages for native arch. (Closes: #651885) - -- Neil Williams Tue, 17 Apr 2012 20:06:32 +0100 + -- Neil Williams Tue, 17 Apr 2012 21:05:48 +0100 multistrap (2.1.16) unstable; urgency=low diff --git a/examples/full.conf b/examples/full.conf new file mode 100644 index 0000000..872875f --- /dev/null +++ b/examples/full.conf @@ -0,0 +1,63 @@ +# Example multistrap configuration file describing all options + +[General] +# can be overridden on the command line +arch= +# can be overriden on the command line +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=true +# whether to add the /suite to be explicit about where apt +# needs to look for packages. Default is false. +explicitsuite=false +# copied into the chroot to be executed later +configscript=config.sh +# executed within the chroot (so do not execute foreign binaries in this script) +setupscript=setup.sh +# omit packages with Priority: required (care needed) +omitrequired=false +# add packages of Priority: important +addimportant=false +# avoid running preinst scripts in native mode +omitpreinst=false +# apt preferences file +aptpreferences=pref.conf +# download the sources for the packages downloaded +retainsources=false +# get packages from explicit suites as per the sections (care required) +explicitsuite=false +# allow Recommended packages to be seen as strict dependencies +allowrecommends=false +# debconf preseed file +debconfseed=debconf.txt +# hook directory, executable scripts called: +# download*, native* or completion* +hookdir=/path/hooks/ +# multiarch architectures to enable (space separated list) +multiarch=armel i386 +# include variables from a more generic config file +include= +# name of a tarball to create containing the multistrap chroot +tarballname=rootfs.tgz +# 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 +aptsources=Debian + +[Debian] +packages=apt +source=http://ftp.uk.debian.org/debian +keyring=debian-archive-keyring +suite=wheezy +omitdebsrc=false +additional= +reinstall= +components=main + diff --git a/multistrap b/multistrap index f97459f..69eb035 100755 --- a/multistrap +++ b/multistrap @@ -35,7 +35,7 @@ use vars qw/ $progname $ourversion $dstrap $extra @aptsources $omitpreinst @reinstall $tgzname %uniq %required $check @check %uniq $explicit_suite $allow_recommends %omitdebsrc @dsclist @sectoutput %flatfile %important $addimportant @debconf $hookdir %hooks - $warn_count $use_shortcut @foreignarches $olddpkg + $warn_count $use_shortcut @foreignarches $olddpkg $ignorenative %foreignpkgs $ignorenative /; setlocale(LC_MESSAGES, ""); @@ -146,7 +146,7 @@ if ((not defined $arch) or ($arch eq "")) { } else { printf (_g("Using foreign architecture: %s\n"), $arch); } -$foreign++ if ($host ne $arch); +$foreign++ if (($host ne $arch) and (not defined $ignorenative)); unless (keys %sources) { my $msg = sprintf(_g("No sources defined for a foreign multistrap. Using your existing apt sources. To use different sources, @@ -1118,6 +1118,8 @@ sub cascade { if (defined $keys{$section}{'omitpreinst'} and (not defined $omitpreinst)); $tidy++ if ((defined $keys{$section}{'cleanup'}) and ($keys{$section}{'cleanup'} eq "true")); $noauth++ if ((defined $keys{$section}{'noauth'}) and ($keys{$section}{'noauth'} eq "true")); + $ignorenative++ if ((defined $keys{$section}{'ignorenativearch'}) and + (lc($keys{$section}{'ignorenativearch'}) eq 'true')); $preffile = lc($keys{$section}{'aptpreferences'}) if (defined $keys{$section}{'aptpreferences'} and (not defined $preffile)); undef $preffile if ((defined $preffile) and (not -f $preffile));