unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs as a snap package
@ 2019-05-22  1:01 Alex Murray
  2019-05-22 17:44 ` Paul Eggert
  0 siblings, 1 reply; 3+ messages in thread
From: Alex Murray @ 2019-05-22  1:01 UTC (permalink / raw)
  To: emacs-devel

Hi,

I have recently been working on[1] creating a snap[2] package for Emacs
to be distributed via the snapcraft.io store[3] - similar to
Flatpak+Flathub this provides a cross-distribution mechanism for
delivering applications to end users. First some background on snaps etc
and then onto some specific proposals.

The snap ecosystem includes things like multiple 'channels'[4] for a
package ('edge' for daily "unstable" builds, 'stable' for known stable
releases, and 'candidate' and 'beta' for somewhere in between), plus
automatic updating of applications, rollback on failed upgrades etc.

An automatic build service is also available[5] which can provide
automatic builds on new commits, for a variety of architectures (i386,
amd64, armhf, arm64, s390x & ppc64el) which get automatically published
to the 'edge' channel.

I believe this would create a compelling option for providing official
Emacs builds which work across multiple Linux distributions, and could
also serve to more easily allow testing of release candidates etc via
the 'candidate' channel or similar.

To create a snap of a particlar application, a snap recipe is required -
this is a simple yaml description of the build dependencies etc (similar
to a RPM spec file / Debian rules etc) - the current one which I have
created is based on the build deps etc from the emacs 26.1 package in
Debian as can be seen at [1]. This uses the official emacs-26.2 tarball
to build, but it could instead specify a git tree+branch etc.

Finally, to publish a snap in the snapcraft.io store a Ubuntu One
account[6] is required.

I had initially planned to just publish this myself in the snap store[7]
(and would still be happy to do this and maintain it going forward for
future Emacs releases if required) however, if this could be integrated
and maintained directly within the upstream Emacs git repository _and_
published in the Snap store by an official 'GNU Project' or similar
account I think that would make a more compelling offering.

As such I would be keen to get feedback on the following:

1. Maintain an official snapcraft.yaml recipe for Emacs within the Emacs
git tree across both master and the various release branches which can
be used to build 'official' Emacs snaps directly from the git source
tree.

2. Register an official GNU Project account for the Snap store and use
this to publish these official snap builds.

3. Optionally, use the build.snapcraft.io service to provide automated
builds directly (similar to the current emacs-snapshot PPA[8] which is
widely used).

Thanks,
Alex


[1] https://github.com/alexmurray/emacs-snap/
[2] https://docs.snapcraft.io/
[3] https://snapcraft.io/store
[4] https://docs.snapcraft.io/channels
[5] https://build.snapcraft.io
[6] https://login.ubuntu.com/
[7] https://forum.snapcraft.io/t/classic-confinement-name-request-and-aliases-for-emacs/11367
[8] https://launchpad.net/~ubuntu-elisp/+archive/ubuntu/ppa



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-05-23  1:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-22  1:01 Emacs as a snap package Alex Murray
2019-05-22 17:44 ` Paul Eggert
2019-05-23  1:14   ` Alex Murray

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).