On Fri, 17 Jan 2014 18:28:41 +0000
Ciaran McCreesh <ciaran.mccre...@googlemail.com> wrote:

> On Fri, 17 Jan 2014 17:47:58 +0100
> Tom Wijsman <tom...@gentoo.org> wrote:
> > Maybe we can let the package managers only perceive it as keyworded
> > or stable if all of its dependencies are keyworded or stable on the
> > architecture that the user runs. Then we can have repoman just
> > ignore checking dependencies' keywords when we keyword or stabilize
> > them.
> > 
> > Not sure how implementable this idea is though...
> 
> It's going to hurt for four reasons that I can think of right now.
> 
> Firstly, things you think are "obviously portable" sometimes aren't.

We could write a search for architecture dependent / specific code.

> Secondly, users already get confused by "stable use masks". This is
> going to be even worse: users aren't going to understand why a noarch
> package isn't available for them.

We can improve the output of the package manager to make this easier
to understand; one way is to clarify it, the other way is to just
replace it by the actual archictecture the user runs.

As a side note, I think we might want to name this anyarch... :)

> Thirdly, you have to decide how to deal with long chains and cycles in
> noarch dependencies.
>
> Fourthly, the interaction with || deps is an awful mess.

Yes, these are though problems to resolve; my mind came up with that
this idea needs recursion, hence the "not sure how implementable".

A cycle can be broken by stopping to continue to a certain dependency
if that dependency is of the parent reverse dependencies, capture the
set of packages as a cycle. Then check for each package in the cycle if
their dependencies satisfy each package; if so, all the packages in
the cycle are satisfied.

Of course, this doesn't take into account more complex cycles were two
cycles are connected to each other; but if we would have such thing,
I'd rather see that get fixed in the Portage tree as that sounds like a
needlessly complex set of ebuilds.

Long chains might or might exist and might or might not be problematic,
that's something we would need to test out when this is implemented.

|| deps can be done, just check them in the same order like before;
what I'm more scared of is the amount of anyarch/noarch there would be
added to the Portage tree, just a few can be easily done.

If it is going to be a large share of the Portage tree we'll want to
look for another design or just not change how this works at all. 

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : tom...@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

Attachment: signature.asc
Description: PGP signature

Reply via email to