Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux aarch64 #258

Closed
wants to merge 2 commits into from
Closed

Linux aarch64 #258

wants to merge 2 commits into from

Conversation

mtmail
Copy link
Contributor

@mtmail mtmail commented Aug 9, 2024

Mix of enhancements:

  1. Added build for Linux aarch64 architecture

  2. For the workflows to run I added on: [ push, pull_request ] and later removed it. Double-check that it's not accidentally merged. Workflow output:

  3. Increased cibuildwheel version to fix "mirrorlist.centos.org does not exist" error

  4. Skip cp313 wheel builds. Python 13 isn't released yet. The error was "GEOS version should be >=3.5, found 3.4.2" so I assume some dependent python package doesn't support Python 13 yet and the latest binary release was too old. (GEOS 3.5 was released 2015).

  5. For MacOS set MACOSX_DEPLOYMENT_TARGET because the delocate that cibuildwheel errored with "Library dependencies do not satisfy target MacOS version 11.0". It should be possible to set the variable to the installed operating system, but cibuildwheel` didn't pick it up. Might work with more debugging

      - name: Set MacOS target version
        if: startsWith(matrix.os, 'macos')
        run: |
          sw_vers -productVersion
          echo "MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion)" >> $GITHUB_ENV
  1. Remove macos-11 build. https://github.com/actions/runner-images no longer lists it as available.

  2. Add apt update because in CI build-ubuntu (gcc) and build-ubuntu (clang) errored with "Failed to fetch mirror+file:/etc/apt/apt-mirrors.txt/pool/main/c/curl/libcurl4-gnutls-dev_7.81.0-1ubuntu1.16_amd64.deb"

Feel free to pick and choose any of the fixes or ignore the PR until the next release.

@lonvia
Copy link
Member

lonvia commented Aug 9, 2024

Thanks. I would indeed want to defer this until the next release. That's when playing around with wheel builds usually happens.

At a minimum, we'd need to reinstate macos-11 as macos14-large because that was the arm64 build for MacOS (as opposed to macos-14, which is an Intel build).

The Geos issue is going to be fun. We probably just want to skip the specific test.

@lonvia
Copy link
Member

lonvia commented Sep 19, 2024

Your changes worked almost perfectly. You just forgot to change the CIBW_ARCHS variable, so the compilation ended up being x86 again. Changed that and now I have wheels that happily run on the Hetzner ARM cloud machines. Downside is that building and testing under QEMU takes more than two hours. I'll restrict wheel building to Python >= 3.9 to make sure we are not running into a timeout.

shapely seems to have 3.13 binary packages by now, so that part is solved.

The MacOS version issue was down to liblz4. Given that most people won't need lz4 support anyway, I decided to build MacOS wheels without lz4 support. Then we can have MacOS11-compatible wheels.

I'll put all this in an updated commit on master and close here. Thanks for your ground work, it helped a lot pointing me in the right direction.

@lonvia lonvia closed this Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants