conda-forge / ocp-feedstock

A conda-smithy repository for ocp.
BSD 3-Clause "New" or "Revised" License
2 stars 7 forks source link

Linux build platform for manylinux compat #19

Closed fpq473 closed 1 year ago

fpq473 commented 1 year ago

Comment:

We have been converting OCP conda packages into manylinux wheels in https://github.com/CadQuery/ocp-build-system. The results are on PyPI and have been useful to the cadquery community.

We are running into a compatibility issue with the 7.6.3.0 packages triggered in #12 (hamfisted debugging in https://github.com/CadQuery/ocp-build-system/pull/7#issuecomment-1377770211). They are built on ubuntu-22.04, and we believe this is forcing the manylinux wheels to be versioned as "manylinux_2_34", roughly meaning that they require distros providing glibc 2.34 or later. This is fairly restrictive (e.g. fedora 35, ubuntu 21.10, debian testing).

By contrast, the "alpha" OCP packages on the cadquery conda channel (pipeline) are built on ubuntu-18.04. This allows manylinux wheels to be versioned as "manylinux_2_31", which is less restrictive (e.g. debian 11, fedora 32, ubuntu-20.04).

Is it possible to rebuild 7.6.3.0 on ubuntu 20.04 (and the compiler toolchain associated with that release) or earlier?

@jmwright

adam-urbanczyk commented 1 year ago

Are you sure that this is the case? From the pipeline yaml:

DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
fpq473 commented 1 year ago

@adam-urbanczyk Thanks, I see, my mistake.

It looks like the feedstock build uses gcc-12.2, while the cadquery pipeline uses gcc-9.3. I think that is also consistent with the observed manylinux results.

So perhaps the question is whether gcc 9 can be used? (Maybe it's the gxx version that matters, but I suspect the version used here is similarly newer than the version in the cadquery alpha build.)

fpq473 commented 1 year ago

@adam-urbanczyk Or perhaps we can build 7.6.3.0 (I assume it's different from 7.6.3.alpha) in the cadquery pipeline and upload that to the cadquery channel. But perhaps the two pipelines differ in more than where the result gets published, and the conda-forge one is preferred?

adam-urbanczyk commented 1 year ago

AFAIK this is the conda-forge toolchain and one has to use it for conda-forge packages to ensure compatibility.

fpq473 commented 1 year ago

Thanks for explaining. Closing then.