-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
How to avoid python packages conflicts when changing stdenv? #117065
Comments
The interpreter should be passed to itself, just as when overriding it for any other purpose. That way, the package set will actually use this modified Python. mypython = let
python = pkgs.python3.override {
stdenv = pkgs.llvmPackages_latest.stdenv
self = python;
};
in python; Note however that mypython = let
stdenv = pkgs.llvmPackages_latest.stdenv;
python = pkgs.python3.override {
inherit stdenv;
self = python;
pkgs = pkgs // { inherit stdenv; };
};
in python; That should get you further. Note, however, this will still fail in case of cross-compilation. (Haven't tested any of these expressions) |
Thanks! But It has
Should I change one of them? Also, change
to the let expression,
seems the same. |
Correct, I missed you already set
So, this is messy. Turns out its actually the
|
Thanks, but unfortunately, it not works. I have tested it with: when using this one:
It still builds with clang7 but the latest clang11. If I override the python38 again:
It conflicts again. |
Hi, let me refresh the issue. I also struggle with interpreter replacement and face duplicated toml package.
log ends with errors:
python version doesn't matter and other python package (e.g. pygit2) are affected but all. |
I marked this as stale due to inactivity. → More info |
Overriding of parameters is fixed in #169475. Overriding of derivation parameters is harder and does not yet work I think. |
For what it's worth, the behavior described in #117065 (comment) still happens on Nixpkgs master for me. My use case is master...collares:sage-ccache |
Overriding the stdenv on a per package base should be possible with #173411. |
@FRidh Thanks a lot for this! I will test it. With regards to the approach in #117065 (comment), I noticed that some parts of the Python infrastructure use I was unable to bypass this. I guess overriding the |
Related to my previous comment: As a quick-and-dirty test, I removed |
The idea was to fix this with #117065 (comment), but because of the splicing it is not possible to override derivations. Seems that in the end it broke cross-compilation as well. |
I changed the Python stdenv via:
Then, I tried:
To avoid this error, now I use the overlay below, which ignores the check phase.
Is there any other method to solve this error so that I don't need to ignore the check phase of every error packages?
The text was updated successfully, but these errors were encountered: