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

writeScriptBin, writeShellScriptBin: add meta.mainProgram automatically #234072

Merged
merged 1 commit into from May 26, 2023

Conversation

ShamrockLee
Copy link
Contributor

@ShamrockLee ShamrockLee commented May 25, 2023

Description of changes

Specify meta.mainProgram automatically for derivations build with writeScriptBin and writeShellScriptBin.

The script $out/bin/$name is the sole executable in the package. It makes perfect sense to specify meta.mainProgram with name.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@figsoda
Copy link
Member

figsoda commented May 25, 2023

but .. why?

@ShamrockLee
Copy link
Contributor Author

ShamrockLee commented May 25, 2023

@figsoda Some utilities such as NixOS/bundlers would try look for meta.mainProgram.

@figsoda
Copy link
Member

figsoda commented May 25, 2023

Doesn't nix run already work since it uses name? same for bundlers it seems

@ShamrockLee
Copy link
Contributor Author

ShamrockLee commented May 25, 2023

But it may guess wrong, especially when the name contains -[0-9].

❯ nix run path:.#hello-4y
error: unable to execute '/nix/store/8hwh0frz9yf3gblx3abh1364c8xff5r6-hello-4y/bin/hello': No such file or directory

I admit that I forgot about the default-to-name behavior, and the above is an edge case. Not sure if such cases are significant enough to be considered by the builder. But it's also trivial to add and doesn't break anything.

Copy link
Member

@figsoda figsoda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe this should be part of writeTextFile instead, but lgtm

@Kranzes Kranzes merged commit 2b54d69 into NixOS:master May 26, 2023
20 checks passed
@figsoda
Copy link
Member

figsoda commented May 27, 2023

#234454

@ShamrockLee ShamrockLee deleted the write-script-bin-mainprogram branch June 2, 2023 13:54
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.

None yet

3 participants