I still don't get the whole thing (vs static + dynamic linking). It all seems so difficult and complex. Why not just...

  • want a specific version of libfox? -> statically link libfox v6.9
  • want per-interface permissions? -> make a new dynamic linker that prompts the user, "do you want to allow this app to access libfox? yes/no" OR have the linker read declarations at package time (allow/deny/ask).
  • want a unified api? -> make a new shared library

(1/?)

  • want per-file/resource permissions? -> have an interpreter or libc that implements open() et.al. to either ask the user, or reads the declarations made at package time (allow/deny/ask).

Also, requires the OS to implement the flatpak runtime. Got a new OS (/distro/DE)? Well now it has to implement the flatpak and dbus apis before flatpaks work, instead of just relying on individual shared libraries.

(1/2?)

@foxxy other things you said:
* hard linking: yes, AFAIK this is what #AppImage's do. In Essense you get many big binaries, also not ideal and would waste space. #flatpak deduplicates such stuff.
* share libs are of course always made, The problem is that distros adapt it, have different versions and sometimes things break. Testing against one target is just way easier and more like devs are used to nowadays.
* flatpak runtime? Yeah, but 90% of distros have it. If not, it's 1 thing to install.

@rugk Somebody else who has now deleted their comment enlightened me to the fact that Flatpaks do a few things well:

  • "Static lib" dedupes - implementing it as I propose is difficult and problem prone, Flatpak-style containers will always do it better
  • Anti-hysteresis: for apps that have multiple executables, Flatpak-styles handles hysteresis gracefully.

Among other things, I'm still really upset that Flatpaks reversed certificate progress for me by years, for not enough benefit to offset.

@rugk For my concern about having to create a new Flatpak runtime for a new OS/distro/DE, I was assured that the Freedesktop runtime has few/no dependencies, so it should provide Flatpak support out of the box even if it doesn't integrate well - which is fine, since in this hypothetical a new OS/distro/DE is being made, so we can live with that, plus it could provide a foundation for the developer(s) to modify incrementally as they have time. I have no way to verify this though.

@rugk I had also argued that I'd prefer distros adapting and having different versions of shared libraries to provide distro/DE-specific features, because the Flatpak alternative requires going through the DBUS which I argued has a few disadvantages:

  • Overhead, is slower
  • Requires DBUS (yes, I know about the Freedesktop Flatpak runtime)
  • Requires the library to have a "Portal", which is another tax, instead of just an ABI, which will probably be implemented underneath anyways
Follow

@rugk Oh but Flatpak Portals also enforce a single Response-style results. Normally I'm very much against forcing an API style, but I've many headaches working with different libraries that all returned their results in different manners, so from a practical standpoint I'm leaning towards Portal Responses.

· · 0 · 0 · 0
Sign in to participate in the conversation
Critter Camp - Mastodon

This server is part of a collection of services that are mostly federated and run by a couple of furries.