split out phoenix overlay
This commit is contained in:
21
flake.lock
generated
21
flake.lock
generated
@@ -737,26 +737,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"phoenix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769035606,
|
|
||||||
"narHash": "sha256-I9pKhfhAz3JsGBLIqr9MNycTEQn0Bc3jzf0mKeWLlsE=",
|
|
||||||
"owner": "celenityy",
|
|
||||||
"repo": "Phoenix",
|
|
||||||
"rev": "07d9be8cbf938962f9847b0970274b885ff48792",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "celenityy",
|
|
||||||
"repo": "Phoenix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
@@ -770,7 +750,6 @@
|
|||||||
"noshell": "noshell",
|
"noshell": "noshell",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"nvf": "nvf",
|
"nvf": "nvf",
|
||||||
"phoenix": "phoenix",
|
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -38,10 +38,6 @@
|
|||||||
url = "github:notashelf/nvf";
|
url = "github:notashelf/nvf";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
phoenix = {
|
|
||||||
url = "github:celenityy/Phoenix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:nix-community/stylix";
|
url = "github:nix-community/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -59,11 +55,9 @@
|
|||||||
noshell,
|
noshell,
|
||||||
nur,
|
nur,
|
||||||
nvf,
|
nvf,
|
||||||
phoenix,
|
|
||||||
stylix,
|
stylix,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
phoenix' = (import ./modules/nixos/phoenix.nix) {inherit phoenix;};
|
|
||||||
nix-zulip' = (import "${nix-zulip}/nix/default.nix" {}).output;
|
nix-zulip' = (import "${nix-zulip}/nix/default.nix" {}).output;
|
||||||
machines = import ./machines.nix;
|
machines = import ./machines.nix;
|
||||||
configuration = machine: modules:
|
configuration = machine: modules:
|
||||||
@@ -81,7 +75,6 @@
|
|||||||
impermanence.nixosModules.impermanence
|
impermanence.nixosModules.impermanence
|
||||||
nixos-mailserver.nixosModule
|
nixos-mailserver.nixosModule
|
||||||
noshell.nixosModules.default
|
noshell.nixosModules.default
|
||||||
phoenix'.phoenixModule
|
|
||||||
nix-zulip'.nixosModules.zulip
|
nix-zulip'.nixosModules.zulip
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
# apps
|
# apps
|
||||||
./modules/nixos/steam.nix
|
./modules/nixos/steam.nix
|
||||||
|
./modules/nixos/phoenix.nix
|
||||||
|
|
||||||
# substitutors
|
# substitutors
|
||||||
./substitutors.nix
|
./substitutors.nix
|
||||||
|
|||||||
@@ -1,61 +1,45 @@
|
|||||||
{phoenix, ...}: rec {
|
{
|
||||||
phoenixOverlay = final: prev: {
|
pkgs,
|
||||||
phoenix = (final.callPackage (import "${phoenix}/nix/package.nix")
|
config,
|
||||||
{
|
lib,
|
||||||
}).overrideAttrs {
|
...
|
||||||
patches = [
|
}: {
|
||||||
../../patches/0001-autoDisableScopes-unlocked.patch
|
options.programs.firefox.phoenix = {
|
||||||
|
enable =
|
||||||
|
lib.mkEnableOption "Enable privacy & security hardening of Firefox using the Phoenix configs"
|
||||||
|
// {
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
firefoxPackages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = ["firefox"];
|
||||||
|
description = "The name of Firefox packages of current pkgs to patch with phoenix config and policy.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = let
|
||||||
|
cfg = config.programs.firefox.phoenix;
|
||||||
|
in
|
||||||
|
lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = !pkgs.stdenv.isDarwin;
|
||||||
|
message = "Phoenix module has not been ported to nix-darwin yet. Contributions welcomed.";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
environment.etc."firefox/defaults/pref/phoenix-desktop.js".source = "${pkgs.phoenix}/pref/phoenix-desktop.js";
|
||||||
|
environment.etc."firefox/phoenix/userjs".source = "${pkgs.phoenix}/userjs";
|
||||||
|
environment.etc."firefox/phoenix/configs".source = "${pkgs.phoenix}/configs";
|
||||||
|
environment.etc."firefox/phoenix/assets".source = "${pkgs.phoenix}/assets";
|
||||||
|
programs.firefox.policies =
|
||||||
|
(builtins.fromJSON (builtins.readFile "${pkgs.phoenix}/policies.json")).policies;
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(import ../../overlays/phoenix.nix)
|
||||||
|
(
|
||||||
|
final: prev:
|
||||||
|
builtins.listToAttrs (
|
||||||
|
map (p: lib.nameValuePair p (final.withPhoenix prev.${p})) cfg.firefoxPackages
|
||||||
|
)
|
||||||
|
)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
withPhoenix = firefoxPackage:
|
|
||||||
firefoxPackage.override {
|
|
||||||
extraPoliciesFiles = ["${final.phoenix}/policies.json"];
|
|
||||||
extraPrefsFiles = ["${final.phoenix}/phoenix.cfg"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
phoenixModule = {
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.firefox.phoenix = {
|
|
||||||
enable =
|
|
||||||
lib.mkEnableOption "Enable privacy & security hardening of Firefox using the Phoenix configs"
|
|
||||||
// {
|
|
||||||
default = true;
|
|
||||||
};
|
|
||||||
firefoxPackages = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = ["firefox"];
|
|
||||||
description = "The name of Firefox packages of current pkgs to patch with phoenix config and policy.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = let
|
|
||||||
cfg = config.programs.firefox.phoenix;
|
|
||||||
in
|
|
||||||
lib.mkIf cfg.enable {
|
|
||||||
assertions = [
|
|
||||||
{
|
|
||||||
assertion = !pkgs.stdenv.isDarwin;
|
|
||||||
message = "Phoenix module has not been ported to nix-darwin yet. Contributions welcomed.";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
environment.etc."firefox/defaults/pref/phoenix-desktop.js".source = "${pkgs.phoenix}/pref/phoenix-desktop.js";
|
|
||||||
environment.etc."firefox/phoenix/userjs".source = "${pkgs.phoenix}/userjs";
|
|
||||||
environment.etc."firefox/phoenix/configs".source = "${pkgs.phoenix}/configs";
|
|
||||||
environment.etc."firefox/phoenix/assets".source = "${pkgs.phoenix}/assets";
|
|
||||||
programs.firefox.policies =
|
|
||||||
(builtins.fromJSON (builtins.readFile "${pkgs.phoenix}/policies.json")).policies;
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
phoenixOverlay
|
|
||||||
(
|
|
||||||
final: prev:
|
|
||||||
builtins.listToAttrs (
|
|
||||||
map (p: lib.nameValuePair p (final.withPhoenix prev.${p})) cfg.firefoxPackages
|
|
||||||
)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
21
overlays/phoenix.nix
Normal file
21
overlays/phoenix.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
final: prev: let
|
||||||
|
phoenix-src = prev.fetchFromGitHub {
|
||||||
|
owner = "celenityy";
|
||||||
|
repo = "Phoenix";
|
||||||
|
rev = "07d9be8cbf938962f9847b0970274b885ff48792";
|
||||||
|
hash = "sha256-I9pKhfhAz3JsGBLIqr9MNycTEQn0Bc3jzf0mKeWLlsE=";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
phoenix = (final.callPackage (import "${phoenix-src}/nix/package.nix")
|
||||||
|
{
|
||||||
|
}).overrideAttrs {
|
||||||
|
patches = [
|
||||||
|
../patches/0001-autoDisableScopes-unlocked.patch
|
||||||
|
];
|
||||||
|
};
|
||||||
|
withPhoenix = firefoxPackage:
|
||||||
|
firefoxPackage.override {
|
||||||
|
extraPoliciesFiles = ["${final.phoenix}/policies.json"];
|
||||||
|
extraPrefsFiles = ["${final.phoenix}/phoenix.cfg"];
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user