Before, we very carefully unapplied and reapplied `set -u` so the rest
of Nixpkgs could continue to not fail on undefined variables. Let's rip
off the band-aid.
For the case of blkfront drives, there appears to be no difference
between /dev/sda1 and /dev/xvda: the drive always appears as the
kernel device /dev/xvda.
For the case of nvme drives, the root device typically appears as
/dev/nvme0n1. Amazon provides the 'ec2-utils' package for their first
party linux ("Amazon Linux"), which configures udev to create symlinks
from the provided name to the nvme device name. This name is
communicated through nvme "Identify Controller" response, which can be
inspected with:
nvme id-ctrl --raw-binary /dev/nvme0n1 | cut -c3073-3104 | hexdump -C
On Amazon Linux, where the device is attached as "/dev/xvda", this
creates:
- /dev/xvda -> nvme0n1
- /dev/xvda1 -> nvme0n1p1
On NixOS where the device is attach as "/dev/sda1", this creates:
- /dev/sda1 -> nvme0n1
- /dev/sda11 -> nvme0n1p1
This is odd, but not inherently a problem.
NixOS unconditionally configures grub to install to `/dev/xvda`, which
fails on an instance using nvme storage. With the root device name set
to xvda, both blkfront and nvme drives are accessible as /dev/xvda,
either directly or by symlink.
- polysemy-plugin was broken due to failing doctests:
https://github.com/NixOS/nixpkgs/issues/71164.
- I submitted a PR upstream to fix this:
https://github.com/polysemy-research/polysemy/pull/265.
- I've applied the patch of the PR here and moved the default
"polysemy" attribute to "polysemy_1_2_0_0" because polysemy-plugin
requires "polysemy >= 1.2.0.0".
- Move default "polysemy-zoo" attribute to "polysemy-zoo_0_6_0_1"
because it is fixed by the polysemy-plugin changes and fixes issues
with building "polysemy-RandomFu" and "knit-haskell".
- Removed packages no longer broken from
"configuration-hackage2nix.yaml".
- Add cabal-doctest to setupDepends of polysemy-plugin.
Go beyond the obvious setup hooks now, with a bit of sed, with a skipped case:
- cc-wrapper's `dontlink`, because it already is handled.
Also, in nix files escaping was manually added.
EMP