Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Generate AppImage for Linux #15193

Closed
wants to merge 14 commits into from
Closed

Generate AppImage for Linux #15193

wants to merge 14 commits into from

Conversation

probonopd
Copy link

@probonopd probonopd commented Aug 8, 2017

Someone from the atom team please see below, solve the remaining issue and then merge this once it builds "green".

This PR, when merged, will compile this application on Travis CI upon each git push, and upload an AppImage.

It tries to mirror 1:1 what the debian pipeline is doing, using the same binaries. So this should not add additional burden to the Atom team. It is merely a self-mounting filesystem image. Think of it as putting the contents of the deb into a self-mounting ISO.

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

I need help on the following issue: What translates the lowercase --create-debian-package to make if (argv.createDebianPackage) in script/build trigger? I think I have added and am calling --create-appimage but I am currently getting

Skipping creating AppImage. Specify the --create-appimage option to create it.

Any help greatly appreciated.

AppImage developers are on #AppImage on irc.freenode.net.

@ghost
Copy link

ghost commented Aug 8, 2017

Maybe it would be better to provide this as a .zip which has a <AppImage.home> directory added? Otherwise people might lose their settings or inadvertently break those of an existing system-wide install when running it.. (unless the AppImage can somehow be forced to always use a local neighbor folder as $HOME and not only if the user pre-created it)

@probonopd
Copy link
Author

probonopd commented Aug 8, 2017

@Jonast a zip provides no advantage over an AppImage. You can unpack an AppImage very easily by running --appimage-extract. The AppImage is an alternative to a system-wide install (e.g, think of someone without root rights who cannot do a system-wide install at all).

@ghost
Copy link

ghost commented Aug 8, 2017

@probonopd I think I might not have been clear. The .zip should contain the AppImage in packed form but also an (empty) <AppImage>.home folder. Alternatively, I propose that portable Atom should be packaged with a startup script as suggested by you here https://github.com/AppImage/AppImageSpec/issues/4#issuecomment-321091078 which ensures settings are never stored in the regular actual user home.

Edit/TL;DR: I'm simply suggesting that one shouldn't need to create empty folders to ensure that the settings are portable for the portable Atom version, since people are bound to forget.

@probonopd
Copy link
Author

@Jonast please do not put AppImages into other archives such as zip files as it would entirely defeat the purpose of the format.

@ghost
Copy link

ghost commented Aug 8, 2017

I was simply pointing out a potential culprit when the $HOME redirection for portable settings needs to be somehow proactively activated by the user. I don't have any strong opinions on how specifically to solve it

@hultberg
Copy link

hultberg commented Aug 9, 2017

@probonopd Try this for checking --create-appimage:

if (argv.createAppimage) {

There is only uppercase when there is a dash separating words. Like: --create-debian-package: argv.createDebianPackage

@probonopd
Copy link
Author

Thanks @hultberg. Would never have tried this...

@probonopd
Copy link
Author

Can someone take this from here?

arch = 'i386'
} else if (process.arch === 'x64') {
arch = 'amd64'
} else if (process.arch === 'ppc') {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PowerPC is not a supported platform for Atom.

@damieng
Copy link
Contributor

damieng commented Oct 13, 2017

Our position has not changed since #13921

@damieng damieng closed this Oct 13, 2017
@probonopd
Copy link
Author

Why do you think a feature request to "Generate AppImage for Linux" is off-topic @HolyProgrammer?

Your comment really leaves me puzzled:

Was really looking forward to this :(

So why are you marking this as off-topic then, instead of lobbying for it?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants