8.nix-darwin/tests/nixpkgs-config-allow-unfree.nix
Martin Häcker a0a51c56f0 nixpkgs.config: Add allowUnfreePackages option
Also make sure it merges correctly and verify with a test.

This was added in nixpkgs some time ago and is quite a nice addition as
it merges additively (in contrast to allowUnfreePredicate) thus allowing
to localize allowUnfreePackage specifications to all the locations in
your local config where unfree packages are added.
2026-04-01 21:03:30 +02:00

45 lines
1.1 KiB
Nix

# Check that nixpkgs.config.allowUnfreePackages is merged correctly
# run with: nix-build release.nix -A tests.nixpkgs-config-allow-unfree
{
config,
lib,
pkgs,
...
}:
{
# Module 1: Define some unfree packages
nixpkgs.config.allowUnfreePackages = [
"vscode"
"slack"
];
# Module 2: Define more unfree packages (simulating multiple modules)
# In a real scenario, this would be in a separate file
imports = [
(
{ config, ... }:
{
nixpkgs.config.allowUnfreePackages = [
"zoom"
"discord"
];
}
)
];
test = ''
echo checking allowUnfreePackages merging >&2
# Verify that all packages from both modules are present
expected_packages=("discord" "slack" "vscode" "zoom")
actual_packages=(${builtins.toString (builtins.sort builtins.lessThan config.nixpkgs.config.allowUnfreePackages)})
for pkg in "''${expected_packages[@]}"; do
if [[ ! " ''${actual_packages[@]} " =~ " $pkg " ]]; then
echo "ERROR: Expected package '$pkg' not found in allowUnfreePackages" >&2
exit 1
fi
done
'';
}