From 473716fa8f90649a7baa16069fb002fea2c9ff61 Mon Sep 17 00:00:00 2001 From: directentis1 <128832114+directentis1@users.noreply.github.com> Date: Sun, 28 Jun 2026 13:22:39 +0700 Subject: [PATCH 1/3] Initial support appimage builder --- appimage_builder.sh | 117 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 appimage_builder.sh diff --git a/appimage_builder.sh b/appimage_builder.sh new file mode 100644 index 00000000..d30b82d3 --- /dev/null +++ b/appimage_builder.sh @@ -0,0 +1,117 @@ +#!/usr/bin/bash +set -e + +# Configuration +APP_NAME="abaddon" +APP_VERSION=$(git describe --tags --exact-match >/dev/null 2>&1 && git describe --tags --abbrev=0 | sed 's/^v//' || echo "git-$(git rev-parse --short=16 HEAD)") +ARCH="$(uname -m)" +BUILD_DIR="build" +APPDIR="${BUILD_DIR}/${APP_NAME}.AppDir" + +echo "Building ${APP_NAME} AppImage for ${ARCH}..." + +# Clean previous builds +rm -rf "$APPDIR" +mkdir -p "${APPDIR}" + +# Build the application +echo "Building application..." +# ( +# cd build && \ +# cmake .. && \ +# make +# ) + +# Create AppDir structure +mkdir -p "${APPDIR}/usr/bin" +mkdir -p "${APPDIR}/usr/lib" +mkdir -p "${APPDIR}/usr/local/share/${APP_NAME}" +mkdir -p "${APPDIR}/usr/share/metainfo/" + +# Copy executable +cp "${BUILD_DIR}/${APP_NAME}" "${APPDIR}/usr/bin/" + +# Desktop file +if [ -f "res/desktop/io.github.uowuo.abaddon.desktop" ]; then + cp "res/desktop/io.github.uowuo.abaddon.desktop" "${APPDIR}/${APP_NAME}.desktop" + sed -i 's/^Icon=.*/Icon=abaddon/' "${APPDIR}/${APP_NAME}.desktop" +else + echo "Warning: ${APP_NAME}.desktop not found, creating basic one..." + cat > "${APPDIR}/${APP_NAME}.desktop" << EOF +[Desktop Entry] +Type=Application +Name=Abaddon +Exec=${APP_NAME} +Icon=${APP_NAME} +Categories=Network;Chat; +Terminal=false +EOF +fi + +# Copy icon +if [ -f "res/desktop/icon.svg" ]; then + cp "res/desktop/icon.svg" "${APPDIR}/${APP_NAME}.svg" +elif [ -f "res/desktop/icon.png" ]; then + cp "res/desktop/icon.png" "${APPDIR}/${APP_NAME}.png" +fi + +if [ -f "res/desktop/io.github.uowuo.abaddon.metainfo.xml" ]; then + cp "res/desktop/io.github.uowuo.abaddon.metainfo.xml" "${APPDIR}/usr/share/metainfo/" +fi + +# Copy resources +if [ -d "res" ]; then + cp -r "res/." "${APPDIR}/usr/local/share/${APP_NAME}/" +fi + +# AppRun +cat > "$APPDIR/AppRun" <<'APPRUN_EOF' +#!/bin/bash +SELF=$(readlink -f "$0") +HERE=${SELF%/*} + +# Only add our lib directory at the END to prefer system libraries +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HERE}/usr/lib" +export PATH="${HERE}/usr/bin:${PATH}" +export XDG_DATA_DIRS="${HERE}/usr/share:${HERE}/usr/local/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" +# export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/librediscord/assets" + +# GTK theme and settings +export GTK_THEME=${GTK_THEME:-Adwaita} + +# Prevent loading incompatible GIO modules by using system's modules +# This avoids symbol version mismatches with system GLib +unset GIO_MODULE_DIR +export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules + +# Use system GTK modules +unset GTK_PATH +unset GTK_IM_MODULE_FILE + +# Execute the application +exec "$HERE/usr/bin/abaddon" "$@" +APPRUN_EOF + +chmod +x "$APPDIR/AppRun" + +# Download linuxdeploy if needed +if [ ! -f linuxdeploy-x86_64.AppImage ]; then + wget -O linuxdeploy-x86_64.AppImage \ + https://github.com/linuxdeploy/linuxdeploy/releases/latest/download/linuxdeploy-x86_64.AppImage + chmod +x linuxdeploy-x86_64.AppImage +fi + +# Build AppImage +echo "Creating AppImage..." +# VERSION="$APP_VERSION" ARCH="$ARCH" \ +# ./squashfs-root/AppRun \ +VERSION="$APP_VERSION "ARCH=$ARCH ./linuxdeploy-x86_64.AppImage \ + --appdir "$APPDIR" \ + --desktop-file "$APPDIR/$APP_NAME.desktop" \ + --icon-file "$APPDIR/$APP_NAME.svg" \ + --executable "$APPDIR/usr/bin/$APP_NAME" \ + --output appimage + +echo "AppImage created: ${APP_NAME}-${APP_VERSION}-${ARCH}.AppImage" +echo "" +echo "You can now run: ./${APP_NAME}-${APP_VERSION}-${ARCH}.AppImage" From 8280420b9645739e2f74c831c07ccf9f9d666559 Mon Sep 17 00:00:00 2001 From: directentis1 <128832114+directentis1@users.noreply.github.com> Date: Sun, 28 Jun 2026 13:24:30 +0700 Subject: [PATCH 2/3] Enable application build commands in script Uncommented the build commands for the application. --- appimage_builder.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appimage_builder.sh b/appimage_builder.sh index d30b82d3..ba391987 100644 --- a/appimage_builder.sh +++ b/appimage_builder.sh @@ -16,11 +16,11 @@ mkdir -p "${APPDIR}" # Build the application echo "Building application..." -# ( -# cd build && \ -# cmake .. && \ -# make -# ) +( + cd build && \ + cmake .. && \ + make +) # Create AppDir structure mkdir -p "${APPDIR}/usr/bin" From 10f5458e949343a2d8ae9ac7bdc8ae760e1ab202 Mon Sep 17 00:00:00 2001 From: directentis1 <128832114+directentis1@users.noreply.github.com> Date: Sun, 28 Jun 2026 18:17:50 +0700 Subject: [PATCH 3/3] minor fixes --- appimage_builder.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appimage_builder.sh b/appimage_builder.sh index ba391987..f300c445 100644 --- a/appimage_builder.sh +++ b/appimage_builder.sh @@ -12,6 +12,7 @@ echo "Building ${APP_NAME} AppImage for ${ARCH}..." # Clean previous builds rm -rf "$APPDIR" +rm -rf "$BUILD_DIR" mkdir -p "${APPDIR}" # Build the application @@ -105,7 +106,7 @@ fi echo "Creating AppImage..." # VERSION="$APP_VERSION" ARCH="$ARCH" \ # ./squashfs-root/AppRun \ -VERSION="$APP_VERSION "ARCH=$ARCH ./linuxdeploy-x86_64.AppImage \ +VERSION="$APP_VERSION" ARCH="$ARCH" ./linuxdeploy-x86_64.AppImage \ --appdir "$APPDIR" \ --desktop-file "$APPDIR/$APP_NAME.desktop" \ --icon-file "$APPDIR/$APP_NAME.svg" \