Home Explore Blog Models CI



nixpkgs

4th chunk of `nixos/doc/manual/release-notes/rl-1509.section.md`
ba4cd648a55e207954d6a6fd4b43cfa736b1db470c51ee0300000001000007ee
- The `haskellPackages` set in Nixpkgs used to have a function attribute called `extension` that users could override in their `~/.nixpkgs/config.nix` files to configure additional attributes, etc. That function still exists, but it's now called `overrides`.

- The OpenBLAS library has been updated to version `0.2.14`. Support for the `x86_64-darwin` platform was added. Dynamic architecture detection was enabled; OpenBLAS now selects microarchitecture-optimized routines at runtime, so optimal performance is achieved without the need to rebuild OpenBLAS locally. OpenBLAS has replaced ATLAS in most packages which use an optimized BLAS or LAPACK implementation.

- The `phpfpm` is now using the default PHP version (`pkgs.php`) instead of PHP 5.4 (`pkgs.php54`).

- The `locate` service no longer indexes the Nix store by default, preventing packages with potentially numerous versions from cluttering the output. Indexing the store can be activated by setting `services.locate.includeStore = true`.

- The Nix expression search path (`NIX_PATH`) no longer contains `/etc/nixos/nixpkgs` by default. You can override `NIX_PATH` by setting `nix.nixPath`.

- Python 2.6 has been marked as broken (as it no longer receives security updates from upstream).

- Any use of module arguments such as `pkgs` to access library functions, or to define `imports` attributes will now lead to an infinite loop at the time of the evaluation.

  In case of an infinite loop, use the `--show-trace` command line argument and read the line just above the error message.

  ```ShellSession
  $ nixos-rebuild build --show-trace
  …
  while evaluating the module argument `pkgs' in "/etc/nixos/my-module.nix":
  infinite recursion encountered
  ```

  Any use of `pkgs.lib`, should be replaced by `lib`, after adding it as argument of the module. The following module

  ```nix
  { config, pkgs, ... }:

  with pkgs.lib;

  {
    options = {
      foo = mkOption {
        # …
      };
    };
    config = mkIf config.foo {
      # …
    };

Title: NixOS Update: Module Argument Changes, Package Updates, and Service Configuration
Summary
This chunk details several important changes and updates in NixOS. Key points include the `haskellPackages.extension` attribute being renamed to `overrides`, and the OpenBLAS library updating to version 0.2.14, adding `x86_64-darwin` support and dynamic architecture detection, and replacing ATLAS in many packages. The `phpfpm` service now uses the default PHP version (`pkgs.php`), and the `locate` service no longer indexes the Nix store by default. Additionally, `/etc/nixos/nixpkgs` is removed from the default `NIX_PATH`, Python 2.6 is marked as broken, and a significant change to module evaluation now causes infinite loops if `pkgs` is used as a module argument to access library functions or define `imports`; users should explicitly add `lib` as a module argument instead of referencing `pkgs.lib`.