[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


Janitor acceptance emails will be sent out over the coming weeks. Make sure to check your spam folder!


[Advertise on 4chan]


I downloaded Baldur's Gate I Enhanced Edition which actually had a Linux port on GOG. I tried running it but it was missing libssl 1.0, of which Arch Linux now uses a newer version. Thankfully, an openssl 1.0 package was preserved in the Arch archive so that I can download and install it manually.
My question is, why is this such an issue in Linux but not in Windows? Why can't an older program just use the installed newer libs? My fixing today was quite advanced for average noobs. How does Windows seamlessly manage to accommodate older programs relying on older libraries? Or should we just distribute Linux games in Flatpaks or Appimages just to be safe?
>>
On windows the outdated crap is always included with the game.
>>
>>109097608
>>>/vg/lgg
>>
>>109097631
is there any real reason for why these retards cannot statically compile the same libraries for GNU/Linux systems? Licenses?
>>
>>109097608
>why is this such an issue in Linux but not in Windows?
Because Windows needs to maintain an ecosystem with complete future compatibility in mind, so they layer updates instead of outright replacing previous older content. This creates bloat over time but allows everything to continue working.

>Why can't an older program just use the installed newer libs?
They usually can, libssl is one of a number of packages which notoriously were completely rewritten and thus broke plenty of programs.

>How does Windows seamlessly manage to accommodate older programs relying on older libraries?
By either shipping all necessary libraries or doing as above, where you can have dx9 installed and still use programs that need dx8 and also use dx12, because each version is unique.

>Or should we just distribute Linux games in Flatpaks or Appimages just to be safe?
There is a big shift in the linux community to these types of distributions, but they come with their own pitfalls, namely bloat. Including every necessary library in every game is possible, but it would be just as bloated and convoluted as windows. They also need to be updated, because they don't actually contain everything they need. They rely of plenty of system programs to run, which can get updates and break them.
>>
Windows installers usually come with all the libraries like a flatpak, if they just distributed the executable there would be the same issue. There was the same issue back in the day where you could get into dll-hell but windows has distribution solved pretty well now. Personally I prefer static linking. You have exactly what you need and nothing you don't from exactly the right versions of every library all in one binary. It always justwerks.
>>
>>109097608
Read up on static and dynamic linked libraries.
I'm sure you can guess, Windows applications typically use one method, Linux applications use the other.
>>
>>109097608
You can put the linux "dlls" into the game folder and use LD_LIBRARY_PATH to load them
>>
>>109097670
>is there any real reason for why these retards cannot statically compile the same libraries for GNU/Linux systems?
No
>Licenses?
Some argue there are issues with GNU libc imo its all bullshit
>>
Doesn't need ststic linking, just ship the dependencies in appimage.
>>
>>109097682
>dll hell
I grew up with windows xp and I vaguely remembers what it is but never actually have experienced it. What is it exactly?
>>
>>109097682
I think the Linux/BSD model is the ideal one. We only need the latest version of a library and maintainers must keep tracking the versions and update things. Sadly, you are right that non-FOSS devs hardly give a crap about it and it will never happen.
>>
File: 1763803895199341.jpg (60 KB, 500x423)
60 KB JPG
>>109097700
This, i even remember native commercial games for linux (eg: neverwinter nights) that were shipped having custom libraries bundled and preloaded with that variable in the launcher. If anything the GOG packager here is to blame.
>>
>>109097718
If you don't remember having to look for and download dlls from shady websites to make games work then you're either larping or didn't play many games.
>>
>>109098168
I did that before but it's not quite "hell" when compared to troubleshooting that problem in Linux.
Why would dll hell happen if they say Windows games include those in the game?
>>
>>109097670
it’s called a flatpak
a snap
a appimage
>>
>>109098382
>I did that before but it's not quite "hell" when compared to troubleshooting that problem in Linux.
zypper search --provides 'libssl'
?
All the big package manages support something similar. Tremendously easier than Windows.
>Why would dll hell happen if they say Windows games include those in the game?
Because, just like people making shitty Linux ports, sometimes the devs don't include them in Windows software. Used to be relatively common for developers to rely on system DLLs that were subject to updates or whatever and different versions broke things.
>>
>>109098389
World of goo 2 was developed Linux first and distributed as an appimage. The entire game in one file, just double click and run. It just werked.
>>
>>109097608
because of their obsession with "bloat" many loonix devs choose not to provide all necessary dependencies with a binary.
the downside of saving that 1 MB is that now your shit can break at anytime due to dependency issues.
>>
>>109097746
that's absolutely retarded and creates unmaintainable amounts of busy work and broken projects.
>>
>>109098389
>it’s called a flatpak
>a snap
>a appimage
isn't that just static compilation with additional steps? you simply create a "container" with your program and bunch of dynamic libs with proper versions, can't see how is that a fix, aside from maybe bypassing some license restrictions (which I am not fully aware of how they handle stuff like containerized software)
>>
>>109099033
>isn't that just static compilation with additional steps
No, it's for instances where static compilation don't work (safety faggots who think that forcing you to develop some outdated "container" is better than just including one outdated component). If it was as easy to compile shit statically as it is to compile it dynamically then people would just compile shit statically and ship that instead of jumping through hoops to manage all the dependencies. It's actually impressive how Linux managed to have a worse dependency hell than Windows had, but I guess that's the difference between a bunch of disgusting repulsive control freaks and normal humans.
>>
>>109098389
>appimage
I rarely ever see .appimage that is older than 3 years old working on my computer.
>>
it's honestly better to just run everything through proton/wine than using any native linux ports.
>>
>>109100631
link a few that dont work
>>
File: 1781996237987218.png (996 KB, 1920x1080)
996 KB PNG
For me it's openTTD.

The problem with supporting Linux is which Linux and which libraries? The entire eco system is severely and instead of having one standard that just works we have hundreds that don't.
>>
>>109101068
severely fragmented.*
>>
>>109097608
>How does Windows seamlessly manage to accommodate older programs relying on older libraries?
It doesn't. It just ships SSL 1.0 as a DLL, or you already got 1.0 installed from something else that required it.
>Why can't an older program just use the installed newer libs?
Libraries are like keyholes. Sometimes you change the keyhole and old keys (programs) can't work with it.
Usually some faggot dev decided to screw with the users and renames functions in the libraries, or removes features for no reason. It's like SDL2 vs SDL3 - you can't run a SDL3 game with SDL2 libraries. A lot of games use SDL, so you probably saw those around already.
>>
When are hypervisor bypassed games gonna work on Linux?
>>
>>109102217
In couple of months.
But the question is: depends on how it has been implemented. I sure as hell won't install any services.
Luckily most denuvo titles are garbo anyway and if you can't afford to buy one game now and then you have more pressing issues at hand.
>>
>>109097608
Apart from what others have said, I hope you enjoy the game. The Enhanced Edition for BG1 is certainly a mixed bag. There are some good quality-of-life improvements, but they come at the cost of some odd engine and content changes. The game is more or less the same, but because of the balance changes, I still think the original is the way to go for a first-time player. They used to come included with the EE purchases; I'm not sure if they still do.
I haven't played the EE version of BG2 yet. For Icewind Dale I'd say the balance shifted toward the EE being the most convenient way to play, but it's still not a major upgrade or anything.
>>
>>109099033
>flatpak
>snap
which is better?
>>
>>109097679
>They usually can, libssl is one of a number of packages which notoriously were completely rewritten and thus broke plenty of programs.
Why couldn't they just call the new version libssl2, and keep the old version for older programs that were not updated to use the new version.
>>
>>109104632
Because SSL is a security library. Why would they keep offering outdated, compromised shit?
>>
>>109104632
Sometimes they do. But because of how they do it, it still fucks things up because files will use the same names, ironically, to try and keep compatibility.
ex:
>WeebProgram
>--cute.grl
>--smelly.grl

>WeebProgram2
>--cute.grl
>--smelly.grl
>--smelly2.grl
>--neet.grl

So the original program will be available, but it then can break things that are relying on the updated program because they get overwritten
>>
>>109104817
did you even read the rest of the thread?
>>
>>109104610
Flatpak. Canonical is not a trustworthy company.
>>
>>109097715
glibc is licensed under the LGPL and does not have a static linking exception. If you package glibc with your application you probably do not want to statically link to it unless you're willing to license your application under a compatible license. AppImage/flatpak just make it easier to set up the environment for these things and ensure your packaged dependencies are the only ones visible.
>>
>>109098952
It improves gaming performance.
>>
>>109100631
AppImage by default uses the host libc, so libc incompatibilities that arise over time can break things.
>>
>>109097700
you cannot if libc is broken
>>
>>109097608
Anon, just get heroic games launcher and install your GOG games. It's so fucking easy.
>>
>>109097608
>preserved in the Arch archive
may such cases
>>
>>109097608
also, Windows has lots of lost drivers issues, so does msdos. Watch retro videos to find out.

Whole SUCCESSFUL COMMERCIAL APPLICATIONS are lost to time.
>>
File: 1780324275093341.jpg (3.28 MB, 3600x6000)
3.28 MB JPG
Hello, which meme is current go ro launcher for wine games?

I use lutris but it shares your whole drive to the Windows apps.

Is there anything better and more secure?
>>
>>109105572
steam or umu-launcher
>>
>>109097608
The explanation is very simple and I can give it to you as an academician working on various super used scientific libraries.
The PhD student that work on a new feature is not paid for that. He does that because he needs it for his project. He doesn’t care at all about compatibility.
Actual companies like matlab that develop this as a business model, spend lots of efforts on compatibility
>>
>>109105289
no, it doesn't. it reduces build sizes. that's all.
>>
>>109105732
>source: my ass
>>
>>109097608
>My question is, why is this such an issue in Linux but not in Windows? Why can't an older program just use the installed newer libs? My fixing today was quite advanced for average noobs. How does Windows seamlessly manage to accommodate older programs relying on older libraries? Or should we just distribute Linux games in Flatpaks or Appimages just to be safe?
I didn't read most of that but I guess you didn't ever encounter DLL Hell
*installs the wrong C++ redistributable*
>>
>>109097608
On Windows, you shove everything into the same directory as the exe or WinSxS.
that's it.
GNU autism is the other issue where (rightfully) they tell you they don't give a fuck about your nonfree garbage and ABI woes. Generally as long as you aren't linking duplicate symbols, also a problem on Windows, most shit should "just work" though.
>>
>>109097608
>distribute Linux games in Flatpaks or Appimages
The most obvious answer
>>
>>109097718
XP was NT based and DLL hell was already a million times better than it was on Windows 9x.
>>
>>109097682
>I prefer static linking.
you can't static link anything audio and video related though, that or you are in-directing through non-linker dynamic linking in the form of dbus/binder calls, sort of like COM.
you just can't.
>>
>>109105800
what are you on about
>>
>>109105805
>hurr I'mma statically link my libgl and then have no drivers for newer GPUs
it doesn't work. what are you gonna do, link the fucking compiler for every single type of GPU at the moment?

if all you care about is llvmpipe, it might work out I guess? have fun with shit performance.
>>
File: 1531079502.png (101 KB, 1472x926)
101 KB PNG
>>109097608
let me guess, you need more
>>
>>109097670
ls /usr/lib*/dri/*.so

then cry.
>>
>>109105768
The most efficient solution for dynamic linking to work with backwards compatibility would probably be for the OS and its package manager support multiple versions of a given lib, even for the same major version. It would also reduce work for OS package maintainers, since they wouldn't need to constantly keep things stepped to the same version.

What are the major limitations with this? Version resolution (especially with patches) seems like a pain, but OS maintainers have to do that already.
>>
>>109097608
>>109097670
Linux simply wasn't designed to accommodate proprietary software let alone ensure backwards compatibility for said proprietary software.
>>
>>109105873
NixOS exists anon. it's no trouble at all.
that or just use flatpak.
>>
>>109105736
Wrong. For example there are mods for new vegas that update zlib, heap and malloc and they improve performence.
>>
>>109105977
why couldn't they ship the updated libs with the game?
letting mods update shared libs on your host system sounds retarded af.
>>
>>109106125
The company could ship a newer version of the game that bundles the updated libs, but it might not be that easy. It's almost certain that changing out core libs will cause new bugs to arise in the userbase. Most customers will get higher performance, but only some will notice the difference, and some customers will be (loudly) annoyed that the game doesn't run anymore/correctly when it used to. It isn't cost effective for the company to spend dev resources on patching and tweaking a game that works well enough and has already been on the market a while, instead of putting those resources toward the next game.

>letting mods update shared libs on your host system sounds retarded af
Do you think he means that the mods are changing the system version of those libs? The mods would install those locally to New Vegas, only that program sees the newer/custom versions. If you have an issue with that, you have an issue with modding in general.
>>
File: 1753689934640273.png (90 KB, 259x194)
90 KB PNG
>linux doesn't have g-ACK
>>
>>109105817
libGL has perfect backwards compatibility since the late 90s
you can still run quake 2 on a modern distro
so that would be a retarded thing to do
>>
>>109106345
>The company could ship a newer version of the game that bundles the updated libs
then his point about it being better for performance is straight up wrong.
updates libs could be used either way.
>>
>>109106351
A gnome user's game of choice.
>>
>>109106484
face down ass up thats the way we liek to tux
>>
>>109097670
libc (or other libs) may implicitly depend on a single global var and if you depend on libc and on libfoo (which also depends on libc) you end up having the var twice...

...or something like that... i dont remember the details, but in C, i recall that sometimes switching from dynamic to static linking can introduce subtle bugs or problems like that.
>>
>>109104610
appimage
>>
>>109097608
Just use wine, silly.
>>
>>109097608
>single player video game
>libssl
why tho
>>
>>109107576
It has multiplayer
>>
>>109097608
Wine is the best and most universal platform. It runs better than native versions pretty much every single time. I don't know why anyone would even botter with native proprietary games.
>>
>>109107557
Why?
>>
>>109105645
>want security/privacy
>recommend steam, a literal drm
I purchase from gog only.
>>
>>109097608
> Or should we just distribute Linux games in Flatpaks or Appimages just to be safe?

We should.

Windows has this issue too BTW. Shared libraries are a pain in the ass.
I don't use Windows anymore, but MS seems to have put a lot of effort setting up Windows to download what is missing (usually Direct X or .NET runtimes). The problems may still pop up depending on how the software was packaged though.

Share libs made sense back when computers had limited space, library update/development speed was slower, distribution was harder and there were less libraries in general, but nowadays it's just better to package everything you can, as long as the license allows it.

The Apple approach of managing apps would be the best for modern systems. They're missing a native CLI package manager (homebrew is pretty good but I'd rather use something trully integrated with the OS) and app setting/data files still get spread out on hidden directories inside the home which I hate.
>>
>>109097679
>Including every necessary library in every game is possible, but it would be just as bloated and convoluted as windows.
But it would also work like windows.
The mindset of the average linux user, everyone.
>>
>>109108011
>never mentioned privacy
then use umu, retard. I didnt specify it for nothing
>>
>>109097608
I don't even bother with Linux ports these days because Proton works 99,9% of the time straight out of the box without any tweaking or one simple launch parameter.
>>
linux gaming is a joke for lonely people who never play multiplayer games with friends or even strangers.
>>
>>109106398
ok and? does Quake 2 statically link it?
>>
>>109110346
of course not
it doesn't statically link glibc or Xlib either
all these libraries have a stable ABI

(glquake and quakeworld don't work because they link to an older C library, so quake 2 is pretty much as old as you can go before binaries become impossible to run on a modern system without a VM or container)
>>
>>109110364
did you even read the post you replied to then, retard?
>>
>>109110376
yes
i said statically linking to core system libraries is a retarded thing to do
and it is
>>
>>109110304
Playing shitty online games with zoomer faggots is not a substitute for relationships.
>>
What is the use case of SSL in a single player game
>>
>>109105873
>package manager support multiple versions of a given lib
nix is the easiest way to do that. Install nix and point and LLM to your binary you want to run. Say something like: create a nix flake for me that runs this binary. Then you can just run it with nix run. Zero effort. Opus or GPT 5.5 love nix because they can just run everything they want inside a nix shell without polluting your system.
>>
>>109097631
so what I am hearing is : games in Linux should be actually snaps/flatpaks amirite?
>>
>>109112057
yes
>>
>>109109943
I've seen cases where the Linux port misses out on critical patches or features because the devs can't be bothered to work on it, so the recommended route is to use Proton. It's a sad, but understandable situation.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.