diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox/wrapper.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox/wrapper.nix | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index e909b15f77a..68f547d1f95 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -8,6 +8,7 @@ , browserpass, gnome-browser-connector, uget-integrator, plasma5Packages, bukubrow, pipewire , tridactyl-native , fx-cast-bridge +, keepassxc , udev , libkrb5 , libva @@ -33,6 +34,7 @@ let , nameSuffix ? "" , icon ? applicationName , wmClass ? applicationName + , nativeMessagingHosts ? [] , extraNativeMessagingHosts ? [] , pkcs11Modules ? [] , useGlvnd ? true @@ -44,7 +46,7 @@ let , extraPrefs ? "" , extraPrefsFiles ? [] # For more information about policies visit - # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled + # https://mozilla.github.io/policy-templates/ , extraPolicies ? {} , extraPoliciesFiles ? [] , libName ? browser.libName or "firefox" # Important for tor package or the like @@ -61,17 +63,28 @@ let # PCSC-Lite daemon (services.pcscd) also must be enabled for firefox to access smartcards smartcardSupport = cfg.smartcardSupport or false; - nativeMessagingHosts = - [ ] - ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) - ++ lib.optional (cfg.enableBukubrow or false) bukubrow - ++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native - ++ lib.optional (cfg.enableGnomeExtensions or false) gnome-browser-connector - ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator - ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma5Packages.plasma-browser-integration - ++ lib.optional (cfg.enableFXCastBridge or false) fx-cast-bridge - ++ extraNativeMessagingHosts - ; + deprecatedNativeMessagingHost = option: pkg: + if (cfg.${option} or false) + then + lib.warn "The cfg.${option} argument for `firefox.override` is deprecated, please add `pkgs.${pkg.pname}` to `nativeMessagingHosts` instead" + [pkg] + else []; + + allNativeMessagingHosts = builtins.map lib.getBin ( + nativeMessagingHosts + ++ deprecatedNativeMessagingHost "enableBrowserpass" browserpass + ++ deprecatedNativeMessagingHost "enableBukubrow" bukubrow + ++ deprecatedNativeMessagingHost "enableTridactylNative" tridactyl-native + ++ deprecatedNativeMessagingHost "enableGnomeExtensions" gnome-browser-connector + ++ deprecatedNativeMessagingHost "enableUgetIntegrator" uget-integrator + ++ deprecatedNativeMessagingHost "enablePlasmaBrowserIntegration" plasma5Packages.plasma-browser-integration + ++ deprecatedNativeMessagingHost "enableFXCastBridge" fx-cast-bridge + ++ deprecatedNativeMessagingHost "enableKeePassXC" keepassxc + ++ (if extraNativeMessagingHosts != [] + then lib.warn "The extraNativeMessagingHosts argument for the Firefox wrapper is deprecated, please use `nativeMessagingHosts`" extraNativeMessagingHosts + else []) + ); + libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver cups pciutils ] ++ lib.optional pipewireSupport pipewire ++ lib.optional ffmpegSupport ffmpeg_5 @@ -84,8 +97,9 @@ let ++ lib.optional sndioSupport sndio ++ lib.optional jackSupport libjack2 ++ lib.optional smartcardSupport opensc - ++ lib.optional (cfg.speechSynthesisSupport or false) speechd - ++ pkcs11Modules; + ++ lib.optional (cfg.speechSynthesisSupport or true) speechd + ++ pkcs11Modules + ++ gtk_modules; gtk_modules = [ libcanberra-gtk3 ]; launcherName = "${applicationName}${nameSuffix}"; @@ -335,7 +349,7 @@ let install -D -t $out/share/applications $desktopItem/share/applications/* mkdir -p $out/lib/mozilla/native-messaging-hosts - for ext in ${toString nativeMessagingHosts}; do + for ext in ${toString allNativeMessagingHosts}; do ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/* done @@ -362,7 +376,7 @@ let extraPoliciesFiles=(${builtins.toString extraPoliciesFiles}) for extraPoliciesFile in "''${extraPoliciesFiles[@]}"; do - jq -s '.[0] + .[1]' "$POL_PATH" $extraPoliciesFile > .tmp.json + jq -s '.[0] * .[1]' "$POL_PATH" $extraPoliciesFile > .tmp.json mv .tmp.json "$POL_PATH" done |