elementary / greeter

Login and Lock Screen greeter for elementary OS and Pantheon, using LightDM
GNU General Public License v3.0
152 stars 39 forks source link

Latest ISO doesn't automatically launch installer #600

Closed davidmhewitt closed 1 year ago

davidmhewitt commented 2 years ago

What Happened?

The greeter is supposed to be responsible for launching the installer session when it detects it is installed.

Something has changed in the stack somewhere that prevents this from occurring successfully.

I believe this is because the elementary user that casper creates during bootup of the live ISO isn't recognised as a user by LightDM, and the Greeter follows the "no users, so launch initial setup" path.

It seems that casper creates this user as UID 999, and probably always has. LightDM uses AccountsService to get the list of valid "human" users to be displayed in the greeter. It seems that AccountsService now only treats users with UID >= 1000 as real users, whereas previously it must have done something else. So, this elementary user is not presented to the greeter as a valid user, and the initial setup flow is launched instead of the installer.

I don't think we can just change the logic to just launch the installer session regardless of whether there's a user or not, because it relies on launching the installer session as that user.

So, possible solutions:

Steps to Reproduce

  1. Boot 20220228 ISO
  2. End up at initial setup instead of installer

Expected Behavior

  1. Boot ISO
  2. Get to installer

OS Version

7.x (Early Access)

Software Version

Compiled from git

Log Output

No response

Hardware Info

No response

danirabbit commented 2 years ago

I can confirm this issue. It seems like this would be a good time to revisit this in Greeter and maybe change the way we launch the installer to detecting Casper?

davidmhewitt commented 2 years ago

I don't think I understand your proposal.

We currently rely on LightDM to autologin to either the installer session or the demo session.

But as far as it's concerned, there is no user to autologin to. It's accountsservice that provides the list of users. And accountsservice has decided that users with UID < 1000 aren't users.

danirabbit commented 2 years ago

Ah yeah sorry I haven't jumped into the code here yet. I know accountservice now automatically ignores non-person accounts in its list of users. I was more just commenting that we can probably still solve this in greeter instead of with a patch and that there's probably some code in greeter we can revisit anyways that was launching the installer whenever it's installed regardless of whether we were in a live session

davidmhewitt commented 2 years ago

The installer is currently a session, and a session needs a user to run under, and for all intents and purposes, we don't have a user (at least not one the greeter can see or launch sessions under).

If we rework the whole thing so that the installer process runs under the greeter rather than in a session, then sure, we don't have to patch anything.

But I bet we'd find a bunch of other issues.

davidmhewitt commented 1 year ago

I built a patched version of the caper package yesterday: https://github.com/elementary/os-patches/compare/casper-jammy...casper-jammy-patched

It's in the launchpad PPA and the latest daily iso was built with it included: https://github.com/elementary/os/actions/runs/3124228888/jobs/5071898039

However, I've not been able to test it because the builds site is showing the 20220925 daily as the latest available to download instead of the 20220926 including the potential fix.

@danirabbit Could you look to see if this is a recurrence of this issue? https://github.com/elementary/builds/issues/62

I think if there's a bunch too many files in the DO bucket, then we start to miss some of the newer files on the frontend. Don't know if we want to be more aggressive at cleanup policies to remove older images.

davidmhewitt commented 1 year ago

The latest daily iso now launches the installer correctly, if we want to take this approach and make this change permanent, we should merge https://github.com/elementary/os-patches/pull/254

If we don't want to take this approach, we'll need to delete the casper packages and recipes from the patches PPA.