1
0
mirror of https://github.com/bpozdena/OneDriveGUI.git synced 2026-10-24 04:59:17 +03:00

Update AppImageBuilder and build script to use Python 3.10 and Ubuntu Jammy

This commit is contained in:
Boris Pozdena
2026-07-01 13:42:10 +02:00
parent 8b04ce5601
commit 4eb10f4c64
2 changed files with 26 additions and 14 deletions

View File

@@ -6,14 +6,14 @@ script:
- cp src AppDir/usr -r
- cp src/resources/images/OneDriveGUI.png AppDir/usr/share/icons/hicolor/48x48
- python3 -m pip install --ignore-installed --prefix=/usr --no-cache-dir --root=AppDir -r ./requirements.txt
- rm -rf AppDir/usr/local/lib/python3.12/dist-packages/PySide6/Qt/qml/
- rm -rf AppDir/usr/local/lib/python3.12/dist-packages/PySide6/examples/
- rm -rf AppDir/usr/local/lib/python3.12/dist-packages/PySide6/Qt/resources/
- rm -rf AppDir/usr/local/lib/python3.12/dist-packages/PySide6/Qt/translations/qtwebengine_locales/
- rm -f AppDir/usr/local/lib/python3.12/dist-packages/PySide6/{assistant,designer,linguist,lrelease,lupdate}
- rm -f AppDir/usr/local/lib/python3.12/dist-packages/PySide6/{Qt3D*,QtBluetooth*,QtCharts*,QtConcurrent*,QtDataVisualization*,QtDBus*,QtDesigner*,QtHelp*,QtMultimedia*,QtNetwork*,QtOpenGL*,QtPositioning*,QtPrintSupport*,QtQml*,QtQuick*,QtRemoteObjects*,QtScxml*,QtSensors*,QtSerialPort*,QtSql*,QtStateMachine*,QtSvg*,QtTest*,QtWeb*,QtXml*}
- rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/qml/
- rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/examples/
- rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/resources/
- rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/translations/qtwebengine_locales/
- rm -f AppDir/usr/local/lib/python3.10/dist-packages/PySide6/{assistant,designer,linguist,lrelease,lupdate}
- rm -f AppDir/usr/local/lib/python3.10/dist-packages/PySide6/{Qt3D*,QtBluetooth*,QtCharts*,QtConcurrent*,QtDataVisualization*,QtDBus*,QtDesigner*,QtHelp*,QtMultimedia*,QtNetwork*,QtOpenGL*,QtPositioning*,QtPrintSupport*,QtQml*,QtQuick*,QtRemoteObjects*,QtScxml*,QtSensors*,QtSerialPort*,QtSql*,QtStateMachine*,QtSvg*,QtTest*,QtWeb*,QtXml*}
- shopt -s extglob
- rm -rf AppDir/usr/local/lib/python3.12/dist-packages/PySide6/Qt/lib/!(libQt6OpenGL*|libQt6XcbQpa*|libQt6Wayland*|libQt6Egl*|libicudata*|libicuuc*|libicui18n*|libQt6DBus*|libQt6Network*|libQt6Qml*|libQt6Core*|libQt6Gui*|libQt6Widgets*|libQt6Svg*|libQt6UiTools*)
- rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/lib/!(libQt6OpenGL*|libQt6XcbQpa*|libQt6Wayland*|libQt6Egl*|libicudata*|libicuuc*|libicui18n*|libQt6DBus*|libQt6Network*|libQt6Qml*|libQt6Core*|libQt6Gui*|libQt6Widgets*|libQt6Svg*|libQt6UiTools*)
AppDir:
@@ -24,15 +24,22 @@ AppDir:
name: OneDriveGUI
icon: OneDriveGUI
version: 1.3.2
exec: usr/bin/python3.12
exec: usr/bin/python3.10
exec_args: "$APPDIR/usr/src/OneDriveGUI.py $@"
apt:
arch: amd64
sources:
- sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse'
# Built against Jammy (22.04) rather than Noble (24.04) on purpose: Noble's glibc
# package ships a merged-/usr layout (loader under usr/lib64/), which
# appimage-builder v1.1.0's glibc-compatibility runtime does not account for
# (it hardcodes the pre-merged /lib64 path). That mismatch makes the AppImage
# fail with "APPRUN_ERROR: No such file or directory" (or a linker SIGSEGV) on
# any host with an older glibc than the build machine. Jammy still uses the
# classic layout, so the compatibility runtime works correctly.
- sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
- sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse'
- sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c'
include:
@@ -48,7 +55,7 @@ AppDir:
runtime:
env:
PYTHONHOME: '${APPDIR}/usr'
PYTHONPATH: '${APPDIR}/usr/local/lib/python3.12/dist-packages/'
PYTHONPATH: '${APPDIR}/usr/local/lib/python3.10/dist-packages/'
AppImage:
# update-information: gh-releases-zsync

View File

@@ -2,7 +2,12 @@
# Docker-based AppImage builder for OneDriveGUI
# Allows building AppImages on non-Debian systems (e.g. Arch Linux)
# using an Ubuntu Noble container with appimage-builder.
# using an Ubuntu Jammy container with appimage-builder.
#
# Must stay on Jammy (22.04), not Noble (24.04): Noble's glibc package uses a
# merged-/usr layout that appimage-builder v1.1.0's glibc-compatibility runtime
# does not handle, breaking the AppImage on hosts with an older glibc than the
# build machine (APPRUN_ERROR / linker SIGSEGV). See AppImageBuilder.yml.
set -e
@@ -17,14 +22,14 @@ if ! command -v docker &> /dev/null; then
exit 1
fi
# Build the AppImage inside an Ubuntu Noble container
# Build the AppImage inside an Ubuntu Jammy container
docker run \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--security-opt apparmor:unconfined \
--rm \
-v "$SCRIPT_DIR:/OneDriveGUI" \
ubuntu:noble \
ubuntu:jammy \
bash -c '
set -e
echo "Installing dependencies..."