Re: Fedora development of Snap packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 15, 2016 at 9:39 PM, Colin Walters <walters@xxxxxxxxxx> wrote:
> Hi,
>
> On Tue, Jun 14, 2016, at 09:18 PM, Michael Catanzaro wrote:
>
>> Also, keep in mind that Flatpaks are not the only new type of software
>> we intend to support in Fedora. I know other folks are looking into
>> supporting Docker containers; I believe that's a Server WG initiative?
>
> One of the things that is still odd about Fedora is that people often
> say "Fedora" and most of the time they mean as a desktop OS.
>

Why do you think that is weird? Fedora is a perfectly fine desktop
Linux distribution. I'm wondering what your problem is if you think
that it can't be. Yeah, I get that many of you guys at Red Hat don't
care, but that doesn't mean that the rest of us don't. Besides, for a
lot of people, mentioning "Fedora" and "server" in the same sentence
in some positive manner would get you laughed right out! I personally
like server platforms with fresh software, as I'm a firm believer in
that keeping things fresh is the best way to be secure. Just because
it's an unpopular opinion doesn't make it any less of a valid
approach, though.

> Anyways, so yes we've invested quite a lot in Docker for server containers,
> and more specifically in Kubernetes and OpenShift v3.
>
> See:
>
> https://www.openshift.org/
>
> for lots more, and the effort we spend on Docker and Atomic Host
> is at http://www.projectatomic.io/ and that work lands in Fedora
> as well as CentOS.  Most of the production work honestly is in CentOS,
> but there have been discussions about improving the server/cloud/OpenShift
> state in Fedora as well.
>

Not that I don't like the underlying technologies that you're working
on (I do, and I think rpm-ostree is wicked cool!), but it's pretty
darn close-minded if you think of only one potential avenue for
usefulness. Michael Catanzaro suffers from the same problem, but only
from a different perspective.

If we start off with the assumption that the approaches being done by
Docker, Flatpak, and others is a reasonably sound approach (I could
easily make the argument otherwise, and I have earlier in the thread),
then it's important to pick apart what they are and what they do.

Docker is a platform for distributing container construction scripts
and base images. Much like how ebuilds and ports work, Dockerfiles are
simple instructions to create *something* to use. However, the
artifact it creates is a container filesystem tree, rather than a
package that can be integrated into a system. Nothing about Docker
provides any useful security in and of itself. Band-aids like using
sVirt and whatnot help, but that's not available to everyone, so you
can't assume everyone is using it.

Flatpak is a mechanism for provided self-contained applications
derived from already built artifacts, such as runtime images and
application build artifacts. It's supposed to provide sandboxing and
other things, but none of them are functional. It's also not very
flexible, as it's designed exclusively for graphical applications.

Snap is a mechanism like Flatpak, though it's also designed to support
more use-cases than Flatpak. To some degree, it combines Docker and
Flatpak into a single system. The big problem with Snaps is that
they're effectively dead in the water security-wise on any
distribution that isn't Ubuntu (and *maybe* openSUSE/SLES). Snaps,
unlike Flatpaks, are able to handle *all* kinds of things, from web
apps, to desktop graphical apps, to CLI and TUI apps, and even
services and servers.

Snaps have three big flaws:

1. For maximum usefulness an discovery, they have to be centrally
registered with Canonical, who is the sole publisher. This is further
compounded by the fact that none of the server components are planned
to be open sourced (I asked this morning in #snappy), so there's not
even a snowball's chance of democratizing the platform like there is
with Docker.

2. Snaps are designed for apps that "bundle all the things" and don't
provide an easy way to introspect and manage the state of the snaps
included. There's no information on what a snap is composed of, and
that's a huge security nightmare. The format is highly simplistic and
encourages very fat bundles, which is not good for bandwidth or
storage. Flatpaks are marginally better due to "runtimes" built into
the design.

3. Snaps are expressly designed to integrate tightly with Ubuntu, and
currently even relies on Ubuntu-specific code in various aspects of
the OS (AppArmor, Ubuntu Software, etc.). It even goes so far as
making it possible to compose and manage an operating system using
Ubuntu packages as inputs.

Snaps function very much like how Apple's ecosystem does for software
delivery, and perhaps even Microsoft's UWP ecosystem too. It's very
clear that the purpose of Snaps are to provide avenues to "encourage"
people to lock into the Ubuntu platform.

So far, I've seen people gloss over the real crux of the problem,
which is that somehow we're trying to create walled gardens, and no
one wants to fix that. The fact that LSB is a permanent failure is
generally assumed and accepted and no one wants to try to solve the
problem that way again. What in our world changed that made this an
invalid solution? I'd argue nothing. It's still valid, and there are
definitely ways to use that and combine it with sandboxing/security
techniques to produce far more flexible alternatives than what
everyone seems to want to push these days.

But then again, who cares... Let's continue pushing for this where we
just turn Linux into Windows in terms of security issues due to
permanent vulnerabilities because we make it too easy for people to be
irresponsible...

Has everyone really forgotten the zlib nightmare of the early 2000s so quickly?


-- 
真実はいつも一つ!/ Always, there's only one truth!
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux