From 2f341183c419a3ed24359c0b11b30eab1989ead3 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 07:53:50 -0400 Subject: [PATCH 01/24] Make workflows a bit saner. Signed-off-by: Gregorio Litenstein --- .github/workflows/continuous-builds.yml | 84 +++++++++++++++++-------- .github/workflows/stable-releases.yml | 37 ++++++----- 2 files changed, 81 insertions(+), 40 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index a13c927e..57fd4bc3 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -11,60 +11,89 @@ on: - '!**' jobs: - pytest-ubuntu-focal: + pytest-ubuntu-noble: runs-on: ubuntu-latest - container: ubuntu:22.04 + container: ubuntu:24.04 steps: - name: Install dependencies run: | - apt-get update - apt-get install -y python3.11 python3-pip python3-pytest fakeroot binutils patchelf git - - uses: actions/checkout@v3 + apt-get -y update + apt-get install -y python3 python3-pip python3-venv fakeroot binutils patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - python3 -m pip install -e .[dev] + . .venv/bin/activate + pip install -e .[dev] - name: Run pytest - run: python3 -m unittest + run: | + . .venv/bin/activate + python3 -m pytest tests pytest-archlinux: runs-on: ubuntu-latest container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip python-pytest python-setuptools binutils patchelf fakeroot strace patchelf git - - uses: actions/checkout@v3 + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot strace patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - python3 -m pip install -e .[dev] + . .venv/bin/activate + pip install -e .[dev] - name: Run pytest - run: python3 -m unittest + run: | + . .venv/bin/activate + pytest tests build: runs-on: ubuntu-latest - needs: [ pytest-ubuntu-focal, pytest-archlinux ] + needs: [ pytest-ubuntu-noble, pytest-archlinux ] steps: - name: Install dependencies run: | - sudo apt install -y python3.11-minimal python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get update + sudo apt-get install -y python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest + #- name: Activate virtual environment + #run: echo PATH=${GITHUB_WORKSPACE}/venv/bin:$PATH >> $GITHUB_ENV - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - sudo python3.11 -m pip install . + . .venv/bin/activate + pip install --ignore-installed . - name: Build AppImage run: | + . .venv/bin/activate cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' @@ -72,9 +101,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - name: Install dependencies @@ -91,7 +123,7 @@ jobs: run: | recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: bash path: 'recipes/bash/*.AppImage*' @@ -101,7 +133,7 @@ jobs: if: github.ref == 'refs/heads/main' steps: - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - uses: "marvinpinto/action-automatic-releases@latest" diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index be135c07..c0b399a1 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -14,22 +14,25 @@ jobs: steps: - name: Install dependencies run: | - sudo apt install -y python3.8-minimal python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y python3 python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - sudo python3.8 -m pip install . + python3 -m venv .venv + . .venv/bin/activate + python3 -m pip install . - name: Build AppImage run: | cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' @@ -37,9 +40,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - name: Install dependencies @@ -56,16 +62,16 @@ jobs: run: | recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: bash path: 'recipes/bash/*.AppImage*' publish-appimage: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 needs: test steps: - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - uses: "marvinpinto/action-automatic-releases@latest" @@ -77,19 +83,22 @@ jobs: runs-on: ubuntu-latest needs: test steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install dependencies run: | - python -m pip install --upgrade pip + python3 -m venv .venv + . .venv/bin/activate + python3 -m pip install --upgrade pip pip install setuptools wheel twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | + . .venv/bin/activate python setup.py sdist bdist_wheel twine upload dist/* From d430e1a3aa4ad711faa305f2dc5ad4c08d21055c Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 14:51:09 -0400 Subject: [PATCH 02/24] fix stdin maybe? Signed-off-by: Gregorio Litenstein --- appimagebuilder/modules/deploy/pacman/venv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appimagebuilder/modules/deploy/pacman/venv.py b/appimagebuilder/modules/deploy/pacman/venv.py index f247d860..603e145a 100644 --- a/appimagebuilder/modules/deploy/pacman/venv.py +++ b/appimagebuilder/modules/deploy/pacman/venv.py @@ -224,7 +224,7 @@ def _run_command( # need to split the command into args _proc = subprocess.Popen( - shlex.split(command), stdout=stdout, stdin=sys.stdin, stderr=sys.stderr + shlex.split(command), stdout=stdout, stdin=subprocess.PIPE, stderr=sys.stderr ) if wait_for_completion: From 420334372d0eb207d4868d24b205466abcec9ee7 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 15:23:08 -0400 Subject: [PATCH 03/24] update requirements.txt Signed-off-by: Gregorio Litenstein --- requirements.txt | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/requirements.txt b/requirements.txt index e75871e1..839b1491 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,42 +1,43 @@ arpy==2.3.0 -certifi==2023.7.22 -cffi==1.16.0 -charset-normalizer==3.3.0 -configparser==6.0.0 +certifi==2025.7.14 +cffi==1.17.1 +charset-normalizer==3.4.2 +configparser==7.2.0 contextlib2==21.6.0 -cryptography==42.0.4 -decorator==5.1.1 -distlib==0.3.7 -docker==6.1.3 +cryptography==45.0.5 +decorator==5.2.1 +distlib==0.4.0 +docker==7.1.0 emrichen==0.4.0 -filelock==3.12.4 -idna==3.7 +filelock==3.18.0 +idna==3.10 jsonpath-rw==1.4.0 libconf==2.0.1 -lief==0.12.2 -packaging==23.2 +lief==0.16.6 +packaging==25.0 PGPy==0.6.0 -pipenv==2023.10.3 -platformdirs==3.11.0 +pipenv==2025.0.4 +platformdirs==4.3.8 ply==3.11 -prompt-toolkit==3.0.36 +prompt_toolkit==3.0.51 pyaml==21.10.1 -pyasn1==0.5.0 -pycparser==2.21 -pydpkg==1.9.2 -PyMySQL==1.1.0 -python-gnupg==0.4.9 -PyYAML==6.0.1 -questionary==2.0.1 -requests==2.31.0 +pyasn1==0.6.1 +pycparser==2.22 +pydpkg==1.9.4 +PyMySQL==1.1.1 +python-gnupg==0.5.4 +PyYAML==6.0.2 +questionary==2.1.0 +requests==2.32.4 roam==0.3.1 -ruamel.yaml==0.17.35 -ruamel.yaml.clib==0.2.8 -schema==0.7.5 +ruamel.yaml==0.18.14 +ruamel.yaml.clib==0.2.12 +schema==0.7.7 +setuptools==80.9.0 shutils==0.1.0 -six==1.16.0 -urllib3==1.26.18 -virtualenv==20.24.5 -wcwidth==0.2.8 -websocket-client==1.6.4 -zstandard==0.19.0 +six==1.17.0 +urllib3==2.5.0 +virtualenv==20.32.0 +wcwidth==0.2.13 +websocket-client==1.8.0 +zstandard==0.23.0 From 8f665c47eb2e95f2ece1347a871db74f8bc5c12f Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 14:10:15 -0400 Subject: [PATCH 04/24] Fix compression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seems I was working on this in parallel to what got merged. My reasoning is this: Use the expanded `-noX` commands that mean the same as `—no-compresion` according to the documentation. By default use zstd compression instead of xz, because the AppImage team has said on at least one occassion that’s what’s going in the standard spec. Signed-off-by: Gregorio Litenstein --- appimagebuilder/modules/generate/recipe_generator.py | 2 +- appimagebuilder/modules/prime/appimage_primer.py | 6 +++--- appimagebuilder/orchestrator.py | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/appimagebuilder/modules/generate/recipe_generator.py b/appimagebuilder/modules/generate/recipe_generator.py index 5bece795..dc95eebc 100644 --- a/appimagebuilder/modules/generate/recipe_generator.py +++ b/appimagebuilder/modules/generate/recipe_generator.py @@ -100,7 +100,7 @@ def _generate_v1_recipe(self, bundle_info, sections): }, "AppImage": { "arch": bundle_info.runtime_arch, - "comp": bundle_info.compression, + "comp": bundle_info.compression or "None", "update-information": bundle_info.update_string }, } diff --git a/appimagebuilder/modules/prime/appimage_primer.py b/appimagebuilder/modules/prime/appimage_primer.py index 683c1b04..f3af11f4 100644 --- a/appimagebuilder/modules/prime/appimage_primer.py +++ b/appimagebuilder/modules/prime/appimage_primer.py @@ -87,11 +87,11 @@ def _make_squashfs(self, appdir: pathlib.Path): # I think this is better than hardcoding the supported compressions # If the team behind AppImageKit adds a new compression # we wouldn't need to update the code and release a new version just for a new compression method - comp = self.config.comp() or "xz" + comp = self.config.comp() or "None" if comp != "None": - command += [ "-comp", comp] + command += [ "-comp", self.config.comp()] else: - command += ["-noDataCompression"] + command += ["-noI","-noD","-noF","-noX"] self.logger.info("Creating squashfs from AppDir") self.logger.debug(" ".join(command)) diff --git a/appimagebuilder/orchestrator.py b/appimagebuilder/orchestrator.py index 50aaf4f8..a41ce89c 100644 --- a/appimagebuilder/orchestrator.py +++ b/appimagebuilder/orchestrator.py @@ -178,8 +178,7 @@ def _extract_v1_recipe_context(self, args, recipe): app_info=app_info, update_string=recipe.AppImage["update-information"]() or "guess", runtime_arch=recipe.AppImage.arch(), - compression=recipe.AppImage.comp() or "xz", - sign_key=recipe.AppImage["sign-key"]() or None, + compression=recipe.AppImage.comp() or "zstd", file_name=recipe.AppImage["file_name"] or None, ) return Context( From 0d2c1b5540e6ad1b680f6ec95c51b12dd37727f8 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 17:53:20 -0400 Subject: [PATCH 05/24] Fix invalid escape sequence in loader regex Signed-off-by: Gregorio Litenstein --- appimagebuilder/recipe/loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appimagebuilder/recipe/loader.py b/appimagebuilder/recipe/loader.py index 4263ab7f..d75ebbbb 100644 --- a/appimagebuilder/recipe/loader.py +++ b/appimagebuilder/recipe/loader.py @@ -43,7 +43,7 @@ def __init__(self): self._tag = "!ENV" # pattern for global vars: look for ${word} - pattern = re.compile(".*?\${(\w+)}.*?") + pattern = re.compile(r".*?\${(\w+)}.*?") self._loader.add_implicit_resolver(self._tag, pattern, None) From 9a878da17235d93182c7ad7eb4104de168d6002e Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 19:58:10 -0400 Subject: [PATCH 06/24] Make sure bin folder exists Signed-off-by: Gregorio Litenstein --- recipes/appimage-builder/AppImageBuilder.yml | 21 ++++++++++---------- recipes/bash/AppImageBuilder.yml | 1 + recipes/bash/bash-apprun-v3.yml | 1 + 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index be24d4fd..68b27384 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -19,14 +19,14 @@ AppDir: # Set the python executable as entry point exec: usr/bin/python3 # Set the application main script path as argument. Use '$@' to forward CLI parameters - exec_args: "$APPDIR/usr/local/bin/appimage-builder $@" + exec_args: "$APPDIR/usr/bin/appimage-builder $@" apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' include: - bash @@ -38,7 +38,7 @@ AppDir: - fakeroot - libgdk-pixbuf2.0-dev - patchelf - - python3.10 + - python3 - squashfs-tools - strace - zsync @@ -46,24 +46,25 @@ AppDir: after_bundle: | # configure tools + mkdir -p $TARGET_APPDIR/bin ln -s fakeroot-sysv $TARGET_APPDIR/usr/bin/fakeroot ln -s bash $TARGET_APPDIR/bin/sh # install appimage-builder - python3.10 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" install ../../ - python3.10 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" install certifi + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi runtime: - version: "v2.0.0" + version: "continuous" env: # Set python home # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME PYTHONHOME: '${APPDIR}/usr' # Path to the site-packages dir or other modules dirs # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH - PYTHONPATH: '${APPDIR}/usr/lib/python3.10/site-packages' + PYTHONPATH: '${APPDIR}/usr/lib/python3.8/site-packages' # SSL Certificates are placed in a different location for every system therefore we ship our own copy - SSL_CERT_FILE: '${APPDIR}/usr/lib/python3.10/site-packages/certifi/cacert.pem' + SSL_CERT_FILE: '${APPDIR}/usr/lib/python3.8/site-packages/certifi/cacert.pem' test: fedora: diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index 5c2ca863..f278b727 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -7,6 +7,7 @@ script: - cp -r tests $TARGET_APPDIR - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env + - mkdir -p $TARGET_APPDIR/bin - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index bc758ab4..e4aa966c 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -7,6 +7,7 @@ script: - cp -r tests $TARGET_APPDIR - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env + - mkdir -p $TARGET_APPDIR/bin - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: From 25273b3c66d2b5e64ca0e298a2c2a94d0a22a3e4 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Fri, 25 Jul 2025 09:42:09 -0400 Subject: [PATCH 07/24] =?UTF-8?q?Don=E2=80=99t=20try=20to=20parse=20invali?= =?UTF-8?q?d=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gregorio Litenstein --- appimagebuilder/commands/setup_runtime.py | 9 ++++++--- appimagebuilder/modules/setup/apprun_2/apprun2.py | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/appimagebuilder/commands/setup_runtime.py b/appimagebuilder/commands/setup_runtime.py index 7e78253e..38e9a66d 100644 --- a/appimagebuilder/commands/setup_runtime.py +++ b/appimagebuilder/commands/setup_runtime.py @@ -28,12 +28,15 @@ def id(self): def __call__(self, *args, **kwargs): apprun_version = self.context.recipe.AppDir.runtime.version() or "v2.0.0" - apprun_version = version.parse(apprun_version) + if apprun_version != "continuous": + apprun_version = version.parse(apprun_version) runtime_setup = None - if version.parse("v2.0.0") <= apprun_version < version.parse("v3.0.0"): + if (apprun_version != "continuous" and + version.parse("v2.0.0") <= apprun_version < version.parse("v3.0.0") + ) or apprun_version == "continuous": runtime_setup = AppRunV2Setup(self.context, self._finder) - if not runtime_setup and version.parse("v3.0.0") <= apprun_version < version.parse("v4.0.0"): + if not runtime_setup and apprun_version != "continuous" and version.parse("v3.0.0-devel") <= apprun_version < version.parse("v4.0.0"): runtime_setup = AppRunV3Setup(self.context) if not runtime_setup: diff --git a/appimagebuilder/modules/setup/apprun_2/apprun2.py b/appimagebuilder/modules/setup/apprun_2/apprun2.py index ffcee5dc..be7e6ab0 100644 --- a/appimagebuilder/modules/setup/apprun_2/apprun2.py +++ b/appimagebuilder/modules/setup/apprun_2/apprun2.py @@ -81,7 +81,8 @@ def __init__(self, context: Context, finder: Finder): self.path_mappings_env: Final = "APPDIR_PATH_MAPPINGS" - parsed_version = version.parse(self.apprun_version) + if self.apprun_version != "continuous": + parsed_version = version.parse(self.apprun_version) if self.apprun_version != "continuous" and ( parsed_version < version.parse("v2.0.0") or parsed_version > version.parse("v3.0.0") From b08b041f193685cf97e0f47643bd34985070c5e5 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Fri, 25 Jul 2025 14:35:58 -0400 Subject: [PATCH 08/24] Add actual python version to environment. Signed-off-by: Gregorio Litenstein --- appimagebuilder/__main__.py | 3 +++ recipes/appimage-builder/AppImageBuilder.yml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/appimagebuilder/__main__.py b/appimagebuilder/__main__.py index 48cc8390..c7f07966 100755 --- a/appimagebuilder/__main__.py +++ b/appimagebuilder/__main__.py @@ -19,6 +19,8 @@ from appimagebuilder.modules.generate.command_generate import CommandGenerate from appimagebuilder.invoker import Invoker from appimagebuilder.orchestrator import Orchestrator +from os import environ +from sys import version_info def __main__(): @@ -37,6 +39,7 @@ def __main__(): exit(0) recipe_loader = recipe.Loader() + environ["APPIMAGE_BUILDER_PY_VERSION"] = rf"{version_info.major}.{version_info.minor}" raw_recipe_data = recipe_loader.load(args.recipe) recipe_roamer = recipe.Roamer(raw_recipe_data) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 68b27384..74d17396 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -17,7 +17,7 @@ AppDir: icon: appimage-builder version: 'latest' # Set the python executable as entry point - exec: usr/bin/python3 + exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} # Set the application main script path as argument. Use '$@' to forward CLI parameters exec_args: "$APPDIR/usr/bin/appimage-builder $@" @@ -38,7 +38,7 @@ AppDir: - fakeroot - libgdk-pixbuf2.0-dev - patchelf - - python3 + - python{{APPIMAGE_BUILDER_PY_VERSION}}-minimal - squashfs-tools - strace - zsync @@ -62,9 +62,9 @@ AppDir: PYTHONHOME: '${APPDIR}/usr' # Path to the site-packages dir or other modules dirs # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH - PYTHONPATH: '${APPDIR}/usr/lib/python3.8/site-packages' + PYTHONPATH: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages' # SSL Certificates are placed in a different location for every system therefore we ship our own copy - SSL_CERT_FILE: '${APPDIR}/usr/lib/python3.8/site-packages/certifi/cacert.pem' + SSL_CERT_FILE: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages/certifi/cacert.pem' test: fedora: From 2c21cf7bbf47579585cdcd4d326a662bea4a8c1d Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:21:35 -0400 Subject: [PATCH 09/24] Add `APPIMAGE_BUILDER_REMOTE_REPO_OWNER` env variable This doesn't change the default behavior, but makes the whole workflow much more friendly for people forking this and other AppImageCrafters repos. --- appimagebuilder/__main__.py | 1 + appimagebuilder/modules/setup/apprun_binaries_resolver.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/appimagebuilder/__main__.py b/appimagebuilder/__main__.py index c7f07966..42b763d6 100755 --- a/appimagebuilder/__main__.py +++ b/appimagebuilder/__main__.py @@ -40,6 +40,7 @@ def __main__(): recipe_loader = recipe.Loader() environ["APPIMAGE_BUILDER_PY_VERSION"] = rf"{version_info.major}.{version_info.minor}" + environ["APPIMAGE_BUILDER_REMOTE_REPO_OWNER"] = environ.get("APPIMAGE_BUILDER_REMOTE_REPO_OWNER","AppImageCrafters").lower() raw_recipe_data = recipe_loader.load(args.recipe) recipe_roamer = recipe.Roamer(raw_recipe_data) diff --git a/appimagebuilder/modules/setup/apprun_binaries_resolver.py b/appimagebuilder/modules/setup/apprun_binaries_resolver.py index 6a33bedd..731d9937 100644 --- a/appimagebuilder/modules/setup/apprun_binaries_resolver.py +++ b/appimagebuilder/modules/setup/apprun_binaries_resolver.py @@ -26,6 +26,7 @@ import tarfile from pathlib import Path from urllib import request +from os import environ from appimagebuilder.modules.setup import apprun_utils @@ -90,8 +91,8 @@ def resolve_check_glibstdcpp_binary(self, arch): def _download_release_asset(self, asset, path): path.parent.mkdir(parents=True, exist_ok=True) - - url = "https://github.com/AppImageCrafters/AppRun/releases/download/%s/%s" % ( + url = "https://github.com/%s/AppRun/releases/download/%s/%s" % ( + environ.get("APPIMAGE_BUILDER_REMOTE_REPO_OWNER", "AppImageCrafters"), self.apprun_version, asset, ) From c5299bb2b7b349e2392bb02cc1a791b909713166 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 11:06:54 -0400 Subject: [PATCH 10/24] Update test environments Signed-off-by: Gregorio Litenstein --- .../recipe_sections/test_section_generator.py | 13 +++++++------ tests/modules/deploy/apt/test_deploy.py | 4 ++-- tests/modules/deploy/apt/test_venv.py | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py b/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py index 139295bf..58f857de 100644 --- a/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py +++ b/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py @@ -9,16 +9,17 @@ # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. - +from os import environ class TestSectionGenerator: def __init__(self): + remote_repo = environ["APPIMAGE_BUILDER_REMOTE_REPO_OWNER"] self.docker_images = [ - "appimagecrafters/tests-env:fedora-30", - "appimagecrafters/tests-env:debian-stable", - "appimagecrafters/tests-env:archlinux-latest", - "appimagecrafters/tests-env:centos-7", - "appimagecrafters/tests-env:ubuntu-xenial", + f"{remote_repo}/tests-env:fedora-42", + f"{remote_repo}/tests-env:debian-bookworm", + f"{remote_repo}/tests-env:archlinux-latest", + f"{remote_repo}/tests-env:centos-10", + f"{remote_repo}/tests-env:ubuntu-noble", ] def generate(self): diff --git a/tests/modules/deploy/apt/test_deploy.py b/tests/modules/deploy/apt/test_deploy.py index 8efbe00a..8dbac238 100644 --- a/tests/modules/deploy/apt/test_deploy.py +++ b/tests/modules/deploy/apt/test_deploy.py @@ -29,8 +29,8 @@ def setUpClass(cls): cls.appdir_path = Path("/tmp/AppDir") cls.apt_venv = Venv( cls.venv_path, - ["deb [arch=amd64] http://deb.debian.org/debian/ bullseye main"], - ["https://ftp-master.debian.org/keys/archive-key-10.asc"], + ["deb [arch=amd64] http://deb.debian.org/debian/ bookworm main"], + ["https://ftp-master.debian.org/keys/archive-key-12.asc"], ["amd64"], ) diff --git a/tests/modules/deploy/apt/test_venv.py b/tests/modules/deploy/apt/test_venv.py index e1784baa..4dbc47c6 100644 --- a/tests/modules/deploy/apt/test_venv.py +++ b/tests/modules/deploy/apt/test_venv.py @@ -25,8 +25,8 @@ def setUpClass(cls): cls.venv_path = "/tmp/apt-venv" cls.apt_venv = Venv( cls.venv_path, - ["deb http://deb.debian.org/debian/ bullseye main"], - ["https://ftp-master.debian.org/keys/archive-key-10.asc"], + ["deb http://deb.debian.org/debian/ bookworm main"], + ["https://ftp-master.debian.org/keys/archive-key-12.asc"], ["amd64"], ) cls.apt_venv.update() From 70ddb256afe35ed41d866d4364c3377bbee45e99 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 11:12:15 -0400 Subject: [PATCH 11/24] Leftover references to old OS versions Signed-off-by: Gregorio Litenstein --- .github/workflows/continuous-builds.yml | 10 +++---- .github/workflows/stable-releases.yml | 6 ++--- recipes/appimage-builder/AppImageBuilder.yml | 16 ++++++------ recipes/bash-files/AppImageBuilder.yml | 10 +++---- recipes/bash-pacman/AppImageBuilder.yml | 10 +++---- recipes/bash/AppImageBuilder.yml | 14 +++++----- recipes/bash/bash-apprun-v3.yml | 14 +++++----- recipes/gimp/AppImageBuilder.yml | 14 +++++----- recipes/gnome-calculator/AppImageBuilder.yml | 14 +++++----- recipes/hello-world-gtk/AppImageBuilder.yml | 14 +++++----- recipes/hello-world-qt5/AppImageBuilder.yml | 26 +++++++++---------- .../hello-world-qt5/recipe-with-apprun-v3.yml | 26 +++++++++---------- recipes/hello-world-qt6/AppImageBuilder.yml | 26 +++++++++---------- recipes/kcalc-files/AppImageBuilder.yml | 18 ++++++------- recipes/kcalc-nbc/AppImageBuilder.yml | 12 ++++----- recipes/kcalc/AppImageBuilder.yml | 18 ++++++------- recipes/parole/AppImageBuilder.yml | 14 +++++----- recipes/pyqt5/AppImageBuilder.yml | 14 +++++----- recipes/python/AppImageBuilder.yml | 14 +++++----- recipes/qmlscene/AppImageBuilder.yml | 18 ++++++------- recipes/tkinter/AppImageBuilder.yml | 16 ++++++------ recipes/vlc/AppImageBuilder.yml | 16 ++++++------ recipes/wget/AppImageBuilder.yml | 12 ++++----- recipes/wine/AppImageBuilder.yml | 20 +++++++------- .../fake_package_repository_resolver.py | 2 +- .../generate/test_apt_section_generator.py | 2 +- tests/recipe/test_validator.py | 4 +-- 27 files changed, 190 insertions(+), 190 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index 57fd4bc3..e1858bb2 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -12,7 +12,7 @@ on: jobs: pytest-ubuntu-noble: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: ubuntu:24.04 steps: - name: Install dependencies @@ -38,7 +38,7 @@ jobs: python3 -m pytest tests pytest-archlinux: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: archlinux steps: - name: Install dependencies @@ -62,7 +62,7 @@ jobs: pytest tests build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [ pytest-ubuntu-noble, pytest-archlinux ] steps: - name: Install dependencies @@ -98,7 +98,7 @@ jobs: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' test-pack-bash: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: build steps: - name: Checkout @@ -128,7 +128,7 @@ jobs: name: bash path: 'recipes/bash/*.AppImage*' publish: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: test-pack-bash if: github.ref == 'refs/heads/main' steps: diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index c0b399a1..5b6f0ed1 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Install dependencies run: | @@ -37,7 +37,7 @@ jobs: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' test: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: build steps: - name: Checkout @@ -80,7 +80,7 @@ jobs: prerelease: false files: 'appimage-builder*.AppImage*' publish-python-wheel: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: test steps: - uses: actions/checkout@v4 diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 74d17396..c99faf2d 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -24,9 +24,9 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates 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/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -68,19 +68,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun --help debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun --help arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun --help centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun --help ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun --help AppImage: diff --git a/recipes/bash-files/AppImageBuilder.yml b/recipes/bash-files/AppImageBuilder.yml index e6ba1637..65ece4b8 100644 --- a/recipes/bash-files/AppImageBuilder.yml +++ b/recipes/bash-files/AppImageBuilder.yml @@ -29,20 +29,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" diff --git a/recipes/bash-pacman/AppImageBuilder.yml b/recipes/bash-pacman/AppImageBuilder.yml index effad926..ec41f164 100644 --- a/recipes/bash-pacman/AppImageBuilder.yml +++ b/recipes/bash-pacman/AppImageBuilder.yml @@ -34,19 +34,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index f278b727..76471b44 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -20,8 +20,8 @@ AppDir: arch: [ amd64, i386 ] allow_unauthenticated: true sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu bionic main' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu noble main' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -49,20 +49,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun ./run_tests.sh" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun ./run_tests.sh" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun ./run_tests.sh" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun ./run_tests.sh" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index e4aa966c..10f0d13f 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -20,8 +20,8 @@ AppDir: arch: [ amd64, i386 ] allow_unauthenticated: true sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu bionic main' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu noble main' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -49,20 +49,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun ./run_tests.sh" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun ./run_tests.sh" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun ./run_tests.sh" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun ./run_tests.sh" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" diff --git a/recipes/gimp/AppImageBuilder.yml b/recipes/gimp/AppImageBuilder.yml index 783a07a2..5f7b5192 100644 --- a/recipes/gimp/AppImageBuilder.yml +++ b/recipes/gimp/AppImageBuilder.yml @@ -13,9 +13,9 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic-updates 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/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - coreutils @@ -103,16 +103,16 @@ AppDir: GEGL_PATH: $APPDIR/usr/lib/x86_64-linux-gnu/gegl-0.4 test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/gnome-calculator/AppImageBuilder.yml b/recipes/gnome-calculator/AppImageBuilder.yml index c790a235..953601f5 100644 --- a/recipes/gnome-calculator/AppImageBuilder.yml +++ b/recipes/gnome-calculator/AppImageBuilder.yml @@ -13,8 +13,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - gnome-calculator @@ -38,19 +38,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/hello-world-gtk/AppImageBuilder.yml b/recipes/hello-world-gtk/AppImageBuilder.yml index 80f1e810..a6e4d244 100644 --- a/recipes/hello-world-gtk/AppImageBuilder.yml +++ b/recipes/hello-world-gtk/AppImageBuilder.yml @@ -17,8 +17,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - libgtk-3-0 @@ -42,21 +42,21 @@ AppDir: test: ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" env: LD_DEBUG: libs debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" diff --git a/recipes/hello-world-qt5/AppImageBuilder.yml b/recipes/hello-world-qt5/AppImageBuilder.yml index a7b983f3..a80aedff 100644 --- a/recipes/hello-world-qt5/AppImageBuilder.yml +++ b/recipes/hello-world-qt5/AppImageBuilder.yml @@ -19,10 +19,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse - - sourceline: deb http://archive.neon.kde.org/user focal main + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://archive.neon.kde.org/user noble main include: - libbz2-1.0 - libcom-err2 @@ -47,20 +47,20 @@ AppDir: - usr/share/doc/*/NEWS.* - usr/share/doc/*/TODO.* test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/hello-world-qt5/recipe-with-apprun-v3.yml b/recipes/hello-world-qt5/recipe-with-apprun-v3.yml index 06315d7d..0b1d711d 100644 --- a/recipes/hello-world-qt5/recipe-with-apprun-v3.yml +++ b/recipes/hello-world-qt5/recipe-with-apprun-v3.yml @@ -19,10 +19,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse - - sourceline: deb http://archive.neon.kde.org/user focal main + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://archive.neon.kde.org/user noble main include: - libbz2-1.0 - libcom-err2 @@ -53,20 +53,20 @@ AppDir: version: v3.0.0-devel-1 debug: true test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: Lord-Kamina/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: Lord-Kamina/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: Lord-Kamina/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: Lord-Kamina/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: Lord-Kamina/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/hello-world-qt6/AppImageBuilder.yml b/recipes/hello-world-qt6/AppImageBuilder.yml index 28565018..d239c42e 100644 --- a/recipes/hello-world-qt6/AppImageBuilder.yml +++ b/recipes/hello-world-qt6/AppImageBuilder.yml @@ -20,10 +20,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse include: - libcap2:amd64 - libcom-err2:amd64 @@ -87,20 +87,20 @@ AppDir: # and the bundle may not work in such systems - strip --remove-section=.note.ABI-tag $TARGET_APPDIR/usr/lib/x86_64-linux-gnu/libQt6Core.so.6 test: - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-bionic + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun diff --git a/recipes/kcalc-files/AppImageBuilder.yml b/recipes/kcalc-files/AppImageBuilder.yml index a5a55c27..d2ce598c 100644 --- a/recipes/kcalc-files/AppImageBuilder.yml +++ b/recipes/kcalc-files/AppImageBuilder.yml @@ -160,20 +160,20 @@ AppDir: - usr/share/doc/*/TODO.* runtime: {} test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/kcalc-nbc/AppImageBuilder.yml b/recipes/kcalc-nbc/AppImageBuilder.yml index 46e747f3..ebdc2e07 100644 --- a/recipes/kcalc-nbc/AppImageBuilder.yml +++ b/recipes/kcalc-nbc/AppImageBuilder.yml @@ -15,7 +15,7 @@ AppDir: arch: amd64 sources: - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - kcalc @@ -39,19 +39,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/kcalc/AppImageBuilder.yml b/recipes/kcalc/AppImageBuilder.yml index 9adf8cdb..6db99b21 100644 --- a/recipes/kcalc/AppImageBuilder.yml +++ b/recipes/kcalc/AppImageBuilder.yml @@ -16,10 +16,10 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal 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/ focal-updates main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse' include: - kcalc @@ -44,19 +44,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/parole/AppImageBuilder.yml b/recipes/parole/AppImageBuilder.yml index a9be502f..965e17c6 100644 --- a/recipes/parole/AppImageBuilder.yml +++ b/recipes/parole/AppImageBuilder.yml @@ -13,8 +13,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - parole @@ -42,19 +42,19 @@ AppDir: - usr/share/metainfo/org.kde.kcalc.appdata.xml test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "dbus-launch ./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "dbus-launch ./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "dbus-launch ./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "dbus-launch ./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "dbus-launch ./AppRun" AppImage: diff --git a/recipes/pyqt5/AppImageBuilder.yml b/recipes/pyqt5/AppImageBuilder.yml index 4694f882..0ec55a9d 100644 --- a/recipes/pyqt5/AppImageBuilder.yml +++ b/recipes/pyqt5/AppImageBuilder.yml @@ -24,8 +24,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - python3 @@ -47,19 +47,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: diff --git a/recipes/python/AppImageBuilder.yml b/recipes/python/AppImageBuilder.yml index b9afcd5d..a5338f6f 100644 --- a/recipes/python/AppImageBuilder.yml +++ b/recipes/python/AppImageBuilder.yml @@ -20,8 +20,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - python3 @@ -34,19 +34,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" diff --git a/recipes/qmlscene/AppImageBuilder.yml b/recipes/qmlscene/AppImageBuilder.yml index 5bcbfab5..5ea366c8 100644 --- a/recipes/qmlscene/AppImageBuilder.yml +++ b/recipes/qmlscene/AppImageBuilder.yml @@ -16,10 +16,10 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb http://archive.neon.kde.org/user bionic main' + - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb http://archive.neon.kde.org/user noble main' key_url: 'http://archive.neon.kde.org/public.key' include: @@ -65,19 +65,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/tkinter/AppImageBuilder.yml b/recipes/tkinter/AppImageBuilder.yml index 37021e3f..23b0d486 100644 --- a/recipes/tkinter/AppImageBuilder.yml +++ b/recipes/tkinter/AppImageBuilder.yml @@ -24,8 +24,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic 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' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - libpng16-16 @@ -48,22 +48,22 @@ AppDir: APPDIR_LIBRARY_PATH: '${APPDIR}/usr/lib:${APPDIR}/usr/lib/x86_64-linux-gnu:${APPDIR}/lib/x86_64-linux-gnu' TCL_LIBRARY: '${APPDIR}/usr/share/tcltk/tcl8.6' TK_LIBRARY: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' - TKPATH: '{APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' + TKPATH: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' test: arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "LD_DEBUG=libs ./AppRun 2>&1 | grep 'init: '" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: diff --git a/recipes/vlc/AppImageBuilder.yml b/recipes/vlc/AppImageBuilder.yml index e723752e..b52c557c 100644 --- a/recipes/vlc/AppImageBuilder.yml +++ b/recipes/vlc/AppImageBuilder.yml @@ -14,28 +14,28 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic 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/ bionic-updates main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' include: - vlc test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/wget/AppImageBuilder.yml b/recipes/wget/AppImageBuilder.yml index 401bcd8e..6d0e2fd8 100644 --- a/recipes/wget/AppImageBuilder.yml +++ b/recipes/wget/AppImageBuilder.yml @@ -14,7 +14,7 @@ AppDir: arch: !ENV ${TARGET_ARCH} sources: - sourceline: !ENV 'deb [arch=${TARGET_ARCH}] http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - wget @@ -37,19 +37,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" AppImage: diff --git a/recipes/wine/AppImageBuilder.yml b/recipes/wine/AppImageBuilder.yml index 4bfe0503..50935cf8 100644 --- a/recipes/wine/AppImageBuilder.yml +++ b/recipes/wine/AppImageBuilder.yml @@ -11,11 +11,11 @@ AppDir: apt: arch: [amd64, i386] sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb https://dl.winehq.org/wine-builds/ubuntu/ noble main' key_url: 'https://dl.winehq.org/wine-builds/winehq.key' include: @@ -38,19 +38,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" AppImage: diff --git a/tests/modules/generate/fake_package_repository_resolver.py b/tests/modules/generate/fake_package_repository_resolver.py index 8d199b44..13a4e01e 100644 --- a/tests/modules/generate/fake_package_repository_resolver.py +++ b/tests/modules/generate/fake_package_repository_resolver.py @@ -17,5 +17,5 @@ class FakePackageRepositoryResolver(PackageRepositoryResolver): def resolve_source_lines(self, packages) -> []: return [ - "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" + "deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" ] diff --git a/tests/modules/generate/test_apt_section_generator.py b/tests/modules/generate/test_apt_section_generator.py index e0c0e889..1dc1c439 100644 --- a/tests/modules/generate/test_apt_section_generator.py +++ b/tests/modules/generate/test_apt_section_generator.py @@ -54,7 +54,7 @@ def test_generate(self): "allow_unauthenticated": True, "sources": [ { - "sourceline": "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" + "sourceline": "deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" } ], "include": ["libc6:amd64"], diff --git a/tests/recipe/test_validator.py b/tests/recipe/test_validator.py index fe9bcee6..c9926564 100644 --- a/tests/recipe/test_validator.py +++ b/tests/recipe/test_validator.py @@ -92,8 +92,8 @@ def test_validate_apt(self): "arch": "i386", "sources": [ { - "sourceline": "deb [arch=i386] http://mx.archive.ubuntu.com/ubuntu/ bionic main", - "key_url": "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32", + "sourceline": "deb [arch=i386] http://mx.archive.ubuntu.com/ubuntu/ noble main", + "key_url": "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c", } ], "include": ["qmlscene"], From 9cc101ca4379f4c5454b87338495eb7da1af7a3f Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 22:21:33 -0400 Subject: [PATCH 12/24] Get rid of setup.py Signed-off-by: Gregorio Litenstein --- .github/workflows/stable-releases.yml | 2 +- pyproject.toml | 44 ++++++++++++++++++ setup.py | 65 --------------------------- 3 files changed, 45 insertions(+), 66 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 5b6f0ed1..4221d70d 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -100,5 +100,5 @@ jobs: TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | . .venv/bin/activate - python setup.py sdist bdist_wheel + python3 -m build twine upload dist/* diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..079f98d7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,44 @@ +[build-system] +requires = ["setuptools>=64", "setuptools-scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "appimage-builder" +dynamic = ["version"] +description = "Recipe based AppImage creation meta-tool" +readme = "README.md" +license = "MIT" +requires-python = ">=3.6" +authors = [ + { name = "Alexis Lopez Zubieta", email = "contact@azubieta.net" }, +] +dependencies = [ + "docker", + "emrichen", + "libconf", + "lief", + "packaging", + "pydpkg", + "python-gnupg", + "pyyaml>=5", + "questionary", + "requests", + "roam", + "ruamel.yaml", + "schema", + "urllib3", +] + +[project.scripts] +appimage-builder = "appimagebuilder.__main__:__main__" + +[project.urls] +"Bug Tracker" = "https://github.com/AppImageCrafters/appimage-builder/issues" +Documentation = "https://appimage-builder.readthedocs.io" +Homepage = "https://github.com/AppImageCrafters/appimage-builder" +"Source Code" = "https://github.com/AppImageCrafters/appimage-builder" + +[tool.setuptools_scm] + +[tool.setuptools] +packages = ["appimagebuilder", "tests"] \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 0fa180d2..00000000 --- a/setup.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Copyright 2020 Alexis Lopez Zubieta -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. - -import setuptools - -with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - -setuptools.setup( - name="appimage_builder", - use_scm_version=True, - setup_requires=["setuptools_scm"], - author="Alexis Lopez Zubieta", - author_email="contact@azubieta.net", - description="Recipe based AppImage creation meta-tool", - long_description=long_description, - long_description_content_type="text/markdown", - entry_points={ - "console_scripts": [ - "appimage-builder = appimagebuilder.__main__:__main__", - ] - }, - url="https://github.com/AppImageCrafters/appimage-builder", - project_urls={ - "Bug Tracker": "https://github.com/AppImageCrafters/appimage-builder/issues", - "Documentation": "https://appimage-builder.readthedocs.io", - "Source Code": "https://github.com/AppImageCrafters/appimage-builder", - }, - packages=setuptools.find_packages(), - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - ], - license="MIT", - install_requires=[ - "pyyaml>=5", - "docker", - "requests", - "schema", - "packaging", - "questionary", - "emrichen", - "ruamel.yaml", - "roam", - "urllib3", - "lief", - "python-gnupg", - "libconf", - "pydpkg", - ], - python_requires=">=3.6", - package_data={"": []}, - include_package_data=True, -) From 0daed530f376e5345cb1a9c799b6ddc865e6c01e Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 22:22:05 -0400 Subject: [PATCH 13/24] Use a venv to run tests in containers. --- .github/workflows/continuous-builds.yml | 68 ++++++++++++-------- .github/workflows/stable-releases.yml | 17 ++--- recipes/appimage-builder/AppImageBuilder.yml | 6 +- 3 files changed, 47 insertions(+), 44 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index e1858bb2..02586c89 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -11,84 +11,96 @@ on: - '!**' jobs: - pytest-ubuntu-noble: + pytest-ubuntu-container: + name: Run tests on Ubuntu 24.04 (Docker) runs-on: ubuntu-24.04 container: ubuntu:24.04 steps: - name: Install dependencies run: | apt-get -y update - apt-get install -y python3 python3-pip python3-venv fakeroot binutils patchelf git + apt-get install -y fakeroot python3-pip python3-venv lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0 - - name: Set up the virtualenv + fetch-depth: 0' + - name: Set up a virtualenv run: | python3 -m venv .venv - . .venv/bin/activate - pip install pytest - - name: Install appimage-builder + - name: Install appimage-builder and run tests run: | . .venv/bin/activate + pip install pytest pip install -e .[dev] - - name: Run pytest + pytest tests + + pytest-ubuntu-runner: + name: Run tests on Ubuntu 24.04 with python 3.13. + runs-on: ubuntu-24.04 + steps: + - name: Install dependencies + run: | + sudo apt-get -y update + sudo apt-get install -y fakeroot lsb-release binutils patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Clear Python cache run: | - . .venv/bin/activate + sudo rm -rf /__t/Python + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' + - name: Install appimage-builder and run tests + run: | + pip install pytest + pip install -e .[dev] python3 -m pytest tests pytest-archlinux: + name: Run tests on ArchLinux (Docker) runs-on: ubuntu-24.04 container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot strace patchelf git + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up the virtualenv + - name: Set up a virtualenv run: | python3 -m venv .venv - . .venv/bin/activate - pip install pytest - - name: Install appimage-builder + - name: Install appimage-builder and run tests run: | . .venv/bin/activate + pip install pytest pip install -e .[dev] - - name: Run pytest - run: | - . .venv/bin/activate pytest tests build: runs-on: ubuntu-24.04 - needs: [ pytest-ubuntu-noble, pytest-archlinux ] + needs: [ pytest-ubuntu-container, pytest-ubuntu-runner, pytest-archlinux ] steps: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up the virtualenv - run: | - python3 -m venv .venv - . .venv/bin/activate - pip install pytest - #- name: Activate virtual environment - #run: echo PATH=${GITHUB_WORKSPACE}/venv/bin:$PATH >> $GITHUB_ENV - name: Install appimage-builder run: | - . .venv/bin/activate + sudo pip install setuptools twine pip install --ignore-installed . - name: Build AppImage run: | - . .venv/bin/activate cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 4221d70d..43f30f2d 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Install dependencies run: | - sudo apt-get install -y python3 python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout @@ -23,9 +23,7 @@ jobs: fetch-depth: 0 - name: Install appimage-builder run: | - python3 -m venv .venv - . .venv/bin/activate - python3 -m pip install . + pip install . - name: Build AppImage run: | cd recipes/appimage-builder @@ -84,21 +82,14 @@ jobs: needs: test steps: - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - name: Install dependencies run: | - python3 -m venv .venv - . .venv/bin/activate - python3 -m pip install --upgrade pip - pip install setuptools wheel twine + sudo pip install --upgrade pip + sudo pip install setuptools twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - . .venv/bin/activate python3 -m build twine upload dist/* diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index c99faf2d..f64419f0 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -19,7 +19,7 @@ AppDir: # Set the python executable as entry point exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} # Set the application main script path as argument. Use '$@' to forward CLI parameters - exec_args: "$APPDIR/usr/bin/appimage-builder $@" + exec_args: "$APPDIR/usr/local/bin/appimage-builder $@" apt: arch: amd64 @@ -51,8 +51,8 @@ AppDir: ln -s bash $TARGET_APPDIR/bin/sh # install appimage-builder - python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ - python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi + python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" certifi runtime: version: "continuous" From 9af6adbb6a4907fea87f35d2def92b474fbecbc3 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:19:36 -0400 Subject: [PATCH 14/24] AppRun2: Add symlink to fix compat runtime in Ubuntu Fix ubuntu linker symlink --- .../modules/setup/apprun_2/apprun2.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/appimagebuilder/modules/setup/apprun_2/apprun2.py b/appimagebuilder/modules/setup/apprun_2/apprun2.py index be7e6ab0..5730978c 100644 --- a/appimagebuilder/modules/setup/apprun_2/apprun2.py +++ b/appimagebuilder/modules/setup/apprun_2/apprun2.py @@ -94,6 +94,30 @@ def __init__(self, context: Context, finder: Finder): def setup(self): self.move_glibc_to_compat_runtime() + ubuntu_compat_linker_folder = self.compat_runtime_path / "lib64" + + if ubuntu_compat_linker_folder.exists(): + logging.info( + "Linker expected under %s for Ubuntu; path should be a symlink..." + % ubuntu_compat_linker_folder.__str__() + ) + if ubuntu_compat_linker_folder.is_file(): + logging.info("Unlinking file at %s" % ubuntu_compat_linker_folder.__str__()) + ubuntu_compat_linker_folder.unlink() + elif not ubuntu_compat_linker_folder.is_symlink() and ubuntu_compat_linker_folder.is_dir(): + logging.info("Removing directory at %s" % ubuntu_compat_linker_folder.__str__()) + shutil.rmtree(ubuntu_compat_linker_folder) + linker_folder = self.finder.find_one( + "*/x86_64-linux-gnu/ld-linux*.so*", [Finder.is_file, Finder.is_elf_shared_lib] + ).parent + logging.info(f"Found linker at: {linker_folder.__str__()}") + logging.info( + "Creating symlink to %s at %s" + % (linker_folder.relative_to(self.appdir_path), ubuntu_compat_linker_folder.__str__()) + ) + symlink_dest = linker_folder.relative_to(ubuntu_compat_linker_folder.parent) + ubuntu_compat_linker_folder.symlink_to(symlink_dest) + runtime_env = self._configure_runtime_environment() scanner = ExecutablesScanner(self.appdir_path, self.finder) From e7fea7ac907b09f5d5a5fc0794a1b6704f052f8b Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:22:35 -0400 Subject: [PATCH 15/24] Fix bash recipes --- recipes/bash/AppImageBuilder.yml | 19 ++++++++++++------- recipes/bash/bash-apprun-v3.yml | 18 ++++++++++++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index 76471b44..17f58399 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -1,20 +1,17 @@ version: 1 script: - echo $PWD - - rm -rf $TARGET_APPDIR | true - mkdir -p $TARGET_APPDIR/bin - cp run_tests.sh $TARGET_APPDIR - cp -r tests $TARGET_APPDIR - - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env - - mkdir -p $TARGET_APPDIR/bin - - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: app_info: id: org.gnu.bash - version: 4.4.20 + name: bash + version: 5.2.21 exec: bin/bash + exec_args: "$@" apt: arch: [ amd64, i386 ] @@ -31,6 +28,14 @@ AppDir: exclude: - libpcre3 + after_bundle: | + cd $TARGET_APPDIR + ln -sr usr/bin/env tests/test_internal_binary_env + ln -sr /usr/bin/env tests/test_external_binary_env + mkdir -p bin + ln -sr usr/bin/bash bin/bash + ln -sr bin/bash bin/nubash + files: exclude: - etc/** @@ -65,7 +70,7 @@ AppDir: image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" - AppImage: + comp: zstd arch: x86_64 comp: gzip diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index 10f0d13f..ca32d56f 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -1,19 +1,15 @@ version: 1 script: - echo $PWD - - rm -rf $TARGET_APPDIR | true - mkdir -p $TARGET_APPDIR/bin - cp run_tests.sh $TARGET_APPDIR - cp -r tests $TARGET_APPDIR - - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env - - mkdir -p $TARGET_APPDIR/bin - - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: app_info: id: org.gnu.bash - version: 4.4.20 + name: bash + version: 5.2.21 exec: bin/bash apt: @@ -28,8 +24,17 @@ AppDir: - coreutils - libc6 - libc6:i386 + exclude: - libpcre3 + after_bundle: | + cd $TARGET_APPDIR + ln -sr usr/bin/env tests/test_internal_binary_env + ln -sr /usr/bin/env tests/test_external_binary_env + mkdir -p bin + ln -sr usr/bin/bash bin/bash + ln -sr bin/bash bin/nubash + files: exclude: - etc/** @@ -67,4 +72,5 @@ AppDir: AppImage: + comp: zstd arch: x86_64 From 671aa5791567ee59e2b1a634e2616c10463d6fa5 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 13:17:50 -0400 Subject: [PATCH 16/24] Don't create broken symlinks in AppImageBuilder recipe debug? Signed-off-by: Gregorio Litenstein don't need debug anymore --- recipes/appimage-builder/AppImageBuilder.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index f64419f0..6d8cadc7 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -45,14 +45,17 @@ AppDir: exclude: [] after_bundle: | - # configure tools + # configure tools mkdir -p $TARGET_APPDIR/bin - ln -s fakeroot-sysv $TARGET_APPDIR/usr/bin/fakeroot - ln -s bash $TARGET_APPDIR/bin/sh + pushd $TARGET_APPDIR/usr/bin/ + ln -sr ./fakeroot-sysv fakeroot + ln -sr ./bash sh + ln -sr ./sh $TARGET_APPDIR/bin/sh # install appimage-builder - python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" ../../ - python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" certifi + popd + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi runtime: version: "continuous" From a95a20b2b7ef8e4b32f4445153ee81443d33fba8 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 13:19:36 -0400 Subject: [PATCH 17/24] AppImageBuilder recipe:Add comp --- recipes/appimage-builder/AppImageBuilder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 6d8cadc7..1cc45e09 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -91,4 +91,4 @@ AppImage: update-information: 'gh-releases-zsync|AppImageCrafters|appimage-builder|latest|-*x86_64.AppImage.zsync' sign-key: None arch: x86_64 - comp: gzip + comp: zstd From 782f2c7e7e85acf219ea2e7ee8ef1f4fb7d18c89 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 15:02:34 -0400 Subject: [PATCH 18/24] DRY, saner, and more importantly: WORKING CI Signed-off-by: Gregorio Litenstein --- .../{continuous-builds.yml => build-test.yml} | 131 ++++++++---------- .github/workflows/ci.yml | 14 ++ .github/workflows/pre-release.yml | 36 +++++ .github/workflows/stable-releases.yml | 98 +++---------- 4 files changed, 125 insertions(+), 154 deletions(-) rename .github/workflows/{continuous-builds.yml => build-test.yml} (63%) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/pre-release.yml diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/build-test.yml similarity index 63% rename from .github/workflows/continuous-builds.yml rename to .github/workflows/build-test.yml index 02586c89..d2702fef 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/build-test.yml @@ -1,14 +1,9 @@ -# This workflows will upload a Python Package using Twine when a release is created -# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries - -name: Continuous Builds +name: Run tests on: - push: - branches: - - '**' - tags: - - '!**' + workflow_call: +env: + APPIMAGE_BUILDER_REMOTE_REPO_OWNER: ${{ github.repository_owner }} jobs: pytest-ubuntu-container: @@ -18,12 +13,12 @@ jobs: steps: - name: Install dependencies run: | - apt-get -y update + apt-get -y update apt-get install -y fakeroot python3-pip python3-venv lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0' + fetch-depth: 0 - name: Set up a virtualenv run: | python3 -m venv .venv @@ -34,123 +29,107 @@ jobs: pip install -e .[dev] pytest tests - pytest-ubuntu-runner: - name: Run tests on Ubuntu 24.04 with python 3.13. + pytest-archlinux: + name: Run tests on ArchLinux (Docker) runs-on: ubuntu-24.04 + container: archlinux steps: - name: Install dependencies - run: | - sudo apt-get -y update - sudo apt-get install -y fakeroot lsb-release binutils patchelf git + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Clear Python cache + - name: Set up a virtualenv run: | - sudo rm -rf /__t/Python - - name: Install python - uses: actions/setup-python@v5 - with: - python-version: '3.13' - cache: 'pip' + python3 -m venv .venv - name: Install appimage-builder and run tests run: | + . .venv/bin/activate pip install pytest pip install -e .[dev] - python3 -m pytest tests + pytest tests - pytest-archlinux: - name: Run tests on ArchLinux (Docker) + pytest-ubuntu-runner: + name: Run tests on Ubuntu 24.04 with python 3.13. runs-on: ubuntu-24.04 - container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git + run: | + sudo apt-get -y update + sudo apt-get install -y fakeroot lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up a virtualenv + - name: Clear Python cache run: | - python3 -m venv .venv + sudo rm -rf /__t/Python + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' - name: Install appimage-builder and run tests run: | - . .venv/bin/activate pip install pytest pip install -e .[dev] - pytest tests + python3 -m pytest tests - build: + build-pack-bash: runs-on: ubuntu-24.04 needs: [ pytest-ubuntu-container, pytest-ubuntu-runner, pytest-archlinux ] steps: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release python3-build python3-setuptools adwaita-icon-theme sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Build Python Wheel + run: | + cd ${{ github.workspace }} + python3 -m build - name: Install appimage-builder run: | - sudo pip install setuptools twine - pip install --ignore-installed . + pip install --ignore-installed --user --break-system-packages . - name: Build AppImage run: | - cd recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + cd ${{ github.workspace }}/recipes/appimage-builder + export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + echo "APPIMAGE_BUILDER_VERSION=${APPIMAGE_BUILDER_VERSION}" >> $GITHUB_ENV appimage-builder --skip-test - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: appimage-builder - path: 'recipes/appimage-builder/appimage-builder*.AppImage*' - test-pack-bash: - runs-on: ubuntu-24.04 - needs: build - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Download AppImage from build job - uses: actions/download-artifact@v4 - with: - name: appimage-builder - - name: Install dependencies - run: | - sudo apt install -y adwaita-icon-theme - name: Pack bash run: | # build bash BUILDER_PATH=$(find $PWD -name appimage-builder-*.AppImage) chmod +x "$BUILDER_PATH" - cd recipes/bash/ + cd ${{ github.workspace }}/recipes/bash/ "$BUILDER_PATH" --skip-test - name: Test bash run: | - recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - - name: Upload Artifacts + cd ${{ github.workspace }}/recipes/bash/ + ./bash*.AppImage --appimage-extract-and-run -c "echo Hello World" + - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: - name: bash - path: 'recipes/bash/*.AppImage*' - publish: - runs-on: ubuntu-24.04 - needs: test-pack-bash - if: github.ref == 'refs/heads/main' - steps: - - name: Download AppImage from build job - uses: actions/download-artifact@v4 + name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*.AppImage*' + retention-days: 7 + - name: Upload AppImageBuilder Python dist + uses: actions/upload-artifact@v4 with: - name: appimage-builder - - uses: "marvinpinto/action-automatic-releases@latest" + name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}-pydist + path: '${{ github.workspace }}/dist/*' + retention-days: 7 + - name: Upload Bash AppImage + uses: actions/upload-artifact@v4 with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" - prerelease: true - automatic_release_tag: Continuous - files: 'appimage-builder*.AppImage*' + name: bash.AppImage + path: '${{ github.workspace }}/recipes/bash/*.AppImage*' + retention-days: 7 + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..981a46f4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,14 @@ +name: "CI Build" + +on: + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-and-test: + name: "Build and test" + uses: ./.github/workflows/build-test.yml \ No newline at end of file diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 00000000..c7384db3 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,36 @@ +name: "Pre-release" + +on: + push: + branches: + - "main" + workflow_dispatch: + +jobs: + build: + name: "Run Build and Test Matrix" + uses: ./.github/workflows/build-test.yml + + publish: + name: "Publish Pre-release" + runs-on: ubuntu-latest + needs: build + steps: + - name: Download all build artifacts from build job + uses: actions/download-artifact@v4 + with: + pattern: "appimage-builder*" + path: "${{ github.workspace }}/release-assets" + merge-multiple: true + - name: Look at downloaded assets + run: | + ls -l "${{ github.workspace }}/" + ls -l "${{ github.workspace }}/release-assets/" + - name: Create 'continuous' Pre-release + uses: softprops/action-gh-release@v2 + with: + files: "${{ github.workspace }}/release-assets/*" + tag_name: "continuous" + name: "Continuous Build (Pre-release)" + body: "This is a continuous build which may be unstable." + prerelease: true diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 43f30f2d..83ca3316 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -1,95 +1,37 @@ -# This workflows will upload a Python Package using Twine when a release is created -# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries - -name: Release builds +name: "Tagged Release" on: push: tags: - - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + - "v*" + workflow_dispatch: jobs: build: - runs-on: ubuntu-24.04 - steps: - - name: Install dependencies - run: | - sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release - sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool - sudo chmod +x /usr/local/bin/appimagetool - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install appimage-builder - run: | - pip install . - - name: Build AppImage - run: | - cd recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") - appimage-builder --skip-test - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: appimage-builder - path: 'recipes/appimage-builder/appimage-builder*.AppImage*' - test: - runs-on: ubuntu-24.04 + name: "Run Build and Test Matrix" + uses: ./.github/workflows/build-test.yml + + publish: + name: "Publish Tagged Release" + runs-on: ubuntu-latest needs: build steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Download AppImage from build job + - name: Download all build artifacts from build job uses: actions/download-artifact@v4 with: - name: appimage-builder - - name: Install dependencies - run: | - sudo apt install -y adwaita-icon-theme - - name: Pack bash - run: | - # build bash - BUILDER_PATH=$(find $PWD -name appimage-builder-*.AppImage) - chmod +x "$BUILDER_PATH" - cd recipes/bash/ - "$BUILDER_PATH" --skip-test - - name: Test bash - run: | - recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: bash - path: 'recipes/bash/*.AppImage*' - publish-appimage: - runs-on: ubuntu-24.04 - needs: test - steps: - - name: Download AppImage from build job - uses: actions/download-artifact@v4 - with: - name: appimage-builder - - uses: "marvinpinto/action-automatic-releases@latest" + pattern: "appimage-builder*-pydist" + path: release-assets + merge-multiple: true + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" + files: release-assets/* prerelease: false - files: 'appimage-builder*.AppImage*' - publish-python-wheel: - runs-on: ubuntu-24.04 - needs: test - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - sudo pip install --upgrade pip - sudo pip install setuptools twine - - name: Build and publish + - name: Publish wheel env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - python3 -m build - twine upload dist/* + sudo apt-get -y install python3-twine + twine upload release-assets/* From 0feb4b07063758fe784ec7956b090d82f8cbd638 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 4 Aug 2025 09:24:33 -0400 Subject: [PATCH 19/24] Add AppImage with debug runtime to artifacts. Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 14 ++- .../AppImageBuilder-debug.yml | 91 +++++++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 recipes/appimage-builder/AppImageBuilder-debug.yml diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index d2702fef..a2fd8725 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -114,11 +114,21 @@ jobs: run: | cd ${{ github.workspace }}/recipes/bash/ ./bash*.AppImage --appimage-extract-and-run -c "echo Hello World" + - name: Build AppImage (DEBUG runtime) + run: | + cd ${{ github.workspace }}/recipes/appimage-builder + appimage-builder --skip-test --recipe ./AppImageBuilder-debug.yml - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: - name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*.AppImage*' + name: appimage-builder.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage*' + retention-days: 7 + - name: Upload AppImageBuilder Debug AppImage + uses: actions/upload-artifact@v4 + with: + name: appimage-builder-DEBUG.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*-DEBUG*.AppImage*' retention-days: 7 - name: Upload AppImageBuilder Python dist uses: actions/upload-artifact@v4 diff --git a/recipes/appimage-builder/AppImageBuilder-debug.yml b/recipes/appimage-builder/AppImageBuilder-debug.yml new file mode 100644 index 00000000..4dba5594 --- /dev/null +++ b/recipes/appimage-builder/AppImageBuilder-debug.yml @@ -0,0 +1,91 @@ +version: 1 +script: + # Remove any previous build + - rm -rf $TARGET_APPDIR || true + - mkdir -p $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps $TARGET_APPDIR/usr/bin $TARGET_APPDIR/opt "$BUILD_DIR" + - cp ../../resources/appimage-builder.svg $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps + - cp ../../resources/application-vnd.appimage.svg $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps + +AppDir: + app_info: + id: org.appimage-crafters.appimage-builder + name: appimage-builder + icon: appimage-builder + version: 'latest' + # Set the python executable as entry point + exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} + # Set the application main script path as argument. Use '$@' to forward CLI parameters + exec_args: "$APPDIR/usr/local/bin/appimage-builder $@" + + apt: + arch: amd64 + sources: + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + + include: + - bash + - coreutils + - binutils + - util-linux + - file + - desktop-file-utils + - fakeroot + - libgdk-pixbuf2.0-dev + - patchelf + - python{{APPIMAGE_BUILDER_PY_VERSION}}-minimal + - squashfs-tools + - strace + - zsync + exclude: [] + + after_bundle: | + # configure tools + mkdir -p $TARGET_APPDIR/bin + pushd $TARGET_APPDIR/usr/bin/ + ln -sr ./fakeroot-sysv fakeroot + ln -sr ./bash sh + ln -sr ./sh $TARGET_APPDIR/bin/sh + + # install appimage-builder + popd + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi + + runtime: + debug: true + version: "continuous" + env: + # Set python home + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME + PYTHONHOME: '${APPDIR}/usr' + # Path to the site-packages dir or other modules dirs + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH + PYTHONPATH: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages' + # SSL Certificates are placed in a different location for every system therefore we ship our own copy + SSL_CERT_FILE: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages/certifi/cacert.pem' + + test: + fedora: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 + command: ./AppRun --help + debian: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm + command: ./AppRun --help + arch: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest + command: ./AppRun --help + centos: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 + command: ./AppRun --help + ubuntu: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble + command: ./AppRun --help + +AppImage: + file_name: "appimage-builder-{{APPIMAGE_BUILDER_VERSION}}-x86_64-DEBUG.AppImage" + update-information: 'gh-releases-zsync|AppImageCrafters|appimage-builder|latest|-*x86_64.AppImage.zsync' + sign-key: None + arch: x86_64 + comp: zstd From cc5ac5fe9e8210708de06b9918ef0e109e285b76 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 4 Aug 2025 17:22:01 -0400 Subject: [PATCH 20/24] Remove version from filename So the prelease doesn't begin hoarding files. Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index a2fd8725..a53297c1 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -100,7 +100,7 @@ jobs: - name: Build AppImage run: | cd ${{ github.workspace }}/recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") echo "APPIMAGE_BUILDER_VERSION=${APPIMAGE_BUILDER_VERSION}" >> $GITHUB_ENV appimage-builder --skip-test - name: Pack bash @@ -118,23 +118,29 @@ jobs: run: | cd ${{ github.workspace }}/recipes/appimage-builder appimage-builder --skip-test --recipe ./AppImageBuilder-debug.yml + - name: Compress Assets + run: | + cd ${{ github.workspace }}/recipes/appimage-builder + tar -cvf appimage-builder_x86_64-AppImage.tar ${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage* + tar -cvf appimage-builder_x86_64-AppImage-DEBUG.tar ${{ github.workspace }}/recipes/appimage-builder/*-DEBUG.AppImage* + tar -cvf ${{ github.workspace }}/appimage-builder_python-dist.tar -C ${{ github.workspace }}/dist . - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: name: appimage-builder.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage*' + path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage.tar' retention-days: 7 - name: Upload AppImageBuilder Debug AppImage uses: actions/upload-artifact@v4 with: name: appimage-builder-DEBUG.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*-DEBUG*.AppImage*' + path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage-DEBUG.tar' retention-days: 7 - name: Upload AppImageBuilder Python dist uses: actions/upload-artifact@v4 with: - name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}-pydist - path: '${{ github.workspace }}/dist/*' + name: appimage-builder-pydist + path: '${{ github.workspace }}/appimage-builder_python-dist.tar' retention-days: 7 - name: Upload Bash AppImage uses: actions/upload-artifact@v4 @@ -142,4 +148,3 @@ jobs: name: bash.AppImage path: '${{ github.workspace }}/recipes/bash/*.AppImage*' retention-days: 7 - From fd6039365f8381dd6b2fbfee503e0aab98e7af93 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Fri, 8 May 2026 16:57:37 -0400 Subject: [PATCH 21/24] git safe.directory Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index a53297c1..857ff3a8 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -14,7 +14,7 @@ jobs: - name: Install dependencies run: | apt-get -y update - apt-get install -y fakeroot python3-pip python3-venv lsb-release binutils patchelf git + apt-get install -y fakeroot lsb-release binutils patchelf git python3-pip python3-venv - name: Checkout uses: actions/checkout@v4 with: @@ -24,6 +24,7 @@ jobs: python3 -m venv .venv - name: Install appimage-builder and run tests run: | + git config --global --add safe.directory $PWD . .venv/bin/activate pip install pytest pip install -e .[dev] @@ -35,9 +36,9 @@ jobs: container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git + run: pacman -Syu --noconfirm binutils fakeroot lsb-release strace patchelf git python-pip gcc - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up a virtualenv @@ -45,6 +46,7 @@ jobs: python3 -m venv .venv - name: Install appimage-builder and run tests run: | + git config --global --add safe.directory $PWD . .venv/bin/activate pip install pytest pip install -e .[dev] From d68bde26a4acd984a74fec41faff38a0fa5312b6 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 11 May 2026 14:30:33 -0400 Subject: [PATCH 22/24] Fix arch test failure Signed-off-by: Gregorio Litenstein --- appimagebuilder/modules/deploy/pacman/venv.py | 1 + tests/modules/deploy/pacman/test_venv.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/appimagebuilder/modules/deploy/pacman/venv.py b/appimagebuilder/modules/deploy/pacman/venv.py index 603e145a..62bf0041 100644 --- a/appimagebuilder/modules/deploy/pacman/venv.py +++ b/appimagebuilder/modules/deploy/pacman/venv.py @@ -159,6 +159,7 @@ def _generate_config(self): f.write("DBPath = %s\n" % self._db_path) f.write("CacheDir = %s\n" % self._cache_dir) f.write("GPGDir = %s\n" % self._gpg_dir) + f.write("SigLevel = Required DatabaseOptional\n") if not self._repositories: f.write("Include = /etc/pacman.conf\n") diff --git a/tests/modules/deploy/pacman/test_venv.py b/tests/modules/deploy/pacman/test_venv.py index afad9d53..aa1d52d2 100644 --- a/tests/modules/deploy/pacman/test_venv.py +++ b/tests/modules/deploy/pacman/test_venv.py @@ -41,7 +41,7 @@ def setUpClass(cls): cls.pacman_venv = Venv( cls.venv_path, repositories={ - "core": ["https://mirror.rackspace.com/archlinux/$repo/os/$arch"] + "core": ["https://fastly.mirror.pkgbuild.com/$repo/os/$arch"] }, architecture="auto", ) From 46c8aa3820a8d9c95f5fea53f043200e84700650 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 11 May 2026 14:29:18 -0400 Subject: [PATCH 23/24] =?UTF-8?q?Revert=20"Fix=20setup=5Fruntime=20to=20us?= =?UTF-8?q?e=20only=20versions=E2=80=A6=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 27ca7b354b353302c74c4e5d2693c1f67d299f75. Signed-off-by: Gregorio Litenstein --- recipes/bash-files/AppImageBuilder.yml | 3 +-- recipes/bash-pacman/AppImageBuilder.yml | 3 +-- recipes/bash/AppImageBuilder.yml | 3 +-- recipes/gimp/AppImageBuilder.yml | 3 +-- recipes/gnome-calculator/AppImageBuilder.yml | 4 +++- recipes/hello-world-gtk/AppImageBuilder.yml | 4 +++- recipes/hello-world-qt5/AppImageBuilder.yml | 1 - recipes/hello-world-qt6/AppImageBuilder.yml | 1 - recipes/kcalc-files/AppImageBuilder.yml | 4 ++-- recipes/kcalc-nbc/AppImageBuilder.yml | 4 +++- recipes/kcalc/AppImageBuilder.yml | 3 ++- recipes/parole/AppImageBuilder.yml | 1 - recipes/pyqt5/AppImageBuilder.yml | 4 ++-- recipes/python/AppImageBuilder.yml | 5 ++--- recipes/qmlscene/AppImageBuilder.yml | 4 +--- recipes/tkinter/AppImageBuilder.yml | 4 +--- recipes/vlc/AppImageBuilder.yml | 1 - recipes/wget/AppImageBuilder.yml | 1 - recipes/wine/AppImageBuilder.yml | 1 - 19 files changed, 23 insertions(+), 31 deletions(-) diff --git a/recipes/bash-files/AppImageBuilder.yml b/recipes/bash-files/AppImageBuilder.yml index 65ece4b8..08694406 100644 --- a/recipes/bash-files/AppImageBuilder.yml +++ b/recipes/bash-files/AppImageBuilder.yml @@ -25,7 +25,7 @@ AppDir: runtime: arch: [ x86_64, i386 ] - + version: continuous test: debian: @@ -48,4 +48,3 @@ AppDir: AppImage: arch: x86_64 - comp: gzip diff --git a/recipes/bash-pacman/AppImageBuilder.yml b/recipes/bash-pacman/AppImageBuilder.yml index ec41f164..28680ab3 100644 --- a/recipes/bash-pacman/AppImageBuilder.yml +++ b/recipes/bash-pacman/AppImageBuilder.yml @@ -53,5 +53,4 @@ AppDir: AppImage: update-information: None sign-key: None - arch: x86_64 - comp: gzip \ No newline at end of file + arch: x86_64 \ No newline at end of file diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index 17f58399..ae9f6c6f 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -50,7 +50,7 @@ AppDir: runtime: arch: [ x86_64, i386 ] - + version: continuous test: debian: @@ -73,4 +73,3 @@ AppDir: AppImage: comp: zstd arch: x86_64 - comp: gzip diff --git a/recipes/gimp/AppImageBuilder.yml b/recipes/gimp/AppImageBuilder.yml index 5f7b5192..d33e9cbc 100644 --- a/recipes/gimp/AppImageBuilder.yml +++ b/recipes/gimp/AppImageBuilder.yml @@ -85,7 +85,7 @@ AppDir: - usr/share/doc/*/TODO.* - usr/include runtime: - + version: continuous path_mappings: - /etc/gimp:$APPDIR/etc/gimp - /usr/lib/gimp:$APPDIR/usr/lib/gimp @@ -117,4 +117,3 @@ AppDir: AppImage: arch: x86_64 - comp: gzip diff --git a/recipes/gnome-calculator/AppImageBuilder.yml b/recipes/gnome-calculator/AppImageBuilder.yml index 953601f5..9ff06e60 100644 --- a/recipes/gnome-calculator/AppImageBuilder.yml +++ b/recipes/gnome-calculator/AppImageBuilder.yml @@ -27,6 +27,9 @@ AppDir: - ubuntu-mono - fonts-*-core + runtime: + version: "continuous" + files: exclude: - usr/lib/x86_64-linux-gnu/gconv @@ -58,4 +61,3 @@ AppImage: update-information: None sign-key: None arch: x86_64 - comp: gzip diff --git a/recipes/hello-world-gtk/AppImageBuilder.yml b/recipes/hello-world-gtk/AppImageBuilder.yml index a6e4d244..30acccae 100644 --- a/recipes/hello-world-gtk/AppImageBuilder.yml +++ b/recipes/hello-world-gtk/AppImageBuilder.yml @@ -31,6 +31,9 @@ AppDir: - ubuntu-mono - fonts-*-core + runtime: + version: "continuous" + files: exclude: - usr/lib/x86_64-linux-gnu/gconv @@ -64,4 +67,3 @@ AppImage: update-information: None sign-key: None arch: x86_64 - comp: gzip diff --git a/recipes/hello-world-qt5/AppImageBuilder.yml b/recipes/hello-world-qt5/AppImageBuilder.yml index a80aedff..1fb12c86 100644 --- a/recipes/hello-world-qt5/AppImageBuilder.yml +++ b/recipes/hello-world-qt5/AppImageBuilder.yml @@ -65,4 +65,3 @@ AppDir: AppImage: arch: x86_64 update-information: guess - comp: gzip diff --git a/recipes/hello-world-qt6/AppImageBuilder.yml b/recipes/hello-world-qt6/AppImageBuilder.yml index d239c42e..3f01e708 100644 --- a/recipes/hello-world-qt6/AppImageBuilder.yml +++ b/recipes/hello-world-qt6/AppImageBuilder.yml @@ -107,4 +107,3 @@ AppDir: AppImage: arch: x86_64 update-information: guess - comp: gzip diff --git a/recipes/kcalc-files/AppImageBuilder.yml b/recipes/kcalc-files/AppImageBuilder.yml index d2ce598c..7cc83edc 100644 --- a/recipes/kcalc-files/AppImageBuilder.yml +++ b/recipes/kcalc-files/AppImageBuilder.yml @@ -158,7 +158,8 @@ AppDir: - usr/share/doc/*/changelog.* - usr/share/doc/*/NEWS.* - usr/share/doc/*/TODO.* - runtime: {} + runtime: + version: v2.0.0-alpha test: fedora-42: image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 @@ -178,4 +179,3 @@ AppDir: AppImage: arch: x86_64 update-information: guess - comp: gzip diff --git a/recipes/kcalc-nbc/AppImageBuilder.yml b/recipes/kcalc-nbc/AppImageBuilder.yml index ebdc2e07..9cef1f25 100644 --- a/recipes/kcalc-nbc/AppImageBuilder.yml +++ b/recipes/kcalc-nbc/AppImageBuilder.yml @@ -37,6 +37,9 @@ AppDir: # exclude glibc for a smaller but non backward compatible bundles - opt/libc + runtime: + version: "continuous" + test: debian: image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm @@ -59,4 +62,3 @@ AppImage: update-information: None sign-key: None arch: x86_64 - comp: gzip diff --git a/recipes/kcalc/AppImageBuilder.yml b/recipes/kcalc/AppImageBuilder.yml index 6db99b21..cb367781 100644 --- a/recipes/kcalc/AppImageBuilder.yml +++ b/recipes/kcalc/AppImageBuilder.yml @@ -41,6 +41,8 @@ AppDir: - usr/share/doc/*/NEWS.* - usr/share/doc/*/TODO.* - usr/share/metainfo/org.kde.kcalc.appdata.xml + runtime: + version: "continuous" test: debian: @@ -64,4 +66,3 @@ AppImage: update-information: None sign-key: None arch: x86_64 - comp: gzip diff --git a/recipes/parole/AppImageBuilder.yml b/recipes/parole/AppImageBuilder.yml index 965e17c6..7d1144f0 100644 --- a/recipes/parole/AppImageBuilder.yml +++ b/recipes/parole/AppImageBuilder.yml @@ -59,4 +59,3 @@ AppDir: AppImage: arch: x86_64 - comp: gzip diff --git a/recipes/pyqt5/AppImageBuilder.yml b/recipes/pyqt5/AppImageBuilder.yml index 0ec55a9d..e382eaca 100644 --- a/recipes/pyqt5/AppImageBuilder.yml +++ b/recipes/pyqt5/AppImageBuilder.yml @@ -36,6 +36,7 @@ AppDir: exclude: [] runtime: + version: "continuous" env: PATH: '${APPDIR}/usr/bin:${PATH}' # Set python home @@ -65,5 +66,4 @@ AppDir: AppImage: update-information: 'gh-releases-zsync|AppImageCrafters|python-appimage-example|latest|python-appimage-*x86_64.AppImage.zsync' sign-key: None - arch: x86_64 - comp: gzip \ No newline at end of file + arch: x86_64 \ No newline at end of file diff --git a/recipes/python/AppImageBuilder.yml b/recipes/python/AppImageBuilder.yml index a5338f6f..ad1d0630 100644 --- a/recipes/python/AppImageBuilder.yml +++ b/recipes/python/AppImageBuilder.yml @@ -29,6 +29,7 @@ AppDir: exclude: [ ] runtime: + version: "continuous" env: EXPORTED_BINARIES: "$APPDIR/usr/bin/env" @@ -53,6 +54,4 @@ AppDir: AppImage: update-information: 'gh-releases-zsync|AppImageCrafters|python-appimage-example|latest|python-appimage-*x86_64.AppImage.zsync' sign-key: None - arch: x86_64 - comp: gzip - \ No newline at end of file + arch: x86_64 \ No newline at end of file diff --git a/recipes/qmlscene/AppImageBuilder.yml b/recipes/qmlscene/AppImageBuilder.yml index 5ea366c8..6c851e46 100644 --- a/recipes/qmlscene/AppImageBuilder.yml +++ b/recipes/qmlscene/AppImageBuilder.yml @@ -83,6 +83,4 @@ AppDir: AppImage: update-information: None sign-key: None - arch: x86_64 - comp: gzip - \ No newline at end of file + arch: x86_64 \ No newline at end of file diff --git a/recipes/tkinter/AppImageBuilder.yml b/recipes/tkinter/AppImageBuilder.yml index 23b0d486..474c384e 100644 --- a/recipes/tkinter/AppImageBuilder.yml +++ b/recipes/tkinter/AppImageBuilder.yml @@ -69,6 +69,4 @@ AppDir: AppImage: update-information: 'gh-releases-zsync|AppImageCrafters|python-appimage-example|latest|python-appimage-*x86_64.AppImage.zsync' sign-key: None - arch: x86_64 - comp: gzip - \ No newline at end of file + arch: x86_64 \ No newline at end of file diff --git a/recipes/vlc/AppImageBuilder.yml b/recipes/vlc/AppImageBuilder.yml index b52c557c..eff20786 100644 --- a/recipes/vlc/AppImageBuilder.yml +++ b/recipes/vlc/AppImageBuilder.yml @@ -42,4 +42,3 @@ AppImage: arch: x86_64 update-information: None sign-key: None - comp: gzip diff --git a/recipes/wget/AppImageBuilder.yml b/recipes/wget/AppImageBuilder.yml index 6d0e2fd8..c2cefb85 100644 --- a/recipes/wget/AppImageBuilder.yml +++ b/recipes/wget/AppImageBuilder.yml @@ -57,4 +57,3 @@ AppImage: update-information: None sign-key: None file_name: !ENV 'wget-${APP_VERSION}-${TARGET_ARCH}.AppImage' - comp: gzip diff --git a/recipes/wine/AppImageBuilder.yml b/recipes/wine/AppImageBuilder.yml index 50935cf8..11c97d96 100644 --- a/recipes/wine/AppImageBuilder.yml +++ b/recipes/wine/AppImageBuilder.yml @@ -57,5 +57,4 @@ AppImage: update-information: None sign-key: None arch: x86_64 - comp: gzip From e898a44f323469d96b67579b7bc972f4216ca8e4 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 11 May 2026 14:41:11 -0400 Subject: [PATCH 24/24] CI: Bump version of canned actions Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 16 ++++++++-------- .github/workflows/pre-release.yml | 4 ++-- .github/workflows/stable-releases.yml | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 857ff3a8..c8cbea6e 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -16,7 +16,7 @@ jobs: apt-get -y update apt-get install -y fakeroot lsb-release binutils patchelf git python3-pip python3-venv - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up a virtualenv @@ -61,14 +61,14 @@ jobs: sudo apt-get -y update sudo apt-get install -y fakeroot lsb-release binutils patchelf git - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Clear Python cache run: | sudo rm -rf /__t/Python - name: Install python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.13' cache: 'pip' @@ -89,7 +89,7 @@ jobs: sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Build Python Wheel @@ -127,25 +127,25 @@ jobs: tar -cvf appimage-builder_x86_64-AppImage-DEBUG.tar ${{ github.workspace }}/recipes/appimage-builder/*-DEBUG.AppImage* tar -cvf ${{ github.workspace }}/appimage-builder_python-dist.tar -C ${{ github.workspace }}/dist . - name: Upload AppImageBuilder AppImage - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: appimage-builder.AppImage path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage.tar' retention-days: 7 - name: Upload AppImageBuilder Debug AppImage - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: appimage-builder-DEBUG.AppImage path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage-DEBUG.tar' retention-days: 7 - name: Upload AppImageBuilder Python dist - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: appimage-builder-pydist path: '${{ github.workspace }}/appimage-builder_python-dist.tar' retention-days: 7 - name: Upload Bash AppImage - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: bash.AppImage path: '${{ github.workspace }}/recipes/bash/*.AppImage*' diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index c7384db3..d6204a5d 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -17,7 +17,7 @@ jobs: needs: build steps: - name: Download all build artifacts from build job - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: pattern: "appimage-builder*" path: "${{ github.workspace }}/release-assets" @@ -27,7 +27,7 @@ jobs: ls -l "${{ github.workspace }}/" ls -l "${{ github.workspace }}/release-assets/" - name: Create 'continuous' Pre-release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: files: "${{ github.workspace }}/release-assets/*" tag_name: "continuous" diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 83ca3316..73206d15 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -17,14 +17,14 @@ jobs: needs: build steps: - name: Download all build artifacts from build job - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: pattern: "appimage-builder*-pydist" path: release-assets merge-multiple: true - name: Create GitHub Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: files: release-assets/* prerelease: false