On 5/26/13 9:37 AM, Michał Górny wrote:
By the way, we should really keep the separation between systemd itself
and the unit files. I agree that systemd is not the best thing we could
have. But the unit file format is, er, good enough -- and has
the advantage of eventually taking a lot of work from our shoulders.
Unit files had been considered when I started exploring the idea, sadly
Joost shown me their limitation wouldn't make people life exactly happy.
Although some of the ideas (esp. wrt targets) are near to crazy
and awfully hard to understand, that's what we have and trying to do
something else is eventually going to make people's lives harder.
Making better mousetraps usually works fine: as long you have generators
that are good enough to get something working nobody would complain.
We should *really* work on supporting the unit files within OpenRC
(aside to init.d files). That's a way to at least:
a) reuse the work that has been done upstream already (when it was
done),
b) have common service names and startup behavior in all relevant
distros (which is really beneficial to the users).
Can be done notwithstanding the rest.
Considering the design of OpenRC itself, it wouldn't be *that hard*.
It is sort of simple.
Actually, a method similar to one used in oldnet would simply work.
That is, symlinking init.d files to a common 'systemd-wrapper'
executable which would parse the unit files.
A compiler is an option as well, as said unit -> runscript should map fine.
On the completely different topic, I agree that systemd design is far
from the best and the way it's maintained is just bad. I was interested
in the past in creating an improved alternative using compatible file
format and libraries, while choosing a better design, improving
portability and keeping stuff less integrated.
But the fact is -- I doubt it will make sense, much like the eudev
project. And it will take much more work, and give much less
appreciation.
Having stand alone component would probably win you many friends and if
the whole thing could work on something
non-linux-latest-with-latest-glibc you'd have one less technical concern.
First of all, working on it will require a lot of work. Seeing how
large systemd become and how rapidly it is developing, establishing
a good alternative (even dropping such useless parts as the Journal)
will take at least twice that work.
You make clean blueprints, get enough people agreeing with them and
implement simple workalike for what you care about.
For example logind seems to be the current fad.
The systemd haters will refuse the project because of its resemblance
to systemd. The systemd lovers will refuse it because of its
resemblance to systemd. And the OpenRC lovers will want to design it
to resemble OpenRC which is just pointless. Then the few remaining
people will find systemd 'good enough'.
systemd haters, as you name them, could be split in few groups:
- those that consider systemd a bad idea because it is a single item
with many parts that would break horribly, if your idea is to make it
less tightly coupled and with less parts many would consider helping.
- those that consider systemd a bad idea because of the force feeding
theme started with udev incorporation and continued with logind and
such, again if you are creating alternatives the people would help gladly.
- those that consider key part of systemd just wrong the limitation in
the unit format or path activation as panacea, in that case you have to
make clear the scope of your project, you might win few or lose some.
And even if there are a few people who will want to work on it,
and design a 'good systemd', they wouldn't get much appreciation.
Fedora definitely won't care for it. It would have to be really
definitely awesome for most Linux distros to even notice it.
And I doubt *BSD people would be interested in something external.
Make it bsd and they would consider helping.
It is possible that systemd upstream will steal a few patches or ideas
from it. Yet they will never apply any of the really important changes,
so the project will have to be maintained indefinitely. The only hope
for it would be to win over systemd users which I doubt will happen.
Or just make something useful, winning or losing is for the people using
it. If it works and works fine people will use it.
So there's a lot of work, no fame or money in it, and most likely more
work being the only future. Anyone volunteering?
Probably would be better sit down, figure out exactly what you want and
see who has interest:
E.g.
Init-project
- portable -> must work on non-linux and non-glibc more or less decently
- modular -> loose coupling of functionality
- robust -> the core functionality must not crash or remain
inconsistent because of libdbus or such often occurring problems
unrelated to
- compatible -> should grok at least a good subset of systemd unit files.
On a side note I really want to know in detail why you loathe openrc
with this strength but we can discuss on irc.
lu