From 14c7a500c0939d8251a60ca0932bba3fca3b1737 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 10 Apr 2024 20:47:15 +0800 Subject: [PATCH 1/3] nixos/cinnamon: Don't enable modules for excludePackages ref: bc970e94e786d554237c931457ac50f5c415b9f0 ref: nixpkgs issue 299877 --- .../modules/services/x11/desktop-managers/cinnamon.nix | 10 +++++----- nixos/tests/cinnamon.nix | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix index f5a6c05865c4..a23b680ec254 100644 --- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -95,7 +95,7 @@ in ''; # Default services - services.blueman.enable = mkDefault true; + services.blueman.enable = mkDefault (notExcluded pkgs.blueman); hardware.bluetooth.enable = mkDefault true; hardware.pulseaudio.enable = mkDefault true; security.polkit.enable = true; @@ -228,10 +228,10 @@ in }) (mkIf serviceCfg.apps.enable { - programs.geary.enable = mkDefault true; - programs.gnome-disks.enable = mkDefault true; - programs.gnome-terminal.enable = mkDefault true; - programs.file-roller.enable = mkDefault true; + programs.geary.enable = mkDefault (notExcluded pkgs.gnome.geary); + programs.gnome-disks.enable = mkDefault (notExcluded pkgs.gnome.gnome-disk-utility); + programs.gnome-terminal.enable = mkDefault (notExcluded pkgs.gnome.gnome-terminal); + programs.file-roller.enable = mkDefault (notExcluded pkgs.gnome.file-roller); environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; utils.removePackagesByName [ # cinnamon team apps diff --git a/nixos/tests/cinnamon.nix b/nixos/tests/cinnamon.nix index eab907d0b712..694308152149 100644 --- a/nixos/tests/cinnamon.nix +++ b/nixos/tests/cinnamon.nix @@ -8,6 +8,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { services.xserver.enable = true; services.xserver.desktopManager.cinnamon.enable = true; + # We don't ship gnome-text-editor in Cinnamon module, we add this line mainly + # to catch eval issues related to this option. + environment.cinnamon.excludePackages = [ pkgs.gnome-text-editor ]; + # For the sessionPath subtest. services.xserver.desktopManager.cinnamon.sessionPath = [ pkgs.gnome.gpaste ]; }; From a6ada0502be8e784b08b24dd023f3653499bd526 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 10 Apr 2024 21:27:31 +0800 Subject: [PATCH 2/3] nixos/pantheon: Don't enable modules for excludePackages ref: bc970e94e786d554237c931457ac50f5c415b9f0 ref: nixpkgs issue 299877 While at it, also enable flatpak in nixosTests.pantheon so we ensure appcenter builds. --- nixos/modules/services/x11/desktop-managers/pantheon.nix | 5 +++-- nixos/tests/pantheon.nix | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index b9ca6bd4ba8d..026e9a9a2e4a 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -12,6 +12,7 @@ let extraGSettingsOverrides = cfg.extraGSettingsOverrides; }; + notExcluded = pkg: (!(lib.elem pkg config.environment.pantheon.excludePackages)); in { @@ -288,8 +289,8 @@ in }) (mkIf serviceCfg.apps.enable { - programs.evince.enable = mkDefault true; - programs.file-roller.enable = mkDefault true; + programs.evince.enable = mkDefault (notExcluded pkgs.gnome.evince); + programs.file-roller.enable = mkDefault (notExcluded pkgs.gnome.file-roller); environment.systemPackages = utils.removePackagesByName ([ pkgs.gnome.gnome-font-viewer diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix index f8de2eb8061d..d2a4a009af53 100644 --- a/nixos/tests/pantheon.nix +++ b/nixos/tests/pantheon.nix @@ -13,6 +13,13 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : services.xserver.enable = true; services.xserver.desktopManager.pantheon.enable = true; + # We ship pantheon.appcenter by default when this is enabled. + services.flatpak.enable = true; + + # We don't ship gnome-text-editor in Pantheon module, we add this line mainly + # to catch eval issues related to this option. + environment.pantheon.excludePackages = [ pkgs.gnome-text-editor ]; + environment.systemPackages = [ pkgs.xdotool ]; }; From 2a8a59aebb851f48004c5b659909f3fb2c4bd189 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 10 Apr 2024 21:33:34 +0800 Subject: [PATCH 3/3] nixos/budgie: Don't enable modules for excludePackages ref: bc970e94e786d554237c931457ac50f5c415b9f0 ref: nixpkgs issue 299877 --- nixos/modules/services/x11/desktop-managers/budgie.nix | 4 +++- nixos/tests/budgie.nix | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/desktop-managers/budgie.nix b/nixos/modules/services/x11/desktop-managers/budgie.nix index 466ef5c565b7..e39507622cde 100644 --- a/nixos/modules/services/x11/desktop-managers/budgie.nix +++ b/nixos/modules/services/x11/desktop-managers/budgie.nix @@ -43,6 +43,8 @@ let budgie-control-center = pkgs.budgie.budgie-control-center.override { enableSshSocket = config.services.openssh.startWhenNeeded; }; + + notExcluded = pkg: (!(lib.elem pkg config.environment.budgie.excludePackages)); in { meta.maintainers = lib.teams.budgie.members; @@ -160,7 +162,7 @@ in { ++ cfg.sessionPath; # Both budgie-desktop-view and nemo defaults to this emulator. - programs.gnome-terminal.enable = mkDefault true; + programs.gnome-terminal.enable = mkDefault (notExcluded pkgs.gnome.gnome-terminal); # Fonts. fonts.packages = [ diff --git a/nixos/tests/budgie.nix b/nixos/tests/budgie.nix index 5228e869b056..203e718c8c6d 100644 --- a/nixos/tests/budgie.nix +++ b/nixos/tests/budgie.nix @@ -18,6 +18,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { }; }; + # We don't ship gnome-text-editor in Budgie module, we add this line mainly + # to catch eval issues related to this option. + environment.budgie.excludePackages = [ pkgs.gnome-text-editor ]; + services.xserver.desktopManager.budgie = { enable = true; extraPlugins = [