Skip to content

Bundling other AppImages corrupts them #301

@Korne127

Description

@Korne127

When creating an AppDir, you can bundle other executables with the -executable flag, e.g. if your application calls a third-party CLI tool.

However, if you want to bundle another AppImage (and call it from your application), Linuxdeploy will corrupt the application when copying it into the AppDir.
If you try to call the copied AppImage, this will result in the following error:

This doesn't look like a squashfs image.
Cannot mount AppImage, please check your FUSE setup.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
open dir error: No such file or directory

This is probably due to the deployExecutable function in appdir.cpp (lines 511 - 528) in which the executable is changed to use the bundled libraries. While this works for normal executables, apparently it corrupts other AppImages.

It's easy to work around this by simply manually copying the AppImage, but then you can't automatically use the AppImage output plugin and have to use other tools to transform the AppDir into an AppImage.
Linuxdeploy should detect if the given executable is an AppImage and not modify it in that situation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions