Re: Modularity and all the things

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

 



Randy Barlow wrote:
> I haven't used Nix before, so I can't comment on that one, but in what
> way would Gentoo's solution require a substantial user experience
> change? When Gentoo added it, the only user experience change for me
> was when I wanted to pick a non-default slot (or as we call it,
> stream). If I wasn't doing that, things just kept working they way they
> had for years before that. It's still like that to this day - I only
> have to know about Gentoo slots if I am trying to opt-in to some
> version that isn't the default (the default in Gentoo is typically the
> latest stable version). Actually, even if you don't opt in you are
> likely to end up with a few packages parallel installing due to
> dependencies pulling in different versions of things.

The big difference is that Gentoo is source-based, whereas Fedora is binary-
based. So where Gentoo needs to ship only one ebuild (the equivalent of a 
specfile) for foo-1.2.3 that the user can then compile against different 
choices of dependencies, we need to ship binary RPMs of that same foo-1.2.3 
version for each and every combination (exponentially many) of dependency 
versions that we want to support. Which is one of the unsolved issues with 
our Modularity implementation, too.

One solution would be to pick one combination of dependency versions and 
rely on parallel installation of the dependencies, but for that, we need not 
only a stream system, but also the file system layout tweaks of the 
parallel-installable Gentoo slots. For parallel installation, there are 
really only 2 solutions:
1. manually tweak things per package in the least invasive possible way
   (e.g., installing headers to /usr/include/qt5 rather than just
   /usr/include), as already done in compatibility packages, or
2. use a custom prefix under /opt, as is already done in SCLs.
I think 1. is by far superior (even though it is more work), and AFAIK, FPC 
and FESCo mostly agree: in fact, Fedora ships packages that do 1., but not 
packages that do 2. (SCLs have basically been rejected in Fedora).

langdon wrote:
>> * compat-libs (or compat lib style): not discoverable, name mangling

Randy Barlow replied:
> Yeah I don't love this either.

I don't understand why people dislike compatibility libraries so much.

"not discoverable": How so? If you search for foo in Dnfdragora, you will 
automatically also find foo1. How is that "not discoverable"? In addition, 
compatibility libraries are usually used for non-leaf packages, which in 
most cases you don't want to install directly, but instead, whatever you 
actually want to install will automatically drag in the correct version. So 
there is nothing to "discover" in that case.

"name mangling": Why is this a problem? First of all, it is not mangling, it 
is suffixing. The original name is retained unchanged and nothing is 
prepended to it, only appended. And, e.g., Qt 3, 4, and 5 are all different 
packages, so why should they have the same package name? I can understand 
people complaining about "mangling" if you do things the Debian way and 
append an soversion (not a human readable version, so the KDE 3 libraries 
end up as kdelibs4 and the KDE 4 libraries as kdelibs5!) to all libraries 
(even the default version), but that is not how compatibility libraries work 
in Fedora.

I think that compatibility libraries are the much cleaner solution than any 
stream-based approach, be it module streams or Gentoo slots.

        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