* Any interest in making Emacs available on Flathub? @ 2018-04-18 17:55 Joonas Sarajärvi 2018-04-18 19:31 ` Paul Eggert ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Joonas Sarajärvi @ 2018-04-18 17:55 UTC (permalink / raw) To: emacs-devel Hi, TLDR: I would like to assist with making Emacs available at Flathub. Some packagings in this format exist already. Now the rest of this is a bit wordy because I suspect that this format is a bit unfamiliar to many of the subscribers. So here it goes... I would like to have GNU Emacs available in the Flatpak [1] format. I will not be surprised if someone prefers to receive their prebuilt copy of GNU Emacs in some other format, but for me it would be convenient to be able to have the exact same Emacs build on various computers I use. Flatpak is one way of achieving this without having to install the exact same GNU/Linux distribution on all the computers. To get going with this, I have written a simple flatpak packaging [2] of Emacs, and based on a few days of testing it seems to be working pretty nicely for my needs. I do not think I have all the possible features enabled, though, because at this point I did not want to bundle extra libraries beyond those provided by the org.freedesktop.Sdk runtime that is used both for building emacs and running it. Then in addition to the flatpak build that I wrote, I found at least one other at [3][4]. This packaging somewhat differs in some details, especially in how it uses different runtime and how it adds some bundled code to expand the functionality. Anyway, I think it would make it easier to find Emacs in flatpak format if it was available on a publicly available repository. Similarly to how anyone can set up e.g. their own deb package repository, it is pretty easy to host flatpak repositories as well. There is however one particularly popular repository called Flathub [5] which hosts many fairly well known programs. Flathub is intended to be run so that ideally upstream projects provide the packagings, choosing e.g. a build configuration that best suits their particular program. They seem also open [6] to having "outsiders" provide such packagings in case upstream prefers to not interact with flatpak based software distribution. Now I think I can basically submit GNU Emacs to Flathub myself, but I will not if someone with longer involvement with Emacs maintenance is interested in working on this instead of me. I would not expect it to be much work, especially if library bundling it kept to minimum. Then most of the necessary maintenance work would coincide with new Emacs releases becoming available. If someone wants to take this task, I'll be happy to help if I can. Otherwise, are there objections to me submitting the packaging to Flathub on my own? My understanding is that Flathub will transfer ownership to Emacs as an upstream project also later if Emacs as a project changes its mind on this. Thanks, - Joonas [1] https://flatpak.org/ [2] https://bitbucket.org/muep/org.gnu.emacs/ [3] https://github.com/zoglesby/emacs.flatpak [4] https://zach.oglesby.co/pages/flatpak-repo [5] https://flathub.org/ [6] https://github.com/flathub/flathub/wiki/App-Submission ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-18 17:55 Any interest in making Emacs available on Flathub? Joonas Sarajärvi @ 2018-04-18 19:31 ` Paul Eggert 2018-04-19 5:53 ` Joonas Sarajärvi 2018-04-19 6:10 ` Richard Stallman 2018-05-20 7:26 ` Joonas Sarajärvi 2 siblings, 1 reply; 9+ messages in thread From: Paul Eggert @ 2018-04-18 19:31 UTC (permalink / raw) To: Joonas Sarajärvi, emacs-devel It'd be helpful to have Emacs easily distributable via Flatpak. Since I'm not a Flatpak expert, could you help fill us in on what's needed? In your draft <https://bitbucket.org/muep/org.gnu.emacs/> I see three files: * A patch to src/xterm.c that is installed on Savannah, so this is done already (in the next Emacs version, anyway). * Adding info about release 25.3 to etc/emacs.appdata.xml. Should this info be all the Emacs releases (see etc/HISTORY) or just the releases tuned for Flatpak? If so, presumably it should start with the first release that works well with Flatpak. * A file org.gnu.Emacs.json, which I suppose we could copy to etc/org.gnu.Emacs.json in the master Emacs distribution. Or perhaps there's another better place for it? How should this file evolve as Emacs makes further releases? Presumably each release should clear out the patches from the "modules" section? A few more questions: * I notice that your org.gnu.Emacs.json file differs from that of others. Is it important that this file be reasonably standard for everybody's convenience, or is it merely a template for people to configure? Is it something that "make" should construct, when you're building Emacs? That sort of thing. * Would it make sense for the top-level Emacs makefile to have a "flatpak" action, so that "make flatpak" does something for Flatpak that "make install" does for a native installation? If so, what should "make flatpak" do? * If we want to also support AppImage, Snap, etc., how should we arrange for this in an economical and intuitive way in the source? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-18 19:31 ` Paul Eggert @ 2018-04-19 5:53 ` Joonas Sarajärvi 2018-04-19 22:42 ` Paul Eggert 0 siblings, 1 reply; 9+ messages in thread From: Joonas Sarajärvi @ 2018-04-19 5:53 UTC (permalink / raw) To: emacs-devel (Sorry Paul, I first sent this only to you but intended to respond to list so here it goes again) Paul Eggert kirjoitti 18.04.2018 klo 22:31: > It'd be helpful to have Emacs easily distributable via Flatpak. Since > I'm not a Flatpak expert, could you help fill us in on what's needed? In > your draft <https://bitbucket.org/muep/org.gnu.emacs/> I see three files: > > * A patch to src/xterm.c that is installed on Savannah, so this is done > already (in the next Emacs version, anyway). > > * Adding info about release 25.3 to etc/emacs.appdata.xml. Should this > info be all the Emacs releases (see etc/HISTORY) or just the releases > tuned for Flatpak? If so, presumably it should start with the first > release that works well with Flatpak. > > * A file org.gnu.Emacs.json, which I suppose we could copy to > etc/org.gnu.Emacs.json in the master Emacs distribution. Or perhaps > there's another better place for it? How should this file evolve as > Emacs makes further releases? Presumably each release should clear out > the patches from the "modules" section? > Just to get an example of what this would finally look like, the setup for LibreOffice [1] looks quite typical. There is a separate git repository with the json file that describes the application to a tool called flatpak-builder, and then some patches. Likely when Emacs gets submitted by someone into Flathub, it would have a similar repository at [2] but currently this does not exist. The Flathub project then runs a build service [3] that detects changes in these repositories and builds and publishes the user-installable flatpak. Ideally all of these patches would get some corresponding changes in the master emacs distribution, making the separate patches unnecessary. On new Emacs releases, the only change certainly required in the flatpak packaging is to update the source URL and the sha256 checksum of the source archive in the json. Patches (if any) may need to be dropped or rebased against updated GNU Emacs source. I am not sure if the org.gnu.Emacs.json should be copied into the Emacs master distribution, but I suppose it is up to the GNU Emacs maintainers. Basically it is just part of choosing what kind of workflow Emacs wants to have on maintenance of this metadata file. As long as it is only a few "outsiders" like me working on it, it might be easier to keep it just in the flathub repository. We can easily keep it so that Emacs is able to later decide that the canonical source of that file is in the Emacs master repository and the one in flathub repository is just copied there when updates need to be released. > A few more questions: > > * I notice that your org.gnu.Emacs.json file differs from that of > others. Is it important that this file be reasonably standard for > everybody's convenience, or is it merely a template for people to > configure? Is it something that "make" should construct, when you're > building Emacs? That sort of thing. > My impression is that this could easily just be hand-written and kept under version control. The file is pretty short, so I'd expect that it is not very sensitive to style issues either. It could be also generated from a template, so that some program fills in the version number and possibly some other details, but at the moment I do not see much need for that. > * Would it make sense for the top-level Emacs makefile to have a > "flatpak" action, so that "make flatpak" does something for Flatpak that > "make install" does for a native installation? If so, what should "make > flatpak" do? > In my opinion, this would be unnecessary. Flatpak-builder already does adaptation in the other direction, so that it knows how e.g. an usual configure-make-make-install -style installation is done. However, I think such a mechanism could be done if desired. If this kind of command was done, I think it could run something like: flatpak-builder --install --user path/to/build/directory path/to/org.gnu.Emacs.json I am not sure about where everyone would want to have their temporary build directory, but it could be something along those lines. > * If we want to also support AppImage, Snap, etc., how should we arrange > for this in an economical and intuitive way in the source? Again not sure, but I think it is good to keep them clearly separated from application source. So right now I think it makes sense for them to even be outside the master repository, but also in case they get included, they should initially be something that is only used in case someone makes a conscious decision to use them. So maybe have some top-level directory and then under that a directory for flatpak, another for appimage and so on? I am not familiar at all with what kind of files e.g. snap or appimage require, but I'd imagine that there is something that is analogous to the flatpak json file or rpm .spec file or suchlike. Does Emacs currently include packaging setups e.g. for GNU/Linux distributions? I tried looking for them for a bit but did not find any. [1] https://github.com/flathub/org.libreoffice.LibreOffice [2] https://github.com/flathub/org.gnu.Emacs [3] https://flathub.org/builds ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-19 5:53 ` Joonas Sarajärvi @ 2018-04-19 22:42 ` Paul Eggert 0 siblings, 0 replies; 9+ messages in thread From: Paul Eggert @ 2018-04-19 22:42 UTC (permalink / raw) To: Joonas Sarajärvi, emacs-devel On 04/18/2018 10:53 PM, Joonas Sarajärvi wrote: > right now I think it makes sense for them to even be outside the > master repository Yes, it's sounding like the best way to think about this is that Emacs can be distributed via Flathub in a way that's similar to how it's already distributed as part of Fedora, Ubuntu, etc. That is, the Flatpak distribution is downstream from Emacs master, and Emacs master mostly doesn't have to worry about it and the people maintaining the Flathub repository can deal with any Flatpak-specific issues. At worst we might need to make a few compatibility changes to Emacs that simplifies putting it under Flatpak, but we shouldn't need to add actions to the main Emacs Makefiles etc. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-18 17:55 Any interest in making Emacs available on Flathub? Joonas Sarajärvi 2018-04-18 19:31 ` Paul Eggert @ 2018-04-19 6:10 ` Richard Stallman 2018-04-19 7:06 ` Joonas Sarajärvi 2018-05-20 7:26 ` Joonas Sarajärvi 2 siblings, 1 reply; 9+ messages in thread From: Richard Stallman @ 2018-04-19 6:10 UTC (permalink / raw) To: Joonas Sarajärvi; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I would like to have GNU Emacs available in the Flatpak [1] format. We need to think about whether it raises any ethical issues. What systems can a Flatpak package run on? What software is needed to make a Flatpak? Is any of it nonfree? What software is needed to run one? Is any of it nonfree? > To get going with this, I have written a simple flatpak packaging [2] of > Emacs, and based on a few days of testing it seems to be working pretty > nicely for my needs. If you've done this with solely free software, that answers the first two questions in a good way. -- Dr Richard Stallman President, Free Software Foundation (https://gnu.org, https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) Skype: No way! See https://stallman.org/skype.html. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-19 6:10 ` Richard Stallman @ 2018-04-19 7:06 ` Joonas Sarajärvi 2018-04-20 3:53 ` Richard Stallman 0 siblings, 1 reply; 9+ messages in thread From: Joonas Sarajärvi @ 2018-04-19 7:06 UTC (permalink / raw) To: rms; +Cc: emacs-devel 2018-04-19 9:10 GMT+03:00 Richard Stallman <rms@gnu.org>: > > I would like to have GNU Emacs available in the Flatpak [1] format. > > We need to think about whether it raises any ethical issues. > > What systems can a Flatpak package run on? A flatpak package runs on any GNU/Linux system that has the flatpak tool installed. As earlier there was a similar discussion about Docker, I'll mention that this works very similarly to how a Docker container is expected to run on any GNU/Linux system that has the Docker tools. > What software is needed to make a Flatpak? Is any of it nonfree? The low-level details of packing things up are included in the flatpak tool and typically also the flatpak-builder tool is used. As far as I know, both are free software licensed under LGPL 2.1. > What software is needed to run one? Is any of it nonfree? Required is the flatpak tool, which to my knowledge is free software under LGPL 2.1. As far as I know, these tools are currently only able to run on GNU systems that use Linux as the kernel. Then in addition to flatpak and flatpak-builder, the application wlil usually get built against a runtime which is basically a tree of files that looks like a GNU/Linux system except that it lacks the kernel. Also when the application is run, it is placed into a mount namespace that sees this runtime in the /usr directory. Flatpak does not require any specific runtime to be used and each application can choose a different one as needed, but there are a few popular ones. The flatpak that I wrote for Emacs uses the org.freedesktop.Sdk runtime which to my knowledge is entirely free software. It includes a fairly large collection of libraries and also e.g. GCC and git and other tools. As far as I know, the Emacs flatpak that I wrote does not require proprietary software to be built or used. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-19 7:06 ` Joonas Sarajärvi @ 2018-04-20 3:53 ` Richard Stallman 2018-04-20 18:39 ` Joonas Sarajärvi 0 siblings, 1 reply; 9+ messages in thread From: Richard Stallman @ 2018-04-20 3:53 UTC (permalink / raw) To: Joonas Sarajärvi; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] It sounds like Flatpak poses no free software ethical issues. > The flatpak > that I wrote for Emacs uses the org.freedesktop.Sdk runtime which to > my knowledge is entirely free software. "To my knowledge" means "as far as I know." Is that what you mean to say? If so, would you please verify that this runtime is indeed entirely made of free software? I would expect that is the case, but let's act based on knowledge rather than guessing. -- Dr Richard Stallman President, Free Software Foundation (https://gnu.org, https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) Skype: No way! See https://stallman.org/skype.html. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-20 3:53 ` Richard Stallman @ 2018-04-20 18:39 ` Joonas Sarajärvi 0 siblings, 0 replies; 9+ messages in thread From: Joonas Sarajärvi @ 2018-04-20 18:39 UTC (permalink / raw) To: rms, emacs-devel Richard Stallman kirjoitti 20.04.2018 klo 06:53: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > It sounds like Flatpak poses no free software ethical issues. > > > The flatpak > > that I wrote for Emacs uses the org.freedesktop.Sdk runtime which to > > my knowledge is entirely free software. > > "To my knowledge" means "as far as I know." Is that what you mean to > say? > > If so, would you please verify that this runtime is indeed entirely > made of free software? I would expect that is the case, but let's > act based on knowledge rather than guessing. > Yes, this was based on somewhat vague knowledge and a bit of hopeful assumption. But after some more looking into it, things still seem good to me. I got into contact with developers of Flatpak at the #flatpak channel on the Freenode IRC network. According to them, only free software should be included in the runtime. This is not very visibly documented anywhere, but I was suggested to file them a request to add also such documentation. The runtime includes a description of names and versions of software that is included. This comes in two separate parts [1,2] because of how the runtime is built in two phases, with latter phase adding software on top of the results from the first phase. I have browsed through these a few times and did not notice anything that would be a problem. Mostly the content looks like a typical small GNU/Linux distribution. However, the runtime does not include the Linux kernel or firmware that is copied into devices by some of the drivers that Linux includes. Thus the relatively common issue with GNU/Linux distributions including proprietary firmware should be absent. [1] https://gist.githubusercontent.com/muep/519ae7c718c80a8f6d83ff248f265dea/raw/f345a81067cd25a76959cef50ae14d2960e797e2/manifest.base [2] https://gist.githubusercontent.com/muep/17e52495f8eaee488c632fb962c124a1/raw/b9333c76a9d263d6d0623a8809a328e34315d6b1/manifest.json ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Any interest in making Emacs available on Flathub? 2018-04-18 17:55 Any interest in making Emacs available on Flathub? Joonas Sarajärvi 2018-04-18 19:31 ` Paul Eggert 2018-04-19 6:10 ` Richard Stallman @ 2018-05-20 7:26 ` Joonas Sarajärvi 2 siblings, 0 replies; 9+ messages in thread From: Joonas Sarajärvi @ 2018-05-20 7:26 UTC (permalink / raw) To: emacs-devel Hi, Just to let you know, a pre-built copy of GNU Emacs is now available from the Flathub service [1]. Instructions for making use of this mechanism of distribution are available on that site. The binaries and their corresponding source code are provided by the Flathub organization, based on the git repository at [2]. This git repository is currently maintained by me and Zach Oglesby. I think we are well resourced to keep Flathub offering a copy of Emacs that is up to date and works well, but it would still be great to have someone with a longer track record in Emacs development as collaborator. When this distribution format was discussed earlier, the main concern seemed to be about making Emacs accidentally depend on proprietary software so I'll quickly address this. Flatpak packaging tools are free software under LGPL-2.1 and available from package repositories of many popular GNU/Linux distributions Emacs flatpak requires the org.freedesktop.Sdk runtime which is basically a GNU system compiled for Linux kernel, consisting of popular libraries like glibc, gtk+ and tools like the GNU compiler collection. The runtime includes a large set of software under various free software licenses. It is not yet well documented but based on discussion with its maintainers, no proprietary software is intentionally included in it. Please let us know if there are problems - Joonas [1] https://flathub.org/apps/details/org.gnu.emacs [2] https://github.com/flathub/org.gnu.emacs ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-05-20 7:26 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-04-18 17:55 Any interest in making Emacs available on Flathub? Joonas Sarajärvi 2018-04-18 19:31 ` Paul Eggert 2018-04-19 5:53 ` Joonas Sarajärvi 2018-04-19 22:42 ` Paul Eggert 2018-04-19 6:10 ` Richard Stallman 2018-04-19 7:06 ` Joonas Sarajärvi 2018-04-20 3:53 ` Richard Stallman 2018-04-20 18:39 ` Joonas Sarajärvi 2018-05-20 7:26 ` Joonas Sarajärvi
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).