Over the past few months, we (I and @NotAShelf) have maintained an opinionated patchset on top of lix, with the following changes:
- Adding a
default-flake
nix setting (rejected in #502 - Consider adopting `default-flake` from `nix-dram` - lix-project/lix - Lix Systems). Original credit to @dramforever, though we’ve made changes to fit the newer lix designs and also setnixpkgs
as the default setting fordefault-flake
(though it’s still configurable). - Adding a bit-shift builtin (useful for some PRNGs)
- Adding a
reject-flake-config
setting to categorically reject allnixConfig
in a flake. (This is distinct from the similar but more lenient settingaccept-flake-config = false;
in stock lix, as that setting actually permits some allegedly “safe” config through. We did not feel comfortable with that.) - Setting a custom version string (a little teehee uwu for the fans)
- Silencing pointless warnings about unknown settings, especially since they break the NixOS module for nix. (See Lix: mismatch in feature name compared to nix - #3 by waffle8946 for the motivating example.)
Do note, we don’t have interest in maintaining an actual fork of lix at this time. Especially given how atrocious C++ is. We will be specifically maintaining patches on top of latest lix (as specified on nixos-unstable
) and only that.
In light of
we’re now prepared to add recursive-nix
to this patchset (once it’s removed upstream) until a viable replacement arrives.
If you’d like to use said patchset, take a look at our immortal nixpkgs fork (GitHub - feel-co/fp: nixpkgs, but make it emotional.) which includes minimal other commits (primarily version bumps, as well as cherry-picked bugfix commits from nixpkgs PRs or master
, since nixos-unstable
gets broken somewhat frequently.).
The lix patches are listed in:
Happy lixing!