Originally posted by xfcemint
View Post
Originally posted by xfcemint
View Post
What you wrote here is a Herding cats problem.
The reality here is Linux Distributions have different ideas on what is correct they are not going to sit down with each other can come to a 100 percent uniform agreement. Linux Distributions have true case of Irreconcilable Differences.
The problem here is like how different christian religions interpret the bible differently and totally refuse to agree. This aligns up with Linux Distribution behavior.
Then you have different application developer groups that have Irreconcilable differences between them so will not sit down with each other to come up with a common agreement..
Then you have this that stable ABI causes it own fair share of issues. So a developer of a application or library to fix security issues, performance issues and so on is motivated by one of these reasons to break stable ABI. Of course Sod law applies "if something can go wrong, it will" so Stable ABI breakage is always going to be natural happening.
xfcemint the biggest problem here is that people need to accept the reality. Linux world is never going to have a 100 percent uniform stable ABI that application developers ask for this is never going to happen while people can create their own new distributions customized for what they need. Windows and Mac OS and android can kind of offer this because each of these are single cathedrals. Yes each Linux distribution is own cathedral and worse nightmare is every release of a distribution can be its own cathedral.
The reality you make a deb package for debian/ubuntu.... you are basically agreeing to update that when the distribution does update and that you will not have backwards compatibility all the time. Same applies to RPM... There are a long list of distributions in this camp. This is their nature.
Freedesktop runtimes(what flatpak uses), Steam runtime(valve), NixOS are all different forms of Cathedrals that focus on long term running of applications. There are security and memory usage downsides to this.
Stable ABI is not a free it has costs. Yes application developers and end users have to agree to pay the cost here.
Application developers need to stop expecting parties like Debian/Ubuntu.. to behave like windows or macOS with stable ABI. Notice Ubuntu snap you end up bound to their store.
For end users I would say there is a lack of a good front end with tooling to make resolving ABI issues simpler. Yes people forget that its really possible to override any dynamic linked Linux applications loader this can be combined with .desktop files. So Linux distributions could have a compatibility mode like Windows does even provide by a third party of someone was willing to put in the effort the technology exists to-do it. Another interesting point the 80000 packages in nixOS don't need to be installed in /usr NixOS works by altering the dynamic loader. Dynamic loader fixing ABI issues and allowing alternative libraries is a tested and functional solution under Linux but this does not come default with distributions like debian/ubuntu/Redhat/Suse.... instead you need to add like NixOS or Guix to have it.
The horrible reality right the solutions exist 99% of the LInux user-space ABI mess to have applications work across multi distributions and multi generations of Linux distributions. This now comes the classic statement "you can lead a horse to water but you cannot make them drink" you run into this a lot with distributions and application developers.
xfcemint driver issue is another problem of it own.
Userspace ABI issue for applications is purely failure to accept what Linux world is and work in the problem space with what is in fact provided. Yes the Linux world does punish those who look for a quick fix solution without first accepting and understanding the Linux world very harshly due to being able make something like a deb package for debian without understandably this is agreeing to be on a treadmill of updates then run into nightmares of repeated breaking. Yes for this debian case if you had read the Debian packaging policies they warn you of this problem.
I would say this is a very steep learning curve because the Linux world is truly different to Windows and Mac OS world and developers come in attempting to interact with it like it Android Windows and Mac OS.
Yes Android, Windows and Mac OS you can presume that you will naturally get forwards and backwards compatibility as application developer all of the time. But this has never been true for all operating systems. Most BSD based solutions you don't even have the stable ABI from kernel space.
The top one is "Assume= make ASS out of U and ME". Biggest problem for those starting attempting to make application for Linux is they assume Linux will behave like Windows or MacOS or Android so they don't need to learn anything about the nature of what they are using. There is a very large diversity and natures between Linux distributions.
Leave a comment: