back

by itvision·1y ago·view on hn ↗
You cannot statically compile a lot of stuff. Too many Linux libraries are GPLed, and that only works for open source applications.

And then one day the underlying libraries will have security problems. Your statically linked application has just become a gaping hole.

And finally, you don't want your statically compiled binary to be hundreds of megabytes and take forever to launch, do you? But seeing how many people here are advocating Snap/Flat/AppImage, I guess it's not a problem? But why would you need a Linux userspace or OS in the first place when all you are doing is running virtual containers? You can run them on Windows or MacOS as well.

1 comments
Not many libraries use the GPL because “that only works for open source applications”.

That said, you can just copy the .so files if you want to run the old binary.

Furthermore, binaries are mmapped, so even if it is very large, it will still launch relatively quickly since only the parts needed to launch are read into memory.

LD_LIBRARY_PATH again?

Can you stop for a second and realize your "solutions" are absolute unmitigated crap and 99.999% of people of the world wouldn't bother even if they could?

In Windows you don't have to do that. You can compile an application in Windows 11 and run it in Windows XP for Christ's sake (if you don't use new Windows APIs).

Show me a way to compile anything in Ubuntu 24 using only its own libraries and have it run in Ubuntu 6, huh? Without virtualizating/chrooting/crap like that. No, you can't? Fine.

> Not many libraries use the GPL

Let me start: Qt. Before your spew "GTK", who is going to pay for porting the code to GTK/GTKMM (since GTK is C only)?

End of your wonderful story. You really want to bend reality to make Linux look "OK". It's not. It's bad.

First, LD_LIBRARY_PATH works well (or has for me). If for some reason the elf interpreter is unable to use the older libc, just use the old elf interpreter. Second, do static linking to achieve what you want. Then it will run on the older Ubuntu trivially.

That of course requires updating the application when a vulnerability is found in a library, but this is no different from Windows where you have to update many applications to fix vulnerabilities in third party libraries. The number of vendor updates to fix the same libjpeg of libpng issues on Windows is truly staggering.

The Qt libraries do not use the GPL. They use the same LGPL that GTK does. You are making stuff up to bash open source UNIX machines (which is what Linux machines are).

For 99.99999% average people out there none of this utter cryptic crap works even remotely which basically means it doesn't exist.

Can you stop with anecdotal evidence? I don't care that you can make old software works. I can do as well, you know. Been there long before you even knew Linux existed. Had a nice little trip with GCC 2.96 by RedHat if you even remember that fiasco of epic proportions.

Then you acknowledge that what you said earlier was untrue.
> Then you acknowledge that what you said earlier was untrue.

Where did I?

Or something that's available to 0.0001% of its users has become an OS "feature"?

Who are you kidding, man? What else, you gonna claim Linux is "fine" because people can write assembler code for it? It can even run on your PC?

That's not what a desktop OS is about. That's not how it's used.

In reference to running old software, you said:

  > In Linux nothing even close is possible.
Now you say it is possible, but are fabricating figures for how many people can do it. Thus, you acknowledge what you said was untrue. Both things cannot be true simultaneously.

This is a feature of Linux. Linus Torvalds is very adamant about supporting old binaries with new kernels, even if it is not commonly done.