this post was submitted on 21 Feb 2024
71 points (92.8% liked)
Linux
47918 readers
1053 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
First of all generalizing about this is totally wrong, depending on what software/libraries a program depends on for build makes a huge difference. If it is good old C that is backwards compatible (hence the size of glibc) it will work all the time. Show me one debian or arch official package that is written in C and says for glibc >=2.35
On other software proposing a library to be >=ver-xxx means the packager speculates that future editions will NOT break the build.
@Rustmilian @lemmyvore
No shit Sherlock.
>=
means forward compatible, not backwards. Manjaro has older packages, not newer, e.g.lessthan=
notgreaterthan=
. If the package says glibc (greaterthan)>=2.35 and Manjaro has glibc<=2.32 it's 1. not going to install because the versioning requirements are properly defined in that case and 2. if it wasn't properly defined you'd either get a failed or junk build which is my entire point.>=
is put there for cases where older versions than what is defined DO break the build.For example Glibc needs linux-api-headers>=4.10 , what do you think happens if Manjaro only has linux-api-headers<=4.9?
That's right, it doesn't install because Manjaro's outdated package doesn't meet minimum requirements.
Now think what happens if Glibc needs linux-api-headers>=4.10 but it isn't properly defined as such in the PKGBUILD/.PKGINFO as what happens with a crap ton of AUR packages, but again Manjaro only has linux-api-headers<=4.9?
It installs it despite Manjaro not meeting minimum requirements which in turn causes undefined bad behavior; this is why proper dep versioning is strictly enforced in the official/Manjaro repos; this is where the AUR is different, proper dep versioning is an after thought & it's assumed you'll always have the latest Arch packages.
If the AUR package is being compiled against a lesser version then it's minimum requirements you'd either get a failed build, or a broken junk build that'll install and potentially cause damage.
You're thinking it's about the forward compatibility, when actually it's the opposite, it's about the backwards compatibility.
Does that make sense now?
Have you made a single AUR pkg, or are you just criticizing thousands for their work without any evidence from your armchair?
@Rustmilian
calamaris and a bunch more.
At one point I was maintaining a large number of KDE git packages before I passed them off to others too.
here are the ones I'm currently maintaining, some of which I've written from scratch; including the previously mentioned calamaris package which if you look is very nonstandard and even makes great use of
>=
.I'm not even criticizing anyone, I'm just telling you straight and as bluntly as possible how the AUR works.
There's no guideline that say you have to provide proper dependency versioning. That's just not something that's enforced in the AUR.
I've said it before and I'll say it again :