reopen 627068
thanks

Until the documentation is clarified, keep the bug open. It's now merged
with another one.

On Tue, 17 May 2011 16:29:32 +0200
Daniel Baumann <[email protected]> wrote:

> On 05/17/2011 04:09 PM, Neil Williams wrote:
> > Unjustified severity. Lowering.
> 
> well, multistrap is a tool to bootstrap. if you can't bootstrap, that's
> a major fail, isn't it? (regardless whichever you prefere, serious or grave)

Multistrap does bootstrap, it is certain packages which need differing
solutions and those do not cause issues with the majority of uses of
multistrap.

The principle role is the generation of root filesystems, typically
embedded and typically for non-trivial systems which require custom
setups for particular boards. Depends on your definition of
non-trivial. In most cases, it means a non-standard configuration and
device table along with packages from internal or non-Debian
repositories.

> > There is no Policy requirement here, it is simply what packages have
> > come to expect but it is not possible to handle preinst scripts in this
> > way in multistrap because multistrap is architecture-neutral (not just
> > architecture-independent) and must deal with foreign builds in the
> > same manner as native, subject to a small convenience wrapper for
> > running 'dpkg --configure -a'.
> 
> i don't understand, why *exactely* do native and foreign bootstrapping
> runs have to be handled identical?

For the multiple repository dependency resolution and because the
principle objective with multistrap is for root filesystem generation
which is typically a foreign process.
 
> >> base-passwd is an essential package.
> > 
> > Essential is not the predicate here, it is Priority: required which is
> > a much wider set.
> 
> daniel@daniel-desktop:~$ apt-cache show base-passwd | grep Essential
> Essential: yes
> daniel@daniel-desktop:~$

debootstrap does not use this field, it bases things on Priority:
required and Emdebian has no Essential field at all. You're looking at
the wrong field - check the debootstrap scripts and it's Priority:
required.

Essential has nothing to do with unpacking order or the preinst scripts
- it is simply a shorthand for dependencies. Everything related to
which packages debootstrap unpacks first is based on Priority and apt
uses it to hint to users that what they have asked is something which
could easily break the system.

> > There is no way to identify the ORDER in which
> > preinst scripts in Priority: required should be run other than
> > explicitly slaving to the debootstrap method of only unpacking *and
> > configuring* Priority:required before even trying to download the rest
> > of the packages. This fundamentally breaks the multi-repository model
> > of multistrap and can ONLY work natively which is why debootstrap has
> > such problems when using --foreign. This is the fundamental reason why
> > debootstrap cannot support multiple repositories with --foreign - it
> > must rely on a fully configured Priority: required set before the rest
> > of the dependencies can be calculated.
> 
> sorry, i don't understand, what is the problem of fetching the indices,
> extracting all essential packages, download and install them and then do
> the rest?

Extracting does not run the preinst because it cannot on a foreign
architecture, so you gain nothing because base-passwd relies on the
postinst. So the typical case is to provide what the base-passwd
postinst would create as a static file.

multistrap does not fetch the indices and extract, that's the
debootstrap model and it fails utterly for multiple repositories -
multistrap uses apt to get the dependency chain and then unpacks the
archives. This is done explicitly to avoid running the preinst scripts.

dpkg --unpack is fundamentally different to dpkg -X - multistrap
explicitly uses -X because --unpack relies on running every preinst.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

Attachment: pgpdGpVlJzH4P.pgp
Description: PGP signature

Reply via email to