anchor.diff:  let
   
     allowUnfree = config.allowUnfree or false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1";
  +
  +  # Allowed licenses, defaults to no licenses
  +  whitelistedLicenses = config.whitelistedLicenses or [];
  +
  +  # Blacklisted licenses, default to no licenses
  +  blacklistedLicenses = config.blacklistedLicenses or [];
   
     # Alow granular checks to allow only some unfree packages
     # Example:
  
positive.code:             { allow${unfreeOrBroken} = true; }
            to ~/.nixpkgs/config.nix.
          '';
      in
      if !allowUnfree && isUnfree (lib.lists.toList attrs.meta.license or []) && !allowUnfreePredicate attrs then
        throwEvalHelp "Unfree" "has an unfree license"
      else if !allowBroken && attrs.meta.broken or false then
        throwEvalHelp "Broken" "is marked as broken"
      else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then
  
negative.code:       pos' = if pos != null then "‘" + pos.file + ":" + toString pos.line + "’" else "«unknown-file»";
  
        throwEvalHelp = unfreeOrBroken: whatIsWrong:
          assert (builtins.elem unfreeOrBroken [ "Unfree"
                                                 "Broken"
                                                 "BlacklistedLicense"
                                               ]);
          throw ''
            Package ‘${attrs.name}’ in ${pos'} ${whatIsWrong}, refusing to evaluate.
            For `nixos-rebuild` you can set
  