From 8cfd9ae47296c8cea00557a19272d6d98df1398d Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 4 Nov 2025 13:41:58 +0000 Subject: [PATCH 01/14] test --- .github/workflows/build.yml | 98 ++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a5359f..6fd21c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -311,8 +311,6 @@ jobs: echo "Failed" exit 1 fi - - - name: Upload build Artifact wheel uses: actions/upload-artifact@v4 with: @@ -320,6 +318,102 @@ jobs: path: wheelhouse/* + build-linux32: + runs-on: ubuntu-latest + container: + image: electronstudio/ubuntu16-modern:i386 + options: --user root --platform=linux/386 + volumes: + # override /__e/node20 because GitHub Actions uses a version that requires too-recent glibc + - /tmp:/__e/node20 + strategy: + # You can use PyPy versions in python-version. + # For example, pypy2 and pypy3 + matrix: + python-version: ['python3.12', 'python3.13', 'python3.14', 'pypy3.11'] + raylib-platform: ['Desktop', 'SDL', 'DRM'] + steps: + - name: fix node + run: | + ln -s /usr/local/bin /__e/node20/bin + + - uses: actions/checkout@v2 + with: + submodules: recursive + + - name: fix raygui bug + run: | + patch -p0 =2.0.0" + ${{ matrix.python-version }} -m pip install --upgrade wheel + ${{ matrix.python-version }} -m pip install --upgrade setuptools + ${{ matrix.python-version }} -m pip install --upgrade build + setarch i386 ${{ matrix.python-version }} -m build --wheel + python3.13 -m pip install --upgrade auditwheel + python3.13 -m pip install --upgrade patchelf + python3.13 -m auditwheel repair dist/*.whl + shell: bash + - name: Rename wheel for testing + run: | + # Rename wheelhouse wheels to be maximally compatible for testing + for wheel in wheelhouse/raylib*.whl; do + if [ -f "$wheel" ]; then + basename=$(basename "$wheel") + # Extract package and version using regex + if [[ $basename =~ ^([^-]+)-([^-]+.*)-[^-]+-[^-]+-[^-]+\.whl$ ]]; then + package="${BASH_REMATCH[1]}" + version="${BASH_REMATCH[2]}" + new_name="${package}-${version}-py3-none-linux_i686.whl" + echo "Renaming: $basename -> $new_name" + cp "$wheel" "wheelhouse/$new_name" + fi + fi + done + shell: bash + - name: Test + run: | + ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_x86_64.whl + # Clean up test wheels + rm -f wheelhouse/*-py3-none-linux_x86_64.whl + cd / + ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true + cat /tmp/output + if grep -q "INFO: Initializing raylib" /tmp/output; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + - name: Upload build Artifact wheel + uses: actions/upload-artifact@v4 + with: + name: wheel-linux32-${{ matrix.raylib-platform }}-${{ matrix.python-version }} + path: wheelhouse/* + + + + build-windows: # The type of runner that the job will run on runs-on: windows-2022 From b93fef3ba6326f5102d4f2aa195c095c4901b8a7 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 4 Nov 2025 13:49:15 +0000 Subject: [PATCH 02/14] test --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6fd21c4..32879d4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -330,7 +330,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: ['python3.12', 'python3.13', 'python3.14', 'pypy3.11'] + python-version: ['python3.8', 'python3.7', 'python3.12', 'python3.13', 'python3.14', 'pypy3.11'] raylib-platform: ['Desktop', 'SDL', 'DRM'] steps: - name: fix node @@ -393,9 +393,9 @@ jobs: shell: bash - name: Test run: | - ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_x86_64.whl + ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_i386.whl # Clean up test wheels - rm -f wheelhouse/*-py3-none-linux_x86_64.whl + rm -f wheelhouse/*-py3-none-linux_i386.whl cd / ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true cat /tmp/output From 675085527b872354a5cd1fca66bd10a886319d28 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 4 Nov 2025 14:19:48 +0000 Subject: [PATCH 03/14] test --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32879d4..dcbfca7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -365,7 +365,7 @@ jobs: PKG_CONFIG_PATH: /usr/local/lib/pkgconfig run: | ${{ matrix.python-version }} -m pip install --upgrade pip - ${{ matrix.python-version }} -m pip install --upgrade "cffi>=2.0.0" + ${{ matrix.python-version }} -m pip install --upgrade "cffi>=1.17.1" ${{ matrix.python-version }} -m pip install --upgrade wheel ${{ matrix.python-version }} -m pip install --upgrade setuptools ${{ matrix.python-version }} -m pip install --upgrade build From 91a4dd986a29bbf99d3a863f5816b1fb9efc3aa8 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 4 Nov 2025 18:38:09 +0000 Subject: [PATCH 04/14] test --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dcbfca7..d15ca6e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -365,7 +365,7 @@ jobs: PKG_CONFIG_PATH: /usr/local/lib/pkgconfig run: | ${{ matrix.python-version }} -m pip install --upgrade pip - ${{ matrix.python-version }} -m pip install --upgrade "cffi>=1.17.1" + ${{ matrix.python-version }} -m pip install --upgrade cffi ${{ matrix.python-version }} -m pip install --upgrade wheel ${{ matrix.python-version }} -m pip install --upgrade setuptools ${{ matrix.python-version }} -m pip install --upgrade build From bdb4b255ccd5af6968b626726c95ef0b07f6e437 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 4 Nov 2025 18:52:39 +0000 Subject: [PATCH 05/14] test --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d15ca6e..ac785b5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,7 +78,7 @@ jobs: run: | python -m pip install --upgrade pip - pip3 install --upgrade "cffi>=2.0.0" + pip3 install --upgrade cffi pip3 install --upgrade wheel pip3 install --upgrade setuptools python -m pip install --upgrade build @@ -184,7 +184,7 @@ jobs: run: | python -m pip install --upgrade pip - pip3 install --upgrade "cffi>=2.0.0" + pip3 install --upgrade cffi pip3 install --upgrade wheel pip3 install --upgrade setuptools python -m pip install --upgrade build @@ -271,7 +271,7 @@ jobs: PKG_CONFIG_PATH: /usr/local/lib/pkgconfig run: | ${{ matrix.python-version }} -m pip install --upgrade pip - ${{ matrix.python-version }} -m pip install --upgrade "cffi>=2.0.0" + ${{ matrix.python-version }} -m pip install --upgrade cffi ${{ matrix.python-version }} -m pip install --upgrade wheel ${{ matrix.python-version }} -m pip install --upgrade setuptools ${{ matrix.python-version }} -m pip install --upgrade build @@ -474,7 +474,7 @@ jobs: copy ${{ runner.temp }}\SDL2\lib\x64\SDL2.lib . copy ${{ runner.temp }}\SDL2\lib\x64\SDL2.dll raylib\ python -m pip install --upgrade pip - pip3 install --upgrade "cffi>=2.0.0" + pip3 install --upgrade "cffi" pip3 install --upgrade wheel pip3 install --upgrade setuptools pip3 install --upgrade build @@ -546,7 +546,7 @@ jobs: - name: Build raylib-python-cffi run: | python -m pip install --upgrade pip - pip3 install --upgrade "cffi>=2.0.0" + pip3 install --upgrade cffi pip3 install --upgrade wheel pip3 install --upgrade setuptools python setup.py sdist @@ -581,7 +581,7 @@ jobs: - name: Build raylib-python-cffi-dynamic run: | python -m pip install --upgrade pip - pip3 install --upgrade "cffi>=2.0.0" + pip3 install --upgrade cffi pip3 install --upgrade wheel pip3 install --upgrade setuptools cd dynamic From f5cfc47fa0d5d8956adc637257afdac284aef1e9 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 02:29:16 +0000 Subject: [PATCH 06/14] try win32 --- .github/workflows/build.yml | 98 ++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac785b5..c08fdaf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -505,7 +505,101 @@ jobs: with: name: wheel-windows-${{ matrix.raylib-platform }}-${{ matrix.python-version }} path: dist/* - + + build-windows32: + # The type of runner that the job will run on + runs-on: windows-2022 + strategy: + # You can use PyPy versions in python-version. + # For example, pypy2 and pypy3 + matrix: + python-version: [ '3.12' ] + raylib-platform: [ 'Desktop', 'SDL' ] + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Download SDL2 + run: curl -L -o SDL2.zip https://github.com/libsdl-org/SDL/releases/download/release-2.32.10/SDL2-devel-2.32.10-VC.zip + + - name: Create extraction directory + run: mkdir ${{ runner.temp }}\SDL2 + + - name: Unzip SDL2 + run: tar -xf SDL2.zip -C ${{ runner.temp }}\SDL2 --strip-components=1 + + - name: Set SDL2_DIR environment variable + run: echo SDL2_DIR=${{ runner.temp }}\SDL2\cmake >> $env:GITHUB_ENV + + - name: Setup Python + uses: actions/setup-python@v5 + with: + # Version range or exact version of a Python version to use, using SemVer's version range syntax. + python-version: ${{ matrix.python-version }} + # The target architecture (x86, x64) of the Python interpreter. + architecture: x86 + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v2 + with: + msbuild-architecture: x86 + + - name: fix raygui bug + run: | + patch -p0 nul 2>&1 + del raylib\dynamic\*.dll >nul 2>&1 + del raylib\dynamic\*.dylib >nul 2>&1 + del raylib\dynamic\32bit\* >nul 2>&1 + python -m build --wheel + shell: cmd + + - name: Test + shell: bash + run: | + pip3 install --no-deps dist/*.whl + cd / + python3 -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true + cat /tmp/output + if grep -q "INFO: Initializing raylib" /tmp/output; then + echo "Passed" + exit 0 + else + echo "Failed" + exit 1 + fi + + - name: Upload build Artifact wheel + uses: actions/upload-artifact@v4 + with: + name: wheel-windows32-${{ matrix.raylib-platform }}-${{ matrix.python-version }} + path: dist/* + source-distro: runs-on: ubuntu-latest @@ -594,7 +688,7 @@ jobs: path: dynamic/dist/* merge: - needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, source-distro, dynamic-distro] + needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux32, build-windows32, source-distro, dynamic-distro] runs-on: ubuntu-latest steps: - name: Merge All Artifacts From 485f5ed52e6f0434ea9e45285e155f140470e164 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 02:52:58 +0000 Subject: [PATCH 07/14] try win32 --- raylib/build.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/raylib/build.py b/raylib/build.py index d6d0823..48a0bb1 100644 --- a/raylib/build.py +++ b/raylib/build.py @@ -288,10 +288,15 @@ def build_windows(): #define RAYGUI_IMPLEMENTATION #define RAYGUI_SUPPORT_RICONS #include "raygui.h" - #define PHYSAC_IMPLEMENTATION - #define PHYSAC_NO_THREADS - #include "physac.h" """ + + if platform.architecture()[0] != "32bit": # Physac wont compile on 32bit windows + ffi_includes += """ + #define PHYSAC_IMPLEMENTATION + #define PHYSAC_NO_THREADS + #include "physac.h" + """ + libraries = ['raylib', 'gdi32', 'shell32', 'user32', 'OpenGL32', 'winmm'] if RAYLIB_PLATFORM=="SDL": libraries += ['SDL2'] From ca4752d64ebedf513f64f4f0407f3df244deea28 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 02:57:06 +0000 Subject: [PATCH 08/14] try win32 --- raylib/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raylib/build.py b/raylib/build.py index 48a0bb1..0649ad1 100644 --- a/raylib/build.py +++ b/raylib/build.py @@ -270,7 +270,6 @@ def build_windows(): ffibuilder.cdef((THIS_DIR / "glfw3.h.modified").read_text()) ffibuilder.cdef((THIS_DIR / "rlgl.h.modified").read_text()) ffibuilder.cdef((THIS_DIR / "raygui.h.modified").read_text()) - ffibuilder.cdef((THIS_DIR / "physac.h.modified").read_text()) ffibuilder.cdef((THIS_DIR / "raymath.h.modified").read_text()) ffi_includes = """ @@ -291,6 +290,7 @@ def build_windows(): """ if platform.architecture()[0] != "32bit": # Physac wont compile on 32bit windows + ffibuilder.cdef((THIS_DIR / "physac.h.modified").read_text()) ffi_includes += """ #define PHYSAC_IMPLEMENTATION #define PHYSAC_NO_THREADS From 0a719ea802e3cd0858e4fb921296f88c7547a75f Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 03:09:34 +0000 Subject: [PATCH 09/14] allow old cffi versions --- .github/workflows/build.yml | 4 ++-- pyproject.toml | 2 +- setup.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c08fdaf..1c7edac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -513,7 +513,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: [ '3.12' ] + python-version: [ '3.8' ] raylib-platform: [ 'Desktop', 'SDL' ] steps: - uses: actions/checkout@v4 @@ -668,7 +668,7 @@ jobs: uses: actions/setup-python@v5 with: # Version range or exact version of a Python version to use, using SemVer's version range syntax. - python-version: '3.12' + python-version: '3.8' # The target architecture (x86, x64) of the Python interpreter. architecture: x64 diff --git a/pyproject.toml b/pyproject.toml index 7e386b9..fbd9696 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [build-system] -requires = ["setuptools", "cffi>=2.0.0"] +requires = ["setuptools", "cffi>=1.17.1"] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index 1c9eaf7..ac476c1 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ def has_ext_modules(foo): ], packages=["raylib", "pyray"], include_package_data=True, - install_requires=["cffi>=2.0.0"], + install_requires=["cffi>=1.17.1"], distclass=BinaryDistribution, cffi_modules=["raylib/build.py:ffibuilder"] ) From ecbb3f9fabe0af21415d3452f96ca7847b426b27 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 03:18:34 +0000 Subject: [PATCH 10/14] lets try ALL the python versions --- .github/workflows/build.yml | 14 +++++++------- pyproject.toml | 2 +- setup.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1c7edac..dae4997 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-15-intel strategy: matrix: - python-version: [ '3.12', '3.13', '3.14', 'pypy-3.11' ] + python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11', 'pypy-3.10' ] raylib-platform: ['Desktop', 'SDL'] env: MACOSX_DEPLOYMENT_TARGET: '10.13' @@ -121,7 +121,7 @@ jobs: runs-on: macos-13 strategy: matrix: - python-version: [ '3.12', '3.13', '3.14'] + python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14'] raylib-platform: ['Desktop', 'SDL'] env: MACOSX_DEPLOYMENT_TARGET: '11' @@ -236,7 +236,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: ['python3.12', 'python3.13', 'python3.14', 'pypy3.11'] + python-version: ['python3.7', 'python3.8', 'python3.9', 'python3.10', 'python3.11', 'python3.12', 'python3.13', 'python3.14', 'pypy3.11'] raylib-platform: ['Desktop', 'SDL', 'DRM'] steps: - name: fix node @@ -330,7 +330,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: ['python3.8', 'python3.7', 'python3.12', 'python3.13', 'python3.14', 'pypy3.11'] + python-version: ['python3.7', 'python3.8', 'python3.9', 'python3.10', 'python3.11', 'python3.12', 'python3.13', 'python3.14'] raylib-platform: ['Desktop', 'SDL', 'DRM'] steps: - name: fix node @@ -421,7 +421,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: [ '3.12', '3.13', '3.14', 'pypy-3.11' ] + python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11', 'pypy-3.10' ] raylib-platform: ['Desktop', 'SDL'] steps: - uses: actions/checkout@v4 @@ -513,7 +513,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: [ '3.8' ] + python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11', 'pypy-3.10' ] raylib-platform: [ 'Desktop', 'SDL' ] steps: - uses: actions/checkout@v4 @@ -668,7 +668,7 @@ jobs: uses: actions/setup-python@v5 with: # Version range or exact version of a Python version to use, using SemVer's version range syntax. - python-version: '3.8' + python-version: '3.7' # The target architecture (x86, x64) of the Python interpreter. architecture: x64 diff --git a/pyproject.toml b/pyproject.toml index fbd9696..e5fd5f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [build-system] -requires = ["setuptools", "cffi>=1.17.1"] +requires = ["setuptools", "cffi>=1.15.1"] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index ac476c1..69f9ade 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ def has_ext_modules(foo): ], packages=["raylib", "pyray"], include_package_data=True, - install_requires=["cffi>=1.17.1"], + install_requires=["cffi>=1.15.1"], distclass=BinaryDistribution, cffi_modules=["raylib/build.py:ffibuilder"] ) From 8bedab49eded6688e11f400fea4105178c62b9c6 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 03:26:05 +0000 Subject: [PATCH 11/14] lets try ALL the python versions --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dae4997..2f3c496 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -393,7 +393,7 @@ jobs: shell: bash - name: Test run: | - ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_i386.whl + ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_*.whl # Clean up test wheels rm -f wheelhouse/*-py3-none-linux_i386.whl cd / @@ -513,7 +513,7 @@ jobs: # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: - python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11', 'pypy-3.10' ] + python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14' ] raylib-platform: [ 'Desktop', 'SDL' ] steps: - uses: actions/checkout@v4 @@ -668,7 +668,7 @@ jobs: uses: actions/setup-python@v5 with: # Version range or exact version of a Python version to use, using SemVer's version range syntax. - python-version: '3.7' + python-version: '3.12' # The target architecture (x86, x64) of the Python interpreter. architecture: x64 From 61c85e43fabd06f2cbe0bee3ddf6c1ab7bf29408 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 04:55:04 +0000 Subject: [PATCH 12/14] try arm64 --- .github/workflows/build.yml | 104 +++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f3c496..a16b198 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -395,7 +395,7 @@ jobs: run: | ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_*.whl # Clean up test wheels - rm -f wheelhouse/*-py3-none-linux_i386.whl + rm -f wheelhouse/*-py3-none-linux_i*.whl cd / ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true cat /tmp/output @@ -411,6 +411,106 @@ jobs: name: wheel-linux32-${{ matrix.raylib-platform }}-${{ matrix.python-version }} path: wheelhouse/* + build-linux-arm64: + runs-on: ubuntu-22.04-arm + strategy: + matrix: + python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14'] + raylib-platform: [ 'Desktop', 'SDL', 'DRM' ] + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: fix raygui bug + run: | + patch -p0 $new_name" + cp "$wheel" "wheelhouse/$new_name" + fi + fi + done + shell: bash + - name: Test + run: | + ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_aarch64.whl + # Clean up test wheels + rm -f wheelhouse/*-py3-none-linux_aarch64.whl + cd / + ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true + cat /tmp/output + if grep -q "INFO: Initializing raylib" /tmp/output; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + - name: Upload build Artifact wheel + uses: actions/upload-artifact@v4 + with: + name: wheel-linux-arm64-${{ matrix.raylib-platform }}-${{ matrix.python-version }} + path: wheelhouse/* @@ -688,7 +788,7 @@ jobs: path: dynamic/dist/* merge: - needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux32, build-windows32, source-distro, dynamic-distro] + needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux-arm64, build-linux32, build-windows32, source-distro, dynamic-distro] runs-on: ubuntu-latest steps: - name: Merge All Artifacts From 833a00f5288811c911443763a8e3419d8179a24a Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 9 Nov 2025 05:02:45 +0000 Subject: [PATCH 13/14] try arm64 --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a16b198..8f1e36e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -427,6 +427,11 @@ jobs: run: | patch -p0 Date: Sun, 9 Nov 2025 05:09:55 +0000 Subject: [PATCH 14/14] try arm64 --- .github/workflows/build.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f1e36e..4144ba5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -470,12 +470,12 @@ jobs: RAYLIB_PLATFORM: ${{ matrix.raylib-platform }} PKG_CONFIG_PATH: /usr/local/lib/pkgconfig run: | - ${{ matrix.python-version }} -m pip install --upgrade pip - ${{ matrix.python-version }} -m pip install --upgrade cffi - ${{ matrix.python-version }} -m pip install --upgrade wheel - ${{ matrix.python-version }} -m pip install --upgrade setuptools - ${{ matrix.python-version }} -m pip install --upgrade build - ${{ matrix.python-version }} -m build --wheel + python3 -m pip install --upgrade pip + python3 -m pip install --upgrade cffi + python3 -m pip install --upgrade wheel + python3 -m pip install --upgrade setuptools + python3 -m pip install --upgrade build + python3 -m build --wheel python3 -m pip install --upgrade auditwheel python3 -m pip install --upgrade patchelf python3 -m auditwheel repair dist/*.whl @@ -499,11 +499,11 @@ jobs: shell: bash - name: Test run: | - ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_aarch64.whl + python3 -m pip install --no-deps wheelhouse/*-py3-none-linux_aarch64.whl # Clean up test wheels rm -f wheelhouse/*-py3-none-linux_aarch64.whl cd / - ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true + python3 -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true cat /tmp/output if grep -q "INFO: Initializing raylib" /tmp/output; then echo "Passed"