diff --git a/.devcontainer/portability-archlinux-latest-minimal/devcontainer.json b/.devcontainer/portability-archlinux-latest-minimal/devcontainer.json deleted file mode 100644 index bf1114bf9e1..00000000000 --- a/.devcontainer/portability-archlinux-latest-minimal/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// The command "tox -e update_docker_platforms" -// creates .devcontainer/portability-*-*/devcontainer.json -// from .devcontainer/portability-devcontainer.json.in -// See https://aka.ms/devcontainer.json for format details. -{ - "name": "archlinux-latest-minimal (≥ 8-core)", - "build": { - "dockerfile": "portability-Dockerfile", - // See tox.ini for definitions - "args": { - "SYSTEM_FACTOR": "archlinux-latest", - "PACKAGE_FACTOR": "minimal", - "DOCKER_TARGET": "with-targets", - "DOCKER_TAG": "dev" - } - }, - "containerEnv": { - "MAKE": "make -j4" - }, - "onCreateCommand": ".devcontainer/onCreate.sh", - "updateContentCommand": ".devcontainer/portability-updateContent.sh", - "extensions": [ - "ms-python.python" - ] -} diff --git a/.devcontainer/portability-archlinux-latest-minimal/portability-Dockerfile b/.devcontainer/portability-archlinux-latest-minimal/portability-Dockerfile deleted file mode 120000 index 692e2a79d64..00000000000 --- a/.devcontainer/portability-archlinux-latest-minimal/portability-Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../portability-Dockerfile \ No newline at end of file diff --git a/.devcontainer/portability-archlinux-latest-standard/devcontainer.json b/.devcontainer/portability-archlinux-latest-standard/devcontainer.json deleted file mode 100644 index 9361033542c..00000000000 --- a/.devcontainer/portability-archlinux-latest-standard/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// The command "tox -e update_docker_platforms" -// creates .devcontainer/portability-*-*/devcontainer.json -// from .devcontainer/portability-devcontainer.json.in -// See https://aka.ms/devcontainer.json for format details. -{ - "name": "archlinux-latest-standard (≥ 8-core)", - "build": { - "dockerfile": "portability-Dockerfile", - // See tox.ini for definitions - "args": { - "SYSTEM_FACTOR": "archlinux-latest", - "PACKAGE_FACTOR": "standard", - "DOCKER_TARGET": "with-targets", - "DOCKER_TAG": "dev" - } - }, - "containerEnv": { - "MAKE": "make -j4" - }, - "onCreateCommand": ".devcontainer/onCreate.sh", - "updateContentCommand": ".devcontainer/portability-updateContent.sh", - "extensions": [ - "ms-python.python" - ] -} diff --git a/.devcontainer/portability-archlinux-latest-standard/portability-Dockerfile b/.devcontainer/portability-archlinux-latest-standard/portability-Dockerfile deleted file mode 120000 index 692e2a79d64..00000000000 --- a/.devcontainer/portability-archlinux-latest-standard/portability-Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../portability-Dockerfile \ No newline at end of file diff --git a/.devcontainer/portability-archlinux/Dockerfile b/.devcontainer/portability-archlinux/Dockerfile new file mode 100644 index 00000000000..958e3d63a9e --- /dev/null +++ b/.devcontainer/portability-archlinux/Dockerfile @@ -0,0 +1,2 @@ +FROM archlinux +RUN pacman -Syu --noconfirm bash git python diff --git a/.devcontainer/portability-archlinux/devcontainer.json b/.devcontainer/portability-archlinux/devcontainer.json new file mode 100644 index 00000000000..f076a199e67 --- /dev/null +++ b/.devcontainer/portability-archlinux/devcontainer.json @@ -0,0 +1,23 @@ +// See https://aka.ms/devcontainer.json for format details. +{ + "name": "archlinux", + //"image": "archlinux", + "dockerFile": "Dockerfile", + "onCreateCommand": ".devcontainer/onCreate-meson.sh || true", + "features": { + // Git feature is not compatible with Arch Linux, so we install it manually in the Dockerfile + // https://github.com/devcontainers/features/issues/824 + //"ghcr.io/devcontainers/features/git": {}, + //"ghcr.io/devcontainers/features/python:1": {}, + "../uv": { + "version": "latest" + } + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python" + ] + } + } +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b350c62f0bd..328041781a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,7 @@ jobs: - fedora:41 - fedora:42 - ghcr.io/void-linux/void-glibc-full + - archlinux #- ubuntu:22.04 - fails due to issue with cypari2 #- ubuntu:24.04 - fails due to issue with cypari2 - ubuntu:25.04 @@ -38,6 +39,11 @@ jobs: # node-based actions require libstdc++.so.6 xbps-install -Sy libstdc++ bash git fi + if [ "${{ matrix.container }}" = "archlinux" ]; then + # The archlinux container is configured to not install docs by default + # but we need the maxima help to be in place + sed -i '/^NoExtract/d' /etc/pacman.conf + fi - name: Checkout code # cannot use v4 yet because of https://github.com/actions/checkout/issues/1487 @@ -51,7 +57,11 @@ jobs: - name: Set up Python run: | uv python install - uv venv + if [ "${{ matrix.container }}" = "ghcr.io/void-linux/void-glibc-full" ] || [ "${{ matrix.container }}" = "archlinux" ]; then + uv venv --system-site-packages + else + uv venv + fi . .venv/bin/activate echo PATH=$PATH >> $GITHUB_ENV diff --git a/build/pkgs/ecm/distros/arch.txt b/build/pkgs/ecm/distros/arch.txt new file mode 100644 index 00000000000..71377f447e3 --- /dev/null +++ b/build/pkgs/ecm/distros/arch.txt @@ -0,0 +1 @@ +gmp-ecm diff --git a/build/pkgs/mpfi/distros/arch.txt b/build/pkgs/mpfi/distros/arch.txt new file mode 100644 index 00000000000..0508439baac --- /dev/null +++ b/build/pkgs/mpfi/distros/arch.txt @@ -0,0 +1 @@ +mpfi diff --git a/src/meson.build b/src/meson.build index 1ba62ae4eaf..de09388222f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -157,6 +157,8 @@ mtx = cc.find_library( ) png = dependency(['libpng', 'png', 'png16'], version: '>=1.2') zlib = dependency('zlib', version: '>=1.2.11') +# We actually want >= 20231212, but the version number is not updated in the pkgconfig +# https://github.com/conda-forge/eclib-feedstock/issues/48 ec = dependency( 'eclib', version: '>=20250122',