Previously, setting environment variables in a Haskell package build
required using `.overrideAttrs`, which (I think?) breaks later
invocations of `haskell.lib.overrideCabal`.
This patch adds an `env` argument to `haskellPackages.mkDerivation`,
which can be used to set environment variables during Haskell package
builds.
Also:
- Updates the update script to use stable versions going forward
- Make pkgs.nixfmt the -rfc-style version and remove the warning
- Create a (delayed) warning for the -rfc-style version to encourage
switching to pkgs.nixfmt in a couple releases
- Add a release note for the above
This section has been the subject of too many jokes about nixpkgs and nix
overall being incomprehensible among people I know. In lieu of adding to
the fray I've had a go at correcting the reasons I couldn't read it
myself.
I don't actually think the math is a problem; it's actually probably the
more understandable part of the section once you actually understand the
definitions. The missing definitions and leaving the truth table as an
exercise to the reader really was not working for me though.
I've also added what each dependency group is actually *for*. This
hopefully makes the section easier to understand how it applies in
practice.
I generated the initial version of the table before reformatting it and
removing pointless rows with:
```python
def mapOffset(h, t, i):
return i + (h if i <= 0 else t - 1)
for h0 in (-1, 0, 1):
for t0 in (-1, 0, 1):
if t0 < h0: continue
heading = f'{h0:3} | {t0:3}'
for i in (-1, 0, 1):
if h0 + i not in (-1, 0, 1):
mapped = 'x'
else:
mapped = mapOffset(h0, t0, i)
heading += f' | {mapped:>2}'
print(heading)
```
The makeNeovimConfig function now preserves luaRcContent when passed as
an attribute, with a deprecation warning. This fixes the breaking change
from commit 24df1ab44a where luaRcContent would be overwritten by the
new customLuaRC parameter.
This will allow unlocking to take place *after* all of the devices have
been probed, as indicated by the x-systemd.wants and x-systemd.requires
options. This allows for multi-device bcachefs volumes to be reliably
unlocked.
This avoids restarting the postgresql server, when only ensureDatabases
or ensureUsers have been changed. It will also allow to properly wait
for recovery to finish later.
To wait for "postgresql is ready" in other services, we now provide a
postgresql.target.
Resolves#400018
Co-authored-by: Marcel <me@m4rc3l.de>