···3344 inputs = {
55 nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
66- flake-parts.url = "github:hercules-ci/flake-parts";
66+ flake-parts = {
77+ url = "github:hercules-ci/flake-parts";
88+ inputs.nixpkgs-lib.follows = "nixpkgs";
99+ };
710811 # repo meta:
912 # keep-sorted start block=yes
···5962 ];
60636164 perSystem =
6262- { pkgs, system, ... }:
6565+ {
6666+ pkgs,
6767+ system,
6868+ config,
6969+ lib,
7070+ ...
7171+ }:
6372 {
6464- packages = import ./all-packages.nix {
7373+ # For better or for worse, nixpkgs has established the pattern of
7474+ # a legacyPackages attribute that does not contain legacy packages at all,
7575+ # but rather an attribute set that's just not the shape of the typical packages attribute.
7676+ # In our case, we have a handful of non-package attributes that we still want to expose under the pkgs object.
7777+ legacyPackages = import ./all-packages.nix {
6578 inherit (inputs.nixpkgs) lib;
6679 inherit inputs;
6780 currentSystem = system;
6881 hostpkgs = import ./host-packages.nix { inherit pkgs; };
6982 };
8383+8484+ # and then expose a filtered version of that attribute set with just the actual packages.
8585+ packages = lib.filterAttrs (_name: value: value ? drvPath) config.legacyPackages;
8686+ checks = config.packages;
7087 };
7188 };
7289}