Skip to content
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

alsa-utils: fix wrapper shebang when cross-compiling #99532

Merged
merged 1 commit into from
Oct 6, 2020

Conversation

lopsided98
Copy link
Contributor

Motivation for this change

The alsa-info.sh wrapper had build bash as a shebang when cross-compiling. This can be fixed by making makeWrapper a buildInput.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

cc @Ericson2314 @AndersonTorres

@AndersonTorres
Copy link
Member

I am curious. Why putting makeWrapper as a buildInput solves it? makeWrapper definitely is not to be a buildInput...

@Ericson2314
Copy link
Member

Per

makeWrapper = makeSetupHook { deps = [ dieHook ]; substitutions = { shell = pkgs.runtimeShell; }; }

nativeBuildInputs should give you the true runtime shell, and depsBuildBuild should give you the build-time shell.

@lopsided98
Copy link
Contributor Author

No, runtimeShell runs on the host platform for a given package set. When makeWrapper is a nativeBuildInput, its host platform is bmon's build platform. You can verify this by evaluating pkgsCross.<platform>.buildPackages.runtimeShell.

The only way I can see to make it work as a nativeBuildInput is to use shell = pkgs.targetPackages.runtimeShell. On the other hand, that would break it if it was used as a buildInput.

This is not the first time this fix has been needed: #58305

@AndersonTorres AndersonTorres merged commit 17f578d into NixOS:master Oct 6, 2020
@Ericson2314
Copy link
Member

Oh my bad, but it definitely should be shell = pkgs.targetPackages.runtimeShell.

@lopsided98 lopsided98 deleted the alsa-utils-cross branch October 6, 2020 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants