Как использовать политики Firefox в NixOs / Как добавить файлы конфигурации в пакет Nix?

Как использовать политики Firefox в NixOs / Как добавить файлы конфигурации в пакет Nix?

Мне нужно развернуть мой Firefox, настроенный и с расширениями в NixOS. Я хочу сделать это декларативно (в configuration.nix) и не хочу использовать home-manager.

Firefox ищет конфигурацию в /nix/store/<hash>-firefox-unwrapped-74.0.1/lib/firefox/distribution/policies.json(проверено с помощью strace).

Отсюда вопрос: как добавить этот файл в пакет Firefox nixpkgs? (Бонусный вопрос: как мне получить туда файл из моего репозитория Github?)

Я довольно новичок в NixOs. Я просмотрел руководства по переопределению, наложениям, обертыванию и т. д., но у меня не получилось это сделать. Я пробовал и с firefox, firefox-binи с firefox-unwrapped.

решение1

Начиная с NixOS 21.05 (совершить) теперь легко создать пользовательский пакет Firefox с некоторыми установленными значениями политики, например, с помощью

pkgs.wrapFirefox pkgs.firefox-unwrapped {
  extraPolicies = {
    DisableFirefoxStudies = true;
    DisablePocket = true;
  };
}

где pkgsнаходится набор пакетов Nixpkgs.

решение2

Я взглянул на выражения Firefox Nix и не увидел способа предоставить policies.json.

Если вы измените пакет таким образом, что сможете предоставить политику в качестве входных данных для вывода, это сработает, но тогда пользователям придется нести бремя компиляции Firefox, поскольку файл будет входными данными для сборки.

Если Firefox предоставляет способ указать, где найти файл политик во время выполнения, это может быть идеальным решением. В противном случае вы можете добавить патч в пакет Firefox, который изменяет исходный код для поиска файла политик, скажем, по адресу... /etc/firefox/policies.json. После этого изменения вы можете использовать environmentмодуль NixOS /etc/nixos/configuration.nixдля создания политик. Что-то вроде этого:

environment.etc."firefox/policies".text = "INSERT POLICY HERE";

Связанный контент