<div dir="ltr">With snaps we no longer get crash reporting to <a href="http://errors.ubuntu.com">errors.ubuntu.com</a>.  We should add support for snap crash reporting to apport.  This isn't all that useful without debug symbols, so we should investigate how we can make builds with debug symbols available as well.  Just a couple things I think we need to tackle sooner rather than later.<br><div><br></div><div>Cheers,</div><div>Ken</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 8, 2018 at 6:10 PM, Steve Langasek <span dir="ltr"><<a href="mailto:steve.langasek@ubuntu.com" target="_blank">steve.langasek@ubuntu.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear developers,<br>
<br>
As I'm sure you know, Canonical has recently been putting a lot of work into<br>
the Snap Store[1], a repository for third-party packages that is the successor<br>
to the past <a href="http://extras.ubuntu.com" rel="noreferrer" target="_blank">extras.ubuntu.com</a>[2] and click packages efforts.<br>
<br>
We are confident that snaps today represent a solid delivery vehicle for<br>
third-party software on top of Ubuntu, and that snaps stand as a first-class<br>
alternative to deb packages for Ubuntu users where appropriate.<br>
<br>
Snaps are already presented alongside debs in the software catalog on the<br>
Ubuntu Desktop, and with the 17.10 release, the Ubuntu MATE team took the<br>
first foray into including snaps by default in an Ubuntu flavor image.  Now<br>
in Ubuntu 18.04 LTS, we are looking at broadening the inclusion of snaps in<br>
Ubuntu images by default.  This raises important questions about what the<br>
policies should be for software installed by default as a snap, since the<br>
review processes around the Ubuntu archive for universe and main don't<br>
directly translate to the Snap Store.<br>
<br>
I have prepared a draft which lays out what I believe the requirements<br>
should be around snaps which we ship preinstalled, and I would greatly<br>
appreciate the feedback of the Ubuntu Developer community around this<br>
proposed policy:<br>
<br>
  <a href="https://wiki.ubuntu.com/UbuntuSeededSnaps" rel="noreferrer" target="_blank">https://wiki.ubuntu.com/<wbr>UbuntuSeededSnaps</a><br>
<br>
<br>
I have also included the text of this draft below for your convenience.<br>
<br>
<br>
= Goal =<br>
Snaps represent a new way of building packages with reduced barriers to<br>
entry.  By design, the snapcraft tooling imposes very little policy to avoid<br>
also introducing friction.  As more software becomes available as snaps, we<br>
want to take advantage of this body of packages as part of the default<br>
Ubuntu experience, but maintaining the Ubuntu community’s commitments around<br>
this default experience means reintroducing policy on top of snaps.  This<br>
document is an attempt to translate existing policy for the Ubuntu archive<br>
to the new world of the Canonical Snap Store.<br>
<br>
= Channel availability =<br>
Including software in the default install of Ubuntu implies a certain<br>
commitment to handle upgrades cleanly and to provide continuity of behavior<br>
across updates within the stable release.  The best way to ensure this<br>
commitment holds true in the snap case is to only include snaps that come<br>
from the stable channel.<br>
<br>
As a side effect, since devmode snaps may not be published to the stable<br>
channel, only strict and classic confined snaps may be included.<br>
<br>
Snaps included in images will be installed referencing a per-Ubuntu-series<br>
branch.  This ensures forwards-compatibility by allowing publishing to this<br>
branch if the mainline of a snap becomes incompatible with a given Ubuntu<br>
release, without requiring up-front maintenance of multiple snap channels.<br>
<br>
= Maintainer =<br>
Packages in the Ubuntu archive arrive there by one of two means: they are<br>
synced from Debian as upstream, or they are uploaded by an Ubuntu developer.<br>
Similarly, to be included in an Ubuntu image, a snap should have as its<br>
publisher either the upstream, or the Ubuntu developer community.  For the<br>
latter, a common team should initially be created in the Snap Store whose<br>
membership is managed by the Developer Membership Board, and kept in sync<br>
with the ubuntu-motu team in Launchpad, with the Ubuntu Security team<br>
additionally included.<br>
<br>
= Source availability =<br>
Unlike Launchpad, the Snap Store allows publishers to upload binary snaps<br>
directly.  While a valuable option in the general case, for snaps installed<br>
by default we should ensure that they build from source in the common<br>
Launchpad environment.  This helps to avoid any increase to the build time<br>
attack surface and provides a known good environment that can be similarly<br>
duplicated if the snaps needs to be rebuilt in the future<br>
<br>
In addition, maintainability of the product demands that the package remains<br>
buildable if no changes have been made to the product’s source.  For .deb<br>
packages, we enforce this by only building against other packages in the<br>
Ubuntu distribution.  Launchpad allows snap builds to pull from third-party<br>
repositories; this means that if those repositories change - or disappear -<br>
the snap may no longer be functionally equivalent when rebuilt, or may not<br>
build at all.  To address this, official Ubuntu snaps should be built only<br>
from source that is available in Launchpad.  Snap recipe builds already<br>
require a launchpad-hosted branch to host the snapcraft.yaml, so it is a<br>
logical extension to require launchpad hosting for the parts also.<br>
<br>
Both of these requirements will likely depend on changes to Launchpad and<br>
possibly the Snap Store, to either support enforcing a different network<br>
policy at build time or to tag builds as compliant or not with this policy.<br>
<br>
= License =<br>
The license policy covering Ubuntu main and restricted is documented at<br>
<a href="https://www.ubuntu.com/about/about-ubuntu/licensing" rel="noreferrer" target="_blank">https://www.ubuntu.com/about/<wbr>about-ubuntu/licensing</a>.  Snaps included by<br>
default in Ubuntu installs should comply with this policy the same as .debs<br>
do.<br>
<br>
Partner-specific images and images for community flavors may include<br>
software that does not meet the Ubuntu main/restricted licensing policy, at<br>
the discretion of those images’ owners, in accordance with existing<br>
practice.<br>
<br>
= Security Support =<br>
Maintenance of the snap must include a clear designation of ownership of<br>
security support.  The process for including a snap in an Ubuntu image<br>
should include a sign-off by the Ubuntu Security Team to confirm that the<br>
security support story is adequate.  The snap confinement model means that<br>
in-depth code reviews should not generally be required for strict-mode snaps<br>
that only require safe interface connections.  Classic mode snaps will<br>
likely require more scrutiny.  The same security checks listed on<br>
<a href="https://wiki.ubuntu.com/UbuntuMainInclusionRequirements" rel="noreferrer" target="_blank">https://wiki.ubuntu.com/<wbr>UbuntuMainInclusionRequirement<wbr>s</a> for debs in main are<br>
relevant to snaps.  The MIR team will be the gatekeeper for the snap<br>
inclusion process as well and coordinate with the Security Team as<br>
appropriate.  As an initial policy, “as appropriate” means every snap to be<br>
installed by default in the Ubuntu image.  This policy can be revisited<br>
after a period of one year.  Owning teams are responsible for security<br>
support in accordance with the Ubuntu Security Team’s guidelines for<br>
security support of Canonical-supported snaps.  A report will be provided by<br>
the Ubuntu engineering team of the high-level CVE status across all the<br>
snaps included in the Ubuntu image.<br>
<br>
The Snap Store ecosystem empowers snap publishers to make their own<br>
decisions about how and whether to backport security fixes to stable<br>
releases vs. updating the package in the channel to a new upstream version.<br>
We accept this model as well for installed-by-default snaps, with the<br>
understanding that the publisher of each of these snaps is expected to<br>
deliver a good experience to their users.<br>
<br>
For cases where the Ubuntu community is the maintainer of the snap rather<br>
than upstream, it is recommended to prefer targeted backports of security<br>
fixes where possible.<br>
<br>
-------------------8<---------<wbr>------------------------------<wbr>----------------<br>
<br>
Thanks,<br>
<span class="HOEnZb"><font color="#888888">--<br>
Steve Langasek                   Give me a lever long enough and a Free OS<br>
Debian Developer                   to set it on, and I can move the world.<br>
Ubuntu Developer                                    <a href="http://www.debian.org/" rel="noreferrer" target="_blank">http://www.debian.org/</a><br>
<a href="mailto:slangasek@ubuntu.com">slangasek@ubuntu.com</a>                                     <a href="mailto:vorlon@debian.org">vorlon@debian.org</a><br>
<br>
[1] <a href="https://snapcraft.io/" rel="noreferrer" target="_blank">https://snapcraft.io/</a><br>
[2] <a href="http://wiki.ubuntu.com/AppReviewBoard/Charter" rel="noreferrer" target="_blank">http://wiki.ubuntu.com/<wbr>AppReviewBoard/Charter</a><br>
</font></span><br>--<br>
ubuntu-devel mailing list<br>
<a href="mailto:ubuntu-devel@lists.ubuntu.com">ubuntu-devel@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel" rel="noreferrer" target="_blank">https://lists.ubuntu.com/<wbr>mailman/listinfo/ubuntu-devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><span style="font-size:small">Ubuntu - "I am what I am because of who we all are"</span><br></div></div>
</div>