Creating Component: AppImage
This a part of the How-to: Create Components Guide
We are going to use CEMU as an example and remember that each AppImage is different from another.
Note:
This assumes you have read Creating Component: Guide.
Step 0: Make a testing directory
- Have a local copy of RetroDECK Cooker installed.
- Create a components directory for example:
~/retrodeck_dev/components/
Step 1: Download the AppImage from Source
- Download the file from Github/Website or where every you find it.
- Put it into
retrodeck_dev/components/. - Create a directory in
retrodeck_dev/components/<component_name>that matches the name of the component you want to add.
Example:
- Put it into
retrodeck_dev/components/Cemu-2.6-x86_64.AppImage. - Create a directory called
retrodeck_dev/components/cemu.
Step 2: Permissions & Extract
Open a terminal window in retrodeck_dev/components/
Set Permissions:
Extract it:
Example:
Step 3: New directory and move.
A new directory called retrodeck_dev/components/squashfs-root has been created.
The structure is different in each AppImage.
AppRun exists in every AppImage and it can be either a:
- Script (that launches the binary).
- Binary (separate but launches the main binary).
- Symlink (to the main binary).
Other standard files such as: icons, .desktop also exist in every AppImage.
Most follow these structures (with additional directorys and files depending on the app):
AppImage V2:
- squashfs-root
- AppRun (a script, binary or symlink)
- usr
- bin (contains the binary)
- lib
- share
AppImage V3:
Examples of AppImage Structures
Cemu
Eden
squashfs-root (links to AppDir)
AppDir
- bin (contains the binary)
- lib (link)
- etc
- share
- shared
Azahar
squashfs-root
- AppRun
- apprun-hooks
- checkrt
- usr
- bin (contains the binary)
- lib
- share
- plugins
- translations
Mudlet
squashfs-root (contains the binary)
- AppRun
- <translation files>
- doc (licences)
- lcf
- lib
- mudlet (binary)
- mudlet-lua
- plugins
- translations
ES-DE:
squashfs-root
- AppRun (a script, binary or symlink)
- usr
- bin (contains the binary)
- lib
- share
OpenGOAL:
Step 5: Testing
During this step, identify and document the following:
- Binary
- Dependencies
- Libraries
- Other important files
Testing Procedure
- Launch the binary from the RetroDECK Flatpak shell:
flatpak run --command=bash net.retrodeck.retrodeck --debug - Launch the application normally within your host OS environment (outside RetroDECK).
- Document the results in detail.
While testing, record:
- Fully functional features
- Partially functional features
- Non-functional components
- Errors, warnings, crashes, or unexpected behavior
Issue resolution will be handled later during the Alchemist and Hunter step.
Example Considerations
- Are all expected features functioning correctly?
- Does the application create directories or files in user locations (
~/Documents,~/.local,~/.config,~/, or other paths)? - Does the application report any missing libraries or dependencies, both outside and inside the Flatpak environment?
- Does it crash at startup or during normal operation, both outside and inside the Flatpak environment?
Step 6: Creating Component: Ingredient Files
You now will need to move on to the next step:
Read more here: Creating Component: Ingredient Files Guide