Packaging

Packaging Applications for dahliaOS

Introduction

Packages on dahliaOS make use of the AppImage file format for it's portability and ease of use.

Prerequisites

To develop packages, you will need the following prerequisites on your host system:

  • build-essential
  • clang
  • ninja-build
  • appimagetool

For graphical applications:

To develop graphical applications, you can use these recommended platforms or choose your own:

  • Flutter SDK
  • GTK 3/4
  • QT

Electron applications are supported but may need to be converted to a more efficient standard in the future.

Application Structure

Basic application packages need the following files at minimum:

  • An AppRun file, containing the command used to launch your applications, example below:
#!/bin/bash
exec $APPDIR/demo
  • A .desktop file with the parameters of your application, example below:
[Desktop Entry]
Name=Demo
Exec=demo
Terminal=true
Icon=demo
Type=Application
Categories=Utility;
  • An icon,
  • An executable, this is your application itself

Building an AppImage

Once you have the structure defined above, use:

ARCH=x86_64 appimagetool MyApplication/

to package your application for dahliaOS as an Appimage.

For ARM builds:

If your application needs to be built for ARM, use

ARCH=arm appimagetool MyApplication/

to build a 32 bit ARMHF binary.