• 0 Posts
  • 8 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • I am so sorry this got so long. I’m absolutely horrible at brevity.

    Applications use things called libraries to provide particular functions rather than implement those functions themselves. So like “handle HTTP request” as an example, you can just use a HTTP library to handle it for you so you can focus on developing your application.

    As time progresses, libraries change and release new versions. Most of the time one version is compatible with the other. Sometimes, especially when there is a major version change, the two version are incompatible. If an application relied on that library and a major incompatible change was made, the application also needs to be changed for the new version of the library.

    A Linux distro usually selects the version of each library that they are going to ship with their release and maintain it via updates. However, your distro provider and some neat program you might use are usually two different people. So the neat program you use might have change their application to be compatible with a library that might not make it into your distro until next release.

    At that point you have one of two options. Wait until your distro provides the updated library or the go it alone route of you updating your own library (which libraries can depend on other libraries, which means you could be opening a whole Pandora’s box here). The go it alone route also means that you have to turn off your distro’s updates because they’ll just overwrite everything you’ve done library wise.

    This is where snaps, flatpaks, and appimages come into play. In a very basic sense, they provide a means for a program to include all the libraries it’ll need to run, without those libraries conflicting with your current setup from the distro. You might hear them as “containerized programs”, however, they’re not exactly the Docker style “container”, but from an isolating perspective, that’s mostly correct. So your neat application that relies on the newest libraries, they can be put into a snap, flatpak, or appimage and you can run that program with those new libraries no need for your distro to provide them or for you to go it alone.

    I won’t bore you on the technical difference between the formats, but just mostly focus on what I usually hear is the objectionable issue with snaps. Snaps is a format that is developed by Canonical. All of these formats have a means of distribution, that is how do you get the program to install and how it is updated. Because you know, getting regular updates of your program is still really important. With snaps, Canonical uses a cryptographic signature to indicate that the distribution of the program has come from their “Snaps Store”. And that’s the main issue folks have taken with snaps.

    So unlike the other kinds of formats, snaps are only really useful when they are acquired from the Canonical Snaps Store. You can bypass the checking of the cryptographic signature via the command line, but Ubuntu will not automatically check for updates on software installed via that method, you must check for updates manually. In contrast, anyone can build and maintain their own flatpak “store” or central repository. Only Canonical can distribute snaps and provide all of the nice features of distribution like automatic updates.

    So that’s the main gripe, there’s technical issues as well between the formats which I won’t get into. But the main high level argument is the conflicting ideas of “open and free to all” that is usually associated with the Linux group (and FOSS [Free and open-source software] in general) and the “only Canonical can distribute” that comes with snaps. So as @sederx indicated, if that’s not an argument that resonates with you, the debate is pretty moot.

    There’s some user level difference like some snaps can run a bit slower than a native program, but Canonical has updated things with snaps to address some of that. Flatpak sandboxing can make it difficult to access files on your system, but flatpak permissions can be edited with things like Flatseal. Etc. It’s what I would file into the “papercut” box of problems. But for some, those papercuts matter and ultimately turn people off from the whole Linux thing. So there’s arguments that come from that as well, but that’s so universal “just different in how the papercut happens” that I just file that as a debate between container and native applications, rather a debate about formats.



  • Okay. Original person this whole thread spawned from. I think you all went down the rabbit hole of “what’s an advert” and lost the entire point of my comment which is lack of choice.

    But before I address that choice thing let’s address the “Ads” of Linux as you would call it. The “Featured” apps in a lot of software managers for Linux are selections that come from folks who manage the distro wanting to ensure that people know that “Linux can do that stuff that Windows can”. The “Feature” is not there to promote Dropbox and pray get some money, it’s there to point out to people “we can do that here as well, just FYI.”

    So you may feel that the featured in the software managers is “ad” but you can ask the folks who run the distro how they arrived at what’s there and pretty much every case it’s so they can show that the distro has some feature parity with what people are expecting. Now you do mention Firefox and they are indeed hawking their own product. Interestingly, Mozilla maintains a page about just this thing. And it’s come up time and time again in mailinglists. Distro builders absolutely have the option to disable this in their repo, but by default build, it’s allowed and default options is how a lot of distros choose build the package. And it’s this later part that leads me to the point of my original comment.

    CHOICE. Long story short because I feel I’ve already made this comment pretty long. You don’t get choice in Windows. There’s not some magic build that you can use to do away with all that Candy Crush and what not and still be this side of the TOS for the OS. And for Linux there is choice. It’s less about ads and more about “do you get a say in any of this?” With pretty much every Linux distro, you always have the option to become a contributor in some manner. (As an aside) This is actually the friction that a lot folks talk about with how RedHat and the Fedora project have been doing things lately. They’re sort of removing this option for the general public to have a line of commentary into the project. It’s a bit more complicated than that, but even with the notions that they’re toying with, it’s been met with pretty strong reactions against what they’re doing. And lots of distros have pointed out, that they are going to be doing the opposite of what RedHat is doing going forward on that front. (but I digress)

    But that all said, looking at Windows. You don’t get a say in the build process. There’s not an option for you to rebuild the software stack to your liking for distribution between your machines. There’s what the SKU offers and then there’s just finding some other OS. And yes, that’s not ignoring that enterprise Windows allows pretty much all of these things to not be a thing via group policy objects in the active directory, but it still sticks to the core aspect of only if your SKU offers that option and you need to use that SKU in accordance with the TOS for that SKU. Those are your options. That’s the thing and while I’m sure the debate about “what constitutes an ad or not” is a noble one to have, I think you all lost the entire point of my original comment to debate this point that’s not really a point that anyone was making to begin with. And also your view on that point of “what’s an ad” is poorly informed from the Linux distro makers perspective. There’s a need to point out to users coming from Windows or Mac and trying “Linux” for the first time that “we can do that too”. That’s distinctly different from Microsoft’s goal of letting you know that you too can sign up for OneDrive.