From 1a78a4c7fe9d484c1de9ff0e46007f1970fd0a73 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Wed, 19 Feb 2025 18:26:24 -0500 Subject: [PATCH] firefox: fix build failure when package is null Native messaging hosts module assumed all hosts are packages, and we were passing null before. The patch also adds a test case for a null firefox package to avoid regressions in the future for this common (on Darwin at least) scenario. Note: Thunderbird doesn't need a similar change because it doesn't allow a null package. Signed-off-by: Ihar Hrachyshka --- modules/programs/firefox/mkFirefoxModule.nix | 6 +++--- tests/modules/programs/firefox/common.nix | 1 + tests/modules/programs/firefox/null-package.nix | 10 ++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 tests/modules/programs/firefox/null-package.nix diff --git a/modules/programs/firefox/mkFirefoxModule.nix b/modules/programs/firefox/mkFirefoxModule.nix index a36db370f..831f59ddb 100644 --- a/modules/programs/firefox/mkFirefoxModule.nix +++ b/modules/programs/firefox/mkFirefoxModule.nix @@ -847,9 +847,9 @@ in { home.packages = lib.optional (cfg.finalPackage != null) cfg.finalPackage; - mozilla.firefoxNativeMessagingHosts = [ - cfg.finalPackage # package configured native messaging hosts (entire browser actually) - ] ++ cfg.nativeMessagingHosts; # user configured native messaging hosts + mozilla.firefoxNativeMessagingHosts = cfg.nativeMessagingHosts + # package configured native messaging hosts (entire browser actually) + ++ (lib.optional (cfg.finalPackage != null) cfg.finalPackage); home.file = mkMerge ([{ "${cfg.configPath}/profiles.ini" = diff --git a/tests/modules/programs/firefox/common.nix b/tests/modules/programs/firefox/common.nix index c92db1e4c..939eab949 100644 --- a/tests/modules/programs/firefox/common.nix +++ b/tests/modules/programs/firefox/common.nix @@ -1,6 +1,7 @@ name: builtins.mapAttrs (test: module: import module [ "programs" name ]) { "${name}-deprecated-native-messenger" = ./deprecated-native-messenger.nix; + "${name}-null-package" = ./null-package.nix; "${name}-final-package" = ./final-package.nix; "${name}-policies" = ./policies.nix; "${name}-profiles-bookmarks" = ./profiles/bookmarks; diff --git a/tests/modules/programs/firefox/null-package.nix b/tests/modules/programs/firefox/null-package.nix new file mode 100644 index 000000000..e5d1516dc --- /dev/null +++ b/tests/modules/programs/firefox/null-package.nix @@ -0,0 +1,10 @@ +modulePath: +{ config, lib, ... }: + +lib.mkIf config.test.enableBig (lib.setAttrByPath modulePath { enable = true; } + // { + programs.firefox = { + enable = true; + package = null; + }; + })