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

Conform builds to manylinux2014 glibc standards #14

Merged
merged 85 commits into from
Jan 8, 2024

Conversation

bjia56
Copy link
Collaborator

@bjia56 bjia56 commented Dec 31, 2023

Restructures the Linux build to do the compiling inside Centos 7 Docker containers published by the manylinux team for x86_64 and aarch64, and a container maintained by myself for armv7l. This ensures that the resulting binaries target glibc 2.17, which is required by manylinux2014.

I was unable to get cross compilation working, since devtoolset-10 does not appear to provide cross compilers. Using the system cross compiler, which is gcc 4.8.5, is unable to properly build some of the dependencies. Thus, QEMU emulation is used to build "native" aarch64 and armv7l binaries. A full cache-less build takes roughly two hours.

Other changes:

  • Split out the Linux and MacOS build jobs
  • Add patches to BoringSSL for it to build on old Centos 7
  • Add ability to parallelize builds
  • Set an env var to target MacOS SDK 10.15 (haven't inspected the binaries to see if this works yet)

Needed for lexiforest/curl_cffi#186

@bjia56 bjia56 marked this pull request as ready for review January 1, 2024 08:33
@bjia56
Copy link
Collaborator Author

bjia56 commented Jan 1, 2024

@yifeikong can you please help rerun the CI jobs?

@perklet
Copy link
Collaborator

perklet commented Jan 8, 2024

Why does the CI job need my approval to run? shouldn't this be automatic? 😂

@bjia56
Copy link
Collaborator Author

bjia56 commented Jan 8, 2024

I think it's a repo setting to require approval from new contributors, not sure why it's set to requires approval by default here (maybe because the upstream had it set?)

@bjia56
Copy link
Collaborator Author

bjia56 commented Jan 8, 2024

fyi, the MacOS build seems to be non-deterministically flaky on nghttpd tests, though I don't think it's related to my changes. I'd like to check out what the underlying error is though and see if it can be made more reliable

@perklet
Copy link
Collaborator

perklet commented Jan 8, 2024

I see all the checks have passed, is it ready to be merged?

@bjia56
Copy link
Collaborator Author

bjia56 commented Jan 8, 2024

Yes, I think it's ready. I can look into Mac test flakiness separately

@perklet perklet merged commit d4d6c3d into lexiforest:main Jan 8, 2024
7 checks passed
@perklet
Copy link
Collaborator

perklet commented Jan 8, 2024

MacOS build seems to be non-deterministically flaky on nghttpd tests

Yes, I think the original author already tried to mitigate this issue, it's much better, but not fully resolved.

bjia56 added a commit to bjia56/curl-impersonate that referenced this pull request Jan 21, 2024
@bjia56 bjia56 deleted the manylinux2014 branch January 23, 2024 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants