Невозможно внести в черный список несвободные распространяемые вредоносные программы

#nixos

Вопрос:

Я хочу внести unfreeRedistributableFirmware лицензию в черный список, потому что, несмотря на то, что она несвободна, NixOS в настоящее время не рассматривает ее как таковую. Поэтому я добавляю это к своему configuration.nix .

   boot = {
    kernelPackages = pkgs.linuxPackages_latest-libre;
    ...
  }
  nixpkgs.config = {
    allowBroken = true;
    blacklistedLicenses = with lib.licenses; [
      unfreeRedistributableFirmware
    ];
    ...
  };
 

Тем не менее, я продолжаю получать firmware-linux-nonfree ошибки после запуска nixox-rebuild , даже несмотря на то, что я объявляю ядро Linux-libre.

 error: Package ‘firmware-linux-nonfree-2021-07-16’ in /nix/store/c84snp1irc764vsr81dcv61qrq78wdnv-nixos-21.05.2734.74d017edb67/nixos/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix:23 has a blocklisted license (‘unfreeRedistributableFirmware’), refusing to evaluate.
 

Любые советы или обходные пути будут оценены по достоинству.

Комментарии:

1. Если вы передадите --show-trace команду nix, которую вы выполняете ( nixos-rebuild предположительно), вы получите трассировку вызова, которая может дать подсказку. Вы установили какие -либо параметры, связанные с прошивкой ?

2. @Robertensing Я не устанавливал эту опцию. --show-trace Вывод выглядит для меня очень загадочным: ссылка .

3. Реализация модульной системы вызывает больше строк, чем можно было бы надеяться увидеть, но она также обеспечивает дополнительный контекст, также прямо в трассировке стека. Похоже, что udev модуль отвечает за оценку заблокированного пакета (несколько ближе к концу, while evaluating definitions from `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/services/hardware/udev.nix': )

Ответ №1:

Виновником является этот импортированный модуль в /etc/nixos/конфигурация оборудования.nix

 imports = [ (modulesPath   "/installer/scan/not-detected.nix") ];
 

Этот модуль содержит hardware.enableRedistributableFirmware = lib.mkDefault true; . Я просто прокомментирую это, и все несвободные прошивки исчезнут.

Но этот файл может быть перезаписан, nixos-generate-config поэтому вместо этого лучше объявить hardware.enableRedistributableFirmware = false; в. configuration.nix