-
-
Notifications
You must be signed in to change notification settings - Fork 18.1k
Open
Labels
0.kind: bugSomething is brokenSomething is broken5.scope: trackingLong-lived issue tracking long-term fixes or multiple sub-problemsLong-lived issue tracking long-term fixes or multiple sub-problems
Description
Note
Originally started by @Artturin, updated by @ConnorBaker and @wolfgangwalther.
This is a tracking issue to follow progress towards __structuredAttrs compatibility in Nixpkgs. This list is not exhaustive; please feel free to add or comment more issue or PRs you feel are related.
Core
Things relating to adding support for __structuredAttrs to setup hooks or tooling used for ecosystems.
Open
Issues
substituteAllis a terrible function and we need to stop using it / fix it respectively #237216- addAttrsToDerivation seems broken #306953
- _multioutPropagateDev(): can't set propagatedBuildOutputs with __structuredAttrs #323126
- stdenv.generic: Self rpath prefix cannot handle spaces in $PWD #415892
- stdenv: structuredAttrs breaks phases when nested lists are present in inputs #422989
- haskell/generic-builder: __structuredAttrs breaks configureFlags for extra-{include,lib,framework}-dirs #427273
PRs
- stdenv and base packages: fix with __structuredAttrs enabled #263773
- check-meta: warn about misinterpreted *Array variables #335110
- cmake: setup-hooks: take structural
cmakeEntries#442017 - mkDerivation: make allowedReference/allowedRequisites nullable when __structuredAttrs is true #462141
- fetchurl, fetchgit: use
__structuredAttrs = trueand passcurlOptsListandsparseCheckoutas lists #464475
TODO
- Make
$stdenv/setupwork with structuredAttrs in:
+ const patchShebangs = () => spawn('bash', ['-c', 'source $stdenv/setup; patchShebangs node_modules'], { cwd: dir }) - Make
$stdenv/setupwork with structuredAttrs in:
nixpkgs/pkgs/build-support/docker/default.nix
Lines 1170 to 1171 in d225878
# TODO: https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L506 [ -e $stdenv/setup ] && source $stdenv/setup - Migrate pytestFlagsArray to pytestFlags
- Make output of
getAllOutputNamesconsistent with and without structuredAttrs. Related: arrayUtilities: init #385960 (comment) - careful about jdk{8,11,17,23,24}: always enable __structuredAttrs; cleanup #425773 (comment).
Done
Issues
Nix
Nixpkgs
- cmakeFlags cannot parse spaces #114044
- runCommand fails when using __structuredAttrs #213641
- global use of stdenv adapter withCFlags is broken #225740
- makeSetupHook broken in __structuredAttrs __bootPackages #240753
- cmake: the setup hook breaks with
__structuredAttrs = true#289037 - .inputDerivation broken for __structuredAttrs derivations #321005
vmTools.runInLinuxVMfails upon__structuredAttrs = true, complainingmkdir: missing operand#334705- Build failure: jdk8 #425323
PRs
Nix
Nixpkgs
- WIP: enable
__structuredAttrsinstdenv.mkDerivation#65686 - stdenv: enable __structuredAttrs #72074
- treewide: structured-attrs fixes #76674
- stdenv.mkDerivation: add support for env attrset #76732
- treewide: Fix types of stripDebugList attrs (and fix doc) #84551
- stdenv: support __structuredAttrs, opt-in per package #85042
- stdenv: support opt-in __structuredAttrs #175649
- stdenv: handle
envgracefully #205944 - stdenv/setup.sh: Allow
NIX_ATTRS_{JSON,SH}_FILEto be set correctly by Nix #214937 inputDerivation: supportstructuredAttrs#215173- treewide: move NIX_CFLAGS_COMPILE to the env attrset #217206
- stdenv: run toString on lists in env to allow lists in env #217962
- buildLuaPackage: enable __structuredAttrs rocks #224553
- stdenvAdapters: fix preservation of env #225787
- stdenvAdapters: fix preservation of env.NIX_CFLAGS_COMPILE #225929
- makeSetupHook: unbreak structuredAttrsByDefault #240759
- structured attrs: prefer
NIX_ATTRS_*_FILEover.attrs.*#257919 - lua: enable structuredAttrs for interpreters #264381
- auto-patchelf: add support for __structuredAttrs #272752
- cmake: add __structuredAttrs support to setup hooks #299622
- cargoBuildHook: Fix features with __structuredAttrs #302926
- buildDotnetModule: fix structured attributes support #313005
- treewide: support structuredAttrs in setup hooks #318614
- stdenv: concatTo: fallback for non-__structuredAttrs derivations #334973
- treewide: support structuredAttrs in setup hooks (part 2) #335666
- enable structuredAttrs for vimPlugins #336042
- treewide: handle
*Phasesvariables__structuredAttrs-agnostically #339117 - treewide: support structuredAttrs in setup hooks (part 3) #340592
- auto-patchelf: refactor structuredAttrs support #340858
- rust: support structuredAttrs in setup hooks #340862
- buildPythonPackage, buildPythonApplication: support
__structuredAttrs = true#347194 - python3Packages.*Hook: support
__structuredAttrs = true(the easier ones) #351734 - treewide: handle *Phases variables __structuredAttrs-agnostically (round 2) #352709
- python3Packages: don't depend on setup hooks' bash eval #352976
- stdenv: fix
hardeningEnablewith__structuredAttrs = true;#353131 - stdenv: fix custom hardening settings when using
__structuredAttrs = true;#353142 - runInLinuxVM: fix for structured attrs #354535
- expect-failure.sh: fix variabl existence check #355953
- treewide: improve prepending and appending derivation arguments in bash code #357052
- treewide: load structured attributes in all bash builders consistently #357053
- stdenv.mkDerivation: support output checks with and without structuredAttrs #357054
- runInLinuxVM: fix
createEmptyImage/preVMcase #358705 - buildGoModule: Use the
envattribute to pass environment variables #359641 - buildGoModule: access
ldflagsandtags__structuredAttrs-agnostically #360037 - runInLinuxVM: refactor structuredAttrs support, fix disko #360413
- stdenv: support multi-char separators in concatStringsSep #360466
- stdenv.mkDerivation: support structuredAttrs in inputDerivation #361233
- testers.testBuildFailure: fix structuredAttrs support #371337
- emacs: support and enable __structuredAttrs in elisp build helpers #387193
- stdenv: fix propagatedUserEnvPkgs when __structuredAttrs is true #388908
- stdenv: fix propagatedUserEnvPkgs when __structuredAttrs is true again #392928
- jdk8: disable structuredAttrs #425561
- jdk{8,11,17,23,24}: always enable __structuredAttrs; cleanup #425773
Misc
Things related to __structuredAttrs of some note, like discussions or work suspended until better support for __structuredAttrs is implemented.
Open
Issues
PRs
- writeClosure: add
pathspre-instantiation filtering and sorting #300722 - cmake: setup-hook.sh: split out
cmakeDefaultFlags#335682 - tests.stdenv: Easier to override
stdenv#336837
Done
PRs
- [WIP/RFC] Make
cmakeFlagsmore ergonomic #17886 - make-squashfs,make-iso9660-image: use
__structuredAttrs#214373 - cudaPackages.setupCudaHook: init #233581
- stdenv: updateAutotoolsGnuConfigScriptsHook unconditionally #237968
- closureInfo: handle empty path set explicitly #265414
- factor-lang: Restructure package for easier extension #287852
- wrapFirefox: make
makeWrapperArgsoverridable #374270 - pytestCheckHook: support inclusion and exclusion of path globs, test items, keywords, and markers #386513
- treewide: migrate from pytestFlagsArray to enabledTestPaths (the trivial ones) #403112
- treewide: pytestFlagsArray -> pytestFlags and join flag and option argument #416213
- treewide: modernize Python package pytest flags and move away from
pytestFlagsArray#424782
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
0.kind: bugSomething is brokenSomething is broken5.scope: trackingLong-lived issue tracking long-term fixes or multiple sub-problemsLong-lived issue tracking long-term fixes or multiple sub-problems