Merge branch 'macos-ci' into master
dma: Limit supported platforms to Linux and the BSDs As far as I can tell, none of the other Unix have the requisite headers (namely `arpa/nameser.h`).
dyndnsc: Disable tests involving multiprocessing on Darwin
drep: Depend on CoreServices on macOS
ci.nix: Filter out packages incompatible with Nixpkgs system It's the same filtering we use in flake.nix. I'm not sure if filtering on `meta.platforms` is needed, but that assert on the `linux` derivation kills the whole job before it even starts.
readme: Add new build status badges Not only add the new macOS build, but also separate our builds.sr.ht builds.
ci: Build and cache packages for macOS via GitHub Actions After spending a massive amount of time making RetroArch build on macOS (github:NixOS/nixpkgs#102230), I've decided to make sure my packages have the right platforms on their `meta.platforms` and `meta.broken`. Looks like builds.sr.ht has FreeBSD images. Might try to build for that later.
dyndnsc: Remove import fallback for default package pkgs/default.nix no longer exists, and I'm not sure we can import the root default.nix without introducing a cycle. Should someone want to use this module without our pkgs overlay, they can specify the package manually.
dma: Allow package to be configured This is mostly so we can drop the import for a file that no longer exists (pkgs/default.nix), but also for consistency with other NixOS modules.
flake: Compose new and patched packages into a single overlay
Redefine package set on top of overlays I wanted to reduce duplication, but ended up somewhat in the same place (with manifest.nix). Yet I find it much more elegant.
ci.nix: Fix patched package list generation The core of the fix is importing ./patches with the extended package set. The rest is just trying to keep the same structure (no flattening) while filtering out functions (`packagesFor` and the like).
ci: Print call trace on error This should make it easier to pinpoint errors deep in attributes within ci.nix.
ci: Add Nix expression with all possible package configurations The new ci.nix, when passed to nix-build: 1. runs the lib tests; 2. builds new packages when imported directly from ./pkgs; 3. builds new packages from the overlay; 4. builds patched packages from the overlay. These should uncover issues in the direct-overlay translation, which we'll need before consolidating */default.nix and */overlay.nix. I don't think we'll support loading the patched packages directly, moving forward.
ci: Rework build steps to enable Nix features Seems that nix-command is not enabled for `nixUnstable` by default. Move the setup and tests around so we can enable it (and flakes) first.
ci: Fix flake check invocation
Add experimental flake support
Rename overlay parameters to match flake style
modules/dma: Fix fallback package path You can't just `{ inherit pkgs; }` a callPackage.
lib: Drop Nix off declarative environment function That really doesn't play nice when you want `nixUnstable` instead. Now we put that in a `baseEnvironment` that can be overriden. This is a breaking change.
modules/wireguard-systemd: Support keepalive setting This field was originally added manually to the attrset (so we could convert nulls into zeroes) before we switched to using pipe, and we forgot to un-filter it once we switched.