Support aarch64 wheel builds #179
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Support aarch64 wheel Builds
Closes #178
Firstly, here's a working CI build: https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473
The Test step failed once on OSX, but succeeded the second time and appears to just be a race condition/performance issue: https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473#step:9:160
Summary of Changes
x265:x265's CMake files cease to work on CMake v4+ due to policy deprecations. The issue was fixed in x265 upstream in https://bitbucket.org/multicoreware/x265_git/commits/b354c009a60bcd6d7fc04014e200a1ee9c45c167. CMake 4.0 was introduced to the manylinux2014 Docker images we're using in pypa/manylinux@dc69f53#diff-12364f0a1989d08e72d764980ee91edcffd0c6cc162b143b21daae8e31f6d76e. I elected to pull the two patches needed to fix this for x265 (present in x265 master branch but not backported) and apply them.brotli:On OSX,
brotlisuffered the same CMake fate, but I chose to use the CMake flag-DCMAKE_POLICY_VERSION_MINIMUM=3.5as the CMake-recommended workaround, rather than trying to patch the CMakeLists.txt file ourselves, since there is not an upstream patch available.libtheora:On OSX,
libtheorawas bumped to version1.2.0, which was a long-awaited release (1.1.1was released in 2009) and contains compilation fixes for modern systems. Additionally, changed theTHEORA_ARCHvariable to use the correct host triplet forconfigure.CI Pipeline:
Updated to use the new GitHub Actions ARM runners (far faster than QEMU) for ARM wheel compilation and testing. Also, bumped
cibuildwheelto the latest version.