Skip to content

Creating Component: Binary Testing

Appimage logo

This a part of the How-to: Create Components Guide

Note:

This assumes you have read Creating Component: Guide.


Downloading Binaries

Binaries may be distributed through multiple sources on the internet, including GitHub, itch.io, GitLab, SourceForge and personal websites.

Example: Ironwail

Ironwail releases are available on GitHub:

https://github.com/andrei-drexler/ironwail/releases

A Linux x64 release may be provided as:

ironwail-X.X.X-linux-x64.tar.gz

After extracting the archive, the application files may resemble:

ironwail/
โ”œโ”€โ”€ ironwail
โ”œโ”€โ”€ ironwail.pak
โ”œโ”€โ”€ LICENSE.txt
โ”œโ”€โ”€ Quakespasm.html
โ”œโ”€โ”€ Quakespasm-Music.txt
โ””โ”€โ”€ Quakespasm.txt

Building from Source

Prerequisite: Check the Internet!

Before building from source, check whether a prebuilt binary is already available online. In many cases, the application may already be distributed in a usable format, allowing you to avoid compiling it yourself.

Look for existing builds such as:

  • Flatpak
  • AppImage
  • Standalone binaries

Always verify that the source is trustworthy and that the build corresponds to the genuine application and an appropriate version. Prefer official project releases and reputable build systems where possible.

Do not assume that an unofficial build is safe simply because it is available online. Verify the source, project ownership, version, and build provenance before using it.


Building Is Different for Every Application

Every project can use different build systems, compilation methods, dependencies and build requirements.

Always follow the build instructions provided by the project and identify the dependencies required to produce the binary.


Example: Building SDL2TRS

See the official SDL2TRS build instructions.

Set up a Debian- or Ubuntu-based build environment and install the required dependencies:

sudo apt install libsdl2-dev libreadline-dev

Build with CMake

mkdir -p build

cd build

cmake ..

cmake --build .

The resulting SDL2TRS binary will be created in the build/ directory.


Preparing Testing of the Binary

During this stage, identify and document the files required by the application:

  • Binary
  • Dependencies
  • Libraries
  • Other important files

Some applications are distributed or built as a single binary, such as SDL2TRS.

At the opposite end of the spectrum is ZEsarUX, which requires a much larger set of supporting files. These include .txt documents, .md markdown files, directories, binaries and other resources required for its full functionality. This is because ZEsarUX effectively simulates an entire fake operating-system environment, with these files forming part of that simulated environment.


Create the Component Directory

Create a directory for the component under the RetroDECK Flatpak's component directory.

For example, for SDL2TRS:

~/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files/retrodeck/components/sdl2trs

In general:

~/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files/retrodeck/components/<component_name>


Copy the Application Files

Copy the complete application file structure into the component directory.

    files/
    โ””โ”€โ”€ sdl2trs

Copy the structure into:

~/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files/retrodeck/components/<component_name>/

For example:

~/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files/retrodeck/components/sdl2trs/

The resulting structure should resemble:

SDL2TRS

    components/
    โ””โ”€โ”€ sdl2trs/
        โ””โ”€โ”€ sdl2trs

Ironwail

    components/
    โ””โ”€โ”€ ironwail/
        โ”œโ”€โ”€ ironwail
        โ”œโ”€โ”€ ironwail.pak
        โ”œโ”€โ”€ LICENSE.txt
        โ”œโ”€โ”€ Quakespasm.html
        โ”œโ”€โ”€ Quakespasm-Music.txt
        โ””โ”€โ”€ Quakespasm.txt

ZEsarUX

    components/
    โ””โ”€โ”€ zexarus/
        โ”œโ”€โ”€ 128.rom
        โ”œโ”€โ”€ 128s.rom
        โ”œโ”€โ”€ 48.rom
        โ”œโ”€โ”€ 48es.rom
        โ”œโ”€โ”€ 80-lec.rom
        โ”œโ”€โ”€ ACKNOWLEDGEMENTS
        โ”œโ”€โ”€ ALTERNATEROMS
        โ”œโ”€โ”€ alternate_roms/
        โ”œโ”€โ”€ Cambios
        โ”œโ”€โ”€ Changelog
        โ”œโ”€โ”€ copiers/
        โ”œโ”€โ”€ docs/
        โ”œโ”€โ”€ DONATE
        โ”œโ”€โ”€ DONORS
        โ”œโ”€โ”€ FEATURES
        โ”œโ”€โ”€ FEATURES_es
        โ”œโ”€โ”€ HISTORY
        โ”œโ”€โ”€ INSTALL
        โ”œโ”€โ”€ INSTALLWINDOWS
        โ”œโ”€โ”€ LICENSE
        โ”œโ”€โ”€ LICENSES_info
        โ”œโ”€โ”€ my_soft/
        โ”œโ”€โ”€ README
        โ”œโ”€โ”€ TODO
        โ”œโ”€โ”€ TODO_accessibility
        โ”œโ”€โ”€ TODO_audio
        โ”œโ”€โ”€ TODO_core_cpu
        โ”œโ”€โ”€ TODO_devices
        โ”œโ”€โ”€ TODO_generic
        โ”œโ”€โ”€ TODO_machines
        โ”œโ”€โ”€ TODO_menu
        โ”œโ”€โ”€ TODO_next_version
        โ”œโ”€โ”€ TODO_os
        โ”œโ”€โ”€ TODO_snapshots
        โ”œโ”€โ”€ TODO_tape
        โ”œโ”€โ”€ TODO_this_version
        โ”œโ”€โ”€ TODO_video
        โ”œโ”€โ”€ TODO_ZENG
        โ”œโ”€โ”€ TODO_ZRCP_network
        โ”œโ”€โ”€ zx80.rom
        โ”œโ”€โ”€ zx81.rom
        โ”œโ”€โ”€ zxuno.flash
        โ”œโ”€โ”€ zxuno_bootloader.rom
        โ”œโ”€โ”€ zxevo_baseconf.rom
        โ”œโ”€โ”€ zxevo_tsconf.rom
        โ”œโ”€โ”€ Z88OZ45.rom
        โ”œโ”€โ”€ Z88OZ46.rom
        โ”œโ”€โ”€ Z88OZ47.rom
        โ”œโ”€โ”€ Z88OZ431.rom
        โ”œโ”€โ”€ Z88UK220.rom
        โ”œโ”€โ”€ Z88UK300.rom
        โ”œโ”€โ”€ Z88UK400.rom
        โ”œโ”€โ”€ zesarux
        โ”œโ”€โ”€ zesarux.mp3
        โ”œโ”€โ”€ zesarux.odt
        โ”œโ”€โ”€ zesarux.pdf
        โ””โ”€โ”€ zesarux.xcf

Testing Guide

Start testing:

Read more: Component Testing Guide