[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH] Permit architecture qualifiers, and strip them for edos-debcheck



* Colin Watson (cjwatson@debian.org) [130817 14:39]:
> On Sat, Aug 17, 2013 at 12:33:40PM +0200, Andreas Barth wrote:
> > * Colin Watson (cjwatson@debian.org) [130817 11:47]:
> > > Architecture qualifiers (such as :any and :native) work fine with
> > > current sbuild.  However, edos-debcheck doesn't understand them, so
> > > strip them off in the synthetic Packages files passed to edos-debcheck.
> > > 
> > > The worst case here should be that packages with "Build-Depends:
> > > foo:any" may be scheduled for building and then fail if "foo" is not
> > > "Multi-Arch: allowed"; this is not too bad, and it usually corresponds
> > > to a maintainer error anyway.
> > > ---
> > >  bin/wanna-build | 15 +++++++++++++--
> > >  1 file changed, 13 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/bin/wanna-build b/bin/wanna-build
> > > index 5df0dc6..bf33107 100755
> > > --- a/bin/wanna-build
> > > +++ b/bin/wanna-build
> > > @@ -1635,10 +1635,21 @@ sub build_deplist {
> > >  }
> > >  
> > >  
> > > +sub remove_archqual {
> > > +    if ($_[0]->isa('Dpkg::Deps::Simple')) {
> > > +        undef $_[0]->{'archqual'};
> > 
> > I suggest changing that to
> > +    if ($_[1]->isa('Dpkg::Deps::Simple')) {
> > +        undef $_[1]->{'archqual'} if grep { $_ eq $_[1]->{'archqual'}} ('any', $0);
> > +        return "not-existing-build-dependency-for-any" if $_[1]->{'archqual'};
> > 
> > (with the necessary adoptions to other places)
> 
> That seems wrong; foo:native should work too (it's meaningful for
> cross-builders but a no-op for native builders).
> 
> I'm not sure what you're trying to express here.  Can you give me an
> example of what $0 (I guess you meant $_[0]) would be?  Note that
> build-dependencies on a specific architecture, as opposed to :any or
> :native or unqualified, are not permitted by the current multiarch
> specifications.

I want to enforce that people stick to the specification.

Basically changing remove_archqual($pkgs) to remove_archqual($arch,
$pkgs) and then filtering out the wrong ones (which should be empty
but). Adding more qualifiers like native are ok with me if that would
work on our current buildds, but I want to protect our buildds from
running jobs which won't work anyways.


Andi


Reply to: