Re: opinions of snappy packages
On Tue, 21 Jun 2016 at 14:16:55 +0100, Jonathan Dowland wrote:
> I'd actually like to see a wider discussion as to the merits of snappy versus
> flatpak (and others) and the pros/cons of supporting (or otherwise) multiple
> such things or picking one (or waiting to see whether any get any kind of
> real-world traction).
(Disclosure of bias: I maintain flatpak in Debian. I think it has a
lot of potential, and so does my employer Collabora.)
We've had 0install and Limba for years, so I don't think there's any
harm in a "collect them all!" approach. Anything that is RC-buggy
or that isn't considered to be supportable in stable (whether by its
maintainer or the release team) can be removed around freeze time.
For me, the big factor that pushes Flatpak and Snappy ahead of the older
versions of this concept is that sandboxing the apps is explicitly a
goal. They take different approaches: Flatpak uses containerization
features (namespaces), while Snappy uses the AppArmor LSM. Either way,
the aim is to move their apps out of the trusted computing base,
which would be a big step forward.
In practice the sandbox is leaky in both cases if an attacker can
achieve arbitrary code execution, because both normally pass X11 through;
when Wayland and/or Mir finally become widely enough available for app
publishers to rely on them, they'll address that concern. If an exploit
in a sandboxed app is limited to arbitrary file reading or writing (as
opposed to arbitrary code execution and IPC), my understanding is that
Flatpak's sandboxing should already be enough to protect you, although
there might still be gaps for some specific files.
If I understand correctly, on distributions that don't normally enable
AppArmor (everything major except Ubuntu and SuSE?), none of Snappy's
sandboxing is enforced. This seems like a very significant limitation,
and I'm not sure why Canonical consider this to be a good time to promote
Snappy as a cross-platform solution despite that gap. I would encourage
the Snappy developers to look into using bubblewrap (which is Flatpak's
sandboxing/containerization helper, spun off into a separate project
so it can be shared by multiple API-users) or some similar namespacing
One of the things I've been trying to encourage in upstream Flatpak is
making sure it can coexist with its competitors. The Flatpak command-line
interface and library are really designed to be "mechanism not policy",
with something like GNOME Software providing UI and letting the user
choose trusted sources. GNOME Software is the first example I know of for
a UI that supports installing Flatpak packages, although the version
in Debian doesn't have that enabled yet; its plugin architecture
also supports distro (deb/RPM) packages, Limba packages and even Steam
games in the same UI, which is encouraging.
I'm not sure whether we'll end up with end-user-facing support for
Flatpak in Debian 9. If it seems suitably mature by then, we can
enable it in GNOME Software and any similar GUIs that support it;
if not, I think disabling the UIs and shipping it as a
command-line-only, "for advanced users" package that isn't
installed by default seems like a reasonable approach.
On a purely non-technical level, Snappy's asymmetric CLA makes
me wary about contributing to it or encouraging its adoption. I
can't help thinking we've been here before with Upstart/systemd,
OpenOffice.org/LibreOffice and Mir/Wayland.