pop-os / cosmic-epoch

Next generation Cosmic desktop environment
1.88k stars 58 forks source link

cosmic_session: failed to start systemd target #74

Closed yochananmarqos closed 1 year ago

yochananmarqos commented 1 year ago

For some strange reason, someone added this to the AUR as cosmic-epoch-git prematurely packaged incorrectly which did not build at all. I had already been building this locally, anyway, so now I'm a Co-Maintainer. It builds successfully now.

However, similar to #72, running start-cosmic complains. What systemd target? There are no systemd services in the cosmic-sysext output directory.

2023-02-15T22:33:03.666045Z  INFO cosmic_session: Starting cosmic-session
Error: 
   0: failed to start systemd target
   1: I/O error: No such file or directory (os error 2)
   2: No such file or directory (os error 2)

Location:
   src/systemd.rs:7

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

Running with RUST_BACKTRACE=1 or RUST_BACKTRACE=full produces no further output.

jokeyrhyme commented 1 year ago

I believe a common pattern for running desktop component within a user session is:

  1. define a desktop-specific target unit file e.g. https://gitlab.com/jokeyrhyme/dotfiles/-/blob/main/config/systemd/user/sway-session.target
  2. ensure that it Requires=graphical-session.target
  3. once the wayland desktop has been initialised and is running successfully, start the desktop-specific target unit, e.g. https://gitlab.com/jokeyrhyme/dotfiles/-/blob/main/config/sway#L18

Then, separately, for any desktop component that you want to be launched by the systemd user service manager, you register and enable a unit file with:

[Install]
WantedBy=graphical-session.target

e.g. https://gitlab.com/jokeyrhyme/dotfiles/-/blob/main/config/systemd/user/kanshi.service#L10-11

The benefit of launching desktop components like this is access to systemd features like timeouts and retries

Anyhow, assuming this pattern is followed for COSMIC, there is probably an attempt to start the graphical-session.target (which shouldn't be launched directly) or cosmic-session.target: https://github.com/pop-os/cosmic-session/blob/58a91d63db4cba30bb5606dc25704bb9433c062d/data/cosmic-session.target

Drakulix commented 1 year ago

Whats missing here is indeed the cosmic-session.target.

It is installed by cosmic-sessions justfile in /usr/lib/systemd/user, which in turn is called by cosmic-epochs sysext command, so it should be there.

yochananmarqos commented 1 year ago

@Drakulix /usr/lib/systemd/user/cosmic-session.target is indeed installed.

Drakulix commented 1 year ago

In that case it would be interesting to know, why launching it fails. Please log into the corresponding user-account and run:

yochananmarqos commented 1 year ago

journalctl --user -u cosmic-session.target

Feb 13 18:02:11 inspirognome systemd[23543]: Reached target Cosmic Session Target.
Feb 13 18:07:59 inspirognome systemd[23543]: Stopped target Cosmic Session Target.
-- Boot 627440a1cd594171bcfad1f956e93fdd --
Feb 13 18:08:46 inspirognome systemd[1190]: Reached target Cosmic Session Target.
Feb 13 18:08:51 inspirognome systemd[1190]: Stopped target Cosmic Session Target.
-- Boot 9e46897d71524052857c8e745ae697f3 --
Feb 15 09:49:15 inspirognome systemd[204257]: Reached target Cosmic Session Target.
Feb 15 09:55:18 inspirognome systemd[204257]: Stopped target Cosmic Session Target.
-- Boot baa0f9f9bbfa41439a326a3061bf3698 --
Feb 15 09:56:59 inspirognome systemd[1291]: Reached target Cosmic Session Target.
Feb 15 10:00:27 inspirognome systemd[1291]: Stopped target Cosmic Session Target.
-- Boot 5fab44fdac0e4f0aa1309f607c916d70 --
Feb 15 15:31:07 inspirognome systemd[49307]: Reached target Cosmic Session Target.
Feb 16 08:33:19 inspirognome systemd[49307]: Stopped target Cosmic Session Target.
-- Boot 4833fd6a14a84f34950394078467078d --
Feb 16 08:38:34 inspirognome systemd[18408]: Reached target Cosmic Session Target.

systemctl --user status cosmic-session.target

● cosmic-session.target - Cosmic Session Target
     Loaded: loaded (/usr/lib/systemd/user/cosmic-session.target; static)
     Active: active since Thu 2023-02-16 08:38:34 MST; 1min 18s ago
      Until: Thu 2023-02-16 08:38:34 MST; 1min 18s ago
       Docs: man:systemd.special(7)

Feb 16 08:38:34 inspirognome systemd[18408]: Reached target Cosmic Session Target.
Drakulix commented 1 year ago

That looks completely normal. Honestly I am not sure, what goes wrong here on your system.

I/O error: No such file or directory (os error 2)

This error is thrown by zbus and sadly not very well documented. I would assume for an I/O error to happen, zbus needs to have problems connecting to the local dbus socket. Though a user session should definitely be running on Arch Linux. Maybe your login manager is not setting this up properly? What are you using? Could you test with GDM?

That said, cosmic-session should not completely fail, just because it cannot start that target. Feel free to open an issue on https://github.com/pop-os/cosmic-session, I'll try to get to fixing that soon. But that would only be a workaround for the actual issue at hand, not a real solution.

yochananmarqos commented 1 year ago

I'm attempting to login from GDM. I've also tried running start-cosmic from a TTY while logged out of a user session.

I'll test installing as a system extension as per the README and see how that goes.

EDIT: That made no difference.

ywnkmn commented 1 year ago

I'm also still experiencing this issue even after pulling yesterday's changes, neither from SDDM nor TTY =(

The cosmic-session logs look identical to Mark`s ones

Drakulix commented 1 year ago

EDIT: That made no difference.

And I honestly won't have expected that.

I'm also still experiencing this issue even after pulling yesterday's changes, neither from SDDM nor TTY =(

Wait, this didn't used to be an issue? Because I am pretty sure we have the systemd intergration for quite some time.

wash2 commented 1 year ago

Does latest fix this issue for you all? I was able to replicate the issue before the last update but now it works using the steps in the README.

yochananmarqos commented 1 year ago

Unfortunately it does not.

jokeyrhyme commented 1 year ago

As a data point, I'm actually typing this comment from COSMIC manually-compiled on my Archlinux system, without using the AUR package, and I started this session from greetd+tuigreet

I wonder if I've done something special here to make it work without realising it? I do get target-related issues in other compositors when trying to switch away from COSMIC without completely rebooting

wash2 commented 1 year ago

As a data point, I'm actually typing this comment from COSMIC manually-compiled on my Archlinux system, without using the AUR package, and I started this session from greetd+tuigreet

As in, you installed using the system-extension?

jokeyrhyme commented 1 year ago

Yes, I'm using the systemd system extension

ywnkmn commented 1 year ago

image

Successfully started the session after compiling with the latest commit: a29ba7146af345ed1272ada22153e3071349d4c6

However almost everything is missing, had to blindly click everywhere for the droplet to appear

Wondering if it's somehow related to any of the drivers (maybe NVIDIA) or too new kernel?

wash2 commented 1 year ago

image

Successfully started the session after compiling with the latest commit: a29ba7146af345ed1272ada22153e3071349d4c6

However almost everything is missing, had to blindly click everywhere for the droplet to appear

Wondering if it's somehow related to any of the drivers (maybe NVIDIA) or too new kernel?

Do regular applications appear ok, or is it just the panel applets with this issue? I've definitely seen damage tracking issues in the panel before but it's been a while. This is probably a separate issue from #74 though

jokeyrhyme commented 1 year ago

I had missing icons, too, until I installed pop-icon-theme (if you're on Archlinux)

I've never actually had that "Settings..." menu item do anything, I'm not sure if it's hooked up to anything yet? :shrug:

jokeyrhyme commented 1 year ago

Anyhow, if we're good with systemd targets, then perhaps this issue can be closed? :shrug:

ywnkmn commented 1 year ago

image Successfully started the session after compiling with the latest commit: a29ba71 However almost everything is missing, had to blindly click everywhere for the droplet to appear Wondering if it's somehow related to any of the drivers (maybe NVIDIA) or too new kernel?

Do regular applications appear ok, or is it just the panel applets with this issue? I've definitely seen damage tracking issues in the panel before but it's been a while. This is probably a separate issue from #74 though

Tried clicking everywhere and opening the launcher, only Restart Now worked

soloturn commented 1 year ago

on arch, i downloaded the PKGBUILD, then did makepkg:

git clone ssh://aur@aur.archlinux.org/cosmic-epoch-git
cd cosmic-epoch-git
makepkg --syncdeps
paru -U cosmic-epoch-*zstd

then i can log out to gdm, and switch to log into cosmic. the various applets display correct things, ike battery, wifi, settings, log out. very cool. other things i did not try yet.

soloturn commented 1 year ago

am wondering, how does one start a normal application? like, a terminal. or browser. windows key does nothing for me.

wash2 commented 1 year ago

am wondering, how does one start a normal application? like, a terminal. or browser. windows key does nothing for me.

The default config for cosmic-comp has shortcuts to open the application library and launcher with 'Super + A' and 'Super + /' respectively.

jokeyrhyme commented 1 year ago

@soloturn the default keybindings for that sort of thing can be found here: https://github.com/pop-os/cosmic-comp/blob/dead320252f5e51ccaedcfbb12e3be9495e8dac4/config.ron#L77-L85

yochananmarqos commented 1 year ago

@jokeyrhyme I've included cosmic-settings in the AUR package with a dependency on pop-icon-theme for that very reason. :wink:

The keybinding config is also installed:

  # Keybinding config
  # https://github.com/pop-os/cosmic-epoch/issues/71#issuecomment-1431670834
  install -Dm644 cosmic-comp/config.ron -t "$pkgdir/etc/cosmic-comp/"
wash2 commented 1 year ago

@yochananmarqos is it alright if i close this issue?

yochananmarqos commented 1 year ago

@wash2 Well, the original issue has been solved.

yochananmarqos commented 1 year ago

@wash2 Ha! All I was missing was seatd. I had only had it as a build dependency before, but @soloturn just figured out it is a runtime dependency.

Drakulix commented 1 year ago

@wash2 Ha! All I was missing was seatd. I had only had it as a build dependency before, but @soloturn just figured out it is a runtime dependency.

We are using libseat (which is probably what was missing) for session handling. We don't require seatd itself however (the daemon and session manager). Depending on the packaging of your distribution you may be able to install the former without the latter.

jokeyrhyme commented 1 year ago

Ah, that explains it

And I use sway most of the time which depends on wlroots, which depends on seatd/libseat, which is why I already have it on my system