Electron-builder: [Linux AppImage] support type 2 image format

Created on 17 Oct 2016  Â·  6Comments  Â·  Source: electron-userland/electron-builder

Just a heads-up that we are working on the type 2 image format for AppImage. It will have a number of advantages:

  • Uses more mordern, more flexible squashfs rather than outdated zisofs
  • Optionally, can use different compressors
  • Optionally, can embed digital signatures in an ELF section inside the AppImage
  • Does not require fixed offsets
  • Stores optional update information in an ELF section
  • Is more future-proof

Since electron-builder is an important stakeholder in the AppImage ecosystem, some aspects of the type 2 image format were specifically designed with tools like electron-builder in mind that might want to use their own tools (e.g., mksquashfs, similar to xorriso) rather than the ones provided by AppImageKit, in fact this has been made super simple:

mksquashfs Your.AppDir Your.squashfs -root-owned -noappend
cat runtime >> Your.AppImage
cat Your.squashfs >> Your.AppImage
chmod a+x Your.AppImage

Note that there are no fixed offsets to observe, unlike with type 1 AppImages.

If you want to play with it, here are the tools (will move into AppImageKit when ready):
https://github.com/probonopd/appimagetool

Would electron-builder consider to switch to the type 2 image format? If no, what would need to be changed?

AppImage feature

Most helpful comment

:+1:

cc @TheAssassin

All 6 comments

The only important reason why electron-builder doesn't use original tool to build AppImage — mappings.

mksquashfs also supports several source directories. If you don't want to complicate appimagetool — I realized, that there is a simple solution — copy using hard links (cp -al). So, I will try to use appimagetool soon.

Will be cool if you can provide appimagetool builds for x64/x32/arm, or at least, docker images to build :) (as far I see, runtime.c is a part of tool).

super simple

I see that now signing is supported, so, it will be better to use original tool to build AppImage. But — thanks that AppImage still can be built using standard tools.

mksquashfs also supports several source directories.

I don't think it lets you combine arbitrary directories. Specifically, you end up with only directories and no files in the root directory. Or am I missing something?

Will be cool if you can provide appimagetool builds for x64/x32/arm

Yes, I am looking into building on x64/x32 CentOS 6 at the moment.

Hello.
I was wondering what the status of this is, it appears electron builder still only supports Type 1, which prevents issues when trying to extract and run inside docker containers, where the https://github.com/AppImage/AppImageKit/wiki/FUSE documentation seems to show that Type 2 Release 9 its a lot easier?

Status — overloaded :( Will be done in several weeks as part of Linux auto update.

:+1:

cc @TheAssassin

Was this page helpful?
0 / 5 - 0 ratings

Related issues

NPellet picture NPellet  Â·  3Comments

iklemm picture iklemm  Â·  3Comments

JohnWeisz picture JohnWeisz  Â·  3Comments

leo picture leo  Â·  3Comments

ccorcos picture ccorcos  Â·  3Comments