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
Member

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 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]; };
Copy link
Contributor

Choose a reason for hiding this comment

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

I think exiting with positive error code is more idomatic.

Copy link
Contributor

Choose a reason for hiding this comment

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

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

@bjornfor bjornfor changed the base branch from master to staging December 8, 2019 20:16
@bjornfor bjornfor merged commit 04577a2 into NixOS:staging Dec 8, 2019
@andersk andersk deleted the kernel-generate-config-errors branch December 10, 2019 09:00
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