Hi, On Mon, 04 Jul 2016 09:54:55 +0200 Johannes Schauer <[email protected]> wrote: > This is a tricky one because it creates a chicken-and-egg situation when > sbuild is instructed to download the source package itself. In that > situation, the source package's metadata is required *before* the chroot is > updated, so that extra architectures can be added to the chroot. But sbuild > should only download the source package (including its metadata) *after* the > chroot is updated to pick up the latest source package version.
one can also make the argument, that adding architectures explicitly given in dependencies on binary packages is futile anyways and should be removed and replaced by a mechanism where the user lists all enabled foreign architectures on the command line when running sbuild manually. To elaborate: currently sbuild goes through the build dependencies of a source package to find explicitly architecture qualified build dependencies. It then adds these architectures to the foreign architectures of the chroot. But this method is incomplete. If any of the binary packages a source package indirectly build depends on deeper in the dependency chain carries an architecture qualified dependency, then the current system will not see this architecture. Implementing a system that finds all required architectures is hard because it would mean to recursively walk the dependency graph and add all explicitly given architectures as they are required. There currently exists no software in Debian that can do this task. One could for example think about calling dose-builddebcheck multiple times, adding more architectures as they are discovered to be missing by dose3. But this would also be highly fragile and computationally expensive. Removing the code that currently automatically adds architectures to the chroot would of course also fix this bug but remove some functionality. Thanks! cheers, josch
signature.asc
Description: signature

