yifeikong / curl-impersonate

An active fork of curl-impersonate with more versions and build targets.
MIT License
52 stars 11 forks source link

Conform builds to manylinux2014 glibc standards #14

Closed bjia56 closed 7 months ago

bjia56 commented 7 months ago

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:

Needed for https://github.com/yifeikong/curl_cffi/pull/186

bjia56 commented 7 months ago

@yifeikong can you please help rerun the CI jobs?

yifeikong commented 7 months ago

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

bjia56 commented 7 months ago

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 commented 7 months ago

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

yifeikong commented 7 months ago

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

bjia56 commented 7 months ago

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

yifeikong commented 7 months ago

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.