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

Sway won't start anymore with sway & wlroots current master branches due to new libseat dependency #6179

Closed
tsdh opened this issue Apr 12, 2021 · 11 comments
Labels
bug Not working as intended

Comments

@tsdh
Copy link
Contributor

tsdh commented Apr 12, 2021

I use sway compiled with a subprojects/wlroots checkout and update sway & wlroots daily (at least on work-days). However, since I did just that today, sway didn't start anymore. The current master commits exhibiting this issue are:

Here is the output I get when running sway -dV using the default config.
https://gist.github.com/tsdh/164c2468b27469848c17d3eb4fa407bb

The log indicated that I might want to start using env WLR_LIBINPUT_NO_DEVICES=1 sway -dV instead. So I did and got this output.
https://gist.github.com/tsdh/2af19f08a05e2bb487229372f3e09a3c
With that, sway starts but seems to be dynfunctional, e.g., none of the default key bindings like Mod4+2 to switch to the second workspace do work. Also Ctrl-Alt-Fx to switch back to a console doesn't work. I need to ssh into the computer from another machine and kill sway in order to be able to recover.

Right now, I went back to these two commits in order to use sway again:

  • sway: 1a0f86b refactor icon_for_window function
  • wlroots: 9f012cac drm: check for PRIME support

Please fill out the following:

  • Sway Version: sway version 1.6-1a0f86be (Apr 12 2021, branch 'HEAD')
@tsdh tsdh added the bug Not working as intended label Apr 12, 2021
@emersion
Copy link
Member

libseat is now required for logind support.

@tsdh
Copy link
Contributor Author

tsdh commented Apr 12, 2021

Ah, thanks, I've checked out https://github.com/kennylevinsen/seatd into subprojects/seatd as a sibling of wlroots and recompiled. Now it works again.

Feel free to close the issue. Or let it open some days. I guess others will probably get that issue, too.

@markstos
Copy link
Contributor

Before closing, it could be useful to update the title to note "due to new libseat dependency"

@tsdh tsdh changed the title Sway won't start anymore with sway & wlroots current master branches Sway won't start anymore with sway & wlroots current master branches due to new libseat dependency Apr 13, 2021
@tsdh
Copy link
Contributor Author

tsdh commented Apr 13, 2021

@markstos Makes sense, done!

@emersion
Copy link
Member

swaywm/wlroots#2839 should improve error reporting.

@J0nnyMak0
Copy link
Contributor

I just wanted to add that the reason I removed seatd was because it was complaining saying:

00:00:00.003 [wlr] [libseat] [libseat/backend/seatd.c:70] Could not connect to socket /run/seatd.sock: No such file or directory

@emersion
Copy link
Member

I think this message should be downgraded to INFO or DEBUG, since it's just probing for seatd availability. cc @kennylevinsen, what do you think?

@markstos
Copy link
Contributor

markstos commented Apr 14, 2021 via email

@kennylevinsen
Copy link
Member

kennylevinsen commented Apr 14, 2021

I think this message should be downgraded to INFO or DEBUG, since it's just probing for seatd availability. cc @kennylevinsen, what do you think?

Hmm, it was upgraded from debug to error due to lacking visibility for users aiming for seatd support. All they saw at the time was the final message that no backend worked. wlroots also used to print errors for each failed backend, so it was in line with that.

Maybe just add an INFO after it failed saying we skip the backend? If feels a little wrong that an error condition would be hidden when the loglevel is set to LIBSEAT_LOG_LEVEL_ERROR, which leads to confusion.

Could not connect to socket /run/seatd.sock: No such file or directory. Optional seatd support disabled

This message is misleading when logind support isn't enabled, which is the case for quite a few distributions and platforms.

@kennylevinsen
Copy link
Member

Maybe just add an INFO after it failed saying we skip the backend?

Just realized we already do that.

struct libseat *backend = NULL;
for (const struct named_backend *iter = impls; iter->backend != NULL; iter++) {
	backend = iter->backend->open_seat(listener, data);
	if (backend != NULL) {
		log_infof("Seat opened with backend '%s'", iter->name);
		return backend;
	}
	log_infof("Backend '%s' failed to open seat, skipping", iter->name);
}

@J0nnyMak0
Copy link
Contributor

Just to clarify, I have no issue with the message. I think it is clear. I just meant to say that I removed seatd before it was strictly required. Now that it is required, I think the build should bail if it doesn't find seatd. The build succeeding and then Sway failing to launch is a tad unfriendly IMHO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Not working as intended
Development

No branches or pull requests

5 participants