NixOs で Firefox ポリシーを使用する方法 / Nix パッケージに設定ファイルを追加する方法は?

NixOs で Firefox ポリシーを使用する方法 / Nix パッケージに設定ファイルを追加する方法は?

NixOS で設定され拡張機能が備わった Firefox を展開する必要があります。これを宣言的に ( で) 行いたいのですconfiguration.nixが、home-manager は使いたくありません。

/nix/store/<hash>-firefox-unwrapped-74.0.1/lib/firefox/distribution/policies.jsonFirefox は( で検証済み)で設定を探しますstrace

そこで質問です: このファイルを Firefox nixpkgs パッケージに追加するにはどうすればよいですか? (ボーナス質問: Github リポジトリからファイルを取得するにはどうすればいいですか?)

私は NixOs をあまり使いません。オーバーライド、オーバーレイ、ラッピングなどについてマニュアルを参照しましたが、うまくいきませんでした。 、 、 の両方を試しfirefoxましfirefox-binfirefox-unwrapped

答え1

NixOS 21.05以降(専念) 次のようなポリシー値を設定したカスタム Firefox パッケージを簡単に作成できるようになりました。

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

pkgsNixpkgs パッケージセットはどこにありますか。

答え2

Firefox の Nix 式をざっと見てみましたが、 を提供する方法が見つかりませんでしたpolicies.json

ポリシーを派生への入力として提供できるようにパッケージを変更すると、それは機能しますが、そのファイルはビルド入力となるため、ユーザーには Firefox をコンパイルする負担がかかります。

Firefox が実行時にポリシー ファイルの場所を指定する方法を提供している場合、それが理想的なソリューションになるかもしれません。そうでない場合は、ソース コードを変更して、たとえば... でポリシー ファイルを探すようにするパッチを Firefox パッケージに追加できます/etc/firefox/policies.json。この変更を行うと、environmentNixOS モジュールを使用して/etc/nixos/configuration.nixポリシーを作成できます。次のようになります。

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

関連情報