On Fri, Nov 05, 2010 at 05:55:34PM -0700, Kees Cook wrote: > Package: sbuild > Version: 0.60.2-1 > Severity: normal > User: ubuntu-de...@lists.ubuntu.com > Usertags: origin-ubuntu natty > > It seems that the ESSENTIAL dep resolution breaks me (at least on Ubuntu). > I had to "exit 1" from install_essential() to restore my ability to build > (0.60.0 was working fine).
That attached patch is a crude attempt to find and eliminate provided virtual packages before we try to install them. If you could try it (against current git master), that would be great. I could still do with the debug output and other tests from my earlier mails, though. Thanks, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
diff --git a/lib/Sbuild/InternalResolver.pm b/lib/Sbuild/InternalResolver.pm index 697e933..ef144f5 100644 --- a/lib/Sbuild/InternalResolver.pm +++ b/lib/Sbuild/InternalResolver.pm @@ -113,7 +113,7 @@ sub install_deps { if ($self->get_conf('RESOLVE_VIRTUAL')) { debug("Finding virtual packages\n"); if (!$self->virtual_dependencies(\...@positive)) { - $builder->log("Package installation not possible\n"); + $builder->log("Package installation not possible: failed to find virtual dependencies\n"); return 0; } } @@ -315,6 +315,21 @@ sub filter_dependencies { ($d->{'Package'}, $d->{'Rel'}, $d->{'Version'}); my $stat = $status->{$name}; if (!$stat->{'Installed'}) { + my @virtuals = $self->get_virtual($name); + my $vstatus = $self->get_dpkg_status(@virtuals); + foreach my $vpkg (@virtuals) { + my $vstat = $vstatus->{$vpkg}; + if ($vpkg ne $name && + $vstat->{'Installed'}) { + debug("$name: pos dep, provided by $vpkg\n"); + $builder->log("$name: provided by $vpkg\n"); + $is_satisfied = 1; + last; + } + } + + last if ($is_satisfied); + debug("$name: pos dep, not installed\n"); $builder->log("$name: missing\n");
signature.asc
Description: Digital signature