Home Explore Blog Models CI



nixpkgs

16th chunk of `nixos/doc/manual/release-notes/rl-2311.section.md`
8f2c47451371bffa6640b7f02b3597b1572d9d62714aa28f0000000100000fc6
  time. If you're running Teleport server components, it is recommended to
  first upgrade to an intermediate v13.x version by setting
  `services.teleport.package = pkgs.teleport_13`. Afterwards, this option can
  be removed to upgrade to the default version (14).

- `zfs` was updated from v2.1.x to v2.2.0, [enabling newer kernel support and
  adding new features](https://github.com/openzfs/zfs/releases/tag/zfs-2.2.0).

- The use of `sourceRoot = "source";`, `sourceRoot = "source/subdir";`, and
  similar lines in package derivations using the default `unpackPhase` is
  deprecated as it requires `unpackPhase` to always produce a directory named
  "source". Use `sourceRoot = src.name`, `sourceRoot = "${src.name}/subdir";`,
  or `setSourceRoot = "sourceRoot=$(echo */subdir)";` or similar instead.

- The `django` alias in the python package set was upgraded to Django v4.x.
  Applications that consume Django should always pin their python environment
  to a compatible major version, so they can move at their own pace.

  ```nix
  {
    python = python3.override {
      packageOverrides = self: super: { django = super.django_3; };
    };
  }
  ```

- The `qemu-vm.nix` module by default now identifies block devices via
  persistent names available in `/dev/disk/by-*`. Because the rootDevice is
  identified by its filesystem label, it needs to be formatted before the VM is
  started. The functionality of automatically formatting the rootDevice in the
  initrd is removed from the QEMU module. However, for tests that depend on
  this functionality, a test utility for the scripted initrd is added
  (`nixos/tests/common/auto-format-root-device.nix`). To use this in a NixOS
  test, import the module, e.g. `imports = [
  ./common/auto-format-root-device.nix ];` When you use the systemd initrd, you
  can automatically format the root device by setting
  `virtualisation.fileSystems."/".autoFormat = true;`.

- The `electron` packages places its application files in
  `$out/libexec/electron` instead of `$out/lib/electron` now. Packages using
  electron-builder will fail to build and need to be adjusted by changing `lib`
  to `libexec`.

### New Services {#sec-release-23.11-nixos-new-services}

- [MCHPRS](https://github.com/MCHPR/MCHPRS), a multithreaded Minecraft server
  built for redstone. Available as
  [services.mchprs](#opt-services.mchprs.enable).

- [acme-dns](https://github.com/joohoi/acme-dns), a limited DNS server to
  handle ACME DNS challenges easily and securely. Available as
  [services.acme-dns](#opt-services.acme-dns.enable).

- [frp](https://github.com/fatedier/frp), a fast reverse proxy to help you
  expose a local server behind a NAT or firewall to the Internet. Available as
  [services.frp](#opt-services.frp.enable).

- [river](https://github.com/riverwm/river), A dynamic tiling wayland
  compositor. Available as `programs.river`.

- [wayfire](https://wayfire.org), a modular and extensible wayland compositor.
  Available as [programs.wayfire](#opt-programs.wayfire.enable).

- [mautrix-whatsapp](https://docs.mau.fi/bridges/go/whatsapp/index.html), a
  Matrix-WhatsApp puppeting bridge. Available as
  [services.mautrix-whatsapp](#opt-services.mautrix-whatsapp.enable).

- [hddfancontrol](https://github.com/desbma/hddfancontrol), a service to
  regulate fan speeds based on hard drive temperature. Available as
  [services.hddfancontrol](#opt-services.hddfancontrol.enable).

- [seatd](https://sr.ht/~kennylevinsen/seatd/), A minimal seat management
  daemon. Available as [services.seatd](#opt-services.seatd.enable).

- [GoToSocial](https://gotosocial.org/), an ActivityPub social network server
  written in Golang. Available as
  [services.gotosocial](#opt-services.gotosocial.enable).

- [Castopod](https://castopod.org/), an open-source hosting platform made for
  podcasters who want to engage and interact with their audience. Available as
  [services.castopod](#opt-services.castopod.enable).

- [Typesense](https://github.com/typesense/typesense), a fast, typo-tolerant

Title: NixOS Updates, Deprecations, and New Services
Summary
This chunk outlines several updates, deprecations, and new service introductions in NixOS. Key changes include a recommended multi-step upgrade path for Teleport from v12 to v14 (via v13) and an upgrade of ZFS from v2.1.x to v2.2.0, bringing new features and kernel support. The use of specific `sourceRoot` patterns in package derivations (e.g., `"source"`) is deprecated, with alternatives provided. The `django` alias is updated to Django v4.x, advising users to pin compatible versions. The `qemu-vm.nix` module now uses persistent block device names and removes automatic root device formatting from its initrd, suggesting alternative methods. Electron application files have moved from `$out/lib/electron` to `$out/libexec/electron`. Additionally, several new services are introduced, including MCHPRS, acme-dns, frp, river, wayfire, mautrix-whatsapp, hddfancontrol, seatd, GoToSocial, Castopod, and Typesense.