1. 13
  1.  

  2. 5

    I must be missing something important here, because it looks like what windows app devs have been doing for years now: shipping all libraries and dependencies with their programs, put kt all in C:\Program Files\NAME and run the program from here. Which, to me, looks like doing statically compiled binaries out of dynamically compiled ones: instead of putting thr libs in thd executable, they are installed in the same folder.

    There is the sandboxing/isolation which is interresting, but I fail to understand the point of packaging different dynamic libraries with each app.

    1. 4

      Flatpak can use “runtimes,” so that instead of bundling the libraries, you can ship the runtime, and applications can depend on a runtime that can be updated so all applications can share. It’s somewhere in between the existing approaches.

      1. 1

        After reading about it on their website, it looks like a dark box containing a bunch of libraries. Kind of like a “base subsystem”, so that developpers don’t need to bundle libraries like the libc, or libgtk.

        edit: I just realised what you said, the runtime is only deployed once even if multiple packs rely on it, while bundled libs are app dependent

      2. 3

        Yes, that’s pretty much it. The key benefits they’re suggesting are:

        1. Apps are bundled together with their dependencies so no more Unix equivalent of DLL hell.
        2. Flatpak apps can be installed on any distribution - no more need for separate Debian .deb, Ubuntu .deb, RHEL RPM, etc.
        3. Isolation/sandboxing.

        Personally, I’m a bit skeptical. It’s all very Linux-centric (requires cgroups, etc and systemd et al) and I’m guessing that if this takes off larger projects will move further and further away from code that works on any other platform. This is already becoming an issue for GNOME, which has all sorts of systemd dependencies. I’m also not sure about security - what if I have 10 apps that bundle their own version of a library for which there’s a security update. I now have to download a lot more than that library alone to patch my system (Flatpak does appear to support binary deltas though).

        I can see this being hugely beneficial for non-open source apps and the sandboxing is neat (although non-portable), but I’m not so sure about everything else. If this takes off, I can see it being something else that pushes people away from Linux to other systems.

        1. 4

          If this takes off, I can see it being something else that pushes people away from Linux to other systems.

          Let’s see if it takes off. Flatpak is supported by Red Hat, while Canonical has a similar project called Snap (see http://snapcraft.io/).

          1. 2

            If this takes off, I can see it being something else that pushes people away from Linux to other systems.

            It could also lead to new people coming to the platform, because they want a more unified and predictable way of installing their applications.

            1. 1

              Aside from #3, you get the other benefits by default when using Go.

              1. 1

                Or static linking in general