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!

  • TootSweet@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    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.

  • observantTrapezium@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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.

    • Alborlin@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      11 months ago

      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.

      • observantTrapezium@lemmy.ca
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        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.

  • IndustryStandard@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    One day someone’s posts how all Linux programs run forever and Windows creates abandonware

    Another day someone complains about the Linux version of his program not tuning anyone so he has to use the Windows version

    I’m not sure what’s going on anymore

    • renzev@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      11 months ago

      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.

      • IndustryStandard@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        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.

        • renzev@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          11 months ago

          isn’t there a way for Linux users to automatically install every missing dependency for a program?

          Great question! There is. What you’re describing is a package manager. Overall, they are a great idea. It means devs can create smaller “dynamically linked” executables that rely on libraries installed by the package manager. The w*ndows equivalent of this is using DLL’s. Another advantage is that urgent security updates can be propagated much faster, since you don’t have to wait for each app that uses a vulnerable library to update it on their own. Also, dynamically linked executables can help save on ram usage. With statically linked executables, everyone brings their own versions of some library, all off them off by a few minor revisions (which all have to be loaded into ram separately), whereas a bunch of dynamically linked executables can all pointed to the same version (only needs to be loaded once), which is what package maintainers often do. Finally, package managers eradicate the need for apps to include their own auto-updaters, which benefits both developers and users.

          This model goes wrong when software depends on an outdated library. Even if the package maintainers still provide support for that outdated version, often it’s difficult to install two wildly different versions of a library at the same time. And apart from libraries, there are other things that a program can depend on, such as executables and daemons (aka background processes aka services), old versions of which are often even more difficult to get running along with their modern counterparts.

          So when you say that the “W*ndows way kind of looks superior here”, you are right about the specific edge case of running legacy apps. It just happens that the Linux crowd has historically decided that the other benefits of package managers outweigh this disadvantage.

          There are tools for developers to bundle dependencies. Statically linked binaries, “portable” apps, AppImage, and so on… It’s just that package managers are so widespread (because of the aforementioned benefits), few developers bother with these. The general attitude is “if you want a statically linked executable, go compile it yourself”. And by the time it’s time to make an “archiveable” version of an app because it’s abandoned… nobody bothers, because it’s, well, abandoned.

          However, as disk capacity and ram size steadily increase, people are starting to question whether the benefits of traditional package managers really outweigh the added maintenance cost. This, combined with the recent development of a linux kernel feature called “namespaces”, has spawned various new containerization tools. The ones I am familiar with are Docker (more suited for developer tools and web services), and Flatpak (more suitable for end-user desktop apps). I personally use both (flatpak as a user, and docker as both a user and a developer), and it makes my life a whole lot easier.

          As for what makes it easier for users to get old apps working (which is what you’re asking), well… that’s sort of what we are discussing in this thread. Again, these tools aren’t very widespread, because there is rarely a practical reason for running legacy programs, other than archivism or nostalgia. More often than not, modern and maintained alternatives are available. And when their is a practical reason, it is often in the context of development tools, where the user is probably skilled enough to just Dockerize the legacy program themselves (I did this a couple times at a job I used to have).