-
-
Notifications
You must be signed in to change notification settings - Fork 808
Description
I propose to build and ship an AppImage for gef. Building an AppImage would have, among others, these advantages:
- Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
- One app = one file = super simple for users: just download one AppImage file, make it executable, and run
- No unpacking or installation necessary
- No root needed
- No system libraries changed
- Works out of the box, no installation of runtimes needed
- Optional desktop integration
- Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
- Can optionally sign your AppImages (inside the file) using gpg2
- Works on Live ISOs
- Can use the same AppImages when dual-booting multiple distributions
- Can be listed in the AppImageHub central directory of available AppImages
- Can double as a self-extracting compressed archive with the
--appimage-extractparameter
Here is an overview of projects that are already distributing upstream-provided, official AppImages.
AppImages could be built both for releases as well as for the main branch (so-called continuous release scheme). Automating AppImage building is relatively simple and straightforward. You can bundle all tools you need (e.g., a suitable up-to-date GDB version). This way, this project will be a lot easier to set up and use: you will just have to call ./gef-x86_64.AppImage.
The only tricky part here is bundling Python along with gdb. But I could imagine that if you let linuxdeploy-plugin-{python,conda} set up a Python environment, then build gdb against it, it should work. I've done that before.
I've successfully implemented this for pwndbg, see pwndbg/pwndbg#891 for details. I'll file a PR there soon. The AppImages I built so far for pwndbg have been very useful, and make working with the tool a lot easier. There's virtually no setup required any more.