Can't mark as executable becuse it's from an untrusted source

I’m using GalliumOS which may be the problem (not appimage) but I’m not sure where to go or who to ask. Every single google search, including this forum, has resulted in failure to run my appimage.

I’m trying to run the Slic3r appimage on my GalliumOS box but I’m not able to switch the executable bit because it’s from an untrusted source. Well I personally trust the source, so I’d like to say “it’s trusted just make it executable” but that option doesn’t seem to exist.

Through the GUI this is what I see, and clicking the checkbox immediately unchecks it.

When I attempt in the terminal:

ls -al Slic3r-1.38.5-prusa3d-linux64-full-201712212010.AppImage 
-rw-r--r-- 1 chris chris 14099888 Jan 14 15:33 Slic3r-1.38.5-prusa3d-linux64-full-201712212010.AppImage

sudo chmod +x Slic3r-1.38.5-prusa3d-linux64-full-201712212010.AppImage

ls -al Slic3r-1.38.5-prusa3d-linux64-full-201712212010.AppImage 
-rw-r--r-- 1 chris chris 14099888 Jan 14 15:33 Slic3r-1.38.5-prusa3d-linux64-full-201712212010.AppImage

As you can see it had no affect.

Any help around this would be amazing, please help me!

Finally figured out the issue. The images were sitting on a FAT32 external drive. I moved them to a valid linux drive and it worked fine!

1 Like

Probably the FAT32 was mounted with the noexec option, preventing any executables on that drive from being executed. In this case, the drive in question needs to be remounted without the noexec option.

Might make sense to check the current directory’s mountpoint for such options, to provide users with a useful error message. @Kikketer if you’re interested in this, feel free to create an issue on GitHub.

What code would be able to do this? Can’t be runtime.c because that code isn’t going to be executed in exactly those cases.

I’d put such functionality into appimaged. Often, I wish appimaged would inform me about problems. So, I’d start with a “notification” abstraction API (i.e., something that calls the right software on the right platform), and then have appimaged notify the user about events, e.g., “Found new AppImage” or "Cannot mark executable: mounted with noexec", etc.

Yes, but how would appimaged know that the user tried to launch an AppImage on a partition that is mounted noexec?

Check the mountpoints (call mount), and compare that with the absolute path of the AppImage.