Uh oh!
There was an error while loading. Please reload this page.
Use sysconfigdata and build-details.json from shared library build - #842
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe/meta.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/21262143921. Examine the logs at this URL for more detail. |
mgorny
commented
Jan 16, 2026
Okay, so:
|
mgorny
commented
Jan 16, 2026
Oh wait, that's for 3.15+ only. |
mgorny
commented
Jan 16, 2026
Ok, it's green now. |
| requires: | ||
| - {{ stdlib('c') }} | ||
| - {{ compiler('c') }} | ||
| - ripgrep |
There was a problem hiding this comment.
No, it's actually used in tests. However, it was listed only for python output and was missing for libpython-static.
isuruf
left a comment
There was a problem hiding this comment.
This is gonna make recipes like uWSGI link to the shared python library instead of the static library from a build number bump.
mgorny
commented
Jan 17, 2026
What's your suggestion? |
isuruf
commented
Jan 20, 2026
We can merge this to the |
@isuruf if the problem can only be fixed properly for 3.15, can |
mgorny
commented
Jan 21, 2026
How about using an explicit migrator to switch all versions? I suppose that would involve a lot of rebuilding, a large part of it not strictly necessary. |
Use the sysconfigdata from the shared library build rather than the static one. The main difference is that this ensures that programs link to the shared Python library rather than the static library. Other differences are mostly superficial (build directories, test invocation commands). Fixesconda-forge#565 Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Now python3-config defaults to shared linking, so perform that part of the test first. Then remove the shared libraries to force static linking. Signed-off-by: Michał Górny <mgorny@quansight.com>
…6.01.20.09.33.33 Other tools: - conda-build 25.11.1 - rattler-build 0.55.0 - rattler-build-conda-compat 1.4.10
isuruf
commented
Jan 21, 2026
Sure. That's okay.
I'm not sure what you mean by here. Migrator for all downstream python packages? |
mgorny
commented
Jan 21, 2026
I'm not sure if I understand migrators correctly, but my thinking would be pinning to current |
mgorny
commented
Jan 21, 2026
Either way, rebased on |
mgorny
commented
Jan 21, 2026
(I'm assuming we still want |
isuruf
commented
Jan 21, 2026
Yes, we can move |
isuruf
commented
Jan 21, 2026
We could, but there are many users of the python package outside of conda-forge, and I really don't want to break them. (There's definitely less users of |
mgorny
commented
Jan 21, 2026
In #843, you said |
isuruf
commented
Jan 21, 2026
We can't have the two together right? Looking at this PR and the tests, we have to manually delete the other if both exist. |
mgorny
commented
Jan 21, 2026
Only for |
isuruf
commented
Jan 21, 2026
People generally use |
mgorny
commented
Jan 22, 2026
Looks like almost all failed on package output verification, with the exception of macOS that failed on |
mgorny
commented
Jan 22, 2026
I've just noticed that I didn't do |
Fixesconda-forge#843 Signed-off-by: Michał Górny <mgorny@quansight.com>
…6.01.22.10.05.09 Other tools: - conda-build 25.11.1 - rattler-build 0.55.0 - rattler-build-conda-compat 1.4.10
mgorny
commented
Feb 7, 2026
@isuruf, I think this one's ready, right? |
Install `build-details.json` from shared library build rather than the static build, as the latter does not include the data needed to build extensions, and therefore it is not useful for cross-compilation. This is backported from conda-forge#842, but unlike that PR it should not break anything. Signed-off-by: Michał Górny <mgorny@quansight.com>
mgorny
commented
Feb 9, 2026
Filed #858 for 3.14. |
Checklist
0(if the version changed)conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)Use the sysconfigdata from the shared library build rather than the static one. The main difference is that this ensures that programs link to the shared Python library rather than the static library. Other differences are mostly superficial (build directories, test invocation commands).
Also use the
build-details.jsonfrom there. Unlike the static build version, it has all the data, including static and shared library, and extension build details.Fixes#565