Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
nixos/slim: remove #73251
Motivation for this change
The SLIM project is abandoned and their last release was in 2013. Because of this it poses a security risk to systems, no one is working on it or picked up maintenance. It also lacks compatibility with systemd and logind sessions. For users, there liikely isn't anything like slim that's as lightweight in terms of dependencies.
hmm, personally I would not remove stuff which still works and isn't maintained anymore. But I can see the point to not ship unmaintained stuff anymore and higher the burden for people to migrate to maintained grounds.
@avnik maybe something like
LightDM, despite the name, is not lightwight and I don't know of any other comparable software, besides no display manager at all (startx). Slim has problems and that's fine for not being the default DM but I don't see how removal should be a logical consequence of that decision.
I don't think keeping slim around requires any extra work and we have plenty of old unmaintained software that still works and is useful to some.
Here's mostly what I had to say about this
most of the discussion happened in nixos-chat.
Bottom line is unmaintained software just doesn't belong in nixpkgs, and if people rely on software that's unmaintained in nixpkgs we already have an issue. In this kind of situation we usually have to do one of two things:
No one anywhere has stepped up to actually maintain it, though perhaps @cleverca22 has something in mind. But at that point you might as well start from scratch and make a display-manager.
Now someone could easily add this module and package to NUR and keep using it, but it doesn't change the fact that we can't support it.
This fixes the following evaluation error: The option `services.xserver.displayManager.slim' can no longer be used since it's been removed. 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. Here is the nixpkgs upstream pull request removing SLiM: NixOS/nixpkgs#73251 Since I was using a custom theme for SLiM and actually liked the minimalism, it's probably time to start patching LightDM soon. For now however, I'll stay with a default LightDM configuration and wait until I'm getting annoyed :-) Signed-off-by: aszlig <firstname.lastname@example.org>
Ugh. A perfectly happy user of slim here. 0) Let me remind you that slim is the only display manager that actually properly works (defined as "does not leak resources after you login and does not hand after you logout") for automatic logins, see #46396 and #30890 (comment). So, I'd say removing it is unproductive. As to your other arguments:
Bottom line is unmaintained software just doesn't belong in nixpkgs, and if people rely on software that's unmaintained in nixpkgs we already have an issue.
1) Firstly, I disagree. IMHO, if it is not broken, nixpkgs should provide it. I (and you, and everyone else) use plenty on unmaintained software. - If it just works you don't need to maintain it. E.g. Emacs minor modes that were written in 90's and still just work with zero changes. - If it works for your inputs and it is not designed to take untrusted data it's nobody's business if it is not maintained. E.g. we keep old unmaintained versions of Firefox because some old plugins for offline use just won't ever be rewritten for the new plugin API Firefox adapted from Chromium. 2) You yourself mention in
* https://logs.nix.samueldr.com/nixos-chat/2019-11-12#2776524; (and comments after and before)
that it is not actually unmaintaned since Gentoo guys maintain it in https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-misc/slim/files. What is the problem with just applying those patches, exactly? Are there any open issues about slim that can't be fixed by applying those patches? (Also, I can't stop myself from mentioning that it works perfectly fine without Gentoo patches unless you use systemd, which is telling more about systemd than about slim. But I wasn't happy with #30890 and the argument there either. So, this line of reasoning should probably be classified as an ideological argument. So, whatever.)
I mentioned that Gentoo had patches from certain places, we haven't identify their sources or authorship.
Also, a display-manager is a much different kind of software than the examples you've mentioned.
> that it is not actually unmaintaned since Gentoo guys maintain it in https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-misc/slim/files. I mentioned that Gentoo had patches from certain places, we haven't identify their sources or authorship. My initial assumption is that they're patches left behind from various efforts to fix certain things about slim. A distro carrying patches doesn't connotate the intrinsically different type of maintenance slim needs, a developer and proper systemd support.
I looked over them, and all of those patches seem very sane, most are trivial. Of those patches https://gitweb.gentoo.org/repo/gentoo.git/plain/x11-misc/slim/files/slim-1.3.5-arm.patch and https://gitweb.gentoo.org/repo/gentoo.git/plain/x11-misc/slim/files/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch fix actual bugs. Systemd support is implemented with two patches https://gitweb.gentoo.org/repo/gentoo.git/plain/x11-misc/slim/files/slim-1.3.6-systemd-session.patch and https://gitweb.gentoo.org/repo/gentoo.git/plain/x11-misc/slim/files/slim-1.3.5-disable-ck-for-systemd.patch both of which told me more about systemd than about slim, as I expected. The rest are changes to the build scripts and Gentoo-specific things. I'd say that's pretty high quality software, considering the date of the last release.
I would mention that it's more reasonable to remove something when alternatives exist, but it stands you weren't pleased with that reasoning #30890.
Yes, I don't consider lightdm to be an alternative to slim. It is 6 (!) times larger. It also pretty much broken for automatic logins.
Also, a display-manager is a much different kind of software than the examples you've mentioned. You can say certain software requires different types of effort in upkeep. I'm easily convinced it's much more difficult than an emacs mirror mode or a Firefox plugin.
Why? X11 authorization and session infra is set in stone, more or less. AFAICS, the only source of breakage there is systemd.
I'm thinking of security too.
1) It's not a default. 2) It requires keyboard input. Which, pretty much, means physical access to the machine. Which makes all the usual security arguments moot. 3) Even then, I would argue that slim is _more_ secure than lightdm by any reasonable metric. It requires less libraries, thus less code, less bugs. It's login and lock screen theming mechanisms are much simpler, don't allow any scripting. I reverted this locally, added Gentoo patches on top. Building a NixOS VM now. Will test and then PR the result later.