The runtime is the executable part of every AppImage. It mounts the payload via FUSE and executes the entrypoint.
  • C 83.5%
  • Shell 13%
  • Linker Script 2.2%
  • Dockerfile 0.7%
  • Makefile 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
f321x fedfad51ac Make dependency builds independent of the temporary directory path
libfuse is built with debug info, so the random mktemp path ends up in
libfuse3.a and, through static linking, in the runtime's debug info,
build ID and .gnu_debuglink CRC. Two builds of the same build
environment therefore yield different runtime binaries.

Map the path to a fixed one using -ffile-prefix-map. With this change,
separate builds produce bit-identical runtime and .debug files (tested
for x86_64 and i686).

Refs #133
2026-10-19 22:35:22 +02:00
.github Bump actions/checkout from 5 to 7 2026-06-24 01:21:08 +02:00
patches/libfuse Make FUSE require $FUSERMOUNT_PROG in env to be set 2024-11-24 19:09:04 +01:00
scripts Make dependency builds independent of the temporary directory path 2026-10-19 22:35:22 +02:00
src/runtime Create directories for extraction with mode 0700 2026-09-28 20:13:58 +02:00
.gitignore Ignore built runtime 2024-12-08 19:01:03 +01:00
BUILD.md Improve build docs 2024-12-08 18:12:42 +01:00
LICENSE Third party libraries llicenses 2023-04-16 14:06:21 +02:00
README.md Improve build docs 2024-12-08 18:12:42 +01:00
signing-pubkey.asc Sign builds with GnuPG (#26) 2024-05-05 21:44:53 +02:00
Vagrantfile Use vagrant to create reproducible build environment 2024-08-17 11:43:28 +02:00

type2-runtime GitHub Actions

The runtime is the executable part of every AppImage. It mounts the payload via FUSE and executes the entrypoint.

This repository builds a statically linked runtime for type-2 AppImages in a Alpine Linux chroot with musl libc.

Since the runtime is linked statically, libfuse2 is no longer required on the target system.

Notes for users

As an AppImage user, you do not need this repository, as the AppImage runtime is embedded into every AppImage.

Notes for developers

Please note: This repository is meant to be extremely simple.

  • Do NOT add additional external dependencies or files. Everything shall be implemented in one file. runtime.c
  • Do NOT add a complicated "build system" (like autotools, CMake,...) other than the existing simple Makefile and bash

Binaries are provided on GitHub Releases.

Please see BUILD.md if you want to build the runtime yourself.

Signing

Release builds are signed automatically using GnuPG. The corresponding public key can be found in the file signing-pubkey.asc.