Add option to specify the apt default release directly and change the manpage content to advise on how this further complicates the permutations of apt configuration. Add commands to direct apt at the apt.conf.d and preferences.d directories within the chroot. (Closes: #717886)
git-svn-id: http://emdebian.org/svn/current@8462 563faec7-e20c-0410-992a-a66f704d0ccd
This commit is contained in:
parent
e971dbc042
commit
2fc31ead13
5 changed files with 52 additions and 8 deletions
10
debian/changelog
vendored
10
debian/changelog
vendored
|
@ -1,3 +1,13 @@
|
||||||
|
multistrap (2.2.0) unstable; urgency=low
|
||||||
|
|
||||||
|
* Add option to specify the apt default release directly and
|
||||||
|
change the manpage content to advise on how this further
|
||||||
|
complicates the permutations of apt configuration. Add
|
||||||
|
commands to direct apt at the apt.conf.d and preferences.d
|
||||||
|
directories within the chroot. (Closes: #717886)
|
||||||
|
|
||||||
|
-- Neil Williams <codehelp@debian.org> Sat, 27 Jul 2013 15:50:01 +0100
|
||||||
|
|
||||||
multistrap (2.1.23) unstable; urgency=low
|
multistrap (2.1.23) unstable; urgency=low
|
||||||
|
|
||||||
* Carry changes from experimental into unstable.
|
* Carry changes from experimental into unstable.
|
||||||
|
|
2
debian/control
vendored
2
debian/control
vendored
|
@ -5,7 +5,7 @@ Maintainer: Neil Williams <codehelp@debian.org>
|
||||||
Uploaders: Wookey <wookey@debian.org>
|
Uploaders: Wookey <wookey@debian.org>
|
||||||
Build-Depends: cdbs, debhelper (>= 7), po4a (>= 0.37.1)
|
Build-Depends: cdbs, debhelper (>= 7), po4a (>= 0.37.1)
|
||||||
Build-Depends-Indep: intltool
|
Build-Depends-Indep: intltool
|
||||||
Standards-Version: 3.9.3
|
Standards-Version: 3.9.4
|
||||||
Homepage: http://www.emdebian.org/multistrap
|
Homepage: http://www.emdebian.org/multistrap
|
||||||
Vcs-Browser: http://www.emdebian.org/trac/browser/current/
|
Vcs-Browser: http://www.emdebian.org/trac/browser/current/
|
||||||
Vcs-Svn: http://www.emdebian.org/svn/current/
|
Vcs-Svn: http://www.emdebian.org/svn/current/
|
||||||
|
|
|
@ -30,6 +30,8 @@ omitpreinst=false
|
||||||
# apt preferences file
|
# apt preferences file
|
||||||
# aptpreferences=pref.conf
|
# aptpreferences=pref.conf
|
||||||
aptpreferences=
|
aptpreferences=
|
||||||
|
# explicitly set the APT::Default-Release (default is *)
|
||||||
|
aptdefaultrelease=
|
||||||
# download the sources for the packages downloaded
|
# download the sources for the packages downloaded
|
||||||
retainsources=false
|
retainsources=false
|
||||||
# allow Recommended packages to be seen as strict dependencies
|
# allow Recommended packages to be seen as strict dependencies
|
||||||
|
|
12
multistrap
12
multistrap
|
@ -36,12 +36,13 @@ use vars qw/ $progname $ourversion $dstrap $extra @aptsources
|
||||||
$explicit_suite $allow_recommends %omitdebsrc @dsclist @sectoutput
|
$explicit_suite $allow_recommends %omitdebsrc @dsclist @sectoutput
|
||||||
%flatfile %important $addimportant @debconf $hookdir %hooks
|
%flatfile %important $addimportant @debconf $hookdir %hooks
|
||||||
$warn_count $use_shortcut @foreignarches $olddpkg $ignorenative
|
$warn_count $use_shortcut @foreignarches $olddpkg $ignorenative
|
||||||
%foreignpkgs $markauto /;
|
%foreignpkgs $markauto $default_release /;
|
||||||
|
|
||||||
setlocale(LC_MESSAGES, "");
|
setlocale(LC_MESSAGES, "");
|
||||||
textdomain("multistrap");
|
textdomain("multistrap");
|
||||||
$progname = basename($0);
|
$progname = basename($0);
|
||||||
$ourversion = &our_version();
|
$ourversion = &our_version();
|
||||||
|
$default_release = "*";
|
||||||
$unpack = "true";
|
$unpack = "true";
|
||||||
%omitdebsrc=();
|
%omitdebsrc=();
|
||||||
%foreignpkgs=();
|
%foreignpkgs=();
|
||||||
|
@ -338,8 +339,11 @@ $config_str .= " -o Apt::Get::Download-Only=true";
|
||||||
$config_str .= " -o Apt::Install-Recommends=false"
|
$config_str .= " -o Apt::Install-Recommends=false"
|
||||||
if (not defined $allow_recommends);
|
if (not defined $allow_recommends);
|
||||||
$config_str .= " -o Dir=$dir";
|
$config_str .= " -o Dir=$dir";
|
||||||
$config_str .= " -o Dir::Etc=${dir}${etcdir} -o APT::Default-Release=*"
|
$config_str .= " -o Dir::Etc=${dir}${etcdir}";
|
||||||
if (not defined $preffile);
|
$config_str .= " -o Dir::Etc::Parts=${dir}${etcdir}apt.conf.d/";
|
||||||
|
$config_str .= " -o Dir::Etc::PreferencesParts=${dir}${etcdir}preferences.d/";
|
||||||
|
$config_str .= " -o APT::Default-Release=$default_release";
|
||||||
|
# if (not defined $preffile);
|
||||||
if (defined $deflist) {
|
if (defined $deflist) {
|
||||||
$sourcesname = "sources.list.d/multistrap.sources.list";
|
$sourcesname = "sources.list.d/multistrap.sources.list";
|
||||||
$config_str .= " -o Dir::Etc::SourceList=${dir}${etcdir}$sourcesname";
|
$config_str .= " -o Dir::Etc::SourceList=${dir}${etcdir}$sourcesname";
|
||||||
|
@ -1182,6 +1186,8 @@ sub cascade {
|
||||||
($keys{$section}{'explicitsuite'} eq "true"));
|
($keys{$section}{'explicitsuite'} eq "true"));
|
||||||
$allow_recommends++ if ((defined $keys{$section}{'allowrecommends'}) and
|
$allow_recommends++ if ((defined $keys{$section}{'allowrecommends'}) and
|
||||||
($keys{$section}{'allowrecommends'} eq "true"));
|
($keys{$section}{'allowrecommends'} eq "true"));
|
||||||
|
$default_release = lc($keys{$section}{'aptdefaultrelease'})
|
||||||
|
if (defined $keys{$section}{'aptdefaultrelease'});
|
||||||
my @p = split(' ', lc($keys{$section}{'debconfseed'}))
|
my @p = split(' ', lc($keys{$section}{'debconfseed'}))
|
||||||
if (defined $keys{$section}{'debconfseed'});
|
if (defined $keys{$section}{'debconfseed'});
|
||||||
foreach my $f (@p) {
|
foreach my $f (@p) {
|
||||||
|
|
|
@ -129,6 +129,9 @@ http://wiki.debian.org/Multistrap
|
||||||
|
|
||||||
http://www.emdebian.org/multistrap/
|
http://www.emdebian.org/multistrap/
|
||||||
|
|
||||||
|
C<multistrap> includes an example configuration file with a full list
|
||||||
|
of all supported config file options: F</usr/share/doc/multistrap/examples/full.conf>
|
||||||
|
|
||||||
=head1 Shortcuts
|
=head1 Shortcuts
|
||||||
|
|
||||||
In a similar manner to C<debootstrap>, C<multistrap> supports referring
|
In a similar manner to C<debootstrap>, C<multistrap> supports referring
|
||||||
|
@ -553,10 +556,33 @@ to use typical Debian behaviour.
|
||||||
|
|
||||||
=head1 Default release
|
=head1 Default release
|
||||||
|
|
||||||
If your system specifies a default-release for apt, this can cause
|
C<multistrap> supports an option to explicitly set the default release
|
||||||
problems when trying to create a bootstrap which does not include
|
to use with apt: C<aptdefaultrelease>. This determines which release apt
|
||||||
the default suite. To counter this, C<multistrap> sets a wildcard for
|
will use for the base system packages and is not the same as pinning
|
||||||
the Default Release within the bootstrap. See also: apt preferences.
|
(which relates to the use of apt after installation). Multistrap sets
|
||||||
|
the default-release to the wildcard * unless a release is named in the
|
||||||
|
C<aptdefaultrelease> field. Any release specified here must also be
|
||||||
|
defined in a stanza referenced in the bootstrap list or apt will fail.
|
||||||
|
|
||||||
|
To install a specific version of a package from a newer release than
|
||||||
|
the one specified as default, C<explicitsuite> must also be set to true
|
||||||
|
if the package exists at any version in the default release. Also, any
|
||||||
|
packages upon which that package has a strict dependency (i.e. = rather
|
||||||
|
than >=) must also be explicitly added to the packages line in the
|
||||||
|
stanza for the desired version, even though that package does not need
|
||||||
|
to be listed to get it from the default release. This is typical apt
|
||||||
|
behaviour and is not a bug in multistrap.
|
||||||
|
|
||||||
|
The combination of default release, explicit suite and apt preferences
|
||||||
|
can quickly become complex and bugs can be very hard to identify.
|
||||||
|
C<multistrap> always outputs the complete apt command line, so test
|
||||||
|
this command yourself (using the files written out by C<multistrap>) to
|
||||||
|
see what is going on. Remember that all dependency resolution and all
|
||||||
|
the logic to determine which version of a specific package gets installed
|
||||||
|
in your C<multistrap> chroot is entirely down to apt and all C<multistrap>
|
||||||
|
can do is pass files and command line options to apt.
|
||||||
|
|
||||||
|
See also: apt preferences.
|
||||||
|
|
||||||
=head1 Explicit suite specification
|
=head1 Explicit suite specification
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue