Open KurtPfeifle opened 6 years ago
The inspect part needs a conceptual discussion, we don't really know how to build that feature, and I wouldn't expect that too soon.
The extract part is planned to be added within this sprint. I've always supported the idea of being able to extract AppImages without executing them, and now there's a chance to implement this. It's rather simple, all the functionality is available already, we just need to copy the code from the runtime, and add it to the argument parser.
The inspect part needs a conceptual discussion
With "inspect" I was thinking simply of listing (rather than extracting) the files in the AppImage, not more.
I was very surprised when instead of extracting the AppImage appimagetool just displayed "To be implemented" message. When I googled about this, I arrived here. Extracting AppImages without executing them would really useful, hopefully somebody eventually finds time to implement this feature.
@Alexey-Akishin noted. In the meantime, you can run ./Your.AppImage --appimage-extract
. Can you describe your use case? Maybe we already have a workaround solution.
@probonopd we (@azubieta and I) suggested to implement an extract functionality in appimagetool long time ago... you didn't want it. We could quickly build some sort of extraction tool, I guess, if you don't want it to be in appimagetool, although I think appimagetool is the perfect place for it.
Let's say I didn't see it as an urgent priority because we already can do it. What worries me most is that if we implement it, we need to implement it for all types of AppImages. If it's cheap to do because libappimage already has all the functionality, then sure, let's go ahead and do it.
We don't necessarily have to implement that for all types. Who says that? I would appreciate a way to extract stuff built by that appimagetool using appimagetool. For type 1, we have the good ol' AppImageExtract, which still works. Or people just use xorriso -osirrox
directly.
Let's say I didn't see it as an urgent priority because we already can do it.
That's not quite true. Having to make AppImage executable to see its contents is a huge security issue.
Again, and again, and again, type 1 is not deprecated (and never will be, because it's the format all OSes can easily access and Live ISOs come in). It is still one of our supported formats.
Where did you read "deprecated"? All I am saying is we have a tool that solves the issue for type 1, so why pull in dependencies into appimagetool although we just need a solution to extract type 2 AppImages?
AppImageAssistant is deprecated, and has been for a long time. We use libarchive to extract type-1 AppImages. See appimaged.
xorriso
does the same thing, and doesn't pull in unnecessary dependencies...
Don't we have ISO9660 extraction in libappimage yet? Then we should do that...
The point is, AppImageExtract works fine. Why reinvent the wheel?
To have everything neatly in one place.
Not really necessary IMO.
Related: #830.
The
appimagetool --help
utility prints:However, the
inspect
and theextract
features are currently only promises about a bright future, but not implemented. (Unless you count the--list
in as part of inspecting an AppImage...)I've heard arguments to drop even the plans to include functionality for extracting (and possibly inspecting) AppImages. The argument is that type 2 AppImages already support the
--appimage-extract
option, they can "self-extract".Ok, then rename this one to
appimage-builder
or some such...However, I strongly request to have an independent tool to extract and inspect AppImages. These are my reasons:
--help
output.The inspect part of this should make it easy to check for some common problems and shortfalls which AppImage packagers still fall prey of. It should also enable users to collect relevant data points to report to an AppImage packager when they have a problem.