Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nixos/gdm: Conflict plymouth-quit, but more carefully #100569

Merged
merged 1 commit into from Feb 21, 2021

Conversation

andersk
Copy link
Contributor

@andersk andersk commented Oct 15, 2020

Motivation for this change

To avoid extra flickering on boot, we want GDM to tell Plymouth to quit after GDM takes control of the display. That configuration was reverted in #71065 because it caused nixos-rebuild switch to bring down the graphical session. The reason was that if multi-user.target wants plymouth-quit.service which conflicts display-manager.service, then when nixos-rebuild switch starts multi-user.target, display-manager.service is stopped so plymouth-quit.service can be started. We avoid this problem by removing WantedBy: multi-user.target from plymouth-quit.service.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

To avoid extra flickering on boot, we want GDM to tell Plymouth to
quit after GDM takes control of the display.  That configuration was
reverted in NixOS#71065 because it caused ‘nixos-rebuild switch’ to bring
down the graphical session.  The reason was that if multi-user.target
wants plymouth-quit.service which conflicts display-manager.service,
then when ‘nixos-rebuild switch’ starts multi-user.target,
display-manager.service is stopped so plymouth-quit.service can be
started.  We avoid this problem by removing WantedBy:
multi-user.target from plymouth-quit.service.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
@worldofpeace
Copy link
Contributor

Hi, very sorry that this has gone under the radar. I will try this out since I've been experimenting with things again lately.

@worldofpeace
Copy link
Contributor

I can't remember fully how to reproduce the issue before, but rebulid switch did not bring down my session.

@andersk
Copy link
Contributor Author

andersk commented Feb 21, 2021

I can still reproduce the issue before by adding the first hunk without the second hunk (i.e., reverting ed20a54) and running nixos-rebuild switch. The second hunk avoids this problem.

@worldofpeace
Copy link
Contributor

I can still reproduce the issue before by adding the first hunk without the second hunk (i.e., reverting ed20a54) and running nixos-rebuild switch. The second hunk avoids this problem.

It all sounds good to me 👍

Copy link
Contributor

@worldofpeace worldofpeace left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, let's hope these aren't my famous last words again 😁

@worldofpeace worldofpeace merged commit 4287f5a into NixOS:master Feb 21, 2021
@andersk andersk deleted the gdm-plymouth branch January 29, 2022 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants