@@ -113,7 +113,7 @@ jobs:
113113 - name : Set Up Python
114114 # Linux System apps requires python is System Python to run the app
115115 if : ${{ !startsWith(inputs.runner-os, 'ubuntu') || !startsWith(inputs.python-version, steps.config.outputs.system-python-version) }}
116- uses : actions/setup-python@v5.1.1
116+ uses : actions/setup-python@v5.2.0
117117 with :
118118 python-version : ${{ inputs.python-version }}
119119 cache : pip
@@ -368,52 +368,61 @@ jobs:
368368 docker run --volume $(pwd)/dist:/dist opensuse/tumbleweed \
369369 sh -c "zypper --non-interactive --no-gpg-checks install --dry-run /dist/*-0.0.1-1.x86_64.rpm"
370370
371- - name : Build AppImage Project
372- # 2023-09-11 AppImage dropped to "best effort" support.
373- #
374- # AppImage builds are the slowest, because they're incompatible with binary wheels;
375- # and installing Linux GUI toolkits (which are on a constant "install the latest"
376- # push) is fundamentally incompatible with using an old base image. As of today,
377- # it's impossible to install Toga on *any* manylinux image (
378- # https://gitlab.gnome.org/GNOME/pygobject/-/issues/590); PySide2 can't be
379- # installed on any *supported* manylinux image; PySide6 only publishes 2_28 wheels,
380- # but even then, it segfaults when the AppImage starts.
381- #
382- # Even when the install *does* work, there are so many incompatibility and
383- # binary dependency issues that it's just not worth the oxygen to keep this thing
384- # alive.
385- #
386- # Only runs when target platform and format are explicitly Linux and AppImage.
387- if : >
388- startsWith(inputs.runner-os, 'ubuntu')
389- && contains(fromJSON('["Linux"]'), inputs.target-platform)
390- && contains(fromJSON('["AppImage"]'), inputs.target-format)
391- working-directory : ${{ steps.create.outputs.project-path }}
392- env :
393- PKG_TAG : ${{ steps.docker.outputs.tag-base }}-appimage
394- run : |
395- PACKAGES="libfuse2"
396- case "$(tr '[:upper:]' '[:lower:]' <<< '${{ inputs.framework }}')" in
397- toga ) PACKAGES="${PACKAGES} ${{ env.TOGA_SYSTEM_REQUIRES }}" ;;
398- pyside6 ) PACKAGES="${PACKAGES} ${{ env.PYSIDE6_SYSTEM_REQUIRES }}" ;;
399- esac
400-
401- sudo apt install -y --no-install-recommends ${PACKAGES}
402-
403- # PyGObject>=3.46.0 requires a version of glibc that isn't available in manylinux images;
404- # so, the version is constrained to successfully build an AppImage with Toga.
405- # Furthermore, Toga>0.3.1 requires PyGObject>=3.46.0 so its version is constrained as well.
406- if [ "${{ startsWith(inputs.framework, 'toga') }}" = "true" ]; then
407- CONFIG_OVERRIDE_REQUIRES='--config requires=["toga-gtk==0.3.1","PyGobject<3.46.0"]'
408- fi
409-
410- briefcase create linux AppImage \
411- ${{ steps.output-format.outputs.template-override }} \
412- ${CONFIG_OVERRIDE_REQUIRES} \
413- ${DOCKER_BUILDX_OPTIONS//__PKG_TAG__/${PKG_TAG}}
414- briefcase build linux AppImage
415- xvfb-run briefcase run linux AppImage
416- briefcase package linux AppImage --adhoc-sign
371+ # 2024-09-02 AppImage testing disabled entirely In Briefcase#1977, the
372+ # Bootstrap app was updated to use a Toga API introduced in Toga 0.4.6. This
373+ # is a problem because we're limited to Toga 0.3.1 for AppImage testing; we
374+ # can't install the version of PyGObject we need on manylinux_2_28.
375+ # manylinux_2_34 is in preparation (see pypa/manylinux#1585); but until that
376+ # base image is available, we can't test AppImage without also making
377+ # changes to Briefcase to support *very* old versions of Toga in testing.
378+ #
379+ # The configuration has been commented out for now, in the hope it might be
380+ # able to be restored when manylinux_2_34 is finalized; however, it's
381+ # essentially a race to see whether manylinux_2_34 is updated before we
382+ # finally complete the deprecation of AppImage.
383+ #
384+ # - name: Build AppImage Project
385+ # # 2023-09-11 AppImage dropped to "best effort" support.
386+ # #
387+ # # AppImage builds are the slowest, because they're incompatible with binary wheels;
388+ # # and installing Linux GUI toolkits (which are on a constant "install the latest"
389+ # # push) is fundamentally incompatible with using an old base image. As of today,
390+ # # it's impossible to install Toga on *any* manylinux image (
391+ # # https://gitlab.gnome.org/GNOME/pygobject/-/issues/590); PySide2 can't be
392+ # # installed on any *supported* manylinux image; PySide6 only publishes 2_28 wheels,
393+ # # but even then, it segfaults when the AppImage starts.
394+ # #
395+ # # Even when the install *does* work, there are so many incompatibility and
396+ # # binary dependency issues that it's just not worth the oxygen to keep this thing
397+ # # alive.
398+ # #
399+ # # Only runs when target platform and format are explicitly Linux and AppImage.
400+ # if: > startsWith(inputs.runner-os, 'ubuntu') &&
401+ # contains(fromJSON('["Linux"]'), inputs.target-platform) &&
402+ # contains(fromJSON('["AppImage"]'), inputs.target-format)
403+ # working-directory: ${{ steps.create.outputs.project-path }} env:
404+ # PKG_TAG: ${{ steps.docker.outputs.tag-base }}-appimage run: |
405+ # PACKAGES="libfuse2" case "$(tr '[:upper:]' '[:lower:]' <<< '${{
406+ # inputs.framework }}')" in toga ) PACKAGES="${PACKAGES} ${{
407+ # env.TOGA_SYSTEM_REQUIRES }}" ;; pyside6 ) PACKAGES="${PACKAGES} ${{
408+ # env.PYSIDE6_SYSTEM_REQUIRES }}" ;; esac
409+
410+ # sudo apt install -y --no-install-recommends ${PACKAGES}
411+
412+ # # PyGObject>=3.46.0 requires a version of glibc that isn't available in manylinux images;
413+ # # so, the version is constrained to successfully build an AppImage with Toga.
414+ # # Furthermore, Toga>0.3.1 requires PyGObject>=3.46.0 so its version is constrained as well.
415+ # if [ "${{ startsWith(inputs.framework, 'toga') }}" = "true" ]; then
416+ # CONFIG_OVERRIDE_REQUIRES='--config requires=["toga-gtk==0.3.1","PyGobject<3.46.0"]'
417+ # fi
418+
419+ # briefcase create linux AppImage \
420+ # ${{ steps.output-format.outputs.template-override }} \
421+ # ${CONFIG_OVERRIDE_REQUIRES} \
422+ # ${DOCKER_BUILDX_OPTIONS//__PKG_TAG__/${PKG_TAG}}
423+ # briefcase build linux AppImage
424+ # xvfb-run briefcase run linux AppImage
425+ # briefcase package linux AppImage --adhoc-sign
417426
418427 - name : Delete Docker Images
419428 # the GitHub runners come with limited disk space; these images take ~8GB
0 commit comments