Basically title.

I’m wondering if a package manager like flatpak comes with any drawback or negatives. Since it just works on basically any distro. Why isn’t this just the default? It seems very convenient.

  • @[email protected]
    link
    fedilink
    English
    6
    edit-2
    1 year ago

    One of the use cases I would like to have used Flatpak for is Visual Studio Code. Unfortunately, I found the isolation to be too onerous for developer needs. Take the Rust compiler toolchain. There’s no way to access that from VSCode. There are ways to add on tools to the VSCode environment, but that feels like a kludge when I already have everything installed and set up. And if the toolchain isn’t available for Flatpak, tough luck. Other features just simply don’t work. I eventually switched to using the Ubuntu builds from the VSCode developers.

    Edit: The Rust compiler toolchain can be added onto Flatpak because there is a packaged version of the toolchain, but it’s not the host environment’s version. Other tools like the fish shell might be entirely unavailable.

  • @[email protected]
    link
    fedilink
    131 year ago

    I’ve had my first downside with flatpak.

    VSCode’s flatpak version won’t let you use certain packages because they’re installed on the system and flatpak is a sandbox with no access. You need to enable some stuff but I’m far too lazy to troubleshoot that shit.

    I got the Snap version so I’m ready for the hate.

  • @[email protected]
    link
    fedilink
    English
    291 year ago

    The worst part of flatpaks is that they don’t get to see the actual path of files that they open. Instead, they get a /var/run/1000/blah proxy. The proxy is forgotten after you reboot, so any flatpak that memorized that path is holding a bunch of dead links.

  • @[email protected]
    link
    fedilink
    English
    29
    edit-2
    1 year ago
    • overly verbose way to launch them in terminal
    • can sometimess not even respect your gtk/qt theming
    • sandboxing/permission system can lead to you trying to figure out which directory you need to give access to when you want to save file if it wasn’t preconfigured
    • uses its own libraries and not system libraries, want to play the hit new AAA game with steam flatpak? get fucked it requires a mesa commit that was merged 8 hours a go and you’re stuck on 23.0.4 and can’t use the git release.

    Flatpak probably has it’s specific uses like trying to use one piece of proprietary software that you don’t trust and don’t want to give it too much access to your system, or most GUI software clients having an easy way to install Discord on your Steam Deck (no terminal usage, Linux is easy yay), but native packages 99% of the time work better.

    • @[email protected]
      link
      fedilink
      21 year ago

      uses its own libraries and not system libraries, want to play the hit new AAA game with steam flatpak? get fucked it requires a mesa commit that was merged 8 hours a go and you’re stuck on 23.0.4 and can’t use the git release.

      Can’t you just install a git snapshot of mesa in a flatpak and use that? Then it’d be an upside

    • Skull giver
      link
      fedilink
      English
      5
      edit-2
      1 year ago

      [This comment has been deleted by an automated system]

  • arthurpizza
    link
    fedilink
    English
    121 year ago

    There’s still a few edge cases that Flatpak is not great for. The Flatpak version of Kdenlive video editor can’t see Whisper, which it uses to generate subtitles. The Appimage and native builds work flawlessly.

    I’m assuming these problems will be addressed eventually but it takes time.

    • @[email protected]
      link
      fedilink
      21 year ago

      I ran into an issue with flatpak version of Kdenlive that it would render only the topmost V track if it was a simple still image.
      Preview worked fine.
      Luckily, someone in Kdenlive’s Matrix suggested that I use an appimage. I used my distro’s version and the final render was fine.

      Other than that I had positive experience with flatpaks in general.

  • Gamma
    link
    fedilink
    English
    71 year ago

    Others have mentioned disk usage and desktop integration. There is some truth to them, but shared runtimes keeps disk uasge down (although worse than native apps). Desktop launchers now search /var/lib/flatpak/exports/share/applications by default, but I’m still having issues with themes in one or two niche apps.

    Trust is the big one. The benefit of your distro’s packages is that they are maintained by a limited number of maintainers. Flatpaks have a much, much larger number of maintainers, which is where sandboxing comes in. Flathub now marks apps with lax permissions as “potentially unsafe”, which is a huge step in communicating this to the average user.

    Most desktop apps can get away with having next to no access, as long as they support the appropriate XDG desktop portals.

    Ultimately, your mileage will vary, as there are many classes of application which are ill-suited to being sandboxed. Program launchers, programming languages, IDEs, file managers are a few.

  • @[email protected]
    link
    fedilink
    131 year ago

    the main drawbacks I see are related to the sandboxing of apps, e.g. that several firefox addons that I just, such as the KeePassXC connector don’t work in flatpak packaged firefox, because they require native messaging support which is unavailable in flatpak. There is a three year old bug report on this at github, and an even older bug report in the Firefox bugzilla. Unfortunately, there seems to be no capacity to solve this or this is not a priority, although this problem affects quite a few users. I have similar issues with the Flatpak packages Nextcloud client: Do to the poor system integration, neither autostart works not integration with Nautilus or other file managers, unless you do some manual tinkering (which isn’t particularly difficult, but with native packages it will just work™ out of the box.) These issues have been known for many years, yet there seems to be no activity to solve them.

  • @[email protected]
    link
    fedilink
    English
    241 year ago

    It’s great for user apps, gui apps, and sandboxing. It’s terrible for cli apps, libraries, development, and integration.

  • @[email protected]
    link
    fedilink
    2
    edit-2
    1 year ago

    Flatpak usually ships very outdated drivers.

    I’ve been in the support channel for yuzu linux, and you would not believe all the issues people have with games freezing, etc that are instantly fixed by using the appimage instead of the flatpak.

    Also flatpaks are non-xdg compliant, since it creates the useless ~/.var directory. And they have said over and over that they won’t fix that. So fuck them.

    Not to mention all the issues people have with their theming and integration into the system.

    Appimages are just simpler and better, the other day I was thinking how many issues would be fixed if Steam shipped as an appimage.

    • It would allow for shipping a patch glibc with EAC
    • It would allow for moving all the nonsense that steam puts in the home user dir, since appimages support a portable home.
    • It would allow for shipping the 32bit libraries instead of having to install them system wide.

    And depending on how you go about, appimages will even take less disk space than flatpaks or native packages even though you don’t get shared libraries with those, because they are compressed which reduces their size significantly.

    Like for example the LibreWolf appimage is 110MiB while a the native package for librewolf 300MiB. Same with LibreOffice, the appimage is 300MiB while the native package is 600 MiB.

    It also makes it easier to downgrade if you run into an issue, like I had to had an older appimage of ferdium because the latest version is affected by an electron bug that broke its zoom functionality.

    • Chewy
      link
      fedilink
      11 year ago

      Interestingly I’ve currently crashing issues with running CS2 through Steam native on NixOS, while the Steam flatpak works like it should.

      The part about drivers is true though, as GPL is the reason I’m using native Steam.

        • Chewy
          link
          fedilink
          1
          edit-2
          1 year ago

          I mean the native NixOS package of Steam (instead of flatpak), not that the Steam package uses native libs.

          I believe Steam on NixOS always uses the Steam runtime, because NixOS isn’t FHS compliant, thus apps wouldn’t find any libs. No, I don’t think there’s steam-native on NixOS.

      • @[email protected]
        link
        fedilink
        51 year ago

        It sells security through isolation, but packages are not cryptographically verified after download. This is done in package managers like apt, but not flatpak

      • @[email protected]
        link
        fedilink
        111 year ago

        libxyz has security vulnerability:

        Your distro updates libxyz. Fixed and every piece of software gets the fix for free.

        Every single flatpak that uses libxyz has to update to include the fix. Let’s hope all those package maintainers are on the their game.

        • @[email protected]
          link
          fedilink
          121 year ago

          That’s not how Flatpak works.

          Flatpak has runtimes, which is where most shared libraries are. There’s a common base one called Freedesktop, a GNOME runtime, a KDE runtime , an Elementary runtime, and more. (The GNOME and KDE ones are built on top and inherit from the Freedesktop base runtime.)

          https://docs.flatpak.org/en/latest/available-runtimes.html

          Additionally, at least for Flathub, they have shared modules for commonly used libraries that aren’t in runtimes. (Many are related to games or legacy support like GTK2.)

          https://github.com/flathub/shared-modules

          Lastly, some distributions are building their own runtimes and apps on top, so the packages they build are available as flatpaks as well. This is the case for Fedora, Elementary, Endless, and others.

          https://fedoraproject.org/wiki/Flatpak

          • @[email protected]
            link
            fedilink
            9
            edit-2
            1 year ago

            That’s not how Flatpak works.

            That’s exactly how flatpaks work if the library you need is not in the runtime. Which is very often the case.

            I know because I made one for my personal use and the package was not available elsewhere.

            Additionally, at least for Flathub, they have shared modules for commonly used libraries that aren’t in runtimes. (Many are related to games or legacy support like GTK2.)

            So we’re just reinventing the wheel with more bloat? Brilliant.

            • @[email protected]
              link
              fedilink
              1
              edit-2
              1 year ago

              Yeah, that’s a big, weird if though. Most modern apps can rely on the runtimes for their dependencies and not have to ship their own custom dependencies.

              It’s different from something like AppImage, where everything is bundled (or Snap, where a lot more needs to be bundled than a typical Flatpak, but not as much as with an AppImage).

              Additionally, there’s always some level of sandboxing in Flatpaks (and Snap packages) and none at all for RPMs, Debs, or AppImages.

              Also, Flatpak dedupicates common files shared across flatpak apps and runtimes, so there isn’t “bloat” like what you’re talking about.

              https://blogs.gnome.org/wjjt/2021/11/24/on-flatpak-disk-usage-and-deduplication/

              • @[email protected]
                link
                fedilink
                1
                edit-2
                1 year ago

                I think bringing in an entire operating system, which may well include libraries and other files that I already have installed, to run something small can be considered bloat.

                I currently have multiple versions of Nvidia’s libraries installed for some reason on my system through flatpak. I have no idea why that’s necessary but if I don’t allow this to happen I get dropped down to software rendering.

  • @[email protected]
    link
    fedilink
    English
    58
    edit-2
    1 year ago

    Yes, I love it and don’t get me wrong but there are many downsides and they all result from poor planning and/or bad decisions around how flatpak was built. Here are a few:

    • Poor integration with the system: sometimes works against you and completely bypasses your system instead of integrating with it / using its features better. To me it seems more like the higher levels are missing pieces to facilitate communication between applications (be it protocols, code or documentation) and sometimes it is as simple as configuration;
    • Overhead, you’ll obviously end up with a bunch of copies of the same libraries and whatnot for different applications;
    • No reasonable way to use it / install applications offline. This can become a serious pain point if you’re required to work in air gapped systems or you simply want to level of conservation for the future - it doesn’t seem reasonable at all to have to depend on some repository system that might gone at some point. Note that they don’t provide effective ways to mirror the entire repository / host it locally nor to download some kind of installable package for what you’re looking for;
    • A community that is usually more interested in beating around the bush than actually fixing what’s wrong. Eg. a password manager (KeePassXC) and a browser (Firefox/Ungoogled) both installed via flatpak can’t communicate with each other because developers seem to be more interested in pointing fingers on GitHub than fixing the issue.

    Flatpak acts as a restrictive sandbox experience that is mostly about “let’s block things and we don’t care about anything else”. I don’t think it’s reasonable to have situations like applications that aren’t picking the system theme / font without the user doing a bunch of links or installing more copies of whatever you already have. Flatpak in general was a good ideia, but the system integration execution is a shame.

    • Beej Jorgensen
      link
      fedilink
      161 year ago

      The double-edged sword of isolation.

      On the one hand, poor communication between apps and waste of storage.

      On the other, relative safety from malicious applications, or from otherwise-safe applications built on top of a thousand libraries none of which have been audited by the dev.

      I don’t know how it’s going to go down, but I suspect something will come along to address these issues and snatch the market away from Flatpak.

      • @[email protected]
        link
        fedilink
        English
        12
        edit-2
        1 year ago

        but I suspect something will come along to address these issues and snatch the market away from Flatpak.

        I believe it could only be fixed by a team from GNOME or KDE, they’re the one in a position to develop something like Flatpak but deeply integrated with the system instead of trying to get around it.

        For what’s worth Apple did a very good job when it came to the isolation and containerization of desktop applications, but again only possible because they control both sides.

        Apple enforces a LOT of isolaton, they call it sandboxed apps and it is all based on capabilities, you may enjoy reading this. Applications get their isolated space at ~/Library/Containers and are not allowed to just write to any file system path they want.

        A sandboxed app may even think it is writing into a system folder for preference storage for example - but the system rewrites the path so that it ends up in the Container folder instead. For example under macOS apps typically write their data to ~/Library/Application Support. A sandboxed app cannot do that - and the data is instead written beneath the ~/Library/Containers/app-id path for that app.

        And here’s how good Apple is, any application, including 3rd party tools running inside Terminal will be restricted:

        I bet most people weren’t expecting that a simple ls would trigger the sandbox restrictions applied to the Terminal application. The best part is that instead of doing what Flatpak does (just blocking things and leaving the user unable to to anything) the system will prompt you for a decision.

        I believe this was the best way to go about things but it would require to get a DE team to make it in a cohesive and deeply integrated with the system. Canonical could do it… but we all know how Canonical is.

        • @[email protected]
          link
          fedilink
          English
          41 year ago

          The best part is that instead of doing what Flatpak does (just blocking things and leaving the user unable to to anything) the system will prompt you for a decision.

          No, Flatpak isn’t the problem here, portals for these things exist. The problem is that apps would have to use them, and unlike Apple, there’s noone restricting the old / unrestricted ways of doing things… So apps usually don’t port over to the portals.

          Even where the unrestricted APIs stop working, like with screen capture and Wayland, apps are excruciatingly slow to port over, because they don’t get kicked from app stores for it, and because many users can still fall back to using the old system.

          • @[email protected]
            link
            fedilink
            English
            2
            edit-2
            1 year ago

            While what you say is true, the “portals” were an afterthought, an imposition to developers and a cumbersome and poorly documented solution. Just like the theming and most other things.

            Instead of bluntly blocking things why can’t Flatpak just simulate a full environment and just prompt the user whenever some application wants to read/write to file / unix socket at some path? A GUI capable of automatically enumerating those resources and a bunch of checkboxes like "app X and Y both have access to socket at /var/run/socketY would also solve most of the issues.

            • @[email protected]
              link
              fedilink
              English
              21 year ago

              Instead of bluntly blocking things why can’t Flatpak just simulate a full environment and just prompt the user whenever some application wants to read/write to file / unix socket at some path?

              Because the user getting a hundred popups on app start for various files the app needs isn’t exactly a usable experience. Also, blocking the app’s main thread (which is the only way you could do this) is likely to break it and cause tons of user complaints too.

              Aside from apps using the APIs meant for the purpose of permission systems, there’s no good way to make it work.

              • @[email protected]
                link
                fedilink
                English
                11 year ago

                Because the user getting a hundred popups on app start for various files the app needs isn’t exactly a usable experience

                It doesn’t but until apps can declare on a simple config file what paths they require that’s the way things should work. I guess that would motivate the developers who are packing into Flatpaks to properly list whatever files the application requires. If they don’t, then the application will still work fine but be a bit annoying.

                Also, blocking the app’s main thread (which is the only way you could do this) is likely to break it and cause tons of user complaints too. Aside from apps using the APIs meant for the purpose of permission systems, there’s no good way to make it work.

                Yet, macOS does and things don’t go that bad, on the example how do you think they do it for command line tools? The system intercepts the request, show the popup and wait for the user input. I’ve seen the same happening with older macOS applications that aren’t aware it could happen and yes, the main thread is blocked and the application seems to crash.

                I thinks it’s way better doing it this way and still have a somewhat productive container and isolation experience than just bluntly blocking everything - something that also breaks apps sometimes.

                • @[email protected]
                  link
                  fedilink
                  English
                  1
                  edit-2
                  1 year ago

                  until apps can declare on a simple config file what paths they require

                  They can, and always could. Apps aren’t doing it, most Flatpaks have just blanket “allow ~/Downloads” or “allow all of home” permissions by default - or no file permissions, and you have to go grant them manually yourself.

                  Again, unless apps actually support it, no matter how good the security system is, it won’t work out.

    • 0485OP
      link
      fedilink
      41 year ago

      Thanks for your comment! Both positive and negative for sure.

      • @[email protected]
        link
        fedilink
        21 year ago

        Do you know if flatpak leverages the memory side of this? With shared libs, you only keep one copy in memory, regardless of how many applications use it. Makes application launch faster, and memory usage lower.

        For flatpak, it of course will load whatever it needs to load, but does it manage to avoid loading stuff across other flatpaks?

  • @[email protected]
    link
    fedilink
    71 year ago

    I’m a little put off by the inconvenient command line and the mandatory bells and whistles (flathub is nice and all, but must it be baked into the main executable rather than having the package manager as an optional thing on top?).

    So far, AppImage just looks superior to me. Works without installing a runtime into my system, no need to become root and integrate an app into a system-wide managed package repository, I can just run it.

  • QuaffPotions
    link
    fedilink
    English
    81 year ago

    As a basic end-user I have not been too happy with my experience with flatpaks. I do appreciate that I can easily setup and start using it regardless of what distro I’m using. But based on standard usage using whatever default gui “app store” frontends that usually come with distros, it tends to be significantly slower than apt, for instance, and there seems to be connection problems to the repos pretty often as well.

    • FreeSoftware Ganoo
      link
      fedilink
      21 year ago

      That definitely used to be the case, but I haven’t had any connection issues in the last year or more.