🪿

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

    Puritans on Linux are a real menace. Every time someone calls an OS install image of 3-4gb “bloated” I want to scream uncontrollably. Not statically linking stuff is part of this cultural issue.

    Flatpak might solves these issues in the long run. Of course the same people therefore hate it, because it’s “bloated” and “convoluted”.

    <rant> How dare we have different versions of the same lib! Where will we end up, like MS Windows? Where I can boot up apps as old as myself? Outrageous! Not my precious mibibytes!). </rant>

    • qqq@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      9 hours ago

      But you can do that: Linux provides a ton of ways to use different versions of the same lib. The distro is there to provide a solid foundation, not be the base for every single thing you want to run. The idea is you get a core usable operating system and then do whatever you want on top of that.

    • Delilah (She/Her)@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      2
      ·
      2 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
        ·
        edit-2
        10 hours 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
          ·
          8 hours 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
            ·
            6 hours 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 hours 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
              7 hours 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
          ·
          8 hours 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
              ·
              6 hours 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.

      • Natanox@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        9
        arrow-down
        3
        ·
        2 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
          ·
          9 hours 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
          5
          ·
          1 day 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
            ·
            1 day 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.

            • Delilah (She/Her)@lemmy.blahaj.zone
              link
              fedilink
              English
              arrow-up
              2
              ·
              8 hours 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
                1
                ·
                edit-2
                4 hours 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.

    • srestegosaurio@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      1
      ·
      2 days ago

      What, you don’t like role-playing software development & distribution as if we were still in the 90s?? 🥺🥺 /j

      But srs, most of Linux’s biggest technical problems are either caused by cultural legacy or blocked by it. The distribution model being one of the most pungent examples.

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

        Fortunately we do have a steady influx of new people incl. those who demand shit to god damn work, finally shifting this notion.

        For the time being we still have to resort to using the Windows version and Wine for old software though… But I already had the situation where the (unmaintained but working) app also had a Flatpak which was last updated many years ago and it just worked, which made me incredibly happy and hopeful. ❤️

        Good thing there’s a battle-proven response if people don’t like this because it’s “not what Linux is supposed to be” or some other nonsense: If you don’t like it just fork it yourself. 😚

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

          Fortunately we do have a steady influx of new people incl. those who demand shit to god damn work, finally shifting this notion.

          What the hell is going on in this thread? Linux has been being actively developed by people who want “shit to god damn work” forever. What are the concrete examples of things that don’t work? Old games? Is that the problem here? These things that were developed for the locked in Windows ecosystem since time immemorial and never ran on Linux and now, through all of the work of the Linux ecosystem, do, by some miracle, run on Linux. It’s amazing that these things work at all: they were never intended to!

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

            What the hell is going on in this thread? Linux has been being actively developed by people who want “shit to god damn work” forever.

            Yes and no. Yes as in “you can fix it” (if you’re a programmer), but no in terms of “everything is set up so binaries will still run in 20 years as-is”. Dependency hell, missing library versions, binaries being linked against old glibc versions you can’t provide… all of these are known issues, and devs are often being discouraged from compiling tools in a way that makes them work forever (since that makes the app bigger and potentially consume more memory). And better don’t tell someone who’s blind (and used Linux before) what’s quoted above, they’ll either laugh at you or get really angry. It’s also one of the reasons I’m angry (I’m able to see, but I hate this hypocrisy in the community). Linux on desktop utterly alienated disabled people, simply because stuff like screenreaders keep breaking.

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

              Running 20 year old binaries is not the primary use case and it is very manageable if you actually want to do that. I’ve been amazed at some completely ancient programs that I’ve been able to run, but I don’t see any reason a 20 year old binary should “just work”, that kind of support is a bit silly. Instead maybe we should encourage abandonware to not be abandonware? If you’re not going to support your project, and that project is important to people, provide the source. I don’t blame the Linux developers for that kind of thing at all.

              devs are often being discouraged from compiling tools in a way that makes them work forever (since that makes the app bigger and potentially consume more memory)

              This is simply not true. If you want your program to be a core part of a distribution, yes, you must follow that distribution’s packaging and linking guidelines: I’m not sure what else a dev would expect. There is no requirement that your program be part of a distribution’s core. Dynamic linking isn’t some huge burden holding everyone back and I have absolutely no idea why anyone would pretend it is. If you want to static link go for it? There is literally nothing stopping you.

              Linux desktop isn’t actively working against disabled people, don’t be obtuse. There is so much work being done for literally no money by volunteers and they are unable to prioritize accessibility. That’s unfortunate but it’s not some sort of hypocritical alienation. That also has likely very little to do with the Linux kernel ABI stability like you claimed earlier.

              But this idea that “finally we have people that want Linux to work” is infuriating. Do you have any idea how much of an uphill battle it has been to just get WiFi working on Linux? That isn’t because the volunteer community is lazy and doesn’t want things to work: that’s because literally every company is hostile to the open source community to the point of sometimes deliberately changing things just to screw us over. The entitlement in that statement is truly infuriating.

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

      I really think its just not that common. There are ways to do this for the few and not pollute the OS for the many. Steam does it for their use case. If it were a more common of a need, then I would expect distro maintainers to take care of it. The same way they did for 32bit libraries back in the day. When is the last time you had to install a 32bit distro along side your 64bit distro so you could run 32bit applications? Sometimes I need a bleeding edge build of an application. I run a stable distro. So build the application myself or install a quick chroot These days there is distrobox that makes it even easier. There are solutions. Easy from my perspective. That’s why I think, if this was such a common need, distro maintainers would provide a simple solution (automatically done for you).

    • Calfpupa [she/her]@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      6
      ·
      edit-2
      2 days ago

      This hasn’t been a problem for a decade or two, but I see drive costs inflate immensely, I wonder how it will impact how “bloat” is processed. Not everyone has infinite access to storage. BTRFS and other fs dedup features may be an acceptable work around, but I don’t know flatpacks structure enough to know if they can benefit from it.