• TheDemonBuer@lemmy.world
    link
    fedilink
    arrow-up
    127
    arrow-down
    2
    ·
    3 months ago

    Flatpaks aren’t perfect, but I think it’s a good solution to the fragmentation problem that is inherent to Linux.

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      78
      arrow-down
      1
      ·
      edit-2
      3 months ago

      Precisely. Flatpaks solve an important problem. Perfect should not be the enemy of good.

      Binary compatibility is a sad story on Linux, and we cannot expect developers — many of whom work for free — to package, test, debug, and maintain releases for multiple distributions. If we want a sustainable ecosystem with diverse distributions, we must answer the compatibility question. This is a working option that solves the problem, and it comes with minor security benefits because it isolates applications not just from the system but from each other.

      It’s fair to criticize a solution, but I think it’s not fair to ignore the problem and expect volunteers to just work harder.

      • nexussapphire@lemm.ee
        link
        fedilink
        English
        arrow-up
        33
        ·
        3 months ago

        Also companies are lazy and if we don’t want to be stuck on Ubuntu for proprietary app stability. We should probably embrace something like flatpak. Also when companies neglect their apps, it’ll have a better chance of working down the road thanks to support for multiple dependency versions on the same install.

        • henfredemars@infosec.pub
          link
          fedilink
          English
          arrow-up
          8
          ·
          3 months ago

          Great point! At the end of the day, the apps I want to use will decide which distro I main. Many FOSS fanatics are quick to critique Ubuntu, So they should support solutions that allow our distro to be diverse and use all the killer apps.

    • olutukko@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      3 months ago

      aur is the only thing I miss. I do like fedora with i3 very much but rpm can be pain in the ass sometimes

      • Ajzak@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        3 months ago

        could you perhaps run them with Distrobox? i was always wondering that.

        • T0RB1T@lemmy.ca
          link
          fedilink
          arrow-up
          2
          ·
          3 months ago

          Yes! This is something I do on 3 of my machines. My ArchLinux Distrobox with paru works like a charm. (so far)

          • Ajzak@lemm.ee
            link
            fedilink
            arrow-up
            2
            ·
            3 months ago

            that’s very good to hear, I’ll probably try out silverblue with distrobox and that’ll be my end of distrohopping

        • olutukko@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          3 months ago

          most likely but I’m super lazy with my pc unless I’m having hyperfocus going, so I don’t know

  • BeigeAgenda@lemmy.ca
    link
    fedilink
    arrow-up
    40
    arrow-down
    5
    ·
    3 months ago

    If I can choose between flatpack and distro package, distro wins hands down.

    If the choice then is flatpack vs compile your own, I think I’ll generally compile it, but it depends on the circumstances.

    • azenyr@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      3 months ago

      I change my opinion depending on which app it is. I use KDE, so any KDE app will be installed natively for sure for perfect integration. Stuff like grub costumizer etc all native. Steam, Lutris, GIMP, Discord, chrome, firefox, telegram? Flatpak, all of those. They don’t need perfect integration and I prefer the stability, easy upgrades and ease of uninstall of flatpak. Native is used when OS integration is a must. Flatpak for everything else. Especially since sometimes the distro’s package is months/years old… prefering distro packages for everything should be a thing of the past.

  • NaibofTabr@infosec.pub
    link
    fedilink
    English
    arrow-up
    39
    arrow-down
    10
    ·
    3 months ago

    If you’re separating your application from the core system package manager and shared libraries, there had better be a good and specific reason for it (e.g. the app needs to be containerized for stability/security/weird dependency). If an app can’t be centrally managed I don’t want it on my system, with grudging exceptions.

    Chocolatey has even made this possible in Windows, and lately for my Windows environments if I can’t install an application through chocolatey then I’ll try to find an alternative that I can. Package managers are absolutely superior to independent application installs.

    • AnyOldName3@lemmy.world
      link
      fedilink
      arrow-up
      42
      ·
      3 months ago

      Typically Windows applications bundle all their dependencies, so Chocolatey, WinGet and Scoop are all more like installing a Flatpak or AppImage than a package from a distro’s system package manager. They’re all listed in one place, yes, but so’s everything on FlatHub.

      • NaibofTabr@infosec.pub
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 months ago

        This is true, the only shared libraries are usually the .NET versions, but so many apps depend on specific .NET versions that frequently the modularity doesn’t matter.

    • Pennomi@lemmy.world
      link
      fedilink
      English
      arrow-up
      21
      ·
      3 months ago

      I think containerization for security is a damn good reason for virtually all software.

      • gaylord_fartmaster@lemmy.world
        link
        fedilink
        arrow-up
        17
        ·
        3 months ago

        Definitely. I’d rather have a “good and specific reason” why your application needs to use my shared libraries or have acess to my entire filesystem by default.

    • Kusimulkku@lemm.ee
      link
      fedilink
      arrow-up
      15
      ·
      3 months ago

      I think stability is a pretty good reason

      If an app can’t be centrally managed

      Open Discover, Gnome Software etc -> Click update?

        • Kusimulkku@lemm.ee
          link
          fedilink
          arrow-up
          5
          ·
          3 months ago

          I’m now confused if they’re saying that flatpak is centrally managed or not. To me it seems centrally managed, both the flatpak ecosystem but your whole machine (repo packages, firmware, flatpak) if you use those app stores. I might’ve misunderstood what they said.

      • NaibofTabr@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        Oh no, no GUI nonsense. Single, simple shell command update for the whole system so that it can be properly remotely managed, please. Something equivalent to sudo apt upgrade

        • Kusimulkku@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          3 months ago

          I’ve written a small script that does all the updates (repo, flatpak, docker), verified the packages, does cleanup and shows if stuff needs rebooted. Handy. That way I can do everything from one short command

    • jj4211@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      3 months ago

      Flatpack can be centrally managed, it’s just like a parallel distribution scheme, where apps have dependencies and are centrally updated. If a flatpack is made reasonably, then it gets library updates independent of the app developer doing it.

      “App image” and " install from tarball" violate those principles, but not snap or flatpack.

      • NaibofTabr@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 months ago

        Um, if it’s “parallel” (e.g. separate from the OS package manager) then it’s not centrally managed. The OS package manager is the central management.

        There might be specific use cases where this makes sense, but frankly if segregating an app from the OS is a requirement then it should be fully containerized with something like Docker, or run in an independent VM.

        If a flatpack is made reasonably, then it gets library updates independent of the app developer doing it.

        That feels like a load-bearing “if”. I never have to worry about this with the package manager.

        • jj4211@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          3 months ago

          Define “the OS package manager”. If the distro comes with flatpack and dnf equally, and both are invoked by the generic “get updates” tooling, then both could count as “the” update manager. They both check all apps for updates.

          Odd to advocate for docker containers, they always have the app provider also on the hook for all dependencies because they always are inherently bundled. If a library has a critical bug fix, then your docker like containers will be stuck without the fix until the app provider gets around to fixing it, and app providers are highly unreliable on docker hub. Besides, update discipline among docker/podman users is generally atrocious, and given the relatively tedious nature of following updates with that ecosystem, I am not surprised. Even best case, docker style uses more disk space and more memory than any other option, apart from VM.

          With respect to never having to worry about bundled dependencies with rpm/deb, third party packages bundle or statically link all the time. If they don’t, then they sometimes overwrite the OS provided dependency with an incompatible one that breaks OS packages, if the dependency is obscure enough for them not to notice other usage.

    • Norgur@fedia.io
      link
      fedilink
      arrow-up
      26
      arrow-down
      3
      ·
      3 months ago

      glibc 2.36 is all you’ll ever need, okay? Go away with those goddamn backports!

  • e8d79@discuss.tchncs.de
    link
    fedilink
    arrow-up
    34
    arrow-down
    8
    ·
    3 months ago

    Haters aren’t worth listening to. Doesn’t matter if it is flatpak, systemd, wayland, or whatever else. These people have no interest in a discussion about merits and drawbacks of a given solution. They just want to be angry about something.

    • renzev@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      12
      arrow-down
      1
      ·
      3 months ago

      I know, right!? Add gimp to that list as well. I can go on and on about shortcomings of gimp despite being a happy user. The average gimp hater, on the other hand, doesn’t have anything to say besides “the UI is dumb and I can’t figure out how to draw a circle”

              • Feathercrown@lemmy.world
                link
                fedilink
                English
                arrow-up
                6
                arrow-down
                1
                ·
                3 months ago

                What I mean is, makingg a UI more intuitive does not necessarily make it more… Gnome-ey? It can still be effective, customizable, etc.

                • uis@lemm.ee
                  link
                  fedilink
                  arrow-up
                  3
                  arrow-down
                  2
                  ·
                  3 months ago

                  “Intuitive UI” crowd usually means Gnome-ey/Apple-ey design.

                  In reality customizable design is more intuitive, because you can customize it to your intuition.

              • raspberriesareyummy@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                3 months ago

                kate editor would like to have a word… They did my lady kate dirty with the latest updates :( The top level File menu was so much better and now I don’t know where to find the configuration to get that back, and have on my work computer a stupid single button in the top right corner which opens the “menu bar”, except vertically…

    • someacnt_@lemmy.world
      link
      fedilink
      arrow-up
      10
      arrow-down
      1
      ·
      3 months ago

      Wayland gets the hate because compositors are authoritative so you cannot e.g. install your own window manager, taskbar, etc. It would be good if there were specifications governing these, but there isn’t.

  • umbraroze@lemmy.world
    link
    fedilink
    arrow-up
    29
    arrow-down
    3
    ·
    3 months ago

    I’m a Debian fan, and even I think it’s absolutely preferable that app developers publish a Flatpak over the mildly janky mess of adding a new APT source. (It used to be simple and beautiful, just stick a new file in APT sources. Now Debian insists we add the GPG keys manually. Like cavemen.)

    • jabjoe@feddit.uk
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      1
      ·
      3 months ago

      Someone got to say it…

      There is no Debian if everything was a pile of Snaps/Flatpack/Docker/etc. Debian is the packaging and process that packaging is put through. Plus their FOSS guidelines.

      So sure, if it’s something new and dev’y, it should isolate the dependencies mess. But when it’s mature, sort out the dependencies and get it into Debian, and thus all downstream of it.

      I don’t want to go back to app-folders. They end up with a missmash of duplicate old or whacky lib. It’s bloaty, insecure and messy. Gift wrapping the mess in containers and VM, mitigates some of security issues, but brings more bloat and other issues.

      I love FOSS package management. All the dependencies, in a database, with source and build dependencies. All building so there is one copy of a lib. All updating together. It’s like an OS ecosystem utopia. It doesn’t get the appreciation it should.

    • raspberriesareyummy@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      3 months ago

      Now Debian insists we add the GPG keys manually. Like cavemen.)

      Erm. Would you rather have debian auto-trust a bunch of third party people? It’s up to the user to decide whose keys they want on their system and whose packages they would accept if signed by what key.

      • umbraroze@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        Not “auto trust”, of course, but rather make adding keys is a bit smoother. As in “OK, there’s this key on the web site with this weird short hex cookie. Enter this simple command to add the key. Make sure signature it spits out is the same on the web page. If it matches, hit Yes.”

        And maybe this could be baked somehow to the whole APT source adding process. “To add the source to APT, use apt-source-addinate https://deb.example.com/thingamabob.apt. Make sure the key displayed is 0x123456789ABC by Thingamabob Team with received key signature 0xCBA9876654321.”

        • raspberriesareyummy@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          For the keys - do you mean something like

          sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00000000 where 00000000 is replaced with the fingerprint of the key you want to fetch?

          I do agree - the apt-key command is kinda dangerous because it imports keys that will be generally trusted, IIRC. So a similar command to fetch a key by fingerprint for it to be available to choose as signing keys for repositories that we configure for a single application (suite) would be nice.

          I always disliked that signing keys are available for download from the same websites that have the repository. What’s the point in that? If someone can inject malicious code in the repository, they sure as hell can generate a matching signing key & sign the code with that.

          Hence I always verify signing keys / fingerprints against somewhat trustworthy third parties.

          What we really need though is a crowdsourced, reputation-based code review system. Where open source code is stored in git-like versioning history, and has clear documentations for each function what it should and should not do. And a reviewer can pick as little as an individual function and review the code to confirm (or refute) that the function

          1. does exactly what the interface documentation claims it does
          2. does nothing else
          3. performs input validation (range checks etc)
          4. is well-written (in terms of performance)

          Then, your reputation score would increase according to other users concurring with your assessment (or decrease if people disagree), and your reputation can be used as a weighting factor in contributing to the “review thoroughness” of a code module that you reviewed. E.g.: a user with a reputation of 0.5 confirms that a module does exactly what it claims to do: Module gets review count +1, module gets new total score of +0.5, new total weight of ( combined previous weights + 0.5 ) and the average review score is “reviews total score” / “total weight”.

          Something like that. And if you have a reputation of “0.9”, the review count goes +1, total score +0.9, total weight +0.9 (so the average score stays between 0 and 1).

          Independent of the user reputation, the user’s review conclusion is stored as “1” (= performs as claimed) or “0” (= does not perform as claimed) for this module.

          Reputation of reviewers could be calculated as the sum of all their individual review scores (at the time the reputation is needed), where the score they get is 1 minus the absolute difference between the average review score of a reviewed module and their own review conclusion.

          E.g. User A concludes: module does what it claims to do: User A assessment is 1 (score for the module) User B concludes: module does NOT what it claims to do: User B assessment is 0 (score)

          Module score is 0.8 (most reviewers agreed that it does what it claims to do)

          User A reputation gained from their review of this module is 1 - abs( 1 - 0.8 ) = 0.8 User B reputation gained from their review of this module is 1 - abs( 0 - 0.8 ) = 0.2

          If both users have previously gained a reputation of 1.0 from 10 reviews (where everyone agreed on the same assessment, thus full scores):

          User A new reputation: ( 1 * 10 + 0.8 ) / 11 = 0.982 User B new reputation: ( 1 * 10 + 0.2 ) / 11 = 0.927

          The basic idea being that all modules in the decentralized review database would have a review count which everyone could filter by, and find the least-reviewed modules (presumably weakest links) to focus their attention on.

          If technically feasible, a decentralized database should prevent any given entity (secret services, botfarms) to falsify the overall review picture too much. I am not sure this can be accomplished - especially with the sophistication of the climate-destroying large language model technology. :/

  • AstralPath@lemmy.ca
    link
    fedilink
    arrow-up
    23
    arrow-down
    3
    ·
    3 months ago

    I’m new to Linux. Every time I’ve had a major issue with an application it turned out to be due to a flatpak. I’ll stick with other options for the time being.

    • Norgur@fedia.io
      link
      fedilink
      arrow-up
      40
      ·
      3 months ago

      Back in the day, when I installed my very first Linux OS, I had a wireless stick from Netgear. Wireless Drivers back then were abysmal, so I had to compile them from source (literally 15 mins after seeing a TTY for the first time). After I had found out how build-dependencies and such worked somehow and ./configure completed successfully for the first time, the script ended with the epic line:

      configure done. Now type 'make' and pray

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 months ago

      This doesn’t scale. If I have a bug and my package has about two dozen dependencies which can all be different versions, and the developer can’t reproduce my bug, I’m just screwed. Developers don’t have the time and resources to chase down a bug that depends on build time variables.

      Ask me how I know this happens.

    • corsicanguppy@lemmy.ca
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      3
      ·
      edit-2
      3 months ago

      I think no one said it needs to be ON a distro’s repos. That’s a straw man.

      A package should be available in a native package format in a way that doesn’t cause conflict with what’s in the official repo. The reasons for a single source of truth on installed status should be obvious; but given the format of some packaging and the signed assurance of provenance, thr advantages to a native format can be leaves ahead of even that.

      Wow, is this meme a really naive take that is contradicted by - oh god, everything. Can someone know about enterprise Linux and also be this naive?

      • KubeRoot@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        8
        ·
        3 months ago

        The responsibility to figure out the dependencies and packaging for distros, and then maintain those going forwards, should not be placed on the developer. If a developer wants to do that, then that’s fine - but if a developer just wants to provide source with solid build instructions, and then provide a flatpak, maybe an appimage, then that’s also perfectly fine.

        In a sense, developers shouldn’t even be trusted to manage packaging for distributions - it’s usually not their area of expertise, maintainers of specific distributions will usually know better.

        • raspberriesareyummy@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          3 months ago

          While I agree that developers (like myself) are not necessarily experts at packaging stuff, to conclude that it’s fine that a developer provides a flatpak is promoting shitty software. Whether a software should run in a jail, or within user space is a decision that - for most use cases - should be made by the user.

          There is absolutely no reason not to provide software as a tar.gz source code archive with a proper makefile & documentation of dependencies - or automake configuration if that’s preferred.

          From that kind of delivery, any package maintainer can easily build a distro-package.

          • KubeRoot@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 months ago

            I think you’re actually agreeing with me here. I was disputing the claim that software should be made available in “a native package format”, and my counterpoint is that devs shouldn’t be packaging things for distros, and instead providing source code with build instructions, alongside whatever builds they can comfortably provide - primarily flatpak and appimage, in my example.

            I don’t use flatpak, and I prefer to use packages with my distro’s package manager, but I definitely can’t expect every package to be available in that format. Flatpak and appimage, to my knowledge, are designed to be distro-agnostic and easily distributed by the software developer, so they’re probably the best options - flatpak better for long-term use, appimage usable for quickly trying out software or one-off utilities.

            As for tar.gz, these days software tends to be made available on GitHub and similar platforms, where you can fetch the source from git by commit, and releases also have autogenerated source downloads. Makefiles/automake isn’t a reasonable expectation these days, with a plethora of languages and build toolchains, but good, clear instructions are definitely something to include.

            • raspberriesareyummy@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              3 months ago

              Makefiles/automake isn’t a reasonable expectation these days, with a plethora of languages and build toolchains, but good, clear instructions are definitely something to include.

              As for the Makefiles, I meant that for whatever build toolchain the project uses - because the rules to build a project are an essential part of the project, linking the source code into a working library or executable. Whether it is cmake, or gnu make, or whatever else there is - that’s not so important as long as those build toolchains are available cross platforms.

              I think what is really missing in the open source world is a distribution-agnostic standard how to describe application dependencies so that package maintainers can auto-generate distro-packages with the distribution-specific dependencies based on that “dependencies” file.

              Similar to debian dependencies Depends: libstdc++6 (>= 10.2.1) but in a way that identifies code modules, not packages, so that distributions that package software together differently will still be able to identy findPackageFor( dependency )

              I would really like to add this kind of info to my projects and have a tool that can auto-build a repo-package from those.

    • rozodru@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      3 months ago

      “oh this is a flatpak or hell even a windows exe…” proceeds to search for it on AUR “ah there it is, wonderful!”

      Hell I’ve found a god damn windows gaming cheat trainer on AUR and it worked.

      • lemmyvore@feddit.nl
        link
        fedilink
        English
        arrow-up
        4
        ·
        2 months ago

        The AUR is basically just a script that describes best case scenario for building something under Arch. They don’t have any specific quality rules they have to meet.

        It’s super easy to make and publish an AUR script compared to a regular distro package (including Arch packages).

        • superminerJG@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          Usually they work well enough, especially things that just involve repacking binaries (e.g. printer drivers)

  • 56!@lemmy.ml
    link
    fedilink
    arrow-up
    17
    ·
    3 months ago

    They do? I’ve always seen that as being up to distro maintainers, and out of control of the devs.

  • G0ne@lemmy.world
    link
    fedilink
    arrow-up
    17
    arrow-down
    1
    ·
    3 months ago

    False, if it exists in the Linux ecosystem it also exists in AUR

      • DefederateLemmyMl@feddit.nl
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        1
        ·
        3 months ago

        X thing you want isn’t the devs job

        Well, it is if they decide it is, and it isn’t if they decide it isn’t.

        That said, I do appreciate devs who put up native deb or rpm repos for the most common distros.

  • 2xsaiko@discuss.tchncs.de
    link
    fedilink
    arrow-up
    19
    arrow-down
    3
    ·
    3 months ago

    Are those flatpak haters that say that in the room with us right now? The main difference with distro repos is that packages in it are packaged by the distro packagers and everyone who has an opinion on flatpak should know that this is how it works.

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

      The main difference with distro repos is that packages in it are packaged by the distro

      Uh… Yes? That’s what the meme says?

  • Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    9
    ·
    3 months ago

    I just distribute it as a self-contained executable/archive. ¯\_(ツ)_/¯

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        3 months ago

        Yeah, that’s the fun part. Hooking into some auto-update mechanism would be useful to me.

        But my stuff is mostly in the scratching-my-own-itch stage, so setting up a FlatHub account, Flatpak metadata, sandbox rules, probably an icon and screenshots and whatnot, and automating the build+releases, just to get auto-updates, yeah… no.

        I could code a whole nother project in the time that would take.

  • uis@lemm.ee
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    3 months ago

    Meanwhile almost everything I ever wanted is either in main Gentoo repo or in there is overlay with it.