Re: Modularity: The Official Complaint Thread

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

 



Stephen Gallagher wrote:
> On Wed, Nov 13, 2019 at 5:29 PM Kevin Kofler <kevin.kofler@xxxxxxxxx>
> wrote:
>> What about libgit2, was that not a default stream?
> 
> It was not. It was a dependency of other modules.

So it looks like we really also (in addition to the proposed ban on default 
streams) need a ban on non-leaf modules. It would also fix the version 
conflict issue.

You have stated yourself: "If you have a library that can be installed in 
parallel, make a compat package. Modularity is not the correct solution for 
that case". And any library can be installed with parallel given sufficient 
packaging skills.

>> And what we are missing here is a list of modular packages with no
>> default version at all (i.e., neither an ursine build nor a default
>> stream), a state which is completely broken (but which seems to currently
>> exist in Fedora, unfortunately).
> 
> Could you define "broken"? Because I have no idea what you're talking
> about here. If it is module-only and has no default stream, it means
> it's effectively invisible unless you enable a stream knowingly.

That is exactly what I mean by "broken": The packages are not discoverable 
unless you enable some module first, and they are not installable without 
opting in to the potential replacement of arbitrary system libraries (or 
"frameworks") (e.g., Django getting downgraded by the ReviewBoard module), 
which may or may not actually be possible without conflicts on the specific 
installation.

I should be able to just dnf install the packages that I want (or 
point&click-install them in Dnfdragora) and get some version (which may or 
may not be the latest) that works with the distribution libraries (which 
also may or may not be the latest). If the application does not work with 
the default version of the library, if no version of the application that 
works with it is available, and if the application cannot be patched to port 
it to the system version of the library, a compatibility version of the 
library is needed. This also holds for programming language interpreters 
(such as Node.js), sets of libraries (such as the Node.js packages), or 
"frameworks" (such as Django, which are really just one of the preceding or 
a combination thereof). I consider it the whole point of a distribution to 
package the software in such a way. If I get to deal myself with 
incompatible version requirements, I may just as well install the 
applications directly from upstream.

>> (Please note that I also read those 2 points as implicitly banning
>> filtering packages from modules, but if that is not obvious to someone,
>> then it should be added as a separate rule.)
> 
> It does not implicitly ban filtering packages. It implicitly bans
> filtering out *sub*-packages. It still think it's acceptable to filter
> out *all* produced subpackages of a component that is used only at
> build-time.

I do not see how that makes a difference, considering that banning some or 
all subpackages behaves exactly the same way. In both cases, the filter will 
interfere with versions of that component packaged elsewhere (see the 
complaints about the filters in RHEL). In both cases, you are deliberately 
hiding a component that you packaged from users and making it hard to 
obtain. In both cases, you are hindering cooperation and risk introducing 
conflicts (when other maintainers will do the logical thing and repackage 
that component elsewhere because you won't let them use the version you 
packaged).

And both violate the rules I am proposing ("1. any package that exists in a 
module MUST have a default version and 2. that version MUST be packaged in 
the ursine/non-modular repository, not as a default stream") in exactly the 
same way (because those subpackages or entire packages definitely do EXIST 
in a module, even if you are hiding them).

> This is literally the entire point of a distribution. We provide an
> opinionated collection of software packaged for people to use.

I think the point of the collection of software packaged in a distribution 
is not to be opinionated, but to be consistent and interoperable. That it 
sometimes ends up being opinionated is an unfortunate side effect (mostly 
caused by upstreams refusing to listen to user requests, forcing the 
distribution maintainer to make a decision on which side to irritate). It 
should NOT be the goal. Being consistent and interoperable should. And that 
is exactly what Modularity is endangering.


The remainder of your message (your last 3 paragraphs) has been answered 
quite well by John M. Harris, Jr. already, so I am not going to repeat the 
same thing.

        Kevin Kofler
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux