- Releases now include Midi-Harbor-<version>-<x86_64|aarch64>.AppImage, built from the same binary as the packages and listed in checksums.txt, for distributions without a .deb or .rpm. Opened with no arguments it shows the window, and the daemon it registers runs under the systemd user unit like a package install. - service install run from an AppImage registers the .AppImage file instead of the executable inside the runtime's temporary mount, which is gone once the process exits. The file is used only when the running executable is inside APPDIR, so a program started from another AppImage, whose APPIMAGE it inherits, still registers itself. - The AppImage carries only the Avahi client libraries from the Debian 12 sysroot, with their LGPL-2.1 license, found through the binary's RUNPATH rather than LD_LIBRARY_PATH; glibc 2.35 or newer, ALSA, D-Bus and libxkbcommon come from the host, as for the packages. - Its AppRun starts the binary as midi-harbor, so on X11 the window's class matches the desktop entry instead of the AppImage's file name. - Building it needs the cross image's new patchelf, file, appimagetool 1.9.1 and type2 runtime 20251108, pinned by checksum, and a sysroot rebuilt to carry Avahi's license; the script stops and names make build-sysroot when that license is missing.
25 lines
1.1 KiB
Docker
25 lines
1.1 KiB
Docker
# The libraries Midi Harbor links against on Linux, for cross-compiling it. Built once per
|
|
# architecture by build.sh, and trimmed to headers, libraries and pkg-config files.
|
|
FROM debian:bookworm AS debian
|
|
|
|
RUN apt-get update; \
|
|
apt-get --no-install-recommends -y -q install \
|
|
libasound2-dev \
|
|
libavahi-client-dev \
|
|
libdbus-1-dev \
|
|
libudev-dev \
|
|
libwayland-dev \
|
|
libxkbcommon-dev
|
|
|
|
# Make every library symlink relative, so it still resolves once the tree is mounted elsewhere.
|
|
RUN find /usr/lib -type l -lname '/*' | while read -r link; do \
|
|
target=$(readlink "$link"); \
|
|
ln -sfn "$(realpath -m --relative-to="$(dirname "$link")" "$target")" "$link"; \
|
|
done
|
|
|
|
FROM scratch
|
|
COPY --from=debian /usr/include /usr/include
|
|
COPY --from=debian /usr/lib /usr/lib
|
|
# The AppImage carries the Avahi client libraries, so it carries their license beside them.
|
|
COPY --from=debian /usr/share/doc/libavahi-client3/copyright /usr/share/doc/libavahi-client3/copyright
|
|
COPY --from=debian /usr/share/common-licenses/LGPL-2.1 /usr/share/common-licenses/LGPL-2.1
|