build: add AppImage packaging pipeline and build scripts
This commit is contained in:
parent
7b4a9c1fe3
commit
26eaf8cf68
6 changed files with 220 additions and 0 deletions
91
packaging/appimage/AppImageBuilder.yml
Normal file
91
packaging/appimage/AppImageBuilder.yml
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
version: 1
|
||||
|
||||
AppDir:
|
||||
path: !ENV '${SCANSLICER_APPDIR}'
|
||||
app_info:
|
||||
id: scanslicer
|
||||
name: ScanSlicer
|
||||
icon: scanslicer
|
||||
version: "1.0.0"
|
||||
exec: usr/bin/python3
|
||||
exec_args: "-m scanslicer $@"
|
||||
|
||||
apt:
|
||||
arch: amd64
|
||||
allow_unauthenticated: false
|
||||
sources:
|
||||
- sourceline: "deb https://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse"
|
||||
key_url: "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C"
|
||||
include:
|
||||
- python3
|
||||
- python3-pip
|
||||
- libdbus-1-3
|
||||
- libfontconfig1
|
||||
- libegl1
|
||||
- libgl1
|
||||
- libglib2.0-0
|
||||
- libglib2.0-bin
|
||||
- libsm6
|
||||
- libwayland-client0
|
||||
- libwayland-cursor0
|
||||
- libwayland-egl1
|
||||
- libxkbcommon0
|
||||
- libx11-xcb1
|
||||
- libxcb-cursor0
|
||||
- libgdk-pixbuf2.0-bin
|
||||
- libgtk-3-bin
|
||||
|
||||
files:
|
||||
include:
|
||||
- /usr/bin/python3
|
||||
- /usr/bin/pip3
|
||||
- /usr/lib
|
||||
- /usr/share
|
||||
exclude:
|
||||
- usr/share/man
|
||||
- usr/share/doc/*/README.*
|
||||
- usr/share/doc/*/changelog.*
|
||||
- usr/share/doc/*/NEWS.*
|
||||
- usr/share/doc/*/TODO.*
|
||||
- usr/lib/x86_64-linux-gnu/libQt6*.so*
|
||||
- usr/lib/x86_64-linux-gnu/qt6/**
|
||||
|
||||
runtime:
|
||||
env:
|
||||
APPDIR: "${APPDIR}"
|
||||
PYTHONHOME: "${APPDIR}/usr"
|
||||
PYTHONNOUSERSITE: "1"
|
||||
QT_PLUGIN_PATH: "${APPDIR}/usr/local/lib/python3.12/dist-packages/PySide6/Qt/plugins"
|
||||
LD_LIBRARY_PATH: "${APPDIR}/usr/local/lib/python3.12/dist-packages/PySide6/Qt/lib:${APPDIR}/usr/local/lib/python3.12/dist-packages/opencv_python.libs:${APPDIR}/usr/lib:${APPDIR}/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"
|
||||
PATH: "${APPDIR}/usr/bin:${PATH}"
|
||||
|
||||
after_bundle: |
|
||||
APPDIR_PATH="${APPDIR:-${SCANSLICER_APPDIR:-}}"
|
||||
if [ -z "${APPDIR_PATH}" ]; then
|
||||
echo "AppDir path is not set (SCANSLICER_APPDIR/APPDIR)." >&2
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p "${APPDIR_PATH}/usr/share/applications"
|
||||
mkdir -p "${APPDIR_PATH}/usr/share/icons"
|
||||
mkdir -p "${APPDIR_PATH}/usr/share/pixmaps"
|
||||
mkdir -p "${APPDIR_PATH}/icons"
|
||||
mkdir -p "${APPDIR_PATH}/pixmaps"
|
||||
cp "${SCANSLICER_ROOT}/packaging/appimage/scanslicer.desktop" "${APPDIR_PATH}/usr/share/applications/scanslicer.desktop"
|
||||
cp "${SCANSLICER_ROOT}/packaging/appimage/scanslicer.svg" "${APPDIR_PATH}/usr/share/icons/scanslicer.svg"
|
||||
cp "${SCANSLICER_ROOT}/packaging/appimage/scanslicer.svg" "${APPDIR_PATH}/usr/share/pixmaps/scanslicer.svg"
|
||||
rsvg-convert -w 256 -h 256 "${SCANSLICER_ROOT}/packaging/appimage/scanslicer.svg" > "${APPDIR_PATH}/usr/share/icons/scanslicer.png"
|
||||
cp "${APPDIR_PATH}/usr/share/icons/scanslicer.png" "${APPDIR_PATH}/usr/share/pixmaps/scanslicer.png"
|
||||
cp "${APPDIR_PATH}/usr/share/icons/scanslicer.png" "${APPDIR_PATH}/icons/scanslicer.png"
|
||||
cp "${APPDIR_PATH}/usr/share/icons/scanslicer.png" "${APPDIR_PATH}/pixmaps/scanslicer.png"
|
||||
cp "${APPDIR_PATH}/usr/share/icons/scanslicer.png" "${APPDIR_PATH}/.DirIcon"
|
||||
test -f "${APPDIR_PATH}/usr/share/icons/scanslicer.png"
|
||||
test -f "${APPDIR_PATH}/usr/share/pixmaps/scanslicer.png"
|
||||
test -f "${APPDIR_PATH}/icons/scanslicer.png"
|
||||
test -f "${APPDIR_PATH}/pixmaps/scanslicer.png"
|
||||
test -f "${APPDIR_PATH}/.DirIcon"
|
||||
rm -rf "${APPDIR_PATH}/usr/lib/x86_64-linux-gnu/qt6"
|
||||
rm -f "${APPDIR_PATH}"/usr/lib/x86_64-linux-gnu/libQt6*.so*
|
||||
python3 -m pip install --no-cache-dir --upgrade --ignore-installed --prefix=/usr --root="${APPDIR_PATH}" -r "${SCANSLICER_REQUIREMENTS}"
|
||||
|
||||
AppImage:
|
||||
arch: x86_64
|
||||
Loading…
Add table
Add a link
Reference in a new issue