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

kernel generate-config.pl: Show all errors, not just the first #75041

Merged
merged 1 commit into from Dec 8, 2019

Conversation

@andersk
Copy link
Contributor

@andersk andersk commented Dec 5, 2019

Motivation for this change

This makes it less frustrating to add a large group of kernel options via boot.kernelPatches.*.extraConfig.

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 nix-review --run "nix-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.
Notify maintainers

cc @thoughtpolice

This makes it less frustrating to add a large group of kernel options
via boot.kernelPatches.*.extraConfig.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
@teto
Copy link
Contributor

@teto teto commented Dec 5, 2019

working with the kernel can be a bit frustrating: see #70157 if you are interested.
Any example on how to test the PR ?

@andersk
Copy link
Contributor Author

@andersk andersk commented Dec 5, 2019

Any example on how to test the PR ?

You can configure

  boot.kernelPatches = [{
    name = "dummy";
    patch = null;
    extraConfig = ''
      A_WHOLE y
      LOT_OF y
      NONSENSE_OPTIONS y
    '';
  }];

in /etc/nixos/configuration.nix and observe that nixos-rebuild build gives you all three errors (as well as a handful of warnings that should probably also be fixed…), rather than just one:

error: unused option: A_WHOLE
warning: unused option: CIFS_ACL
warning: unused option: DEBUG_STACKOVERFLOW
warning: unused option: EXT4_ENCRYPTION
warning: unused option: F2FS_FS_ENCRYPTION
warning: option not set correctly: INET_TCP_DIAG (wanted 'm', got 'y')
warning: unused option: LDM_PARTITION
error: unused option: LOT_OF
error: unused option: NONSENSE_OPTIONS
warning: unused option: SECURITY_SELINUX_BOOTPARAM_VALUE
builder for '/nix/store/hdi6ad5mghcb8amvq329daqd5ikbyfgw-linux-config-5.4.1.drv' failed with exit code 255
cannot build derivation '/nix/store/1466d065nccyiacrwlrrh0hg2zib5an3-linux-5.4.1.drv': 1 dependencies couldn't be built
foreach my $name (sort (keys %answers)) {
my $f = $requiredAnswers{$name} && $ignoreConfigErrors ne "1"
? sub { die "error: " . $_[0]; } : sub { warn "warning: " . $_[0]; };
? sub { warn "error: " . $_[0]; $ret = -1; } : sub { warn "warning: " . $_[0]; };

This comment has been minimized.

@bjornfor

bjornfor Dec 8, 2019
Contributor

I think exiting with positive error code is more idomatic.

This comment has been minimized.

@bjornfor

bjornfor Dec 8, 2019
Contributor

Uhm, having just said that, it seems perl die actually returns -1/255 :-)

@bjornfor bjornfor changed the base branch from master to staging Dec 8, 2019
@bjornfor bjornfor merged commit 04577a2 into NixOS:staging Dec 8, 2019
12 of 13 checks passed
12 of 13 checks passed
grahamcofborg-eval Cloning project
Details
Evaluation Performance Report Evaluator Performance Report
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-darwin nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A darwin-tested
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release-combined.nix -A tested
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A manual
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A options
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A manual
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A tarball
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A unstable
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
@andersk andersk deleted the andersk:kernel-generate-config-errors branch Dec 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.