# Breaking changes announcement for unstable

**URL:** https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574
**Category:** Development
**Created:** [February 8, 2022, 11:18am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574 "2022-02-08T11:18:51Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [March 20, 2023, 11:12pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/22 "2023-03-20T23:12:44Z")

</div>

The `matrix-synapse` package will stop accepting the `enableSystemd` and `enableRedis` arguments, since their discoverability is weak. Instead, all extras can now be configured from the module at `services.matrix-synapse.extras`.

[https://github.com/NixOS/nixpkgs/pull/221318](https://github.com/NixOS/nixpkgs/pull/221318)

---

<div class="post-metadata">

### Author: ![linyinfeng](https://discourse.nixos.org/user_avatar/discourse.nixos.org/linyinfeng/32/8623_2.png) [@linyinfeng](https://discourse.nixos.org/u/linyinfeng)
#### Post date: [April 1, 2023, 3:04am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/23 "2023-04-01T03:04:56Z")

</div>

PR #224042 is going to refactor RIME data support of `ibus-rime` and `fcitx5-rime`, causing two small breaking changes:

1. `fcitx5-rime` users need to remove `i18n.inputMethod.fcitx5.enableRimeData = true` from their configuration.

2. `ibus-rime` 's rime-data `ibus_rime.yaml` is not loaded before this PR. As a workaround, some users use a `~/.config/ibus/rime/ibus_rime.yaml` file to customize `ibus-rime`. With this change, `ibus_rime.yaml` will be properly loaded, users need to use a `~/.config/ibus/rime/ibus_rime.custom.yaml` file instead to customize `ibus-rime`.

[https://github.com/NixOS/nixpkgs/pull/224042](https://github.com/NixOS/nixpkgs/pull/224042)

---

<div class="post-metadata">

### Author: ![RaitoBezarius](https://discourse.nixos.org/user_avatar/discourse.nixos.org/raitobezarius/32/1835_2.png) [@RaitoBezarius](https://discourse.nixos.org/u/RaitoBezarius)
#### Post date: [April 3, 2023, 4:04pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/24 "2023-04-03T16:04:06Z")

</div>

[nixos/bootspec: adopt the merged RFC-0125 by RaitoBezarius · Pull Request #224489 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/pull/224489) will break [GitHub - nix-community/lanzaboote: Secure Boot for NixOS [maintainers=@blitz @raitobezarius @nikstur]](https://github.com/nix-community/lanzaboote) and any previous generations using the old format for bootspec.

If you are interested in backward compatibility for your older generations, please start a discussion in bootspec channel.

---

<div class="post-metadata">

### Author: ![Atemu](https://discourse.nixos.org/user_avatar/discourse.nixos.org/atemu/32/10383_2.png) [@Atemu](https://discourse.nixos.org/u/Atemu)
#### Post date: [April 16, 2023, 8:18am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/25 "2023-04-16T08:18:08Z")

</div>

buildFHSEnv will default to using the Bubblewrap implementation rather than Chrootenv. If your FHS-wrapped packages start to misbehave, please ping me.

[https://github.com/NixOS/nixpkgs/pull/225748](https://github.com/NixOS/nixpkgs/pull/225748)

---

<div class="post-metadata">

### Author: ![RaitoBezarius](https://discourse.nixos.org/user_avatar/discourse.nixos.org/raitobezarius/32/1835_2.png) [@RaitoBezarius](https://discourse.nixos.org/u/RaitoBezarius)
#### Post date: [May 19, 2023, 11:07pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/26 "2023-05-19T23:07:48Z")

</div>

# Heads-up

We decided to make Node.js 14, 16 and OpenSSL 1.1 EOL at the moment on unstable.  
For what is worth, this had the effect to mark as insecure a serious amount of web applications: [Making sure you're not a bot!](https://hydra.nixos.org/eval/1795260?full=1#tabs-removed) including this very forum software.

While we are working hard to minimize this set by fixing stuff in Ruby, we cannot make it up for upstream shortcomings while they had months to adopt the newer V8 engine (useful reminder: [Node.js | endoflife.date](https://endoflife.date/nodejs)).

[Update to libv8-node 18.x by lloeki · Pull Request #261 · rubyjs/mini\_racer · GitHub](https://github.com/rubyjs/mini_racer/pull/261) ; [Will Node 18 LTS become the default Node version on the agent images? · actions/runner-images · Discussion #5429 · GitHub](https://github.com/actions/runner-images/discussions/5429) ; [[PM-358] Bump electron to 24 and node to 18 (#5205) · bitwarden/clients@9a41d5d · GitHub](https://github.com/bitwarden/clients/commit/9a41d5dc6f15e3e0df824891b063a32074340e38) (not part of any release at the time of writing).

It will be a bumpy ride for the next days, but we can only hope or wait for upstream to figure out this.

FYI, it will be likely those insecure warnings (which can be bypassed by following the instructions) will be part of the stable release.

---

<div class="post-metadata">

### Author: ![martinetd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/martinetd/32/9957_2.png) [@martinetd](https://discourse.nixos.org/u/martinetd)
#### Post date: [July 4, 2023, 7:44pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/27 "2023-07-04T19:44:48Z")

</div>

`pkgs.ankisyncd` and the `services.ankisyncd` service have been switched from an old obsolete version of [anki-sync-server](https://github.com/ankicommunity/anki-sync-server) to [anki-sync-server-rs](https://github.com/ankicommunity/anki-sync-server-rs)  
The old version only implemented the old protocol compatible with the old 2.1.15 anki package (and similarly old android/external clients), while the new one only implements the new protocol which will work with the current nixos anki packages, ankidroid etc, so if you were using it with clients held back on purpose you will need to upgrade your clients.

The password database and anki data itself is compatible, so upgrading clients should just work, resyncing if required.

PR: [ankisyncd-rs: add package for anki-sync-server-rs by martinetd · Pull Request #224366 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/pull/224366)

---

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [August 3, 2023, 11:57pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/28 "2023-08-03T23:57:59Z")

</div>

The default version for `python310Packages.django` is moving from `django_3` (3.2.x) to `django_4` (4.2.x). This is because we want to follow the mainstream LTS support, while Django 3.x has already entered the extended LTS support period in 2021/12.

Applications should generally pin their Django version, to the upstream supported version.

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

```

[https://github.com/NixOS/nixpkgs/pull/245436](https://github.com/NixOS/nixpkgs/pull/245436)

---

<div class="post-metadata">

### Author: ![RaitoBezarius](https://discourse.nixos.org/user_avatar/discourse.nixos.org/raitobezarius/32/1835_2.png) [@RaitoBezarius](https://discourse.nixos.org/u/RaitoBezarius)
#### Post date: [August 5, 2023, 1:35am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/29 "2023-08-05T01:35:09Z")

</div>

Heads-up, **systemd** in nixpkgs unstable will move to v254 soon in [systemd: 253.5 -\> 254.3 by RaitoBezarius · Pull Request #243242 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/pull/243242)

Please review [NEWS](https://github.com/systemd/systemd/blob/06e8f7af7b1434ae6816e8d90687b8a492b8cc57/NEWS) to see if you will be affected by this bump.

From experience, it seems like the upgrade does not require reboot, but if you have mission-critical deployments, always consider rebooting into a new system rather than switching at runtime a systemd because this can fail in horrible ways.

---

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [August 29, 2023, 4:17pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/30 "2023-08-29T16:17:58Z")

</div>

I’m replacing the [prometheus-unbound-exporter](https://github.com/svartalf/unbound-telemetry) with the [exporter maintained by Let’s Encrypt](https://github.com/letsencrypt/unbound_exporter). The module requires a few benign changes, and the metrics might differ slightly.

[https://github.com/NixOS/nixpkgs/pull/252041](https://github.com/NixOS/nixpkgs/pull/252041)

---

<div class="post-metadata">

### Author: ![Mindavi](https://discourse.nixos.org/user_avatar/discourse.nixos.org/mindavi/32/3370_2.png) [@Mindavi](https://discourse.nixos.org/u/Mindavi)
#### Post date: [September 8, 2023, 6:39am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/31 "2023-09-08T06:39:54Z")

</div>

I clicked the -rs link out of curiosity, and I see it’s no longer actively maintained either…

---

<div class="post-metadata">

### Author: ![martinetd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/martinetd/32/9957_2.png) [@martinetd](https://discourse.nixos.org/u/martinetd)
#### Post date: [September 8, 2023, 11:31am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/32 "2023-09-08T11:31:21Z")

</div>

Uh that wasn’t there when I did that work a couple of months ago… Great news 😑

Since it’s using the anki sources as server engine in theory it shouldn’t be too hard to maintain and I’ll try to update it if it breaks as I don’t want to get/run the whole anki on my server, but I’m not sure I care enough either if lots of problems do come up…  
For now it’s running fine so let’s cross fingers and keep using it as long as possible ; migrating to the built in anki server won’t be compatible with the old sqlite db at the very least (not sure about the data layout)

(We’ll probably want to split that in a new thread and/or github issue instead of spamming everyone watching this; feel free to @-me in a new thread if you want to bring anything up)

---

<div class="post-metadata">

### Author: ![RaitoBezarius](https://discourse.nixos.org/user_avatar/discourse.nixos.org/raitobezarius/32/1835_2.png) [@RaitoBezarius](https://discourse.nixos.org/u/RaitoBezarius)
#### Post date: [September 27, 2023, 4:33pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/33 "2023-09-27T16:33:33Z")

</div>

systemd v254 will land soonish in nixos-unstable-small and nixos-unstable.

Please take the time to read [https://github.com/systemd/systemd/blob/174e8e9897c2d1c8b2c8324f07a6c784d7127410/NEWS](https://github.com/systemd/systemd/blob/174e8e9897c2d1c8b2c8324f07a6c784d7127410/NEWS) and read [systemd: 253.5 -\> 254.3 by RaitoBezarius · Pull Request #243242 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/pull/243242).

Unfortunately, we lost musl support, cross-compilation to RISC-V and armv7l, please if you care about those platforms, consider getting in touch with folks in staging and in the NixOS systemd matrix channel: [https://matrix.to/#/#systemd:nixos.org](https://matrix.to/#/#systemd:nixos.org).

---

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [September 27, 2023, 4:44pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/34 "2023-09-27T16:44:36Z")

</div>

We will bump the primary python version from 3.10 to 3.11 in the next staging cycle.

We already sorted out a huge number of issues in the latest python-updates run, but there will always be more, especially on leaf packages.

[https://github.com/NixOS/nixpkgs/pull/251878](https://github.com/NixOS/nixpkgs/pull/251878)

It is our expectation that the most dire issues will be found on staging-next, and that the remaining problems will be addressed during ZHF.

Feel free to join [#python:nixos.org](https://matrix.to/#/#python:nixos.org) if you have questions.

---

<div class="post-metadata">

### Author: ![Atemu](https://discourse.nixos.org/user_avatar/discourse.nixos.org/atemu/32/10383_2.png) [@Atemu](https://discourse.nixos.org/u/Atemu)
#### Post date: [September 27, 2023, 5:14pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/35 "2023-09-27T17:14:11Z")

</div>

ffmpeg will be updated from version 5 to version 6 in the next staging cycle. We built almost all dependant packages but cannot test them all.

Should something multimedia-related break in the coming weeks, that might be why. Please create issues and ping us.

[https://github.com/NixOS/nixpkgs/pull/251494](https://github.com/NixOS/nixpkgs/pull/251494)

---

<div class="post-metadata">

### Author: ![fabianh](https://discourse.nixos.org/user_avatar/discourse.nixos.org/fabianh/32/3280_2.png) [@fabianh](https://discourse.nixos.org/u/fabianh)
#### Post date: [October 18, 2023, 11:04pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/36 "2023-10-18T23:04:51Z")

</div>

[https://github.com/NixOS/nixpkgs/pull/261923](https://github.com/NixOS/nixpkgs/pull/261923)

Drop of Linux 4.14 (including hardened and hardkernel) as per release wiki page [Feature Freeze announcement and pre-release cleanup - NixOS Release Wiki](https://nixos.github.io/release-wiki/Feature-Freeze-Announcement.html)

---

<div class="post-metadata">

### Author: ![reckenrode](https://discourse.nixos.org/user_avatar/discourse.nixos.org/reckenrode/32/2044_2.png) [@reckenrode](https://discourse.nixos.org/u/reckenrode)
#### Post date: [October 20, 2023, 11:48am UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/37 "2023-10-20T11:48:01Z")

</div>

The default LLVM has been updated from 11 to 16 for the next staging cycle. Some packages may fail to build due to [breaking changes](https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html#potentially-breaking-changes) in clang. An attempt has been made to catch those failures and preemptively patch the affected packages, but it’s not possible to do so for every single affected package. If a package does not build for you, please open an issue.

[https://github.com/NixOS/nixpkgs/pull/241692](https://github.com/NixOS/nixpkgs/pull/241692)

---

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [October 25, 2023, 8:32pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/38 "2023-10-25T20:32:08Z")

</div>

The Kea services for dhcp4, dhcp6, ctrl-agent and dhcp-ddns will each get their own `RuntimeDirectory` shortly, since restarting one unit would previously clean out the shared `/run/kea` runtime directory.

This is especially relevant for users of the Prometheus Kea Exporter, which relies on the unix socket to retrieve statistics from Kea.

[https://github.com/NixOS/nixpkgs/pull/263315](https://github.com/NixOS/nixpkgs/pull/263315)

---

<div class="post-metadata">

### Author: ![RaitoBezarius](https://discourse.nixos.org/user_avatar/discourse.nixos.org/raitobezarius/32/1835_2.png) [@RaitoBezarius](https://discourse.nixos.org/u/RaitoBezarius)
#### Post date: [November 13, 2023, 2:05pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/39 "2023-11-13T14:05:03Z")

</div>

Heads-up, we ran into an annoying issue with newer PostgreSQL and our ensure-logic (`ensurePermissions`).

TL;DR: `services.postgresql.*.ensurePermissions` is deprecated and forbidden inside nixpkgs from now on, slated for deletion just after branch-off.

We went back’n’forth with multiple options, as the secondary release manager of NixOS 23.11, I decided to move forward with a semi-breaking change (breaking change because I am deprecating something now and semi because the option is still available in the broken state it is): [nixos/postgresql: deprecate ensurePermissions, fix ensureUsers for postgresql15 by Ma27 · Pull Request #266270 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/pull/266270)

**What does it mean to you?**

- If you are a NixOS module author which is using a PostgreSQL database, your module has been migrated to `ensureDBOwnership` which will just ensure that the user will own the database.
- If you are writing a NixOS module which is using a PostgreSQL database, your module will have to use `ensureDBOwnership` and any extra fix up procedure will have to use either `initialScript` (if it’s once) or `postStart` / `preStart` measures you design yourself.
- If you need sophisticated privileges scheme, you will have to write your own ensure logic code.
- If you are a user and have a warning about `ensurePermissions` being used, check that you don’t own custom logic out of tree on it and migrate it accordingly, otherwise, you may be using such a module out of tree.

**Will we get `ensurePermissions` again?**

_Short-term_: No.

_Long-term_: Anyone is free to work on rethinking the ensure logic design and build more engineering around them to make them usable and stable without potential for data loss, you can look into [RFC: `ensure`-style options in NixOS modules · Issue #206467 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/issues/206467) to see the context, and you can contact me if you want to be helped/guided/mentored/whatever to work on that, but please, do not blindly re-introduce `ensurePermissions`, those options create a high amount of churn for the long term maintainers, and it’s unacceptable to make long term maintainers pay the cost of “nice to have” without proper investment.

**Can you provide documentation to migrate?**

We will write more documentation:

- this announcement is part of it
- release notes for 23.11 will include information pertaining to this
- the PostgreSQL manual in nixpkgs will see a section on this and offer guidance on migration strategies

---

<div class="post-metadata">

### Author: ![hexa](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hexa/32/1300_2.png) [@hexa](https://discourse.nixos.org/u/hexa)
#### Post date: [December 1, 2023, 3:30pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/40 "2023-12-01T15:30:37Z")

</div>

In a few weeks we will restore the runtime dependency validation of python packages, that use the `pypaInstallHook`, which is used for the `pyproject` format.

It will complain about version constraint mismatches

```plaintext
Checking runtime dependencies for sphinx_prompt-1.6.0-py3-none-any.whl
  - sphinx==7.0.0 not satisfied by version 7.2.6
  - docutils==0.19 not satisfied by version 0.20.1
  - pygments==2.15.1 not satisfied by version 2.16.1

```

as well as missing dependencies

```plaintext
Checking runtime dependencies for pysml-0.1.1-py3-none-any.whl
  - aiohttp not installed

```

Both cases will be considered a hard failure, and indicate further work is needed to get a package to run correctly.

For too tight version constraints I recommend using `pythonRelaxDepsHook`, which lifts constraints from the built wheel for the package names given in the `pythonRelaxDeps` list.

The work is currently happening in the following PR, and unfortunately we’ve justed missed the latest staging cycle, so it will be in the next one after that.

[https://github.com/NixOS/nixpkgs/pull/270457](https://github.com/NixOS/nixpkgs/pull/270457)

---

<div class="post-metadata">

### Author: ![netali](https://discourse.nixos.org/user_avatar/discourse.nixos.org/netali/32/12063_2.png) [@netali](https://discourse.nixos.org/u/netali)
#### Post date: [December 3, 2023, 3:23pm UTC](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/41 "2023-12-03T15:23:25Z")

</div>

Zammad will be updated to version 6.1.0, which now requires a Redis server configured to run Zammad and brings a renamed/replaced systemd service.

[https://github.com/NixOS/nixpkgs/pull/269469](https://github.com/NixOS/nixpkgs/pull/269469)

[Previous page](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574.md?page=1)

[Next page](https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574.md?page=3)
