Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
base: 7307c35f3092
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 1cfc4963a90f
Choose a head ref
  • 2 commits
  • 1 file changed
  • 2 contributors

Commits on Jul 11, 2018

  1. nixos/nixos-option: don't abort in case of evaluation errors

    When running e.g. `nixos-option boot.kernelPackages` I get an output
    like this on the current unstable channel (18.09pre144959.be1461fc0ab):
    
    ```
    $ nixos-option boot.kernelPackages
    Value:
    *exit 1*
    ```
    
    This is fairly counter-intuitive as I have no clue what might went
    wrong. `strace` delivers an output like this:
    
    ```
    read(3, "error: Package \342\200\230cryptodev-linu"..., 128) = 128
    read(3, "ux/cryptodev/default.nix:22 is m"..., 128) = 128
    read(3, "lowBroken = true; }\nin configura"..., 128) = 128
    read(3, "you can add\n  { allowBroken = tr"..., 128) = 128
    read(3, "n)\n", 128)                    = 3
    read(3, "", 128)                        = 0
    ```
    
    `nixos-option` evaluates the system config using `nix-instantiate` which
    might break when the evaluation fails (e.g. due to broken or unfree
    packages that are prohibited to evaluate by default). The script aborts
    due to the shebang `@shell@ -e`.
    
    In order to ensure that no unexpected
    behavior occurs due to removing `-e` from the interpreter the easiest
    way to work around this was to wrap `nix-instantiate` in `evalNix()`
    with a `set +e`. The function checks the success of the evaluation with
    `$?` in the end. Additionally `evalNix` shouldn't break, if one
    evaluation (e.g. the values that contain a package set by default) to
    return additional information like a description.
    
    With the change `nixos-option boot.kernelPackages` delivers the
    following output for me:
    
    ```
    Value:
    error: Package ‘cryptodev-linux-1.9-4.14.52’ in /nix/store/47z2s8cwppymmgzw6n7pbcashikyk5jk-nixos/nixos/pkgs/os-specific/linux/cryptodev/default.nix:22 is marked as broken, refusing to evaluate.
    
    Default:
    { __unfix__ = <LAMBDA>; acpi_call = <CODE>; amdgpu-pro = <CODE>; ati_drivers_x11 = <CODE>; batman_adv = <CODE>; bbswitch = <CODE>; bcc = <CODE>; beegfs-module = <CODE>; blcr = <CODE>; broadcom_sta = <CODE>; callPackage = <CODE>; cpupower = <CODE>; cryptodev = <CODE>; dpdk = <CODE>; e1000e = <CODE>; ena = <CODE>; evdi = <CODE>; exfat-nofuse = <CODE>; extend = <CODE>; facetimehd = <CODE>; fusionio-vsl = <CODE>; hyperv-daemons = <CODE>; ixgbevf = <CODE>; jool = <CODE>; kernel = <CODE>; lttng-modules = <CODE>; mba6x_bl = <CODE>; mwprocapture = <CODE>; mxu11x0 = <CODE>; ndiswrapper = <CODE>; netatop = <CODE>; nvidiaPackages = <CODE>; nvidia_x11 = <CODE>; nvidia_x11_beta = <CODE>; nvidia_x11_legacy304 = <CODE>; nvidia_x11_legacy340 = <CODE>; nvidiabl = <CODE>; odp-dpdk = <CODE>; openafs = <CODE>; openafs_1_8 = <CODE>; perf = <CODE>; phc-intel = <CODE>; pktgen = <CODE>; ply = <CODE>; prl-tools = <CODE>; recurseForDerivations = true; rtl8192eu = <CODE>; rtl8723bs = <CODE>; rtl8812au = <CODE>; rtl8814au = <CODE>; rtlwifi_new = <CODE>; sch_cake = <CODE>; spl = <CODE>; splLegacyCrypto = <CODE>; splStable = <CODE>; splUnstable = <CODE>; stdenv = <CODE>; sysdig = <CODE>; systemtap = <CODE>; tbs = <CODE>; tmon = <CODE>; tp_smapi = <CODE>; usbip = <CODE>; v4l2loopback = <CODE>; v86d = <CODE>; vhba = <CODE>; virtualbox = <CODE>; virtualboxGuestAdditions = <CODE>; wireguard = <CODE>; x86_energy_perf_policy = <CODE>; zfs = <CODE>; zfsLegacyCrypto = <CODE>; zfsStable = <CODE>; zfsUnstable = <CODE>; }
    
    Example:
    { _type = "literalExample"; text = "pkgs.linuxPackages_2_6_25"; }
    
    Description:
    
    "This option allows you to override the Linux kernel used by\nNixOS. Since things like external kernel module packages are\ntied to the kernel you're using, it also overrides those.\nThis option is a function that takes Nixpkgs as an argument\n(as a convenience), and returns an attribute set containing at\nthe very least an attribute <varname>kernel</varname>.\nAdditional attributes may be needed depending on your\nconfiguration. For instance, if you use the NVIDIA X driver,\nthen it also needs to contain an attribute\n<varname>nvidia_x11</varname>.\n"
    
    Declared by:
      "/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/kernel.nix"
    
    Defined by:
      "/home/ma27/Projects/nixos-config/system/boot.nix"
    ```
    Ma27 committed Jul 11, 2018
    Configuration menu
    Copy the full SHA
    6f72b63 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2018

  1. Merge pull request #43147 from Ma27/fix-nixos-option-evaluation

    nixos/nixos-option: don't abort in case of evaluation errors
    fpletz committed Jul 16, 2018
    Configuration menu
    Copy the full SHA
    1cfc496 View commit details
    Browse the repository at this point in the history