What do you guys do when you want to run unmaintained programs?
I recently wanted to run tegaki, and my experience is pretty much summed up by the meme. I consider myself fairly tech-savvy, but I just couldn't figure out how to compile it. So I just gave up, downloaded the .exe and put it into a fresh wine prefix. After installing CJK fonts, everything ran fine. Now I'm trying to get gpaint to work. My distro recently dropped support for gtk+2 (which I am fairly pissed about, since it's the last good version of GTK+), so I have to set that up manually as well.[[[ EDIT: gtk2 is alive and well. I was just being and idiot and searching for gtk2, when the package is actually called gtk+2. ]]] I installed all of the dependencies that ./configure told me to, but I still kept getting obscure errors when running make.
So, here's my question: what tools make the process of running abandonware easier? Docker containers? Also, what can I use to package abandonware in order to make it easy for other people to run? Flatpak? Appimages? Any advice is appreciated!
Also, inb4 "just find a modern alternative". That would be a reasonable solution. I don't want reasonable solutions!
Pull a docker image of an old distro into an apptainer sandbox, install what you need within, then make a .sif image, should work pretty much in perpetuity. You can also try to make an Appimage.
I am a beginner Linux user, if above scenario happens to me , I will not know what the hell you are talking about and just get windows, the linux community , here does not support the average user even in memes.
This was just an outline of what you could do in the scenario, not a full solution. Looking up the keywords, "Apptainer" (+sandbox), ".sif", and "AppImage" should give you a starting point, and any specific questions can be answered separately. You are right that people could be jerks to beginners but this is rarely the intent. Not all discourse about Linux has to be at a beginner level, and packaging legacy software is not really a beginner topic.
I am using linux for 20+ years and don't understand what they said. And I don't even want to, I was using wine to run open source software before flatpak, when I need it once a year.
Running the Windows version in Wine probably would never have occurred to me.
Arch (i UsE aRcH bY tHe WaY)'s AUR has a package for it. I just installed gpaint on a Raspberry Pi 4 just to see if it worked. It worked perfectly. (Disclaimer: I did have to update the architecture in the PKGBUILD to allow armv7h, but on an x86_64 machine, that wouldn't be an issue.)
You could probably run Arch in Docker and install the AUR package in the Docker container if you wanted to go that route.
I do this using an Arch distrobox on my openSUSE Kalpa machine whenever I need anything that isn't flatpak'd or available through my tumbleweed distrobox.
That's hilarious because the AUR saved me from that exact problem trying to run a game on an old engine that breaks using newer versions of that dependency.
I would tell you exactly what it was but it took up so little of my time that I don't remember, and I'm currently on the porcelain throne at work.
In the unix world, truly great programs tend to stay around for ever. less has been around since 1983. grep was there ten years earlier. Linux users love vim. What does the "v" stand for, you ask? "Visual", of course, because it was one of the first text editors to offer support for computer monitors. And before that, when we had teletypes, people used ed, which still comes pre-installed with Ubuntu. Not to mention that the modern linux terminal is basically emulating (that's why we called them terminal emulators) an electronic typewriter with some extra extensions for color and cursor support. They're backwards compatible to this day. That's why it says tty (teletype) when you press ctrl-alt-F2.
The caveat is that these examples are all low-level programs that have few dependencies. And they are extremely useful, therefore well-maintained. When it comes to more complex programs with a lot of dependencies, unless there is someone to keep it updated with the latest versions of those dependencies, it will eventually get broken.
The reason this happens less often in W*ndows is because w*ndows historically hasn't had a package manager, forcing devs to bundle all their dependencies into the executables. Another part of the reason is that m*cros*ft would lose a lot of business customers if they broke some obscure custom app with a new update, so they did their best to keep everything backwards compatible. Down to the point of forbidding you from creating a file named AUX in order to keep support for programs written for qdos, an OS from before filesystems were invented.
The reason this happens less often in Wndows is because wndows historically hasn’t had a package manager, forcing devs to bundle all their dependencies into the executables
Thanks that's pretty informative
Why isn't there a way for Linux users to automatically install every missing dependency for a program? Not sure if this will net me a ban here but the W*ndows way kind of looks superior here. Having old programs break with updates is a massive pain.
Wine tends to work better for W*ndows programs that already have a Linux port, because they depend on fewer m*crosoft-specific libraries... which is not very helpful most of the time, but it is the subject matter of the meme.
I' been wasting way to much time getting an oldish german game to run. This piece of junk won't even run on windows, not bare metal, not in an XP virtual machine. I guess I'll just try this every year from now it, to see if it runs with wine now.
A method I have not seen mentioned yet (for when you have an old precompiled version of an app):
Identify the missing libs. You can run the program, but sometimes it's easier to use ldd
Use your web browser to download the missing libs from Debian's repos (stable or older if need be). Unfortunately you often also have to grab their deps too.
Extract the .debs
Move all of the .so files into the same folder as the old program you are trying to run
export LD_LIBRARY_PATH="$(pwd)"
Now try running the app
It often takes a bit of fiddling, but it's worked for me a few times and you only need to fetch the few libraries you are missing. For bigger things however it can be a dependency hell, you might as well use the distro's actual package manager inside a chroot.
Note: You don't need to be using Debian as your host distro, I don't. As long as it's a glibc based distro you should be mostly fine (glibc is mostly backwards compatible)
Sometimes you can have a similar experience trying to get abandoned Windows software to work too. Found myself in DLL/OCX hell trying to get an obscure old Windows game to work in Bottles.
And if that wasn't bad enough, after installing Bottles' Flatpak (the first and only Flatpak I've ever used), the system decided to activate hourly Timeshift backups despite that being disabled in Timeshift's config. I invoked the power of irony and told Timeshift to take the system back to a pre-Bottles state, and lo, everything behaved again.
I love bottles. Especially the flatpak version, since I don't have to worry about w*ndows programs shitting up my filesystem. And the recent per-bottle sandbox feature is also great for running semi-untrusted applications without needing to toggle things in Flatseal every time. I do wish Bottles kept support for winetricks tho. Recently wanted to run M$ Paint (the XP version), and it just wouldn't work with Bottles. Ended up installing the official Wine flatpak and using winetricks from there (it comes pre-installed).
Hmmm I'm a bit hesitant about nixpkgs, since when I last tried using it (outside of nixos), many (modern) GUI apps were broken, at least on my distro, But I'll give this a try if u/observanTrapezium's suggestion doesn't work. Thanks!
My distro recently dropped support for gtk+2 (which I am fairly pissed about, since it’s the last good version of GTK+)
Stuff like this completely throws the shared libraries idea in the bin. There are lots of benefits, sure, but none of them matter when your program won't even start.
Please name and shame your distro. GTK2 is a core component of userspace for many users, just as important as glibc and bash. Maintaining it might be annoying, but it's the lesser of two evils.
My distro (Void Linux) dropped support for qt4 a few years back. Now I'm running QUCS in wine. "win32 is the only stable ABI in Linux"
(And yes you're right 2 is the last good version of GTK+. Gtk3 and 4 look and feel so much worse, they make me feel like I'm being punished.)
False alarm! I'm on Void Linux too, gtk2 is alive and well! I was just being an idiot and searching for gtk2 while the real package is called gtk+2. I absolutely agree about gtk3 and gtk4. With gtk4 its like they didn't even bother. Client-side window shadows?!? seriously???. I personally prefer CLI and TUI for my apps, but gtk2 would be my second pick if I ever need to develop a GUI app. Partly because if my app ever gets popular, it would piss off a lot of those updooter types. I would love to use something even more minimalist like nuklear but sadly that's missing a lot of actually useful desktop integration like IME support (as far as I understand).
I don't get what the benefits of windows are supposed to be. I just want to play games and ride on the information superhighway. Why would I even want a.. Cortana or paperclip or whatever?
The redpill is that there are none. You know how w*ndows search is absolute crap, but you can get actually decent search results with Powertoys Run? You know how instead of trolling through control pannel and Settings, you can just directly search for whatever configuration you need with god mode? You know how w*ndows has a package manager, but it is not even installed by default? Or how it supports hibernation (suspend-to-disk), but hides it from the power menu? Ask yourself, why add all of these useful features, and then hide them far away, while presenting the user with a painfully outdated interface bloated with crap like c*pilot or c*rtana or whatever? The answer is that to remain relevant, M*cros*ft needs to keep the computing experience painful for their users. If they make W*ndows actually nice to use, people will swiftly realize that using your computer can actually be enjoyable. And that leads to trying out alternatives like BSD and Linux. And trying out alternatives leads to finding out that those alternatives are superior. Think about it. They've already lost in the server world. Once the remaining office workers and college students realize that m*cros*ft has been pissing in their mouths while telling them that it's raining, the only userbase that will be left are "capital G" g*ming addicts. And that demographic is also slowly waning thanks to wine and the fact that modern v*deo g*mes are slowly becoming utter trash.