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
chicken: fix egg installation by preserving compiled libdir #54109
Conversation
What's the set of commands to reproduce the error you fixed? |
Running |
I'm calling chicken-install directly, which I thought should work too, but it doesn't:
|
OK. I'd also expect calling it directly to work the same way, and I think it probably is. I haven't seen that error, but I'm not on NixOS and my |
A writable store isn't turned on by default, and with good reason, because this breaks a lot of good things on Nix! I really suggest you to turn this setting back, because this just causes problems for others when you contribute, as seen from here. |
I don't recall changing it, but it's possible I did! In any case, I'll remember to test with a read-only store in the future, sorry about that. I've just made Either way, I think the current build instructions are slightly more complicated than they need to be, and having that install/load path mismatch in the result isn't ideal (even if most people won't come up against it since they'll be stopped short by the read-only store). |
Setting PREFIX is sufficient to put libraries in $out/lib, whereas setting VARDIR and then moving files out from under /var breaks egg installation because the installation path ends up differing from the library search path. Remove CHICKEN_REPOSITORY_PATH from PATH as it contains libraries, not executables, and remove unnecessary trailing slashes on search paths.
9807bb2
to
4cda856
Compare
Rebased, still tests OK. Any issues with this going in? |
It seems this has been fixed by some other commit in the intervening year. Closing. |
Setting just
PREFIX
is enough to put libraries in$out/lib
when building CHICKEN, whereas settingVARDIR
and then moving files from/var
to/lib
breaks egg installation because the library installation path ends up differing from the library search path.This patch also removes
CHICKEN_REPOSITORY_PATH
fromPATH
since it contains libraries, not executables, and removes unnecessary trailing slashes on search paths.All of this applies only to installation of eggs using the tools in the
chicken
package. Eggs installed viaeggDerivation
are unaffected.Motivation for this change
The
chicken-install
program fails for the reason above. Here are the current settings:Here is an example installation failure. This installs the extension
srfi-13
, which depends onsrfi-14
. The latter is installed successfully (because it has no dependencies), but the former fails since the dependency is not available:Note that
nox-review
currently fails for this PR due to the problem fixed by #53854. When this commit applied after that one, it passes.Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)