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

Re: Fixing dependency resolution of britney



Johannes Schauer:
> Hi,
> 
> [...]
> 
> in #807312 Ansgar helpfully pointed me to [1]. I have no clue at all about
> britney but from my naive understanding I get that one of the things it does is
> to check if a source package's build dependencies and its binary packages'
> runtime dependencies are satisfied in testing.
> 

Britney does *not* look at Build-Depends.  Only (Pre-)Depends.

> My question is: why does it not just use dose3 just as the buildds are doing
> it?

I presume Britney predates dose3 and evolved organically.  To be honest,
I doubt Britney has an architecture where blindly adding dose3
integration will be beneficial.

> You would then get multiarch support, build profile support, cross
> architecture support, versioned provides support and so on for free.
> 

So, Britney's dependency resolver ("InstallabilityTester") actually
supports all of that.  What is lacking is support for passing the
information to the resolver.

Note though that:
 * Multi-arch - there are policy decisions involved.  Examples:
   - Q: When is it permitted to depend on packages on foreign
     architectures?
 * Versioned Provides - parts of Britney have hardcoded assumptions on
   "Provides" *not* having "(= <version>)" to the point where Britney
   computes the wrong result.

But once you "fix" that and map it correctly to the resolver, then it
will "just work(tm)".  Of course, I made it sound a bit easier than it is.

> I tried to find where the source code lives but I have a hard time finding it.
> [...]
> 

Code: https://anonscm.debian.org/git/mirror/britney2.git
Test suite:
 https://anonscm.debian.org/cgit/collab-maint/britney2-tests.git
Docs: https://wiki.debian.org/CommittingBritneyChanges


> So, in case I am not missing something really obvious here, could you make it
> easier for users to find the code generating the pages they can find on
> release.debian.org? I think it would be nice if all Debian web services had
> such a link to the code that creates them at the bottom. This would show how
> much we value to be open and would maybe even attract more contributors.
> 

Indeed, patches welcome to make it easier to find.

> And it would be even better if there was some instructions of how to hack the
> britney code (how to test changes etc). If that existed, I could see if I can
> create a patch which adds dose3 support to britney.
> 

The best I got is: https://wiki.debian.org/CommittingBritneyChanges

Feel free to ask if you got any questions or suggestions for
improvements.  I am happy to improve the documentation.

> Thanks!
> 
> cheers, josch
> 
> [1] https://release.debian.org/migration/testing.pl?package=cross-gcc-4.9-armhf
> [2] https://release.debian.org/migration/testing.txt
> [3] https://release.debian.org/britney/update_excuses.html
> [4] https://release.debian.org/britney/
> [5] https://release.debian.org/britney/code.git/
> 

Thanks,
~Niels




Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: