Skip to content

[FR]: Package the AppImage with the uruntime #163

@Samueru-sama

Description

@Samueru-sama

Description

The uruntime doesn't need FUSE at all to mount the AppImage and has a ton of other useful features.

Who's implementing?

  • I'm willing to implement this feature myself

The problem

The uruntime offers the following advantages over the type2-runtime:

  • Can use namespaces to mount instead of FUSE, and if that is not possible either it falls back to self extract to /tmp and run, so the appimage will always run no matter if FUSE is not present on the system at all.

  • The uruntime can be configured to keep the mountpoint, that means launches are instant. This feature is not enabled by default, to enable it an embedded string in the runtime needs to be edited before running appimagetool: sed -i 's|URUNTIME_MOUNT=[0-9]|URUNTIME_MOUNT=0|' /path/uruntime

  • Supports additional flags like --appimage-portable-share and --appimage-portable-cache.

  • User can set additional env variables by making a $0.env file next to the appimage.

Possible solutions

https://github.com/VHSgunzo/uruntime

In order to use all you need to do is download the uruntime-appimage-squashfs-lite-$ARCH artifact and pass it to appimagetool using the --runtime-file flag.

Additional context

The uruntime also supports DWARFS, which is better than squashfs in every single way (smaller and faster launch times) however this will introduce a breaking change if you switch to the dwarfs version, most notably it will stop working with appimagelauncher. (it will keep working with AM and Gearlever though). Also in this case you cannot use appimagetool and would need to use the uruntime itself, which yeah it can also pack itself without appimagetool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featFeature requestpendingMaintainers have not discussed this yet

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions