Skip to content

Commit

Permalink
Merge pull request NixOS#73251 from worldofpeace/remove-slim
Browse files Browse the repository at this point in the history
nixos/slim: remove

(cherry picked from commit 4583e29)
  • Loading branch information
worldofpeace authored and dtzWill committed Nov 16, 2019
1 parent 02b3e27 commit e97f73d
Show file tree
Hide file tree
Showing 21 changed files with 31 additions and 682 deletions.
2 changes: 1 addition & 1 deletion nixos/doc/manual/configuration/x-windows.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
can select an alternative one by picking one of the following lines:
<programlisting>
<xref linkend="opt-services.xserver.displayManager.sddm.enable"/> = true;
<xref linkend="opt-services.xserver.displayManager.slim.enable"/> = true;
<xref linkend="opt-services.xserver.displayManager.gdm.enable"/> = true;
</programlisting>
</para>
<para>
Expand Down
10 changes: 5 additions & 5 deletions nixos/doc/manual/development/option-declarations.xml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
<para>
As an example, we will take the case of display managers. There is a central
display manager module for generic display manager options and a module file
per display manager backend (slim, sddm, gdm ...).
per display manager backend (sddm, gdm ...).
</para>

<para>
Expand Down Expand Up @@ -146,7 +146,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
/>), and to extend
it in each backend module
(<xref
linkend='ex-option-declaration-eot-backend-slim' />,
linkend='ex-option-declaration-eot-backend-gdm' />,
<xref
linkend='ex-option-declaration-eot-backend-sddm' />).
</para>
Expand All @@ -167,11 +167,11 @@ services.xserver.displayManager.enable = mkOption {
};</screen>
</example>

<example xml:id='ex-option-declaration-eot-backend-slim'>
<title>Extending <literal>services.xserver.displayManager.enable</literal> in the <literal>slim</literal> module</title>
<example xml:id='ex-option-declaration-eot-backend-gdm'>
<title>Extending <literal>services.xserver.displayManager.enable</literal> in the <literal>gdm</literal> module</title>
<screen>
services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ "slim" ]);
type = with types; nullOr (enum [ "gdm" ]);
};</screen>
</example>

Expand Down
7 changes: 7 additions & 0 deletions nixos/doc/manual/release-notes/rl-2003.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@
GnuPG anyway.
</para>
</listitem>
<listitem>
<para>
The SLIM Display Manager has been removed, as it has been unmaintained since 2013.
Consider migrating to a different display manager such as LightDM (current default in NixOS),
SDDM, GDM, or using the startx module which uses Xinitrc.
</para>
</listitem>
</itemizedlist>
</section>

Expand Down
1 change: 0 additions & 1 deletion nixos/lib/testing-python.nix
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ in rec {
inherit require;
virtualisation.memorySize = 1024;
services.xserver.enable = true;
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.auto.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
Expand Down
1 change: 0 additions & 1 deletion nixos/lib/testing.nix
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,6 @@ in rec {
inherit require;
virtualisation.memorySize = 1024;
services.xserver.enable = true;
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.auto.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/hardware/video/nvidia.nix
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ in
Note that this configuration will only be successful when a display manager
for which the <option>services.xserver.displayManager.setupCommands</option>
option is supported is used; notably, SLiM is not supported.
option is supported is used.
'';
};

Expand Down
1 change: 0 additions & 1 deletion nixos/modules/services/x11/desktop-managers/plasma5.nix
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,6 @@ in
security.pam.services.kdm.enableKwallet = true;
security.pam.services.lightdm.enableKwallet = true;
security.pam.services.sddm.enableKwallet = true;
security.pam.services.slim.enableKwallet = true;

xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
Expand Down
12 changes: 5 additions & 7 deletions nixos/modules/services/x11/display-managers/default.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# This module declares the options to define a *display manager*, the
# program responsible for handling X logins (such as xdm, gdb, or
# SLiM). The display manager allows the user to select a *session
# type*. When the user logs in, the display manager starts the
# program responsible for handling X logins (such as LightDM, GDM, or SDDM).
# The display manager allows the user to select a *session
# type*. When the user logs in, the display manager starts the
# *session script* ("xsession" below) to launch the selected session
# type. The session type defines two things: the *desktop manager*
# type. The session type defines two things: the *desktop manager*
# (e.g., KDE, Gnome or a plain xterm), and optionally the *window
# manager* (e.g. kwin or twm).

Expand Down Expand Up @@ -196,7 +196,6 @@ let
fi
'') cfg.displayManager.extraSessionFilePackages}
${concatMapStrings (pkg: ''
if test -d ${pkg}/share/wayland-sessions; then
mkdir -p "$out/share/wayland-sessions"
Expand Down Expand Up @@ -322,15 +321,14 @@ in
execCmd = mkOption {
type = types.str;
example = literalExample ''
"''${pkgs.slim}/bin/slim"
"''${pkgs.lightdm}/bin/lightdm"
'';
description = "Command to start the display manager.";
};

environment = mkOption {
type = types.attrsOf types.unspecified;
default = {};
example = { SLIM_CFGFILE = "/etc/slim.conf"; };
description = "Additional environment variables needed by the display manager.";
};

Expand Down
160 changes: 10 additions & 150 deletions nixos/modules/services/x11/display-managers/slim.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,155 +2,15 @@

with lib;

let

dmcfg = config.services.xserver.displayManager;

cfg = dmcfg.slim;

slimConfig = pkgs.writeText "slim.cfg"
''
xauth_path ${dmcfg.xauthBin}
default_xserver ${dmcfg.xserverBin}
xserver_arguments ${toString dmcfg.xserverArgs}
sessiondir ${dmcfg.session.desktops}/share/xsessions
login_cmd exec ${pkgs.runtimeShell} ${dmcfg.session.wrapper} "%session"
halt_cmd ${config.systemd.package}/sbin/shutdown -h now
reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
logfile /dev/stderr
${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)}
${optionalString (cfg.defaultUser != null) ("focus_password yes")}
${optionalString cfg.autoLogin "auto_login yes"}
${optionalString (cfg.consoleCmd != null) "console_cmd ${cfg.consoleCmd}"}
${cfg.extraConfig}
'';

# Unpack the SLiM theme, or use the default.
slimThemesDir =
let
unpackedTheme = pkgs.runCommand "slim-theme" { preferLocalBuild = true; }
''
mkdir -p $out
cd $out
unpackFile ${cfg.theme}
ln -s * default
'';
in if cfg.theme == null then "${pkgs.slim}/share/slim/themes" else unpackedTheme;

in

{

###### interface

options = {

services.xserver.displayManager.slim = {

enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable SLiM as the display manager.
'';
};

theme = mkOption {
type = types.nullOr types.path;
default = pkgs.fetchurl {
url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
};
defaultText = ''pkgs.fetchurl {
url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
}'';
example = literalExample ''
pkgs.fetchurl {
url = "mirror://sourceforge/slim.berlios/slim-wave.tar.gz";
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
}
'';
description = ''
The theme for the SLiM login manager. If not specified, SLiM's
default theme is used. See <link
xlink:href='http://slim.berlios.de/themes01.php'/> for a
collection of themes. TODO: berlios shut down.
'';
};

defaultUser = mkOption {
type = types.nullOr types.str;
default = null;
example = "login";
description = ''
The default user to load. If you put a username here you
get it automatically loaded into the username field, and
the focus is placed on the password.
'';
};

autoLogin = mkOption {
type = types.bool;
default = false;
description = ''
Automatically log in as the default user.
'';
};

extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra configuration options for SLiM login manager. Do not
add options that can be configured directly.
'';
};

consoleCmd = mkOption {
type = types.nullOr types.str;
default = ''
${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ${pkgs.shadow}/bin/login
'';
defaultText = ''
''${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ''${pkgs.shadow}/bin/login
'';
description = ''
The command to run when "console" is given as the username.
'';
};
};

};


###### implementation

config = mkIf cfg.enable {

services.xserver.displayManager.job =
{ environment =
{ SLIM_CFGFILE = slimConfig;
SLIM_THEMESDIR = slimThemesDir;
};
execCmd = "exec ${pkgs.slim}/bin/slim";
};

services.xserver.displayManager.sessionCommands =
''
# Export the config/themes for slimlock.
export SLIM_THEMESDIR=${slimThemesDir}
'';

# Allow null passwords so that the user can login as root on the
# installation CD.
security.pam.services.slim = { allowNullPassword = true; startSession = true; };

# Allow slimlock to work.
security.pam.services.slimlock = {};

environment.systemPackages = [ pkgs.slim ];

};

# added 2019-11-11
imports = [
(mkRemovedOptionModule [ "services" "xserver" "displayManager" "slim" ] ''
The SLIM project is abandoned and their last release was in 2013.
Because of this it poses a security risk to your system.
Other issues include it not fully supporting systemd and logind sessions.
Please use a different display manager such as LightDM, SDDM, or GDM.
You can also use the startx module which uses Xinitrc.
'')
];
}
1 change: 0 additions & 1 deletion nixos/modules/services/x11/xserver.nix
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,6 @@ in
default = !( dmconf.auto.enable
|| dmconf.gdm.enable
|| dmconf.sddm.enable
|| dmconf.slim.enable
|| dmconf.xpra.enable );
in mkIf (default) true;

Expand Down
1 change: 0 additions & 1 deletion nixos/release-combined.nix
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ in rec {
(all nixos.tests.proxy)
(all nixos.tests.sddm.default)
(all nixos.tests.simple)
(all nixos.tests.slim)
(all nixos.tests.switchTest)
(all nixos.tests.udisks2)
(all nixos.tests.xfce)
Expand Down
1 change: 0 additions & 1 deletion nixos/tests/all-tests.nix
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,6 @@ in
sddm = handleTest ./sddm.nix {};
signal-desktop = handleTest ./signal-desktop.nix {};
simple = handleTest ./simple.nix {};
slim = handleTest ./slim.nix {};
slurm = handleTest ./slurm.nix {};
smokeping = handleTest ./smokeping.nix {};
snapper = handleTest ./snapper.nix {};
Expand Down
66 changes: 0 additions & 66 deletions nixos/tests/slim.nix

This file was deleted.

Loading

0 comments on commit e97f73d

Please sign in to comment.