Re: Fedora 33 System-Wide Change proposal: swap on zram

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

 



Igor Raits wrote:
> Why is it painful? You have all dependencies packaged that follow
> semver (not like Go) and it is quite easy to build those packages.

Semver is just a convention on version numbers (and one that, IMHO, is still 
open to human interpretation). It does not solve the problem at hand, which 
is that even the compiler does not provide a stable ABI when it changes 
version (affecting all libraries), let alone the libraries. (Semver only 
says that incompatible API changes should lead to a bump in the front rather 
than the back of the version number. That does not solve the problem that 
incompatibilities happen to begin with. At least not as long as any upstream 
can set any version number they wish at any time they wish.)

The lack of stable ABIs is what prevents building shared libraries in a way 
useful to the distribution. Semver is not relevant there.

> Another example here could be nodejs, even though it does not link
> statically it is just PITA to package since ecosystem is just full of
> very small libraries that do not really like to cooperate so you need
> to have tens of different versions of a lib in a repo. I consider this
> much bigger problem than the Rust has in Fedora.

IMHO, Rust and Go also have this exact same "[many] very small libraries" 
problem. Maybe slightly fewer than Node.js, which really takes it to an 
extreme, but still a lot more than C or C++.

The main issue is that it is too easy to depend on a library in all of 
Node.js, Rust, and Go, because you just have to write one import line, and 
the programming language's tooling will automagically pull the dependency 
from the Internet. This is what leads to dependency explosion. It is also a 
PITA for packaging, because Koji rightfully (for obvious security reasons) 
prevents builds from accessing the Internet. In a language like C or C++, 
the developer thinks twice before adding yet another dependency.

> We also have Fedora CoreOS that uses
> https://github.com/coreos/afterburn and
> https://github.com/coreos/zincati that are written in Rust as well and
> those are core system utilities.

The situation there is essentially the same as for rpm-ostree: Those are 
core system utilities for CoreOS only, not for a default Fedora 
installation.

This is yet another decision that makes Fedora CoreOS unattractive to me.

> I don't think saying "Ditch Python, Ruby, Perl, … from the system
> components" is useful for anyone since you know that it is not going to
> happen.

Actually, Ruby and Perl are already undesired in the core system layer, 
because each language interpreter increases the size of all our live images. 
There was an official effort to kick out Perl from the Workstation live 
image years ago, which AFAIK has been fully implemented. And Ruby was never 
used in the core system to begin with.

Python is a different story. There are people who are trying to get rid of 
even that (see, e.g., microdnf), but in the default Fedora, it is probably 
here to stay. I consider that unfortunate, because it is a heavy runtime 
dependency, because it is more error-prone than fully compiled languages 
(only syntax errors are caught at package build time, and even that only if 
bytecode generation is set up correctly, whereas, e.g., type errors, 
deprecation warnings, etc. are all spewed at the end user instead), because 
it is not fully backwards compatible (even a new 3.n+1 release can have 
small incompatibilities, and the transition from 2 to 3 was a huge 
breakage), and because it does not perform as well as natively compiled 
code. But I am not entitled to make this decision.

        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