Home Explore Blog Models CI



nixpkgs

13th chunk of `doc/release-notes/rl-2505.section.md`
956f448b17a389999650d798635b19a670cd91175a8c5d40000000010000108d
- [Cursor](https://cursor.com/) — a vscode-based editor that uses AI to help you write code faster — has been packaged as `cursor`.

- `octave` (and `octaveFull`) was updated to version `10.x`. The update broke a few `octavePackages`, and `librsb`. See [the PR's commits](https://github.com/NixOS/nixpkgs/pull/394495/commits) for more details.

- androidenv has been improved:
  - All versions specified in composeAndroidPackages now track the latest. Android packages are automatically updated on unstable, and run the androidenv test suite on every update.
  - Many androidenv packages are now searchable on [search.nixos.org](https://search.nixos.org).
  - We now use the latest Google repositories, which should improve aarch64-darwin compatibility. The SDK now additionally evaluates on aarch64-linux, though not all packages are functional.

- `dwarf-fortress` audio now works again. Additionally, the `dfhack` and `dwarf-fortress-full` packages are now exposed at toplevel, making it easier to install and play Dwarf Fortress. Note that `dwarf-fortress-full` is the Nixpkgs equivalent of the Dwarf Fortress Lazy Pack.

- `gerbera` now has wavpack support.

- `buildPythonPackage`, `buildPythonApplication` and the Python building setup hooks now support both `__structuredAttrs = true` and `__structuredAttrs = false`.

- `buildGoModule` now supports a self-referencing `finalAttrs:` parameter
  containing the final arguments including overrides.
  This allows packaging configuration to be overridden in a consistent manner by
  providing an alternative to `rec {}` syntax.

- Caddy can now be built with plugins by using `caddy.withPlugins`, a `passthru` function that accepts an attribute set as a parameter. The `plugins` argument represents a list of Caddy plugins, with each Caddy plugin being a versioned module. The `hash` argument represents the `vendorHash` of the resulting Caddy source code with the plugins added.

  Example:
  ```nix
  let
    pkgs = import <nixpkgs> { };

  in
  pkgs.caddy.withPlugins {
    plugins = [
      # tagged upstream
      "github.com/caddy-dns/powerdns@v1.0.1"
      # pseudo-version number generated by Go
      "github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e"
      "github.com/mholt/caddy-webdav@v0.0.0-20241008162340-42168ba04c9d"
    ];
    hash = "sha256-wqXSd1Ep9TVpQi570TTb96LwzNYvWL5EBJXMJfYWCAk=";
  }
  ```

  To get the necessary hash of the vendored dependencies, omit `hash`. The build will fail and tell you the correct value.

  Note that all provided plugins must have versions/tags (string after `@`), even if upstream repo does not tag each release. For untagged plugins, you can either create an empty Go project and run `go get <plugin>` and see changes in `go.mod` to get the pseudo-version number, or provide a commit hash in place of version/tag for the first run, and update the plugin string based on the error output.

- The `godot-export-templates` package now has its content at `share/godot/export_templates/$version` instead of the output root. This makes it more convenient for for symlinking into `~/.local`, but scripts expecting the old layout will need to be changed.

- GOverlay has been updated to 1.2, please check the [upstream changelog](https://github.com/benjamimgois/goverlay/releases) for more details.

- `tpm2-pkcs11` now has the variant `tpm2-pkcs11-fapi`, which has been patched to default to the Feature API backend. It has also been split into `tpm2-pkcs11-esapi`, which _only_ supports the older Enhanced System API backend. Note the [differences](https://github.com/tpm2-software/tpm2-pkcs11/blob/1.9.1/docs/FAPI.md), and that `tpm2-pkcs11` itself still needs `TPM2_PKCS11_BACKEND=fapi` exported in order to use the Feature API, whereas `tpm2-pkcs11-fapi` does not, and `tpm2-pkcs11-esapi` just does not support fapi entirely.

- For matrix homeserver Synapse we are now following the upstream recommendation to enable jemalloc as the memory allocator by default.

- Mattermost, a self-hosted chat collaboration platform supporting calls, playbooks, and boards, has been updated. It now has multiple versions, disabled telemetry, and a native frontend build in nixpkgs, removing all upstream prebuilt blobs.

Title: Nixpkgs Package Updates, New Features, and Build System Enhancements
Summary
This document outlines updates, new additions, and improvements across the Nixpkgs ecosystem. 'Cursor', an AI-powered code editor, is newly packaged. Major updates include 'octave' (v10.x, with breaking changes), 'GOverlay' (v1.2), and 'Mattermost' (multiple versions, disabled telemetry, native frontend builds). 'androidenv' was significantly enhanced with automatic updates, searchable packages, and improved AArch64 compatibility. 'dwarf-fortress' now has working audio and easier access to related packages. 'gerbera' gained wavpack support. Python and Go build systems improved: `buildPythonPackage` supports `__structuredAttrs`, and `buildGoModule` includes `finalAttrs:`. A new `caddy.withPlugins` function aids custom Caddy builds. 'godot-export-templates' content location changed, and 'tpm2-pkcs11' was updated with FAPI/ESAPI variants. The 'Synapse' matrix homeserver now defaults to jemalloc for memory allocation.