I'm really sorry to hear that you'll be leaving us. None of us on the
Adelie team are happy about the ConsleKit2 and elogind situation either.
I led the most recent push to abandon ConsoleKit2 and I will personally
be taking responsibility for this situation moving forward.
Unfortunately, none of the options we had here were good.
Our first option was to just keep using ConsoleKit2. But this is just no
longer feasible for us. Most upstream developers who were using it have
switched to logind's interfaces, so someone has to patch upstream code
to support ConsoleKit2. Gentoo decided to abandon ConsoleKit2, and
Gentoo was the largest Linux distribution in both user base and
developer base that was still using ConsoleKit2. So Gentoo abandoning it
meant that the largest base of potential contributors had vanished,
which means that we would need to take on that responsibility if we
wanted to continue using ConsoleKit2. But Adelie only has about 5 core
contributors, of which only 1 can work on Adelie more-or-less full time.
And we already have to spend too much of the limited time we can devote
to package maintenance on other issues. Supporting musl very frequently
requires us to patch code, and it requires us to test things thoroughly
to detect potential breakage. Supporting big endian systems like PPC32
and PPC64, also requires a huge amount of effort -- you do not want to
know how painful it is for us to patch firefox's rendering code every
time a new release comes out. If we had more developers who could commit
time to maintaining ConsoleKit2 and support for it, then we would
continue to support it and commit to not having elogind.
Our second option was to just remove ConsoleKit2 and patch out the few
places that want (e)logind or ConsoleKit2. That patching would still
take significant development resources that we don't have. Worse, this
would prevent power management functionality from working in desktop
environments. One of Adelie's biggest goals is to produce a desktop
system that anyone can use regardless of how much or how little
experience they have with Linux. Not having working power management in
a desktop would at best look like a lack of functionality and at worst
look like a bug, and software must work. So this wasn't an attractive
option to us either.
Third, we could have made our own replacement for elogind. But this
would have required even more development time than the other options,
so this is just not an option.
Ultimately, we have to keep up with what our primary goals are: POSIX®
compliance, compatibility with a wide variety of computers, and ease of
use without sacrificing features, with minimal hardware requirements,
truly libre software, and standards compliance. There is nothing in
those goals that says we must avoid using elogind or even systemd.
Arguably, the "without sacrificing features" and "standards
compliance"
goals say we should be using elogind.
As for the concerns about systemd, there is absolutely nobody in the
core team who would support switching to systemd as an init system or
even offering it as an option. Our long term plan is to support s6 and
OpenRC, and this will not change for as long as I am involved in this
project.
I would also like to address some of the points you rose in your message:
On 25/07/2020 05:54, Fungi4All wrote:
I heard the justification that elogind was a good thing because we
need wayland.
The decision had nothing to do with wayland. There are other issues
that
have been slowing its adoption not just on Adelie but on other distros,
and ConsoleKit2 was not one of them.
What I am afraid will happen is not whether those who really need
elogind will get elogind, but much of the stuff that doesn't really need it will also
get it, forcing people like myself to have it because stuff stopped working.
These are the only packages that reference it as a dependency:
- bluez, though it's a notoriously bad piece of software anyway
- kscreenlocker, which needs it for managing access to the console
- plasma-desktop
- polkit
- networkmanager, which only uses it for session and suspend tracking,
and I think can work without elogind
- sddm, which is KDE's preferred login manager, but totally optional if
you want to run KDE.
As far as I can tell, they only need the dependency because of shared
libraries, and will still mostly work at runtime without elogind running.
As of right now, elogind is not enabled by default.
And would stuff that need elogind work without having dbus? So dbus
must be working for elogind to work so that other stuff will work as well.
You would
still need to have dbus running, but it's far from the only
thing that needs dbus. And, again, elogind is only needed for limited
things like power management, session switching, and some screen
lockers. There are screen lockers like i3lock that don't require it, and
things like the shutdown command will work with sysvinit or
s6-linux-init without needing elogind or dbus.
So the trojan horse comes in layers. As long as the excuse that pid1
is not systemd we can be perceived as rebels. That is what devuan said, artix since day
1, and void much later, ataraxia, alpine, ... I think this only leaves Kiss-Linux out with
the specific commitment to "not expect elogind ever to appear on the
repositories"
https://k1ss.org/software#3.0 and of course Obarun last but not least.
elogind is forked from systemd, and it's the only systemd daemon that we
will use, and even then it's just a fallback until a better option
becomes more feasible. We are still committing to not using systemd as
PID 1, not using systemd-journald, not using systemd-networkd, not using
systemd-homed, not using systemd-machined, not using systemd-timesyncd,
etc.
"But what is a distro to do, we can't rewrite and fork all
upstream desktop stuff"
Drop Gnome from the repository, if you are supporting. If not, now you could!
KDE works on top of this hollier than crap QT platform, and elogind has penetrated right
through this layer through dependent software and now plasma does not work without it. It
does seem to work fine in obarun.
So drop KDE plasma, or at least any particular pieces of software that need it. There
are choices.
"[E]ase of use without sacrificing features" is one of our
core
principles, and so is giving people a real choice in what desktop
environments they use. We can't just refuse to provide desktop
environments because we don't like one piece of software that they
interact with. Doing so would be even more hostile to users than
supporting elogind.
But getting xfce4 applications to work with elogind and need it when
they didn't upstream to me is a breach of contract.
I'm not sure what you
mean by this, but we will not make things depend
on elogind that don't depend on logind upstream. There's just no good
reason to do that, and it would be a waste of everyone's time.
I should have known 2 years ago when I first installed adelie and
noticed that pretty much anything LXDE related was absent but LXQT buggy stuff was
everywhere. So ultimate stability LXDE/XFCE4 was not a priority but lxqt and plasma were.
That should have been a good indicator of where this was heading to.
There are
people on the team who use Plasma and XFCE now. I don't
remember what the situation with XFCE was back in 2018. There are some
other window managers we maintain too. If we had contributors who could
maintain additional desktops, then we would have them and support them
at the same level as other desktops.