🪿

  • Delilah (She/Her)@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    2
    ·
    4 days ago

    The core principal of GNU from which every other principal is derived is “I shouldn’t need an ancient unmaintained printer driver that only works on windows 95 to use my god damned printer. I should have the source code so I can adapt it to work with my smart toaster”

    If an app is open source then I’ve almost never encountered a situation where I can’t build a working version. Its happened to me once that I remember. A synthesia clone called linthesia. Would not compile for love nor money and the provided binary was built for ubuntu 12 or something.

    Linux was probably ready for the 64-bit appocalypse even before Apple for this exact reason. Anything open source will just run, on anything, because some hobbiest has wanted to use it on their favourite platform at some point. And if not, you’d be surprised how not hard it is to checkout the sourcecode from github and make your own port. Difficult, but far from impossible.

    Steam games do not distribute source code, which means they break, and when they break the community can’t fix them. They can’t statically link glibc because that would put them in violation of the GPL (as far as I’m aware anyway). They are fundamentally second class citizens on linux because they refuse to embrace its culture. FOSS apps basically never die while there’s someone to maintain them.

    Its like when American companies come to Europe and realise the workers have rights and then get a reputation as scuzzballs for trying to rules lawyer those rights.

    • Kairos@lemmy.today
      link
      fedilink
      arrow-up
      1
      ·
      3 days ago

      Okay so bundle glibc. As far as I know link systemcalls are set up to look in the working directory first

      Why would statically compiling it violate the GPL?

      • qqq@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        It wouldn’t; glibc is LGPL not GPL. The person you’re replying to was mistaken.

        • Delilah (She/Her)@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          You know what, that explains how they can exist on linux at all. Because from what I understand, if glibc was GPL and not LGPL, closed source software would basically be impossible to run on the platform. Which… maybe isn’t the best outcome when you think about it. As much as I hate the Zoom VDI bridge, I don’t want “using windows” to be the alternative.

          and yeah, from the source you provided, I can see why they don’t statically link. “If you dynamically link against an LGPLed library already present on the user’s computer, you need not convey the library’s source”. So basically if they bundle glibc then they need to provide the glibc source to users on request but if they just distribute a binary linked against the system one then that’s their obligations met.

          Welcome to “complying with the LGPL for the terminally lazy”, I’ll be your host “Every early linux port of a steam game!”

          • qqq@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            2 days ago

            My understanding of the linking rules for the GPL is that they’re pretty much always broken and I’m not even sure if they’re believed to be enforceable? I’m far out of my element there. I personally use MPLv2 when I want my project to be “use as you please and, if you change this code, please give your contributions back to the main project”

          • qqq@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            3 days ago

            It should be noted that statically linking against an LGPL library does still come with some constraints. https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic

            You have to provide the source code for the version of the library you’re linking somewhere. So basically if you ship a static linked glibc executable, you need to provide the source code for the glibc part that you included. I think the actual ideal way to distribute it would be to not statically link it and instead deliver a shared library bundled with your application.

            EDIT: Statically linking libc is also a big pain in general, for exampled you lose dlopen. It’s best not to statically link it if possible. All other libraries, go for it.

      • Delilah (She/Her)@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 days ago

        As far as I know link systemcalls are set up to look in the working directory first

        Not so much but that’s easily fixed with an export LD_LIBRARY_PATH=.

        Why would statically compiling it violate the GPL?

        Because you’ve created something that contains compiled GPL code that can’t be untangled or swapped out. The licence for the Gnu C Compiler is basically designed so you can’t use it to build closed source software. Its a deal with a communist devil. If you want to build a binary that contains GPL code (which is what glibc is) then you have to make everything in that binary licensed under a GPL compatible license. That’s what the whole “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches” quote from Steve Balmer was in aid of. And he was correct and this was literally the system operating as intended.

        Dynamic linking is some looney tunes ass “see, technically not violating the GPL” shit that corporations use to get around this.

          • Delilah (She/Her)@lemmy.blahaj.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            From a technical standpoint, yes. From a legal standpoint:

            If you dynamically link against an LGPLed library already present on the user’s computer, you need not convey the library’s source

            Welcome to “what did you think was going to happen if you told for profit corporations that if they want to distribute a library in a bundle they also have to provide the source code but if they just provide it linked against an ancient version that nobody will be using in 5 years and don’t even tell you which one they’re 100% in compliance”?

            Could they? yes. Will they? probably not, that takes too much work.

            This is why steam’s own linux soldier runtime environment (Which is availible from the same dropdown as proton) had to become a thing.

              • Delilah (She/Her)@lemmy.blahaj.zone
                link
                fedilink
                English
                arrow-up
                2
                ·
                2 days ago

                as long as you run it from the command line. On my system at least if there’s a library missing it will just silently fail to launch. I love linux but it does not make it easy

              • Delilah (She/Her)@lemmy.blahaj.zone
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 days ago

                .so files are distro dependent. (This is theoretially a good thing. Means debian can distribute a stable version and Arch can distribute a so fresh the hen doesn’t know its missing yet version). If you’re a command line guru you can run a pacman or deb query to find out what package you have to install to add that library at a system level. But oftentimes you can’t just use a different .so because the .so was built to depend on another .so and you basically have to solve a dependency chain by hand. Its a big mess that apt or pacman or even gentoo’s famously obtuse emerge solves for you invisibly.

                as to where to find the ancient version that binary was built for? well My goto is archive.archlinux.org but its an asshole of a process and not for the faint of heart. sometimes you just need to build the library from scratch which is BULLSHIT and I’m not unaware of that fact.

                can you just go to a website and download the .so? yes actually. But it might just decide not to work. This is a problem that individual distros are meant to be solving and do so when distributing open source software. As for with steam games, I think valve solves this problem with the soldier runtime environment which I mentioned above.

    • Natanox@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      4
      ·
      4 days ago

      This shit is the exact reason Linux doesn’t just have ridiculously bad backwards compatibility but has also alienated literally everyone who isn’t a developer, and why the most stable ABI on Linux is god damn Win32 through Wine. Hell, for the same reason fundamentally important things like accessibility tools keep breaking, something where the only correct answer to is this blogpost. FOSS is awesome and all, but not if it demands from you to become a developer and continuesly invest hundreds of hours just so things won’t break. We should be able to habe both, free software AND good compatibility.

      What you describe is in no way a strength, it’s Linux’ core problem. Something we have to overcome ASAP.

      • qqq@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        3 days ago

        The Linux ABI stability is tiered, with the syscall interface promising to never change which should be enough for any application that depends on libc. Applications that depend on unstable ABIs are either poorly written (ecosystem problem, not fixable by the kernel team, they’re very explicit about what isn’t stable) or are inherently unstable and assume some expertise from the user. I’d say the vast majority of programs are just gonna use the kernel through libc and thus should work almost indefinitely.

      • Semperverus@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        6
        ·
        4 days ago

        It isn’t a core problem, it’s a filter, and a damn good one. Keeps the bad behavior out of Linux. Thats why people keep turning to it for lack of enshittification. Stable ABIs are what lead to corpo-capital interests infecting every single piece of technology and chaining us to their systems via vendor lock-in.

        I wish the Windows users who are sick of Windows would stop moving to Linux and trying to change it into Windows. Yes, move to Linux if you want, but use Linux.

        • Natanox@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          1
          ·
          3 days ago

          This might be the most awful Linuxbro take I’ve read this year, congratulations. Linux has to lack a stable ABI to keep the capitalists away and make apps constantly require maintenance to filter out bad behaviour? Just wow.

          I really hope for way more people to come over so nonsense like this finally stops.

          • Semperverus@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            1
            ·
            2 days ago

            My favorite part about your post is how you intentionally spin it to mean the opposite of what I said.

            Linux requires source compilation by design. This ensures that the Linux ecosystem stays open no matter what. The term “ABI” literally stands for Application Binary Interface. Having a stable one is literally the antithesis of a libre/open-source project. You could try for something like reproducible builds but this disallows for distros to make their own builds as-needed with the necessary flags and patches enabled/disabled.

            The purpose of this isn’t to make apps require maintenance, its to enforce the open-source nature of the project. Stallman was a gross toenail-eating weirdo but he was dead to rights on the principals he held, and it’s because of him and thousands of developers like him that you even have an OS to escape from Microsoft onto.

            People like you just want Linux to be “Windows without the bullshit” instead of trying to set aside your decades of conditioning in order to learn how to use the tool properly. If someone hands you a hammer, I bet you’d try to spin it on top of a nail to get it to sink into the wood instead of realizing its not a screwdriver.

            • hanni@discuss.tchncs.de
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 day ago

              The term “ABI” literally stands for Application Binary Interface. Having a stable one is literally the antithesis of a libre/open-source project.

              Can you elaborate? Having an unstable ABI does not make an project libre/open-source… but one might be wrong. And This creature is open to a different point of view.

              Linux requires source compilation by design.

              So does every other software on this planet? Microsoft Windows requires compilation from source. The source just happens to not be under an open-source license (or even source available to have a look inside for oneself…)

              edit:typo

              • Semperverus@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                19 hours ago

                An unstable ABI isn’t the requirement, it is the result of the open source requirement further up the chain, which is the important part of the equation. The unstable ABI is a knock-on effect, not the driving cause.

                And, for the second paragraph, I meant that it requires on-the-fly compilation, it needs to be more flexible. Any changes a particular project or user makes (as is their right, afforded to them by the open source licenses) needs to be incorporated in the entire chain.

                The whole point of open source is to hand control and power to the end user of the software, whereas corporate interests align with taking that away. Having a stable ABI means locking down the ability to modify source code and compile it yourself, thereby stripping you of these very important freedoms.

                • hanni@discuss.tchncs.de
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  arrow-down
                  1
                  ·
                  12 hours ago

                  Having a stable ABI means locking down the ability to modify source code and compile it yourself, thereby stripping you of these very important freedoms.

                  Sorry… can’t follow this reasoning. Either the source is open (and thus open to modification) or it is not. Having a stable ABI has nothing to do with that. There are some systems in the Linux kernel that have not changed in ages (and are not allowed to change if the kernel developers are to be believed). Does that make the Linux kernel locked down in ones ability to modify the source code?

                  Really lost right now…

          • Delilah (She/Her)@lemmy.blahaj.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            No. Its not about driving away the capitalists. Its about forcing them to bend to the community. Its not “Linux has to lack a stable ABI to keep the capitalists away” its “Linux is not here to baby rich corporations and exempt them from rules that literally nobody including little timmy who’s 14 and just submitted his first PHP patch has a problem with”. This is developers who are used to living in houses trying to set up shop in an apartment complex and then finding out different rules apply and being colossal babies about it.

            The point of the GNU foundation was to destroy the concept of closed source software. Which is a completely justified response to Xerox incorporated telling you your printer is no longer supported and you just have to buy a new one. Capitalists are welcome. Anti right to repair people can fuck right off and if we had the right to repair their software we wouldn’t have this problem in the first place because someone else would have already fixed it.

            • Natanox@discuss.tchncs.de
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              2
              ·
              2 days ago

              And that fight against closed-source and anti-consumer shit is awesome, but that changes absolutely nothing about Linux being completely awful in terms of long-term support. Running old software is a whole project (for enthusiasts) in itself almost every single time, meanwhile I can run almost any decade-old software on systems like Android or Windows simply by installing it without having to be an IT professional.

              that literally nobody including little timmy who’s 14 and just submitted his first PHP patch has a problem with."

              Except that this causes usability issues for the 99.99% of users who aren’t that little Timmy you just made up, and it causes accessibility tools which are freaking essential for many people to simply break. Old games becoming unplayable isn’t an issue only because of their Windows versions and Wine, dxvk etc - we literally have to fall back to Windows software to keep software running because of how badly the Linux system architecture works for desktop usage. What a disgrace.

              if we had the right to repair their software we wouldn’t have this problem in the first place because someone else would have already fixed it.

              Literally has nothing to do with Linux’ own problems.

              • Delilah (She/Her)@lemmy.blahaj.zone
                link
                fedilink
                English
                arrow-up
                2
                ·
                2 days ago

                Linux’s own problems is that we have a culture of “tear everything down and make way for progress”, which I personally approve of. However, things keep getting left behind in the rebuilding process and that’s a very real cultural problem. We should have been rebuilding those accessibility tools with everything else and the reason we haven’t is that quite frankly the linux community itself hates disabled people.

                I see no other reason that disabled people would be relying on old and unmaintained code in the first place. That’s not a problem with the build and rebuild attitude, that’s a problem of who we accept into the community. Why is the only wheelchair accessible building 20 years old and full of rotting floorboards?

                Linux is built by the community and always does what it thinks is best for the community. The fact that “what’s best” does not include maintaining the accessibility features is fucking deplorable and that’s a legitimate thing to complain about. But a system shouldn’t need to support legacy junk just to provide accesibility features that should have been core parts of the system from the beginning. In that, no linux developer has the right to look a microslop developer in the eye.

                • Natanox@discuss.tchncs.de
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  2 days ago

                  I think it’s slowly getting better though, more people are finally listening. At least that’s what I notice; still, those purists who don’t give a proper shit (“The CLI is perfectly accessible! It’s all text, where’s the problem?”) and believe everyone got to be a developer or filtered out are really loud and annoying.

                  Of course the system should inherently be accessible. Better backwards compatibility would just make a lot of things simpler, even if what’s being made simpler is to deal with bad decisions and exclusion. Enabling people (everyone, not just abled or developers) is always good.

              • qqq@lemmy.world
                link
                fedilink
                arrow-up
                1
                arrow-down
                1
                ·
                2 days ago

                Android

                Android is Linux! You’re running your decades old software, on Linux. What was the last completely unmaintained binary that you pulled on Windows and ran (with no tweaking) and the last one that failed on Linux?

                Why do you keep sharing that link instead of this one? https://fireborn.mataroa.blog/blog/i-want-to-love-linux-it-doesnt-love-me-back-post-4-wayland-is-growing-up-and-now-we-dont-have-a-choice/ The one where the same person you’ve been posting says clearly people are working on accessibility and things are improving?

                Have you considered joining the community and working with it – like the author of the blog that you keep sharing – instead of trying to insult every one who works on it and calling it a disgrace?

                • Natanox@discuss.tchncs.de
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  2 days ago

                  Android is Linux!

                  That’s a rabbit hole of semantics I’m not going down. 😅 I think it’s clear we are talking about Desktop Linux, which is very different to Android.

                  What was the last completely unmaintained binary that you pulled on Windows and ran (with no tweaking) and the last one that failed on Linux?

                  Ouff, didn’t use Windows (10) for years. Probably either Photoshop CS6 or one of my old favs like Total Annihilation (1998). On Linux the last app that failed also happened to be a (native) game, Life is Strange: Before the Storm. I saw someone fixed it with a glibc shim, and a friend likes that game.

                  Why do you keep sharing that link instead of this one?

                  Because I’m complaining about puritans and Linux-bros who keep sugarcoating real problems that exist for a long time now, or even still make a fuss about things like systemd or Flatpak (which solve a lot of long lasting issues). That blogpost is a perfect example of this. I said it in my first comment, “Puritans on Linux are a real menace”. Everything after that is merely me putting my finger into open wounds (which are being worked on by devs and I’m absolutely celebrating that, please don’t get me wrong!) which are regularly being sugarcoated by those people.

                  Have you considered joining the community and working with it – like the author of the blog that you keep sharing – instead of trying to insult every one who works on it and calling it a disgrace?

                  It wasn’t my intention to insult any dev working in these issues, if it sounds like that I’m genuinely sorry. I’m mad about puritans who behave as if Desktop Linux is a silver bullet for long-term app support or people like Semperservus who think it’s a good thing non-devs (and those who simply don’t have time to invest that time into their computer) are being “filtered out”. And if someone sugarcoats big issues like how Linux systems historically handled packages and dependencies and the problems it causes I’ll use strong words to make abundantly clear how wrong they are, because I’m fed up by this willful ignorance.

                  (Same willful ignorance in my opinion is the reason why accessibility deteriorated to the current degree since we once had that part figured out. That’s why I used is as argument)

                  • qqq@lemmy.world
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    edit-2
                    2 days ago

                    This is not semantics at all. You earlier say that Linux not having a stable ABI is the cause of a ton of problems.

                    This shit is the exact reason Linux doesn’t just have ridiculously bad backwards compatibility but has also alienated literally everyone who isn’t a developer, and why the most stable ABI on Linux is god damn Win32 through Wine.

                    Android doesn’t make any more Linux ABI guarantees than anyone else: because it’s using the Linux kernel. I can easily compile a program targeting a generic aarch64 with a static musl C and run the binary on Android. So no, it isn’t semantics, it is good proof that you’re not correct in claiming that Linux ABI stability is terrible. Maybe you’re using the term “Linux ABI” more loosely than everyone else, but that’s not “just semantics”, the Linux ABI is a well defined concept and the parts of it that are stable are well defined.

                    Life is Strange: Before the Storm shipped with native Linux support back in 2017. That was a different era - glibc 2.26 was current, and some developers made the unfortunate choice of linking against internal, undocumented glibc symbols.

                    The very first line of your blog post that you shared. That has nothing do do with Linux ABI stability, or honestly even glibc ABI stability, if you’re going to use symbols that are explicitly internal you can’t get annoyed when they change…? That’s a terrible example.

                    Adobe still shipped CS6 until 2017, so it’s 9 years old. That’s not particularly ancient, and it’s backed by… well Adobe. They have a bit of money. [EDIT: https://helpx.adobe.com/creative-suite/kb/cs6-install-instructions.html actually it’s still available on their site so… I wouldn’t expect any issues]

                    Did you run Total Annihilation through Steam? I found this link https://steamcommunity.com/app/298030/discussions/0/1353742967805047388/ and people even had to modify things that way. It’s very impressive that it runs at all and yes, Windows is most definitely the king of backwards compatibility. Or at least it used to be, I’m happy to know very little about modern Windows, and it’s definitely not backwards compatible with hardware…

                    The person who wrote the “filtered out comment” was batshit crazy and clearly didn’t even know what they were talking about. “Stable ABIs are what lead to corpo-capital interests infecting every single piece of technology and chaining us to their systems via vendor lock-in” is one of the most nonsense statements I’ve read on Lemmy. I wish I had more downvotes available.

                    It’s important to remember that the Linux kernel has millions of dollars and full time devs from companies like Google and Microsoft working on it. The Linux Desktop space does not have that. Like at all. Linux Desktop is predominantly a volunteer project. Valve has started putting money into it which is great, but that’s very recent.