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

stdenv.mkDerivation: support structuredAttrs in inputDerivation #361233

Conversation

wolfgangwalther
Copy link
Contributor

@wolfgangwalther wolfgangwalther commented Dec 2, 2024

The goal is to print all store references into $out.

First, $out itself is not defined with structuredAttrs, but we can work around that with placeholder. Alternatively we could source $stdenv/setup after sourcing the attrs.sh file, but that feels like overkill.

To support structuredAttrs we source the attrs.sh file. export will not be enough anymore, because the attrs file sets bash variables, not environment variables. Thus we resort to declare -p.

Resolves #321005

Supersedes #215173 @roberth

Part of #205690

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • 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/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 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.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added the 6.topic: stdenv Standard environment label Dec 2, 2024
@github-actions github-actions bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux labels Dec 2, 2024
Copy link
Member

@roberth roberth left a comment

Choose a reason for hiding this comment

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

Looks better than my attempt.
Have a suggestion to ease the transition, but otherwise LGTM!

pkgs/stdenv/generic/make-derivation.nix Show resolved Hide resolved
pkgs/stdenv/generic/make-derivation.nix Outdated Show resolved Hide resolved
pkgs/stdenv/generic/make-derivation.nix Show resolved Hide resolved
The goal is to print all store references into $out.

First, $out itself is not defined with structuredAttrs, but we can work
around that with placeholder. Alternatively we could source
$stdenv/setup after sourcing the attrs.sh file, but that feels like
overkill.

To support structuredAttrs we source the attrs.sh file. export will not
be enough anymore, because the attrs file sets bash variables, not
environment variables. Thus we resort to declare -p.

Resolves NixOS#321005
@wolfgangwalther wolfgangwalther force-pushed the structured-attrs-input-derivation branch from 9c6292f to 6648c58 Compare December 3, 2024 17:32
@wolfgangwalther wolfgangwalther merged commit 5752069 into NixOS:master Dec 3, 2024
16 of 17 checks passed
@wolfgangwalther wolfgangwalther deleted the structured-attrs-input-derivation branch December 3, 2024 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: stdenv Standard environment 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

.inputDerivation broken for __structuredAttrs derivations
2 participants