-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
Fix sile for darwin platforms now that there is a makeBinaryWrapper solution #171473
Comments
cc @teto as the Lua eco system maintainer. Do you think we can make all Lua environment wrappers use |
is it easy to toggle between the plaintext and binary versions ? I am ok with the idea but I need to learn about implications/how it affects the code. A PR would be nice |
It would take me a while to put together a PR. I'm not familiar with the lua nixpkg ecosystem that much. I'm experimenting locally to see if I can fix it but it is going to take me a while to figure out how everything wires together and I'm a little short on time right now :-D |
override your package or package set and pass in the other |
I have naively tried an override in a nix flake and a local copy of the sile package as an attempt to fix this: {
inputs = {
nixpkgs.url = "nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {self, nixpkgs, flake-utils}:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
sile = with pkgs; (callPackage ./package.nix { makeWrapper = pkgs.makeBinaryWrapper; });
in {
defaultPackage = sile;
});
} and I still get this kind of error:
Which indicates that it isn't using the binary wrapper? I'm not sure if I'm doing something wrong or if it's less simple than just passing in the binary wrapper instead of the regular wrapper. |
makeBinaryWrapper contains these lines in the binary which can be viewed just by opening it in vim for example
|
I don't have access to anything where I could even test on Darwin, so I'm not much use as a reviewer here, sorry. |
Did some more digging and it looks like the issue is that we actually need the luaEnv wrapper to be a binary wrapper but I'm out of my depth with that package and it will take me some time to figure it out. If someone wanted to assist I can provide a Darwin M1 platform to test on if they can guide me through where I should be making changes. |
Darwin execve has issues with shebang lines that point to other scripts with shebang lines. A new makeBinaryWrapper hook was added to workaround the issue on darwin. See NixOS#171473 and NixOS#23018 for more information. This uses that binary wrapper to fix packages like sile. I'm not sure this can be considered complete but it appears to work for sile at least.
Darwin execve has issues with shebang lines that point to other scripts with shebang lines. A new makeBinaryWrapper hook was added to workaround the issue on darwin. See NixOS#171473 and NixOS#23018 for more information. This uses that binary wrapper to fix packages like sile. I'm not sure this can be considered complete but it appears to work for sile at least.
I believe now that my fix has landed in master that this can be considered fixed. But I'm not sure what rules govern closing these. |
Describe the bug
The sile is currently broken on darwin platforms due to issue #23018. The solution for that is now fixed however. It would be nice if we could get sile deployable on darwin again using that solution.
Steps To Reproduce
Steps to reproduce the behavior:
nix-shell -p sile
Expected behavior
I should get a shell with
sile
availableNotify maintainers
@doronbehar @alerque
The text was updated successfully, but these errors were encountered: