Skip to content

stdenv.mkDerivation: support structuredAttrs in inputDerivation#361233

Merged
wolfgangwalther merged 1 commit intoNixOS:masterfrom
wolfgangwalther:structured-attrs-input-derivation
Dec 3, 2024
Merged

stdenv.mkDerivation: support structuredAttrs in inputDerivation#361233
wolfgangwalther merged 1 commit intoNixOS:masterfrom
wolfgangwalther:structured-attrs-input-derivation

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!

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
@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