On Mon, Feb 11, 2019 at 3:30 AM Neal Gompa <ngomp...@gmail.com> wrote:
>
> On Sun, Feb 10, 2019 at 9:22 PM Dridi Boukelmoune
> <dridi.boukelmo...@gmail.com> wrote:
> >
> > > I don't read repodata manually, libsolv does it for me. Using libdnf 
> > > and/or libmodulemd is not something what (for example) OBS would do. They 
> > > rely on libsolv for all dependency solving operations. And unless it will 
> > > support modularity (which depends heavily on DNF people's ability to 
> > > speak to upstream), nothing will improve.
> >
> > I don't know how things are currently done, but shouldn't modularity
> > build on top instead of being bolted in?
> >
>
> "Build on top" does not make sense, because each of the aspects are
> crossing into each other in order to provide a useful solution.

Yes but dnf provides an API and you can build features on top of it.
For example version locks (that could help enforce a stream) protected
packages (that could intercept attempts to remove a module outside
TheRightWay(tm)) etc. I don't see why we should mess with the RPM
dependency solver in an intrusive way and not feed it the result of
"module" dependency solving.

In other words, I don't understand why we need to special case modules
in build roots.

> > I assume libsolv can already deal with multiple repodata since yum/dnf
> > support having multiple repositories. Shouldn't modules simply provide
> > repodata and have the "modularity" plugin figure which repodata to
> > fetch depending on the selected streams? That wouldn't require any
> > change in libsolv.
> >
>
> This is actually how it works now, but causes all kinds of problems,
> even in DNF itself. If you try to get debugsolver data for debugging
> issues with DNF, it makes absolutely no sense because the solver
> doesn't know anything about RH modularity. This means that solutions
> are slower and suboptimal. It also makes development on improving the
> technology very hard. It also increases the memory requirements
> because everything has to be held in memory while a second solver runs
> on the data to apply various filters. And the solution "logic" for
> modules is very similar to how yum did solutions for RPMs, so it's
> quite slow and prone to issues.

I never had the bandwidth to follow modularity in the making, so I'm
still very clueless about the implementation. But the fact that I have
a fairly good understanding of the "installation process" (in a broad
sense) in Fedora and can't grok modularity feels like something was
wrong in the base design.

> > Disclaimer, I don't know any better but if modules are simply
> > parallel-available RPMs, it shouldn't be bothering libsolv (except
> > maybe to enforce a stream downgrade).
> >
>
> Modules are effectively mutually conflicting collections of RPMs,
> operating like stacked/nested repos with the properties of composition
> groups. They also contain all kinds of extra information which is used
> to determine availability, usability, and other things.
>
> If they worked the way you thought they did, we wouldn't be having
> these issues. :(

To me it feels like Red Hat had an agenda and a time table, and the
whole thing was rushed for the sake of RHEL 8's time to market.

When people blame Red Hat of using Fedora as a test bed, I can only
sympathize because it really feels like that. I don't mind, but when
the answer is no, Fedora is an independent community project, I also
don't buy it.

I really think that the current design shortcomings come from the lack
of time allocated to it, or maybe the lack of exposure. Again I don't
have the bandwidth to follow major changes in Fedora, for example it
took me forever to even start dropping the python2 packages I happen
to maintain.

Dridi
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to