Discussion:
Bug#994184: libseat1: Libseat1 requires uninstall systemd and install seatd and systemV init. But it is compatible with logind.
(too old to reply)
Sergio Costas
2021-09-13 11:30:02 UTC
Permalink
Package: libseat1
Severity: important
X-Debbugs-Cc: ***@gmail.com

Dear Maintainer,

Recently I wanted to compile Wayfire, the Wayland window manager, which relies
on a recent version of WlRoots (more recent than the one available in SID).
WlRoots needs libseat, and the problem in Debian is that trying to install
libseat forces to install seatd, which is incompatible with systemd and thus
it forces to remove it and install SystemV init.

The point is that, according to the page of libseat, it is compatible with both
seatd and logind (the systemd interface for seat management), so that
dependency
should not be a must. Or, at least, in my opinion, if that is compiling-
dependent,
two versions of libseat1 should be available: one for seatd and another for
logind.

Thanks.

-- System Information:
Debian Release: bookworm/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/16 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), LANGUAGE not
set
Shell: /bin/sh linked to /usr/bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libseat1 depends on:
ii libc6 2.32-2
pn libelogind0 <none>
ii libpam-systemd [logind] 247.9-1

libseat1 recommends no packages.
Mark Hindley
2021-09-13 14:10:02 UTC
Permalink
Sergio,
Post by Sergio Costas
Package: libseat1
Severity: important
Dear Maintainer,
Recently I wanted to compile Wayfire, the Wayland window manager, which relies
on a recent version of WlRoots (more recent than the one available in SID).
WlRoots needs libseat, and the problem in Debian is that trying to install
libseat forces to install seatd, which is incompatible with systemd and thus
it forces to remove it and install SystemV init.
Thanks for this.

I had already thought this might be an issue. I think the solution is to build
src:seatd against libsystemd-dev rather then libelogind-dev. I have already
tested the build and there are no issues. I just want to check with the Debian
sway packagers that this won't break their plans.

Henry-Nicolas, Guido,

Would this solution cause you any problems?

Mark
Guido Günther
2021-09-13 16:00:02 UTC
Permalink
Hi,
Post by Mark Hindley
Sergio,
Post by Sergio Costas
Package: libseat1
Severity: important
Dear Maintainer,
Recently I wanted to compile Wayfire, the Wayland window manager, which relies
on a recent version of WlRoots (more recent than the one available in SID).
WlRoots needs libseat, and the problem in Debian is that trying to install
libseat forces to install seatd, which is incompatible with systemd and thus
it forces to remove it and install SystemV init.
Thanks for this.
I had already thought this might be an issue. I think the solution is to build
src:seatd against libsystemd-dev rather then libelogind-dev. I have already
tested the build and there are no issues. I just want to check with the Debian
sway packagers that this won't break their plans.
Henry-Nicolas, Guido,
Would this solution cause you any problems?
I think building against libsystemd-dev is even prerferable for the
current use cases. But i think the fact that we pull in seatd is

Depends: libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind

We should swap that to "logind | seatd" (so we keep the common default
in Debian but allow for a replacement).
Cheers,
-- Guido
Post by Mark Hindley
Mark
Sergio Costas
2021-09-13 18:20:02 UTC
Permalink
Post by Mark Hindley
Thanks for this.
Post by Mark Hindley
I had already thought this might be an issue. I think the solution is to build
src:seatd against libsystemd-dev rather then libelogind-dev. I have already
tested the build and there are no issues. I just want to check with the Debian
sway packagers that this won't break their plans.
I think building against libsystemd-dev is even prerferable for the
current use cases. But i think the fact that we pull in seatd is
Depends: libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind
We should swap that to "logind | seatd" (so we keep the common default
in Debian but allow for a replacement).
Now that I see the dependencies, I think that the problem is another:
logind package doesn't exist. I suspect that it should be elogind. But
neither that would fix the problem, because both seatd and elogind are
daemons for sysvinit. The "logind" DBus interface is offered both by
elogind (for people that don't want to use systemd) and, AFAIK, by
systemd itself.

So, if I'm right (but please, confirm this with someone else because I'm
NOT an expert), I think that the dependencies should really be:

libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind | systemd

But, again, take this with a lot of salt.
--
Nos leemos
RASTER (Linux user #228804)
***@gmail.com https://www.rastersoft.com
Mark Hindley
2021-09-13 18:30:01 UTC
Permalink
Now that I see the dependencies, I think that the problem is another: logind
package doesn't exist. I suspect that it should be elogind. But neither that
would fix the problem, because both seatd and elogind are daemons for
sysvinit. The "logind" DBus interface is offered both by elogind (for people
that don't want to use systemd) and, AFAIK, by systemd itself.
logind is a virtual package provided by libpam-systemd and libpam-elogind.

So I think the dependencies are fine as they are.

I have just uploaded with the build dep changed to libsystemd-dev which, I
think, will fix this.

Thanks.

Mark
Mark Hindley
2021-09-13 18:30:01 UTC
Permalink
Post by Mark Hindley
logind is a virtual package provided by libpam-systemd and libpam-elogind.
So I think the dependencies are fine as they are.
I was a bit loose with my language. I meant that the seatd | logind dependency
is fine.
Post by Mark Hindley
I have just uploaded with the build dep changed to libsystemd-dev
This will change the libelogind0 dependency to libsystemd0 which will fix the
reported issue and cover all use cases.

Mark
Guido Günther
2021-09-13 18:40:02 UTC
Permalink
Hi,
Post by Mark Hindley
Now that I see the dependencies, I think that the problem is another: logind
package doesn't exist. I suspect that it should be elogind. But neither that
would fix the problem, because both seatd and elogind are daemons for
sysvinit. The "logind" DBus interface is offered both by elogind (for people
that don't want to use systemd) and, AFAIK, by systemd itself.
logind is a virtual package provided by libpam-systemd and
libpam-elogind.
So I think the dependencies are fine as they are.
I have just uploaded with the build dep changed to libsystemd-dev which, I
think, will fix this.
I think it would still be good to have a non-virtual package first and
that match Debian's default and maybe expand on the description on the
purpose of seatd a bit. We can file patches/separate issues for that
though.
Cheers,
-- Guido
Post by Mark Hindley
Thanks.
Mark
Guido Günther
2021-09-13 18:40:02 UTC
Permalink
Post by Mark Hindley
Thanks for this.
Post by Mark Hindley
I had already thought this might be an issue. I think the solution is to build
src:seatd against libsystemd-dev rather then libelogind-dev. I have already
tested the build and there are no issues. I just want to check with the Debian
sway packagers that this won't break their plans.
I think building against libsystemd-dev is even prerferable for the
current use cases. But i think the fact that we pull in seatd is
Depends: libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind
We should swap that to "logind | seatd" (so we keep the common default
in Debian but allow for a replacement).
Now that I see the dependencies, I think that the problem is another: logind
package doesn't exist. I suspect that it should be elogind. But neither that
would fix the problem, because both seatd and elogind are daemons for
sysvinit. The "logind" DBus interface is offered both by elogind (for people
that don't want to use systemd) and, AFAIK, by systemd itself.
So, if I'm right (but please, confirm this with someone else because I'm NOT
libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind | systemd
Ah right, logind in in the systemd not the logind package so i think it
should be:

Depends: systemd | elogind | seatd

(again keeping systemd first since that is Debian's default). It would
also make sense to extend the seatd package description to indicate that
seat is only needed if no other implementation (logind or elgind) is
used.

Cheers,
-- Guido
But, again, take this with a lot of salt.
--
Nos leemos
RASTER (Linux user #228804)
Sergio Costas
2021-09-13 18:40:01 UTC
Permalink
Now that I see the dependencies, I think that the problem is another: logind
package doesn't exist. I suspect that it should be elogind. But neither that
would fix the problem, because both seatd and elogind are daemons for
sysvinit. The "logind" DBus interface is offered both by elogind (for people
that don't want to use systemd) and, AFAIK, by systemd itself.
So, if I'm right (but please, confirm this with someone else because I'm NOT
libc6 (>= 2.28), libelogind0 (>= 246.9.1), seatd | logind | systemd
Ah right, logind in in the systemd not the logind package so i think it
Depends: systemd | elogind | seatd
(again keeping systemd first since that is Debian's default). It would
also make sense to extend the seatd package description to indicate that
seat is only needed if no other implementation (logind or elgind) is
used.
As Mark Hindley commented, it seems that the problem is the dependency
on libelogind0, which specifically conflicts with systemd and
libsystemd0. The "logind" virtual package does exist and yes, I "have it
installed" in my system.

--

Nos leemos

RASTER (Linux user #228804)

***@gmail.com         https://www.rastersoft.com
Loading...