|
|
Subscribe / Log in / New account

Debian TC vote on init system coupling

From:  Ian Jackson <ijackson-AT-chiark.greenend.org.uk>
To:  727708-AT-bugs.debian.org
Subject:  Bug#727708: Call for Votes on init system coupling
Date:  Fri, 21 Feb 2014 18:04:07 +0000
Message-ID:  <21255.38167.767638.934892__27452.9149909087$1393005987$gmane$org@chiark.greenend.org.uk>

I hereby call for votes on my coupling proposal and the amendments
that have been put.

The options on the ballot are:

  L   Software may not depend on a specific init system
  N   No TC resolution on this question at this time
  A   Advice: sysvinit compatibility in jessie and multiple init support
  FD  Further discussion

(I have removed the proponents' names from the summary lines.)

Thanks,
Ian.


L  Software may not depend on a specific init system
====================================================

  Rationale

    The default init system decision is limited to selecting a default
    initsystem for jessie.  We expect that Debian will continue to
    support multiple init systems for the foreseeable future; we
    continue to welcome contributions of support for all init systems.

  Rubric

    Therefore, for jessie and later releases, we exercise our power to
    set technical policy (Constitution 6.1.1):

  Loose coupling

    In general, software may not require a specific init system to be
    pid 1.  The exceptions to this are as follows:

     * alternative init system implementations
     * special-use packages such as managers for init systems
     * cooperating groups of packages intended for use with specific init
       systems

    provided that these are not themselves required by other software
    whose main purpose is not the operation of a specific init system.

    Degraded operation with some init systems is tolerable, so long as
    the degradation is no worse than what the Debian project would
    consider a tolerable (non-RC) bug even if it were affecting all
    users.  So the lack of support for a particular init system does not
    excuse a bug nor reduce its severity; but conversely, nor is a bug
    more serious simply because it is an incompatibility of some software
    with some init system(s).

    Maintainers are encouraged to accept technically sound patches
    to enable improved interoperation with various init systems.

  GR rider

    If the project passes (before the release of jessie) by a General
    Resolution, a "position statement about issues of the day", on the
    subject of init systems, the views expressed in that position
    statement entirely replace the substance of this TC resolution; the
    TC hereby adopts any such position statement as its own decision.

    Such a position statement could, for example, use these words:

       The Project requests (as a position statement under s4.1.5 of the
       Constitution) that the TC reconsider, and requests that the TC
       would instead decide as follows:


N  No TC resolution on this question at this time
=================================================

   The TC chooses to not pass a resolution at the current time
   about whether software may require specific init systems.


A  Advice: sysvinit compatibility in jessie and multiple init support
=====================================================================

    The following is technical advice offered to the project by the
    Technical Committee under section 6.1.5 of the constitution.  It does
    not constitute an override of maintainer decisions past or future.

    Software should support as many architectures as reasonably possible,
    and it should normally support the default init system on all
    architectures for which it is built.  There are some exceptional cases
    where lack of support for the default init system may be appropriate,
    such as alternative init system implementations, special-use packages
    such as managers for non-default init systems, and cooperating
    groups of packages intended for use with non-default init systems.
    However, package maintainers should be aware that a requirement for a
    non-default init system will mean the software will be unusable for
    most Debian users and should normally be avoided.

    Package maintainers are strongly encouraged to merge any contributions
    for support of any init system, and to add that support themselves if
    they're willing and capable of doing so.  In particular, package
    maintainers should put a high priority on merging changes to support
    any init system which is the default on one of Debian's non-Linux
    ports.

    For the jessie release, all software that currently supports being run
    under sysvinit should continue to support sysvinit unless there is no
    technically feasible way to do so.  Reasonable changes to preserve
    or improve sysvinit support should be accepted through the jessie
    release.  There may be some loss of functionality under sysvinit if
    that loss is considered acceptable by the package maintainer and
    the package is still basically functional, but Debian's standard
    requirement to support smooth upgrades from wheezy to jessie still
    applies, even when the system is booted with sysvinit.

    The Technical Committee offers no advice at this time on sysvinit
    support beyond the jessie release.  There are too many variables at
    this point to know what the correct course of action will be.

-- 





to post comments

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:10 UTC (Sun) by AngryChris (guest, #74783) [Link] (207 responses)

I don't understand why tight coupling isn't an option. If packages aren't tightly coupled with the init system, I don't see much point to changing init systems in the first place. We'll end up in a situation where systemd starts the system but all services are started using plain old sysvinit scripts anyway.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:15 UTC (Sun) by keithp (subscriber, #5140) [Link]

Package developers are currently free to depend on any packages they like (more or less), including dependencies on specific init system packages.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:16 UTC (Sun) by malor (guest, #2973) [Link] (164 responses)

Yeah, I think more or less the same thing. I don't really like systemd, and I especially don't like how the devs seem to want to hoover up more and more functionality into it.

But, like it or not, they're the people who showed up with the code. And if Debian is going to go through the pain of an init switch anyway, they might as well get full benefit out of the switch, and allow tight coupling.

Words can't easily express how much I'd prefer it to have a different team and different design in such a central position in Linux, but if it's happening anyway, we might as well take full advantage.

Debian TC vote on init system coupling

Posted Feb 23, 2014 21:52 UTC (Sun) by anselm (subscriber, #2796) [Link] (145 responses)

Words can't easily express how much I'd prefer it to have a different team and different design in such a central position in Linux, but if it's happening anyway, we might as well take full advantage.

The thing is, there is no other team and no other design. The pre-existing solution doesn't have any sort of design at all, and even something like Upstart didn't do a lot to help with that situation in general (it just tried to replace one part of the mess by something a little less messy).

Getting the foundations of Linux userspace in order is a huge job that has been long overdue, and it is a big relief that finally some people stepped up to tackle that job. It is even better that the project has had huge buy-in from all major Linux distributions, and that there is an active development community whose members span these distributions as well. In the end, Linux is only doing what essentially all other Unixes have done before.

Of course, like in all software projects there will be shortcomings and bugs, but it is safe to assume that these will be addressed in the usual manner, i.e., by people showing up with bug reports, enhancement requests, and fixes that the development team will evaluate on their merits and act upon as appropriate. OTOH, what is unlikely to happen is that sweeping changes to systemd's design and implementation will occur based on unspecific bitching by random people who in many cases have not even looked at the software and/or documentation, let alone tried it for themselves.

Debian TC vote on init system coupling

Posted Feb 23, 2014 21:55 UTC (Sun) by malor (guest, #2973) [Link] (144 responses)

Yeah, like I said, I don't like the design of systemd, and I *strongly* dislike the way the main designer argues. I don't like him, and I don't trust him.

But... he's the guy who showed up with the code. Nobody else has.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:26 UTC (Sun) by HelloWorld (guest, #56129) [Link] (4 responses)

And I dislike people who say they don't like the design of systemd, bitch about its authors, yet don't offer *any* plausible reasons for that attitude.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:29 UTC (Sun) by malor (guest, #2973) [Link] (3 responses)

It doesn't matter now, the decision is made.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:35 UTC (Sun) by HelloWorld (guest, #56129) [Link] (2 responses)

If it doesn't matter, I can't help but wonder why you felt the need to express your dislike for systemd at all.

Debian TC vote on init system coupling

Posted Feb 23, 2014 23:10 UTC (Sun) by malor (guest, #2973) [Link]

Well, maybe you could read the thread? You should be able to figure it out.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:49 UTC (Mon) by Wol (subscriber, #4433) [Link]

I think he dislikes systemd the way I dislike Red Hat.

It's irrational, I know it's irrational, therefore I don't make a fuss over it. I just make a personal point of avoiding Red Hat as much as I can. Unfortunately for him, avoiding systemd is likely to be hard.

And Poettering IS a difficult person to get on with, if you don't like teutonic abrasiveness. "I just don't like so-and-so" is a perfectly acceptable statement, provided you accept that it's "just personal" and don't make a fuss about it. I suspect I'd get along with Lennart pretty fine, because I'm pretty pedantic and logic-focussed, and if we argued one of us would win by persuading the other. But when it gets down to gut feelings, you can't win arguments that way. You have to agree to differ, and that can be hard.

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:27 UTC (Sun) by javispedro (guest, #83660) [Link] (137 responses)

And, when other people also "show up with code" (e.g. see busy OpenRC maintainers trying to figure out how to port it to all Debian supported architectures and fixing other problems) they get ignored or rejected out of hand as they're "not cool enough".

From my point of view, all of the alternative init systems presented did their homework. It's just that they didn't share the "shell scripts are evil" preconception.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:44 UTC (Sun) by ovitters (guest, #27950) [Link] (134 responses)

> they get ignored or rejected out of hand as they're "not cool enough"

That's not what happened. OpenRC is portable, but not really. They e.g. advertise being reliable due to cgroup, while only adding that way later. Than saying portability while that means you aren't as reliable anymore. If you follow the discussion and changes in OpenRC in Debian, one of the latest additions was something like that shutdown is reliable. That change was pretty recent, all the time before it wasn't mentioned. Ignoring problems like this makes you think it might be a good alternative, just because so much is not talked about.

Your "not cool enough" tells me you have no idea.

Debian TC vote on init system coupling

Posted Feb 24, 2014 0:57 UTC (Mon) by Zack (guest, #37335) [Link] (106 responses)

OpenRC was the only contender with a "look at what we can do for Debian" mentality, instead of "Look what Debian can do for us."

As far as I'm concerned, my machines aren't suddenly going to burn down during Jessie when I keep using sysvinit, and after Jessie I'll take a look at how far OpenRC has come along (And hopefully Debian will as well.)

And that's what loose coupling is all about as far as I'm concerned: keeping options open for a later re-evaluation of init systems that might actually cater to Debian's needs instead of the other way around.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:20 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (14 responses)

It looks more like "let's see if Debian will take this seriously, nobody else did"...

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:13 UTC (Mon) by Zack (guest, #37335) [Link] (13 responses)

Gentoo did.

And now, hypothetically, if you put Fedora, Ubuntu, and Suse on one side, and Gentoo and Debian on another side: what would you say the main difference between the two sides would be?

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:11 UTC (Mon) by mbunkus (subscriber, #87248) [Link] (12 responses)

Oh please. There are distros using systemd that aren't backed by a company (e.g. Arch, Sabayon, Mageia). So don't try to make this about money, because it isn't.

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:31 UTC (Mon) by Zack (guest, #37335) [Link] (11 responses)

Well, the correct answer is that both Debian and Gentoo have an interest in alternative kernels and userlands.

You make a good point however. One side generally needs sustained commercial viability to remain relevant, and it's easy to confuse commercial viability with proprietary interests, which are helped by one large uniform platform to build against.

Of course it's not likely to be all about Adobe or Oracle-db and games, and it might just be an unintended side effect of widespread systemd adoption, but it goes along with the "Sturm und Drang" mentality of some of its proponents (and developers), which prevents systemd from quietly and naturally (and more importantly, uncontested) arising as the default init system.

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:59 UTC (Mon) by anselm (subscriber, #2796) [Link] (10 responses)

Linux in general is helped by more uniformity of the Linux-kernel, or systemd, kind. Claiming that this is mostly for the sake of »commercial viability« or third-party proprietary software vendors is a bit strange. There is really no benefit whatsoever in every distribution inventing the »plumbing layer« over and over again the way it used to be necessary before systemd came along. If developers no longer need to waste time doing that sort of thing they have more time to dedicate to other tasks, of which there are still loads in every distribution. It is a win-win situation.

It does make sense for systemd to be the »default case«, and this in no way precludes people staying with System-V init, or even rolling their own bare-bones init scheme à la Busybox, for special applications – much like people are perfectly able to roll their own kernel for special applications. In general, however, no longer having to worry about issues like where exactly the system hostname is defined or how to figure out the status of terminal so-and-so can only be a good thing. It is worth pointing out that nobody who argues against systemd has so far advanced a technical argument as to why this sort of standardisation is a bad idea; they just seem to object to the fact that the standardisation happens at all, without actually justifying that position.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:02 UTC (Mon) by javispedro (guest, #83660) [Link] (9 responses)

It depends on whether you want to see innovation in "the plumbing layer". You are removing the freedom distros currently have to differentiate on the plumbing layer -- because now at least one of the popular DEs will have a hard dep on this "plumbing layer". From my point of view this will make innovating in this area much harder, specially with the systemd mentality (`who would ever want to run a lxc container without systemd on both the container and the host?' -- well, the authors of openrc for a start).

It was never necessary to reinvent the "plumbing layer" before -- new distros that did not care just copied a existing one from another distro (often Debian or Ubuntu, or even Fedora).
But most of the interesting distros actually care; instead, they don't care on "the other tasks", which is the reason they will not able to keep on forward porting non-systemd Gnome3 forever.

This is an area where everyone wants to have its word and has been like that for the best of a decade or two. You should not be surprised that standardization is rejected (in the same way as when `rpm' was made LSB standard). E.g. I still remember initng (also readily ignored) which offered a extensible (plugins) init that was both event and dependency based. Even Fedora had a wiki page on the early days with ideas for a future init system based on D-Bus services and "launch on demand".

Such proposal actually resembled upstart more than it did resemble systemd, which basically appeared out of nowhere.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:28 UTC (Mon) by anselm (subscriber, #2796) [Link] (8 responses)

I don't think using systemd as the plumbing layer precludes innovation. Many people don't appreciate the fact that systemd is actually a fairly modular framework that just happens to come in one big source tarball. It would be perfectly feasible for a distribution to replace one part of systemd by something better on a trial basis and fold worthwhile innovations back into the main codebase later.

By analogy, distributions don't seem to mind not differentiating on the kernel, either. There are some distributions that actually sponsor serious kernel development, but these usually have a policy of aggressively pushing their patches upstream; the idea of a »Red Hat kernel« or »Debian kernel« that includes innovative bits that no other kernel has and isn't going to get, and that motivates people to pick Red Hat over Debian or vice-versa, does not actually exist.

Finally, for Linux distributions there is ample room for differentiation left above the plumbing layer, which is probably much more gratifying from the point of view of addressing users – many of whom will probably not really care what their plumbing layer is like as long as it does the job, but may be quite passionate about »their« distribution's UI experience.

The problem with other standardisation efforts like the largely-stillborn LSB was that they usually meant extra work for distributions. One of the maxims of the Internet is »rough consensus and working code«, and while it was possible to get the consensus (sort-of anyway), the working code was left to the distributions to come up with (each on its own). The big difference is that systemd actually comes with the code that does the standardisation, and that allows distributions to save work rather than put extra effort in. Hence the buy-in to systemd was much more vigorous and widespread than the buy-in to LSB. (And the LSB RPM issue is a red herring – LSB didn't try to mandate RPM as the official packaging format for all Linux distributions, it made RPM the standard for the distribution of LSB-compliant software packages, which is not at all the same thing.)

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:56 UTC (Mon) by Wol (subscriber, #4433) [Link]

Rather more importantly, the LSB didn't make rpm the standard for distributing lsb packages, it chose a subset of rpm specifically to be alien-compatible.

So any lsb package could easily be converted to and installed upon an apt-based system.

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:57 UTC (Mon) by javispedro (guest, #83660) [Link] (6 responses)

It would be perfectly feasible for a distribution to replace one part of systemd by something better on a trial basis and fold worthwhile innovations back into the main codebase later.
Not even `mighty' canonical really managed to do that with logind. How can a mere mortal even dream to do that, specially when even systemd maintainers are encouring strongly tying everything to systemd (as exemplified by this very article)?

One of the points raised during the Debian discussion was that Debian's existing binfmt `manager' was better (objectively more featureful) than the one in systemd, which was based on Fedora's. Because Fedora won't change for standarization reasons, Debian would be forced to switch to systemd's or just rip systemd's builtin one from the codebase.

Just a few years ago it was still trivial to replace GDM's "shutdown" script with a simple bash script. I would gladly chose whichever distribution allows me to continue doing that, instead of "by UI experience". Please don't assume there's no differentiation left in the plumbing layer :( .

And there are still distros out there innovating on the kernel side (e.g. Debian offers Hurd!, Gentoo offers framebuffer, hardened stuff, etc.)

Sidenote: I already tried to be careful with the LSB RPM wording and thus my use of `a standard' instead of `the standard'. No discussion was intended.

Debian TC vote on init system coupling

Posted Feb 24, 2014 23:27 UTC (Mon) by anselm (subscriber, #2796) [Link] (2 responses)

Because Fedora won't change for standarization reasons, Debian would be forced to switch to systemd's or just rip systemd's builtin one from the codebase.

This is a lot less scary than it sounds. Since systemd is modular, the only thing you need to do is disable systemd-binfmt.service and enable Debian's binfmt support instead, which helpfully already comes with a systemd unit file. No ripping anything from any codebase involved.

Debian TC vote on init system coupling

Posted Feb 25, 2014 0:01 UTC (Tue) by mchapman (subscriber, #66589) [Link]

> Since systemd is modular, the only thing you need to do is disable systemd-binfmt.service and enable Debian's binfmt support instead

And if that's not good enough, you can even build systemd with --disable-binfmt. After all, isn't the choice of configure options the kind of decision package maintainers *should* be making?

Debian TC vote on init system coupling

Posted Feb 25, 2014 0:51 UTC (Tue) by ermo (subscriber, #86690) [Link]

@Anselm: Could you please stop being so damn well-informed and eloquent? You're ruining any chance of watching the discussion devolve into inane, yet highly entertaining and entirely unconstructive flamewars based on the notion that systemd/Red Hat/Lennart is evil (for a suitable definition of evil).

P.S. I'm with Henry Ford on this one: You can have your init in any color as long as it's systemd.

Debian TC vote on init system coupling

Posted Feb 25, 2014 0:03 UTC (Tue) by HelloWorld (guest, #56129) [Link]

> Not even `mighty' canonical really managed to do that with logind. How can a mere mortal even dream to do that, specially when even systemd maintainers are encouring strongly tying everything to systemd (as exemplified by this very article)?
>
> One of the points raised during the Debian discussion was that Debian's existing binfmt `manager' was better (objectively more featureful) than the one in systemd, which was based on Fedora's. Because Fedora won't change for standarization reasons, Debian would be forced to switch to systemd's or just rip systemd's builtin one from the codebase.
systemd's binfmt stuff can be trivially disabled with a configure switch. Are you honestly trying to say that that's an insurmountable challenge?

> And there are still distros out there innovating on the kernel side (e.g. Debian offers Hurd!, Gentoo offers framebuffer, hardened stuff, etc.)
What does Gentoo do differently with respect to framebuffers? And I hate to bring this to you, but Hurd is a toy. I has been around forever, yet it's still nowhere near production ready, it's based on outdated technology (Mach), attempts to port it to other microkernels have failed, and worst of all, there's no momentum around it, nobody even takes it seriously.

Debian TC vote on init system coupling

Posted Feb 25, 2014 1:11 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

"Because Fedora won't change for standarization reasons, Debian would be forced to switch to systemd's or just rip systemd's builtin one from the codebase."

Others have addressed the easy solution to the problem you are posing but I want to challenge this underlying assumption. Fedora frequently adopts new technologies and has a long history of throwing away home grown solutions in favor of the standardized components including for instance in the case of kudzu, various system-config-* tools, nash etc. Even systemd required adoption new conventions and configuration formats etc.

Debian TC vote on init system coupling

Posted Feb 25, 2014 1:38 UTC (Tue) by jspaleta (subscriber, #50639) [Link]

And in this case... I'm not even sure Fedora had a binfmt helper at all before systemd, so it's not clear to me its appropriate to even talk about a "fedora way" of doing things. Looking back, it looks like the initscripts that needed to do it poked at the binfmt_misc /proc entry themselves as per the instructions in the kernel docs.

The Debian utility has a long history inside Debian, but it doesn't appear to have been picked up by Red Hat prior to Fedora, or by SUSE, or by Gentoo as a widely used helper to simplify initscripts. It appears that the more "standard" thing to do was to poke at the /proc entry inside of multiple initscripts instead of dropping config files into a location on package install for a common binfmt helper to parse. Debian's implementation for a helper doesn't seem to have cross-pollinated at all in the years prior to systemd adoption, for whatever reason.

Regardless, it seems like Debian maintainers have this sorted out and are going to disable systemd's binary by default. Which actually does make some sense for their upgrade path. Debian has sysvinit scripts in service built assuming binfmt-support's implementation and its config directory, so its not unreasonable for Debian to continue to assume their traditional service implementation in their packaging as a conservative approach to their upgrade path. I don't think any of the previous systemd adopters had to worry about the existence of binfmt-support package and its related service, as they all appear to just be replacing hardwired sysvinit script logic with something equivalent.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:31 UTC (Mon) by hadrons123 (guest, #72126) [Link]

> OpenRC was the only contender with a "look at what we can do for Debian" mentality, instead of "Look what Debian can do for us."

FUD. Systemd upstream did not beg Debian for anything. They can survive on their own even if Debian have not chosen systemd.
> And that's what loose coupling is all about as far as I'm concerned: keeping options open for a later re-evaluation of init systems that might actually cater to Debian's needs instead of the other way around.

Loose coupling = strangling the package maintainer with policy decision and forcing the maintainer to support defunct inits.
Loose coupling !=freedom of choice for the package maintainer.

Ian has lost the init war now and he is trying to force the other DDs into supporting the sysvinit support, since he wants it. This is clear abuse of power forcing other people what they should and shouldn't in a voluntary project since you have CTTE membership. People tend to forget why this init decision for Debian came to CTTE, when you magically assume sysvinit is better.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:32 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (87 responses)

All other distributions have opted for systemd. What makes Debian so special that it just isn't enough?

.

Debian TC vote on init system coupling

Posted Feb 24, 2014 3:24 UTC (Mon) by mgb (guest, #3226) [Link] (58 responses)

Debian had a robust and release-upgradeable plumbing layer.

The Fedora plumbing we're starting to see dragged in with systemd is a serious downgrade.

Debian TC vote on init system coupling

Posted Feb 24, 2014 3:37 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (57 responses)

Could you please elaborate? I've been using Fedora from the beginning, and have had few problems with its plumbing. Sure, there have been radical changes, but AFAICS Debian did go through much the same changes at roughly the same time with more or less the same sort of problems.

Debian TC vote on init system coupling

Posted Feb 24, 2014 4:27 UTC (Mon) by mgb (guest, #3226) [Link] (51 responses)

Debian, including Debian plumbing, was always smoothly upgradeable from one Debian release to the next. Ubuntu inherited some of this from Debian although it was never as robust. Fedora, including what is now the systemd plumbing layer, has never came close although preupgrade and now fedup can sometimes manage a transition of simple configurations.

Debian TC vote on init system coupling

Posted Feb 24, 2014 8:10 UTC (Mon) by anselm (subscriber, #2796) [Link] (49 responses)

Could you explain why a systemd-based Debian wouldn't be just as smoothly upgradeable as a SysV-init based Debian?

Debian TC vote on init system coupling

Posted Feb 24, 2014 8:45 UTC (Mon) by nim-nim (subscriber, #34454) [Link] (48 responses)

To be honest, while upgrade of systemd services usually works, upgrade of systemd will result in problems more often than not. systemd people are so busy adding new bits they often forget to test properly upgrade from all systemd to new one (forcing reboots). At least that's what I've seen in the last years of systemd in fedora-devel.

Plus the "you should reboot to help software" attitude does not help much.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:01 UTC (Mon) by heftig (subscriber, #73632) [Link] (25 responses)

I don't see how this is a problem.

Systemd would be pinned at a certain version (plus backported fixes) for the entire release. You would only get a major systemd upgrade as part of a release upgrade, which comes with loads of other upgrades such as a new kernel.

You'd have to be crazy not to reboot.

Debian TC vote on init system coupling

Posted Feb 24, 2014 15:53 UTC (Mon) by mgb (guest, #3226) [Link] (24 responses)

Debian used to be able to smoothly upgrade not just init but entire systems from one major release to the next without a reinstall and only one reboot. The Fedora/systemd plumbing layer has never been smoothly upgradeable.

The only serious pothole affecting Debian upgrades in recent years was of course udev. Udev incompatibilities doubled the amount of work involved in upgrading Debian from one major release to the next.

But now Debian has systemd - udev on steroids. Systemd's plumbing warts and interference with well-behaved packages are already hurting Debian.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:04 UTC (Mon) by anselm (subscriber, #2796) [Link] (18 responses)

You must be running a Debian that is significantly different from mine. I've been upgrading loads of Debian systems ever since way before udev even existed, and I have yet to experience even one upgrading snag that was attributable to udev.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:13 UTC (Mon) by mgb (guest, #3226) [Link] (17 responses)

the udev version in lenny will not provide all the functionality expected by the latest kernels, special care must be taken when upgrading to avoid putting your system in an unbootable state.

Booting the 2.6.26 kernel from lenny with the udev from squeeze may result in a failure to correctly assign names to network devices, and will also fail to apply certain additional permissions to block devices (such as access by the disk group). The software itself will appear to be working, but some rules (for example, network-based rules) will not be loaded properly. It is therefore strongly recommended that you upgrade the kernel on its own at this point, to ensure a compatible kernel is available before upgrading udev.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:34 UTC (Mon) by anselm (subscriber, #2796) [Link] (16 responses)

So? In my book, upgrading a Debian system means reading the release notes and following what they say. So you upgrade the kernel first. Problem solved.

Also, please explain how the issue you cited is udev's fault, other than by virtue of its mere existence. You could argue that without udev this problem wouldn't occur in the first place, but on the other hand udev is so useful in day-to-day life that paying attention when doing a stable-Debian upgrade (something that happens once every two years or so) is probably worth our while.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:56 UTC (Mon) by mgb (guest, #3226) [Link] (15 responses)

Poorly designed plumbing interferes with robust upgrades.

Systemd is far more intrusive and disruptive than udev.

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:07 UTC (Mon) by HelloWorld (guest, #56129) [Link] (14 responses)

Systemd supports old tools like service, update-rc.d, chkconfig, telinit, it supports init scripts better than sysvinit ever did (cgroups make this more robust, LSB headers are honored properly), even cruft like /dev/initctl and wtmp/utmp is supported. How is that disruptive?

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:24 UTC (Mon) by mgb (guest, #3226) [Link] (13 responses)

Are you familiar with Fedora and Debian plumbing? Systemd have made it very clear that they are not going to support both.

Systemd distros will migrate to Fedora plumbing elements whenever systemd so dictates - a huge loss of Debian functionality.

And systemd have further made it very clear that they will continue to "standardize" additional plumbing whenever they feel like it - leaving Debian struggling under an endless deluge of systemd bikeshedding.

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:43 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link]

" Systemd distros will migrate to Fedora plumbing elements whenever systemd so dictates - a huge loss of Debian functionality."

I have already pointed this out to you but systemd is not carrying over Fedora plumbing at all. Fedora moved to the things that systemd standardized on, many of which were adopted from Debian and none were adopted from Fedora!

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:44 UTC (Mon) by anselm (subscriber, #2796) [Link]

Systemd distros will migrate to Fedora plumbing elements whenever systemd so dictates - a huge loss of Debian functionality.

I don't think this is in fact true. Various parts of systemd's plumbing have been patterned on Debian even before Debian decided to adopt systemd as its default init, because the Debian approach was better than what Fedora had at the time.

I think in the long run the plumbing will gravitate to whatever is best for the job at hand. If Debian has a better approach to some plumbing issue than Fedora, it ought to be possible to convince the systemd developers that this is in fact the case, and nudge systemd towards the Debian way of doing things. They're not stupid, after all, and they're interested in technical excellence, not in making everything Fedora. In other cases whatever Fedora does may actually be superior, and it is entirely appropriate to base systemd's plumbing on Fedora. Or SUSE. Etc.

Anyway, more Debian involvement in systemd means that Debian's approaches and wishes will be that much better understood by the systemd community, which is to everybody's benefit given that Debian, like systemd, is committed to technical excellence.

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:53 UTC (Mon) by HelloWorld (guest, #56129) [Link] (10 responses)

> Are you familiar with Fedora and Debian plumbing? Systemd have made it very clear that they are not going to support both.
systemd doesn't care where the plumbing comes from, it just tries to pick the most sensible alternative. And in quite a few cases, they adopted debianisms, which were then also adopted by Fedora.

> Systemd distros will migrate to Fedora plumbing elements whenever systemd so dictates - a huge loss of Debian functionality.
systemd can't possibly dictate anything, it's just an open source project, and also new functionality in systemd doesn't mean that the equivalent features in debian somehow magically disappear. In short, what you're saying here is nonsense.
In fact, if debian has a better implementation of something, the sensible thing to do is to try to push it into systemd, so other distros eventually end up offering it to their users too (except if they go out of their way to disable it). Everybody wins that way.

> And systemd have further made it very clear that they will continue to "standardize" additional plumbing whenever they feel like it - leaving Debian struggling under an endless deluge of systemd bikeshedding.
WTF? Sometimes storing the hostname in /etc/HOSTNAME, sometimes in /etc/hostname and sometimes in /etc/sysconfig/network, *that's* bikeshedding. It's a huge win that systemd stops that kind of madness.

Debian TC vote on init system coupling

Posted Feb 25, 2014 1:19 UTC (Tue) by rahvin (guest, #16953) [Link] (9 responses)

I get why you are replying but he's doing the Redhat is evil troll that these threads have been dominated with and I think you are missing it.

I have no idea how anyone could feel that way but it's clearly her/his point of view and it's rather pointless to even discuss facts because the facts really aren't relevant to the point he/she is trying to make, which is Redhat is evil. You'd have better luck trying to have a philosophical discussion with an inanimate object.

Debian TC vote on init system coupling

Posted Feb 25, 2014 4:44 UTC (Tue) by mgb (guest, #3226) [Link] (8 responses)

Strawman eh? Evil doesn't enter into it.

Fedora is different. It works better for some people. Debian works better for some people.

Replacing Debian plumbing with Fedora/systemd plumbing is a serious loss.

Debian TC vote on init system coupling

Posted Feb 25, 2014 5:56 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (2 responses)

" Fedora/systemd plumbing"

To be honest, you want to call that Fedora/RHEL/Mageia/openSUSE/Arch plumbing instead of pretending it is Fedora specific.

Debian TC vote on init system coupling

Posted Feb 25, 2014 6:07 UTC (Tue) by mgb (guest, #3226) [Link] (1 responses)

What is it with systemd advocates and strawman arguments?

Nobody is claiming there's anything unique about Fedora plumbing.

However Debian/Ubuntu/etc plumbing is different, many but not all people find it better, and replacing it with Fedora/systemd/etc plumbing is a massive loss.

Debian TC vote on init system coupling

Posted Feb 25, 2014 6:23 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

" What is it with systemd advocates and strawman arguments?"

Ironically, that is a big strawman by itself.

" Nobody is claiming there's anything unique about Fedora plumbing."

If you don't mean to imply that, you should avoid writing Fedora/systemd that gives that impression you are trying to equate these two projects. If you want to attach distros to the systemd project, then you want to list all the distros that use systemd instead of singling out Fedora.

Debian TC vote on init system coupling

Posted Feb 25, 2014 8:48 UTC (Tue) by anselm (subscriber, #2796) [Link] (2 responses)

Replacing Debian plumbing with Fedora/systemd plumbing is a serious loss.

Which is why nobody is proposing to do this, at least not in a way that does cause »serious loss«.

First of all, »systemd plumbing« is not necessarily »Fedora plumbing«. Considerable parts of »systemd plumbing« actually derive from Debian, or from other Linux distributions.

Secondly, in many cases it doesn't actually matter. For example, whether a system's host name is stored in /etc/hostname, /etc/HOSTNAME, or /etc/sysconfig/hostname is quite immaterial, and it is hard to argue that one approach is technically superior to another. Which is why the standardisation that systemd catalyses is overdue and very welcome.

There are cases where it makes sense for Debian to stick with »Debian plumbing«, e.g., for compatibility or because the Debian approach offers more features than the systemd default. In these cases it is generally easy to disable/mask or override the systemd default, with a view to possibly integrating whatever Debian does into upstream systemd if it is of general interest.

I'm personally confident that the systemd developers and the Debian systemd maintainers are going to come up with a way of providing systemd for Debian that will let us take full advantage of the stability improvements and new features that systemd enables. There will not be »serious loss«. Two or three years from now we will look back and wonder what all the fuss was about.

Debian TC vote on init system coupling

Posted Feb 25, 2014 9:41 UTC (Tue) by bangert (subscriber, #28342) [Link]

> Considerable parts of »systemd plumbing« actually derive from Debian, or
> from other Linux distributions.

And that even though Debian had not committed itself to systemd at that point. I take this as a clear indication of the systemd developers being committed to technical excellence and their willingness to cooperate...

... or, if that does suit your world view, it could be an effort to bribe Debian into adopting systemd.

Debian TC vote on init system coupling

Posted Feb 25, 2014 14:31 UTC (Tue) by mebrown (subscriber, #7960) [Link]

For all that I love the LWN comment system, especially the commenters, sometimes wish there were an easy way to +1 all of your comments! They have been patient and detailed, rather than FUD or trollish. Thank you.

Debian TC vote on init system coupling

Posted Feb 25, 2014 14:28 UTC (Tue) by mebrown (subscriber, #7960) [Link]

Why do you keep repeating the same thing over and over and over, when the previous person responded to you in a very detailed manner explaining why you were incorrect?

Asserting this over and over does not make it true and moves my mental slider for your comments further into troll territory every time you repeat the same thing without offering anything new.

Debian TC vote on init system coupling

Posted Feb 25, 2014 15:00 UTC (Tue) by Chousuke (subscriber, #54562) [Link]

You keep calling it a serious loss but you haven't actually provided an argument as to why.

I've been running systemd as a default init for a long while on my Debian laptop now (and finally uninstalled sysvinit a shorter while ago when the package dependencies no longer prevented it) and it's been working perfectly.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:12 UTC (Mon) by palmer_eldritch (guest, #95160) [Link]

I believe you can trust Debian not to release the next stable until the update process goes smoothly, no matter what software they use in the distribution. Even if it means releasing later than previously scheduled.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:33 UTC (Mon) by fandingo (guest, #67019) [Link]

I think that you fail to recognize that systemd development is entering a new phase with the upcoming release of RHEL 7. There will certainly be a greater focus on backporting fixes and easier upgrades in the future. (Although to be honest, I've never experienced any of the problems that you describe.)

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:29 UTC (Mon) by rodgerd (guest, #58896) [Link] (2 responses)

> Debian used to be able to smoothly upgrade not just init but entire systems from one major release to the next without a reinstall and only one reboot. The Fedora/systemd plumbing layer has never been smoothly upgradeable.

Really. I guess that's why the libc->glibc transition resulted in me having to reinstall Debian boxes from scratch, because of Debian's perfect record on smooth upgrades. And when I couldn't boot some servers after the MD tool changeover left me with non-starting software RAID arrays, that was an exemplar of Debian's perfect upgrade process, too, was it?

Debian TC vote on init system coupling

Posted Feb 24, 2014 19:59 UTC (Mon) by malor (guest, #2973) [Link]

He made no claim that it was perfect; that was all you. He merely said that it was good, and that udev added a lot of work to the upgrade process, both of which are true, as far as I know.

And, fer chrissake, the glibc transition was fifteen years ago. You could probably let that go. I don't think any distro did well with that particular mess. The conversion from a.out to ELF, even earlier, was also very disruptive. Debian has, pretty consistently, been the least painful distro for upgrades, but least painful != painless.

If you believe that Debian sucks horribly at upgrading, why on earth would you think making it worse would somehow be a good idea?

If your argument is that it won't, in fact, be worse, because of a bad experience you had a decade and a half ago, that's not very persuasive, either.

Debian TC vote on init system coupling

Posted Mar 1, 2014 6:48 UTC (Sat) by k8to (guest, #15413) [Link]

This was in the era where Red Hat 5 or 6 (whichever shipped with glibc) segfaulted in common binaries on fresh install with no hardware errors.

Really everything was pretty fubar around that transition point, even without upgrades, so I wouldn't put too much weight on that scenario from 1997 or so.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:21 UTC (Mon) by anselm (subscriber, #2796) [Link]

Debian being Debian, I think we can rest assured that upgrading systemd from one stable version of Debian to the next will be quite well tested.

Debian TC vote on init system coupling

Posted Feb 24, 2014 11:23 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (14 responses)

Any examples? Or is this just extrapolating from "migrating will hurt, so upgrades must be painful too"? It had it's problems early on, now it just works for me. One version after the other, no issues at all for me on Fedora.

Debian TC vote on init system coupling

Posted Feb 24, 2014 11:37 UTC (Mon) by nim-nim (subscriber, #34454) [Link] (13 responses)

It's just extrapolating from the number of times boot or individual services failed one way or the another just after a systemd update because the handover from the old systemd (already present in the initramfs btw) and the new one was botched (and I didn't always have the time to report this since investigating boot problems is hard and some manual quick and dirty fixing is usually faster). I had it all from individual services failing to complete boot hangs because systemd didn't init lvm/md/some other storage layer/networking layer in the right order.

It seems to get better now but maybe that's because there are fewer systemd releases now.

And, I've read at least some of the systemd authors used to never test in enforcing mode so systemd was broken by default on release before selinux policy is fixed by other people (don't know about the situation right now, I cross fingers it's all past).

Debian TC vote on init system coupling

Posted Feb 24, 2014 11:45 UTC (Mon) by anselm (subscriber, #2796) [Link] (2 responses)

This state of affairs will presumably profit from the enhanced exposure that systemd will get in Debian. This will lead to systemd being exercised in more real-world setups, and more problems being detected and ironed out.

And it's not as if System-V init didn't have any problems at all; the problem there is that nobody is in charge, and that every distribution needs to fend for itself (and the setup itself is pretty brittle, especially in corner cases).

With systemd, at least there is a cross-distribution development community which will help ensure that every distribution profits from enhancements made under the auspices of another distribution. This works for the Linux kernel, so why shouldn't it work in this case? What's not to like?

Debian TC vote on init system coupling

Posted Feb 24, 2014 12:58 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (1 responses)

Don't try to paint Debian as a trailblazer in exercising systemd in new scenarios, that train left some three years back.

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:05 UTC (Mon) by anselm (subscriber, #2796) [Link]

True, but chances are that, with systemd deployed on more Debian machines, somewhere something will break, and be fixed, and systemd (and Debian) will be the better for that. This is just how things work with free software.

People often accuse the systemd developers of »not taking Debian's needs into account«. Regardless of whether this is in fact true or not, the obvious way to fix this is to become more active in systemd development on Debian's behalf. The more systemd is used within Debian, the more enhancements and bug fixes will be contributed to systemd from Debian, and the more influence Debian will have on systemd development. Again, this is just how things work with free software.

Debian TC vote on init system coupling

Posted Feb 24, 2014 12:27 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (9 responses)

My Fedoras run SELinux enforcing all the time (since before systemd, in fact). Never seen boot hangs due to this. Never seen LVM related trouble either (but no RAID or encrypted filesystems on any of them).

Yes, I know that the plural of "anecdote" isn't "data," but still.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 18:20 UTC (Mon) by Wol (subscriber, #4433) [Link] (8 responses)

But anybody who says you are not a datum point hasn't got a clue about science.

UNATTRIBUTABLE STORIES are anecdotes. First-hand accounts are datum points. And ignoring datum points is what gets scientists accused of either (a) fabricating evidence or (b) ignoring inconvenient evidence. Either charge if proven is - and should be - fatal to any scientific argument.

Cheers,
Wol

"The plural of anecdote isn't data"

Posted Feb 24, 2014 18:35 UTC (Mon) by anselm (subscriber, #2796) [Link] (7 responses)

On the other hand, not all types of »evidence« are the same. One person claiming they briefly saw something fuzzy in the distance that might have been a Sasquatch is different from one person bringing an actual live Sasquatch in a cage to a convention of field zoologists. It is a lot easier (as well as usually more appropriate, Occam's razor being what it is) to ignore the first than the second.

In the same vein, somebody claiming that they once had some sort of terrible problem with software package X but they don't quite remember the details is different from somebody demonstrating an easily reproducible sequence of steps that reliably makes the current version of software package X crash – especially if the person in question is on record as preferring software package Y which is a direct competitor to X. The latter is evidence but the former is FUD.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 18:44 UTC (Mon) by mgb (guest, #3226) [Link] (5 responses)

One person with an unreproducible problem may or may not be FUD.

Tens of thousands of people with unreproducible pulseaudio problems signify an engineer who designs clever but fragile software for a non-existent perfect world.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 19:00 UTC (Mon) by anselm (subscriber, #2796) [Link] (2 responses)

Tens of thousands of people with unreproducible Pulseaudio problems eventually lead to those problems becoming reproducible, being traced to buggy ALSA drivers, and being fixed there (rather than in Pulseaudio) as is proper. Pulseaudio is now quite stable.

What would you prefer, Pulseaudio working around the driver bugs? I know what I'd want: a simpler Pulseaudio and less-buggy ALSA drivers, thank you very much.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 19:25 UTC (Mon) by sfeam (subscriber, #2841) [Link] (1 responses)

I cannot speak for those other 9999 unhappy pulseaudio users, but I suffer from semi-reproducible pulse problems almost every day. It may be "quite stable", but that is not the same as saying that it works reliably. I continue to use it only because it has been so deeply integrated into the desktop configuration that pulling it out is more work than having to kill and restart the server when it chokes or freezes. And no, these are not alsa-related problems.

I can hear you thinking "And this is relevant how?". Well, it serves as an example of how difficult, or at least annoying, it is to have to work around faults in a subsystem that has become too tightly integrated. I have had no problems with systemd myself, but I sympathize with those who worry about the consequences of allowing it to subsume more and more system functions.

"The plural of anecdote isn't data"

Posted Feb 25, 2014 2:10 UTC (Tue) by ermo (subscriber, #86690) [Link]

"(...) it serves as an example of how difficult, or at least annoying, it is to have to work around faults in a subsystem that has become too tightly integrated. I have had no problems with systemd myself, but I sympathize with those who worry about the consequences of allowing it to subsume more and more system functions."

To a desktop user, working sound reproduction is considered a basic necessity, i.e. 'must-have'. To a server admin, sound reproduction might not be considered a basic necessity, but merely 'nice-to-have'.

To a desktop user, a working init etc. system is a basic requirement. To a server admin, a working init etc. system is a basic requirement. In other words, a working init system is 'must-have' in both cases.

You can probably see where this argument is going: Comparing the two on equal terms is perhaps slightly misleading if only for the fact that there is a bigger group of people who have a vested (commercial) interest in the init system just working.

It thus seems reasonable to suggest that, if a problematic edge-case is discovered in systemd, there is likely to be much more pressure to get it fixed ASAP than if PA needs to be restarted every now and again on your box, which (lest we forget) is running a desktop OS which only has a market share of a couple of percent or so if we're being generous. Unless I'm mistaken, the majority of the Internet runs on Linux-based servers?

That said, I haven't noticed any issues with PA on my machines in, like, forever; my personal impression is that it tends to "Just Work™" regardless of distribution these days.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 19:00 UTC (Mon) by HelloWorld (guest, #56129) [Link]

Bugs should be fixed, not worked around in some other place. The latter is the best way to make sure they *never* get fixed.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 19:02 UTC (Mon) by pizza (subscriber, #46) [Link]

> Tens of thousands of people with unreproducible pulseaudio problems signify an engineer who designs clever but fragile software for a non-existent perfect world.

The plural of anectdote isn't data, but "tens of thousands" random points of noise aren't terribly useful as data, especially when contrasted against a far greater larger sample set of folks who had a greatly improved experience.

Meanwhile. Speaking as an engineer who designs stuff for the real world, you need reproducible test cases in order to take action, less you break other crap in the process and possibly/probably not solve the original problem. Whatever it may have been.

"The plural of anecdote isn't data"

Posted Feb 24, 2014 20:45 UTC (Mon) by Wol (subscriber, #4433) [Link]

>> On the other hand, not all types of »evidence« are the same.

Yup. But the advantage of a first-hand account is that you can go back and verify it. Okay, you might not be able to repeat it (the sciences of eg biology and astronomy often suffer from this where they can only observe, not experiment), but if you have a reliable witness or account then it is extremely dangerous to ignore it.

At an absolute minimum you need to take it seriously and explain it.

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 25, 2014 15:42 UTC (Tue) by mbt (guest, #81044) [Link] (5 responses)

So systemd is a bit problematic when reinstalled? Reboots are necessary? The plan for systemd releases, as expressed in this forum, is that they would be required relatively infrequently.

This comes up against the fact that systemd is so grossly huge and all-encompassing. Every one of those "modular" components is subject to having bugs discovered in it; having all those components together in one package only increases the probability there will have to be a patch to the whole package.

Right now, in a sane system, if there is a CVE for the cron, all one needs to do is install the updated cron and keep running. If the CVE instead applied only for the cron component of systemd, you have to replace all of systemd.

Sorry, security updates don't wait for distribution's release schedules. And given the rollicking pace of systemd development and what appears to be no provision for stable-branch releases in the systemd upstream, upgrades are going to be fun.

Handy thing that systemd is faster for rebooting. You'll need them more often and they will be more interesting.

Debian TC vote on init system coupling

Posted Feb 25, 2014 16:02 UTC (Tue) by anselm (subscriber, #2796) [Link] (4 responses)

It is by no means clear that systemd upgrades will require a reboot. Systemd's PID 1 executable has a facility where it can serialise its internal state to disk, reexecute itself, and continue where it left off with all pre-existing sockets remaining open.

It is also very likely that large parts of systemd can be updated without actually having to touch PID 1 in the first place.

Debian TC vote on init system coupling

Posted Feb 26, 2014 22:53 UTC (Wed) by viro (subscriber, #7872) [Link] (3 responses)

Excuse me, but... WTF bother with dumping on disk? My one and only involvement with sysvinit was something very similar, and it works just fine, but you don't need any writable filesystems in sight, let alone ones with sufficient free space, etc.

Just call pipe(2), fork, have parent call execve(), notice that it had been asked to re-exec itself and that pipe is there, then have child serialize the state and feed it into pipe, with parent fetching it from there.

Not much harder than disk variant and a _lot_ more robust; there's a whole lot of failure modes that disappear that way. Sure, you need to block all signals before forking, but you need it for other reasons anyway...

Debian TC vote on init system coupling

Posted Feb 27, 2014 3:40 UTC (Thu) by tao (subscriber, #17563) [Link] (2 responses)

Sounds like a sensible idea. I'm sure the systemd developers would love a patch :)

Debian TC vote on init system coupling

Posted Feb 27, 2014 4:25 UTC (Thu) by raven667 (subscriber, #5198) [Link]

That's presuming that the original description isn't a misunderstanding of how systemd PID 1 works

Debian TC vote on init system coupling

Posted Feb 27, 2014 4:51 UTC (Thu) by viro (subscriber, #7872) [Link]

*shrug* If they need it, they can write it. For sysvinit it took me about a weekend (IIRC - that was 16 years ago) to write and debug and most of that consisted of writing the marshalling code. That they already have, apparently, so it ought to be a few hours worth of work, from start to finish, including building and testing. Not my problem, seeing that I'm not using systemd for a lot of reasons. And no, for me the lack or presence of such reexec functionality isn't anywhere near those.

Don't read into that comment anything other than a surprise at the decision to use an on-disk file for passing the state. All software is full of WTFs of that kind and the life is too short to fix ones in the stuff one doesn't use. I have more than enough fun with the kernel and with the userland I do use, TYVM. If I run across something of that kind in e.g. OpenBSD kernel, or djbdns, I'll probably comment on it and move on. Same as with systemd. Has nothing to do with my (lack of) liking of their authors, before anyone goes into that - if I run across something fishy in glibc or openssh, I *will* do more than commenting, no matter how little I am fond of Ulrich and Theo resp.

Same reason why I won't contribute to GNOME or emacs - I don't use either, they are not within 0.01% of programs that are pleasant to read, I'm not interested in developing them and it's not even what I'm paid for. Bugs in e.g. nvi are something I will deal with (and had done so in the past), something similar in aforementioned emacs... apt-get remove emacs\* solves them all nicely, as far as I'm concerned.

Debian TC vote on init system coupling

Posted Feb 27, 2014 7:42 UTC (Thu) by AdamW (subscriber, #48457) [Link]

Fedora upgradability has little to do with this rather vague concept of 'plumbing' and a lot to do with the fact that upgradability is really hard, and we ship new Fedora releases with giant piles of new things in them every six months, and we never really developed a culture of offering particularly guaranteed upgradability anyway.

Debian has a much slower release cycle and, as I understand it, spends rather a lot of the stabilization portion of its cycle on dealing with niggling issues in upgrade paths.

Fedora's stabilization period is about two weeks if we're lucky. We (I work Fedora QA) get to spend about three days running some basic upgrade tests, if we're lucky.

We could certainly improve Fedora's upgradability quite a lot if we spent much longer on our releases, but that's not really what Fedora's for.

Even with all those caveats, though, Fedora upgradability has improved substantially since systemd arrived.

Great argument!

Posted Feb 24, 2014 8:58 UTC (Mon) by oldtomas (guest, #72579) [Link] (4 responses)

> I've been using Fedora from the beginning, and have had few problems with its plumbing.

Gaah. Way to argue.

I've been using SysV init from the beginnings (I know, that's a long time!) and have had few problems with its configurability, stability, etc.

And now?

Great argument!

Posted Feb 24, 2014 10:23 UTC (Mon) by jonnor (guest, #76768) [Link] (1 responses)

Nice selective reading and quoting :). The post asked you to elaborate on your claim that systemd-based plumbing was more fragile on upgrade.

Great argument!

Posted Feb 24, 2014 17:45 UTC (Mon) by oldtomas (guest, #72579) [Link]

> Nice selective reading and quoting :)

Ain't it?

> The post asked you to elaborate on your claim that systemd-based plumbing was more fragile on upgrade.

First: the post didn't ask *me*, as I wasn't the OOP. Anyway.

Second: my issues with systemd are a tad different. They are being expounded all over the place, but the more strident systemd proponents just chose not to read them (there are more even-headed ones, thankfully).

And third: I was taking issue with the pattern "I've been using X and haven't had any problems with it" -- a pattern much derided by the (again) more strident systemd proponents. So I stand by my comment: I selected the quote on purpose, and I don't think I misrepresented anything.

Great argument!

Posted Feb 24, 2014 10:49 UTC (Mon) by vonbrand (subscriber, #4458) [Link]

I have used SysV init style since it's beginnings (before Linux even existed), and while it is much better than what came before, I just don't want to go into the many, many times it got the system into weird states that only a reboot (sometimes of the entire lab) would cure. Too varied and too painful.

Great argument!

Posted Feb 24, 2014 12:54 UTC (Mon) by vonbrand (subscriber, #4458) [Link]

I have used SysV init style from it's beginning, since before Linux. On a variety of systems, Solaris, SCO Unix, various Linux distributions, an AIX machine, and probably a few others I've forgotten right now. The TL;DR version is that this is almost as non-portable as humanly possible.

Next to impossible to configure (but Fedora/Red Hat setups cleaned that up so it was manageable, but those were distribution-specific...). The LSB mandate for init script headers was also a large step forward.

Migrating even a simple service from one system to the other meant (1) read and understand a init script of a hundred lines, mostly boilerplate with little reason for this specific case, (2) chase down shell code libraries of a thousand or so lines to look up what exactly some strange functions do (after wasting time looking for them as commands), (3) trawl through manpages to understand the meaning of some exotic flags to common (or not-so-common) utilities. And then the real fun of redoing all this in a wildly different setup just started: (4) find a similar service whose init script can be used as template, (5) understand it and modify it to fit, (6) again reverse engineering of shell libraries, (7) manpages for non-GNU utilities to see how to get things done, (8) workarounds for non-existing/different/broken commands, (9) endless fun with shell differences. (10) is see where to fit in in in the rigid start/stop order (luckily most of the time this is just slapping it on at the end, as nothing else should depend on it). Then (11) try starting/stopping/restarting (if the target setup even allows that...). (12) is to set it up so it is started/stopped in the right runlevels (no, not all systems have the ntsysv(8) helper, runlevels vary in their definition, ...). Finally (13) reboot and hope for the best. No real tracing/debugging available, so it is fire and cross your fingers.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:24 UTC (Mon) by dakas (guest, #88146) [Link] (21 responses)

There is Debian GNU/HURD, there is Debian GNU/BSD (or something like that), there may even be something like FreeBSD/Linux.

Debian is basically the only GNU/Linux distribution that offers sailing on a variety of alternative kernels and platforms.

That may quite understandably about different choices regarding how much one wants to tie the dominant distribution into very specific technologies. It might mean that a number of packages in other distributions might stop receiving the benefits from some packages created to operate on GNU/Linux to easily port to other systems.

Of course, it is a problem for supporting diversity if you take a majority vote about portability issues when 90% are users of one platform.

That's like taking majority votes about individual decisions of cultural diversity, desegregation, resource sharing and similar stuff.

Without explicitly viewing it as a moral problem and looking at long-term consequences, chauvinism, racism and tribalism always win. It's a natural urge that one has to fight explicitly, like taking what you want or hitting who you want (we do this with religious and secular laws against theft and murder).

While I am not a user of the "fringe distributions" of Debian myself, I think that they are something to be proud of. Even while Debian GNU/Linux is a rather dominant crowd, the support of those "fringe" systems demonstrates that Debian cares about openness and cooperation.

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:27 UTC (Mon) by ovitters (guest, #27950) [Link] (19 responses)

> at long-term consequences, chauvinism, racism and tribalism always win

Right, racism, theft, murder. Don't be amazed if you're not taking seriously on LWN with such an emotional discussion style. I suggest having a look at http://slashdot.org.

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:28 UTC (Mon) by Wol (subscriber, #4433) [Link] (18 responses)

It would be nice, however, if you actually acknowledged his point. Because he is spot on!

Your post makes you seem an espouser of the philosophy "the tyranny of the majority".

Whether intentional or not, it is an unfortunate fact that the actions of the majority feel oppressive to a minority. If you can't see that, then you are an oppressor. It's that simple. (Fixing it is a lot more complicated, I agree. That can be NP-hard ... :-(

And yes, he did use emotive language. Unfortunately, usually that is the only language that manages to open eyes :-(

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:52 UTC (Mon) by ovitters (guest, #27950) [Link] (17 responses)

> Unfortunately, usually that is the only language that manages to open eyes :-(

I think you should go away from this site and move over to Slashdot. How's that opening eyes? I think you're trolling, and the other person as well. Being purposely emotional is not acceptable. I already said to go to Slashdot.

See how we're not talking about anything other than the emotional language? How's this helping?!?

Debian TC vote on init system coupling

Posted Feb 25, 2014 0:43 UTC (Tue) by Wol (subscriber, #4433) [Link] (16 responses)

As someone who has *never* seen what's fascinating about slashdot, I really don't think I want to go there. If I've visited it once a year over its entire life I would be surprised.

And as someone who's been a registered reader of lwn for a lot longer than you, I would have thought the odds were stacked far more in favour of you being a troll than me.

At the end of the day, this IS an emotive issue. Let me ask a provocative question - are you human? Because if you refuse to accept that people have emotions, you're not! Actually, it's pretty clear you are, because the OP used emotion-inducing words, and you responded.

More to the point, imho he was simply describing the natural condition. If you don't like his choice of words, you are simply wearing a veneer of civilisation. How does the old saw go? "Civilisation is only three square meals away from barbarism"? Has humanity really got away from the reality he described? Or have we just swept it under the carpet?

People have emotions. We like to *pretend* we are civilised. If you're not prepared to accept that other people are human, you are de-humanising yourself, and I'm sorry to say but that's where I think you are going... On the other hand, if you accept the reality of the human condition, then it becomes a lot easier to do something about it.

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 25, 2014 10:01 UTC (Tue) by ovitters (guest, #27950) [Link] (15 responses)

Turning things around when someone is emotional and saying I should just accept that civilization is like this, or that seemingly your user number counts/matters (slashdot.org thing btw), and so on is IMO strange at best.

I responded exactly because it is emotional and useless. You're pretending it is a good thing. Again: this discussion is going nowhere.

He's talking about racism. You're arguing it is a good thing. I don't accept that at all. You're putting in a lot of words, but equating some technical thing with racism? Yeah, get lost. It is not acceptable behaviour. I won't tolerate it. It is not going to be something you can turn around and claim it is my problem. I find you asserting that it is part of civilization? That's based on social rules.

If you cannot win on an argument itself, then yeah, this emotional discussion style is I guess something you'd appreciate. I think: get lost.

Debian TC vote on init system coupling

Posted Feb 25, 2014 11:16 UTC (Tue) by Wol (subscriber, #4433) [Link] (14 responses)

Ovitters - I get the impression that you're a Gnome dev - I don't use Gnome, so I neither know nor care. Would *you* like to see Gnome swept away by KDE? I doubt it.

PLEASE go back and read dakas original post. He was saying that if the majority are allowed to trample over the minority then we are all the poorer - and more importantly that if we DO NOT LOOK OUT FOR THE MINORITY then we will let that happen.

"First they came for sysvinit and ovitters didn't speak out. Then they came for the BSDs and ovitters didn't speak out. Then they came for the HURD. And when they came for Gnome, there was no-one left to speak out for ovitters".

And that is what neither dakas nor myself would like to see happen!

Okay, I'm not bothering to speak out because I think most of the arguments are false, anyway, but seriously, if you make yourself deliberately blind to what is going on, you are complicit. Sorry if you don't like dakas' lanmguage, but he is simply accepting the reality that is the human condition. Groupthink and the herd mentality are real, they affect US just as much as anyone else, and if you think they don't apply to you then you are opening yourself up to brainwashing and mindless oppression (as in, you will perpetrate it, not be the victim).

Look out for the weaker people - you never know when you will join their ranks.

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 25, 2014 13:05 UTC (Tue) by cortana (subscriber, #24596) [Link]

I think you just Godwinned.

Debian TC vote on init system coupling

Posted Feb 25, 2014 13:24 UTC (Tue) by anselm (subscriber, #2796) [Link] (11 responses)

"First they came for sysvinit and ovitters didn't speak out. Then they came for the BSDs and ovitters didn't speak out. Then they came for the HURD. And when they came for Gnome, there was no-one left to speak out for ovitters".

This is a terrible kind of analogy. You know where that quote originally comes from, right? I'll let you in on a secret: Nobody is »coming for« sysvinit, the BSDs, the HURD, or GNOME to cart them off to a concentration camp, never to be seen again. These pieces of technology are going to stick around for exactly as long as there are people who are actively interested in them to a point where they spend the effort to keep them going. If the projects disappear it is precisely because nobody can be bothered to work on them any longer, and there are usually reasons for that sort of thing – obsolescence, uselessness or simply the arrival of a better, faster, or otherwise superior solution. Of course projects such as these hardly ever go away completely – there are probably people somewhere out there running TOPS-10 on a PDP-10 emulator, and more power to them – but they need to be interesting to however thin a slice of the community in order to stay around.

Free-software projects don't have human rights, and there is no moral obligation on the part of the community to look out for them if they can't fend for themselves by attracting enough developers to be viable. In particular, if you're not prepared to roll up your sleeves and pitch in on behalf of your favourite free-software project, don't whine if nobody else wants to do for you. You don't get to decide how other people spend their time (unless you sign their paycheck, anyway).

Debian TC vote on init system coupling

Posted Feb 25, 2014 13:28 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

>Nobody is »coming for« sysvinit, the BSDs, the HURD, or GNOME to cart them off to a concentration camp, never to be seen again.
That's what THEY want you to think.

/me looks around fearfully.

Debian TC vote on init system coupling

Posted Feb 25, 2014 14:03 UTC (Tue) by Zack (guest, #37335) [Link] (9 responses)

Well, there have been sounds of how some kernels and configurations are considered undesirables or irrelevant in the greater scheme of things.

Not to speak of the promises of the great resurgence of the mainstream "Linux" push because now we have "One Kernel, One Init, One System."

And then, as icing on the cake, when asking questions about how decisions are taken and implemented on the mailing list, you often gets reminded that you simply might not understand the Teutonic/German way of interacting as is prevalent on the mailing lists.

None of that has anything to do with systemd or its quality of course, but I can't help but find these tidbits unintentionally humourous, in a Charlie Chaplin satire kind of way.

Debian TC vote on init system coupling

Posted Feb 25, 2014 14:11 UTC (Tue) by HelloWorld (guest, #56129) [Link] (7 responses)

I really don't understand what the problem with Lennart is supposed to be. Linus behaves like an arrogant dickhead all the time, yet people don't seem to think he's a problem. I can't help but think that there's some racism going on.

Debian TC vote on init system coupling

Posted Feb 25, 2014 18:48 UTC (Tue) by rodgerd (guest, #58896) [Link]

If one is only going to use software written by nice people, one will quickly run out of software to run and platforms to run it on.

I can only assume people who refuse to use software written by people with abrasive personalities have not only abandoned systemd, but Linux, glibc, and openssh as well.

Debian TC vote on init system coupling

Posted Feb 26, 2014 8:01 UTC (Wed) by dgm (subscriber, #49227) [Link]

From this comment I get to the conclusion that you ignore what "arrogant" and "racism" actually mean.

Debian TC vote on init system coupling

Posted Feb 26, 2014 23:25 UTC (Wed) by malor (guest, #2973) [Link] (1 responses)

I've actually seen Linus speak, and in many ways, he *plays at* being a jerk, rather than actually being one. There's a core of fundamental good humor underneath the surface rudeness.

I get no such sense from Lennart.

Debian TC vote on init system coupling

Posted Feb 26, 2014 23:31 UTC (Wed) by jake (editor, #205) [Link]

> I get no such sense from Lennart.

Have you spoken to Lennart or seen him speak? I think there is a "core of fundamental good humor" there too, personally. We don't always see eye to eye, but Lennart is not just a "jerk" by any means.

just another perspective ...

jake

Debian TC vote on init system coupling

Posted Feb 27, 2014 5:32 UTC (Thu) by dlang (guest, #313) [Link] (2 responses)

Linus fights for the ability of the user to choose, including the ability for the user to choose to move away from Linux, and the ability for kernel devs to decide that Linus has gone off his rocker and they don't trust him any more.

Lennart fights for the one true way, and anyone who don't like it needs to shut up and get with the program.

this basic attitude is very different.

Debian TC vote on init system coupling

Posted Feb 27, 2014 14:21 UTC (Thu) by anselm (subscriber, #2796) [Link] (1 responses)

I think this is a conspiracy theory. Linus is trying to make Linux the best operating system it can be. Linus does not "fight for the ability of the user to choose to move away from Linux". Linus does not work on BSD, Solaris, OS X, or Windows, simply so Linux users can have alternatives to Linux. These exist because other people actively prefer them to Linux, to the point where it is worthwhile for them to go to the trouble of keeping them around. If Microsoft suddenly decided to base future versions of Windows on the Linux kernel, Linus would for sure not try to convince them otherwise just to keep Linux users' options open.

And exactly how does Lennart, by doing for systemd exactly what Linus does for Linux, namely trying to make it the best init system for Linux it can be, take away your option to stick with System V init, inetd, cron, syslogd, etc. for as long as you like, if you actively prefer them? How are distribution makers coerced to jump onto the systemd bandwagon against their better judgment? How are developers of background services forcibly brainwashed into believing that systemd's features may make their software simpler, more secure, and more efficient? Isn't systemd just as much of an open-source program as the Linux kernel, such that people can decide at some point that Lennart has gone off his rocker and they don't trust him any more, and take further development into their own hands?

It's not the fault of Lennart and his colleagues (other than by doing good work on systemd) if systemd is so convincing that most mainstream Linux distributions have decided they want to make it their default init system. If anything it is SysV init etc.'s fault for sucking so much in comparison that many people (and especially people in charge of distributions, who are the ones who matter most in this game) believe systemd is the better long-term option. Lennart does not have magical powers to make everybody bend to his will; if systemd is becoming the new standard it is on its technical merits and not through conspiracy. The Debian TC vote only emphasises this.

Debian TC vote on init system coupling

Posted Mar 3, 2014 6:38 UTC (Mon) by dlang (guest, #313) [Link]

Linus talked about this sort of thing a lot in the early git days. He sees it as a high priority that he can be replaced by people just pointing at some other master git tree. Along similar lines, he has said that he expects that someday there will be a replacement for Linux that's created by someone making a stripped down, more efficient replacement.

Linus also rants about the need for new features to default to "off", that no new feature is worth hurting existing users over, and that the users (i.e. admins) need to have the options available to them to not do something that the developers think is neat and important.

Systemd development seems just the opposite, they know better than the users what's important, don't use systemd in any way other than the one they intend you to, etc.

Debian TC vote on init system coupling

Posted Feb 25, 2014 14:28 UTC (Tue) by anselm (subscriber, #2796) [Link]

Well, there have been sounds of how some kernels and configurations are considered undesirables or irrelevant in the greater scheme of things.

Linus Torvalds, Lennart Poettering, et al. do not get to dictate to you which kernels or configurations you are allowed to find desirable or relevant. If you want to use FreeBSD or the HURD, great, nobody is telling you no. On the other hand you don't get to dictate to them what they ought to consider desirable or relevant – which is fair enough – so if you want systemd on FreeBSD and they don't, they're not going to be the ones who do the work. Again, that is fair enough.

The nice thing is that all the code is freely available so you can scratch your own itch without having to talk Lennart or Linus into scratching it for you. And as we said, no software package or configuration is »irrelevant« as long as there are people interested in supporting it. The problem is really some people's sense of entitlement which apparently suggests to them it is OK to demand that others work on their behalf for free.

Debian TC vote on init system coupling

Posted Feb 25, 2014 18:50 UTC (Tue) by rodgerd (guest, #58896) [Link]

Comparing yourself to victims of the Haolocaust is one of the most cretinous things I've seen.

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:37 UTC (Mon) by anselm (subscriber, #2796) [Link]

Nobody is telling the developers of Debian GNU/HURD and Debian GNU/kFreeBSD to stop what they're doing. The situation remains exactly the same as it was before; there are people who are interested in spending time on porting Debian to alternative kernels, and these people will be expected to do most of the work. They in turn do not get to tell the rest of the Debian developer community what they should or should not do. This is how free software generally works; you scratch your own itch.

It should also be pointed out that it is a fallacy to believe that currently all of Debian runs on the FreeBSD or HURD kernels, and that systemd will be an exception because it won't. Many other packages also don't work on the alternative kernels, so it is not as if Debian/HURD or Debian/kFreeBSD offered users the same experience as Debian/Linux even now. In that sense they remain experimental, »fringe« versions of the distribution; they are proofs of concept to see whether porting Debian will even work, not necessarily the sort of reliable workhorse people are expecting when they think »Debian GNU/Linux«. As such they should be put firmly in perspective.

Having said that, Debian package maintainers are encouraged by Debian policy to address portability problems that lead to bugs in their packages on Linux architectures other than the ones they're using themselves, and on non-Linux platforms. They are, however, not required to go to the trouble of actively testing their packages on all architectures and kernels supported by Debian or to engage into large development projects in order to port packages whose upstream versions are not portable; we just want them to listen to relevant bug reports, and evaluate and possibly incorporate suggested portability fixes.

In the init system context, this means that, while package maintainers will be asked to support the default init system on their platform, they should also be open to bug reports from people who are interested in making the packages in question run with other init systems. In other words, on a very basic level a System-V init script is currently sufficient to make a package work on all Debian platforms (with or without systemd). A package maintainer will be encouraged to package an equivalent systemd unit file but they will not be forced to come up with it themselves unless they want to.

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:27 UTC (Mon) by Zack (guest, #37335) [Link] (5 responses)

Two non-Linux kernels.

A "install once, upgrade flawlessly for the next decade" policy.

An open inclusive approach to alternatives to allow for future developments and satisfy minority operating system needs.

Little or no allowance for changes that would ease the installation of proprietary software.

Debian TC vote on init system coupling

Posted Feb 24, 2014 11:16 UTC (Mon) by vonbrand (subscriber, #4458) [Link] (3 responses)

Except for the "two non-Linux kernels" (which isn't much more than the hobby of two tiny groups), this describes most distributions. Debian isn't anything special, really.

Debian TC vote on init system coupling

Posted Feb 24, 2014 12:50 UTC (Mon) by Zack (guest, #37335) [Link] (2 responses)

> than the hobby of two tiny groups

except one if them is a officially released and supported architecture, and so far from being "barely usable" and "toy" that most people running GNU/Linux would hardly notice any difference if you secretly swapped it for GNU/kFreeBSD.

>>A "install once, upgrade flawlessly for the next decade" policy.
>>An open inclusive approach to alternatives to allow for future developments and satisfy minority operating system needs.

> this describes most distributions.

No, that's just plain nonsense.

I've witnessed no other distribution manage new release upgrades so flawlessly that a re-install was never necessary or simply easier to perform. Even if some of them have caught up regarding system wide upgrades, they do not have a track record going that far back.

As for open inclusive approach. The main architect of systemd is the record for speaking disparaging about other operating systems, other kernels, competing implementations, everything that doesn't fit with his view of how things should be done. Adopting that software is adopting those policies, which are definitely not "open" and "inclusive" by any definitions of the words.

>>Debian isn't anything special, really.

Well, it used to be. Incidentally you mention "My Fedoras" in an earlier comment; you do actually run Debian somewhere, right?

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:04 UTC (Mon) by vonbrand (subscriber, #4458) [Link]

Not currently. Tried it a few times, but stable was just much too stale for my tastes; and if I want the exitement of running an experimental branch, I'd want it to have latest stuff too. Besides, some of the configuration tools just felt too weird (I'm a long-time Red Hat/Fedora user; I'm not saying they are better or worse, just different).

Debian TC vote on init system coupling

Posted Feb 24, 2014 15:32 UTC (Mon) by ewan (guest, #5533) [Link]

"As for open inclusive approach. The main architect of systemd is the record for speaking disparaging about other operating systems, other kernels, competing implementations, everything that doesn't fit with his view of how things should be done. Adopting that software is adopting those policies, which are definitely not "open" and "inclusive" by any definitions of the words."

That's rather unfair. I'd characterise his position as being more that Linux users should not be held back from making full use of the advantages that Linux offers over other kernels. If other kernels which to catch up and offer similar features, then that's fine - he just doesn't care either way.

Frankly, moving to systemd for Linux should be a good thing for the other kernels too - they either need to have their own plumbing layers that deliver the same benefits as systemd does on Linux, or equivalent kernel interfaces to those systemd uses on Linux. Either case is better than the woolly mess that everyone has at the moment.

Debian TC vote on init system coupling

Posted Feb 24, 2014 11:31 UTC (Mon) by anselm (subscriber, #2796) [Link]

An open inclusive approach to alternatives to allow for future developments and satisfy minority operating system needs.

The goals of the Debian project are set out in its Social Contract, which does not contain an explicit commitment to making Debian available on non-Linux platforms, or indeed to »satisfying minority operating system needs«. Debian, however, doesn't mind people trying unusual things if they are willing to do the work – although such people do not necessarily get to control the direction of the project as a whole.

Little or no allowance for changes that would ease the installation of proprietary software.

What changes would that be, and how has Debian resisted them in the past?

The Debian project has no problem in general with proprietary software. It even distributes certain types of »non-free« software from its own servers (and has received flak from the FSF for that in the past). This is because the Social Contract emphasises Debian's goal of offering a computing platform that serves its users' needs, not ideological purity – although Debian makes it reasonably easy to eschew proprietary software if one doesn't want it.

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:21 UTC (Mon) by ovitters (guest, #27950) [Link]

> OpenRC was the only contender with a "look at what we can do for Debian" mentality, instead of "Look what Debian can do for us."

What do you mean? Upstart developers know Debian *really* well. They've started a port to FreeBSD, etc. Systemd developers have used various configuration files that were initiated in Debian. IMO OpenRC development only started picking up *after* the bug being opened. This CTTE bug is taking ages and ages. Meanwhile some OpenRC development is going on.

But as said: I don't think OpenRC is being totally up front. They're adjusting things to Debian. But sometimes it seems because that was due to lack of thought in the design. E.g. conflicting script names, directories, etc. It gives the impression it hasn't been used enough IMO. So you get issues once it is used on another distribution. Those should have to be fixed anyway.

If you check the latest thoughts, it seems they're working on a shim layer for systemd compatibility. This is what I really like: it proves that we should define new interfaces. Then rely on those interfaces, not go around adding loads of #ifdefs in all the software. The burden of implementing those interfaces should be on the init system developers.

Debian TC vote on init system coupling

Posted Feb 24, 2014 14:47 UTC (Mon) by drag (guest, #31333) [Link]

> As far as I'm concerned, my machines aren't suddenly going to burn down during Jessie when I keep using sysvinit, and after Jessie I'll take a look at how far OpenRC has come along (And hopefully Debian will as well.)

You are, basically, going to end up dedicating a huge amount of your personal time to making your system worse.

And, I am guessing, that if you run into software that is broken with sysvinit you are going to be filling bugs and causing a racket to try to force other people, who really don't care, to help make your system worse.

which ultimately means that it's a goal to make everybody else that doesn't care about using sysvinit have the complexity of what happens when people try to make a OS forward compatible with low-level obsolete and incomplete software solutions.

And the purpose of all of this is... what exactly?

Not trying to pick on you, but this whole 'choice for choice sake' mentality is a bit mysterious to me.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:46 UTC (Mon) by javispedro (guest, #83660) [Link] (26 responses)

Exactly my point. They were busing adding the required features.

And you can certainly be "reliable" without cgroups. Some of the BSDs contain functional equivalents that were designed decades before cgroups, and OpenRC supports at least one of them just fine.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:46 UTC (Mon) by HelloWorld (guest, #56129) [Link] (25 responses)

> And you can certainly be "reliable" without cgroups. Some of the BSDs contain functional equivalents that were designed decades before cgroups
What functional equivalents are you talking about? Please don't say jails now, they're something completely different.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:07 UTC (Mon) by peter-b (guest, #66996) [Link] (1 responses)

>> And you can certainly be "reliable" without cgroups. Some of the BSDs contain functional equivalents that were designed decades before cgroups

> What functional equivalents are you talking about? Please don't say jails now, they're something completely different.

He may be referring to process fds?

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:49 UTC (Mon) by ovitters (guest, #27950) [Link]

Which according to IIRC Lennart is not good enough.

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:40 UTC (Mon) by javispedro (guest, #83660) [Link] (22 responses)

Process fds is one way. If you're going to repeat Lennart's propaganda, you'll have to elaborate a bit more.

I was actually going to say jails, because it is the only way to do it reliably. Then I realized daemons can escape cgroups, so I guess it's not that "reliable" after all...

Debian TC vote on init system coupling

Posted Feb 25, 2014 17:32 UTC (Tue) by michich (guest, #17902) [Link] (1 responses)

Lennart's claim that there is no alternative to cgroups for systemd's needs is his honest technical opinion. Calling it "propaganda" is an insult.

Why don't you (and/or anyone else who says it's possible to do what systemd does using mechanisms other than cgroups) finally prove Lennart wrong by showing us the code of a portable fork of systemd?

Debian TC vote on init system coupling

Posted Feb 28, 2014 10:58 UTC (Fri) by javispedro (guest, #83660) [Link]

Because systemd is much, much more than just daemon management (which is part of the criticism, btw). The parts of systemd related to process management have been reimplemented to death in e.g. openrc (support for both cgroups and jails), launchd ("process groups"), smf, etc.

Debian TC vote on init system coupling

Posted Feb 25, 2014 20:37 UTC (Tue) by fandingo (guest, #67019) [Link] (19 responses)

> Then I realized daemons can escape cgroups[...]

That's quite the bold claim. Do you mind sharing how that's done?

Debian TC vote on init system coupling

Posted Feb 26, 2014 7:43 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

The last paragraph parses weirdly. With the previous sentence, maybe "jails" was intended there?

Debian TC vote on init system coupling

Posted Feb 28, 2014 10:54 UTC (Fri) by javispedro (guest, #83660) [Link] (17 responses)

Any daemon running as root can trivially escape a cgroup. You need something stronger in order to actually ensure "reliability".

Debian TC vote on init system coupling

Posted Feb 28, 2014 11:43 UTC (Fri) by khim (subscriber, #9252) [Link] (6 responses)

Any daemon running as root can trivially escape a cgroup.

Really? Let's exclude explicitly written malicious code (if you run malicious code under root in any UNIX system you are hosed anyway). How does that happen?

You need something stronger in order to actually ensure "reliability".

You need something stronger to run potentially malicious code, sure. But that's totally different task: given kernel's track record you can not even run malicious code from unknown origin under regular user (you need some level of sandboxing like NaCl or seccomp) thus of course systemd does not try to solve that problem.

Debian TC vote on init system coupling

Posted Feb 28, 2014 19:27 UTC (Fri) by vonbrand (subscriber, #4458) [Link] (5 responses)

You can't exclude malicious code, a vulnerability might allow the attacker to execute arbitrary code.

Debian TC vote on init system coupling

Posted Feb 28, 2014 20:00 UTC (Fri) by khim (subscriber, #9252) [Link] (4 responses)

Once you are unrestricted root the game is finished. End of story. You can do whatever you want with a system (using DMA in GPU works just fine for that). There are plenty of ways to restrict root and, surprise, surprise, most of them make it impossible to escape from cgroup as a nice added bonius. But it's not systemd's place to solve that problem. You can not on one hand complain about systemd “feature creep” and on the other hand complain that it does not work as intrusion detection and/or prevention system.

Debian TC vote on init system coupling

Posted Feb 28, 2014 21:57 UTC (Fri) by javispedro (guest, #83660) [Link] (3 responses)

Yes. But now that we've accepted that using cgroups is not actually reliable, we can go back to discussing why the other approaches have been readily rejected. Even ptrace, as ugly and hacky as it is, is as reliable (as long as the processes that are being monitored run under a lower privilege level).

Debian TC vote on init system coupling

Posted Feb 28, 2014 22:24 UTC (Fri) by fandingo (guest, #67019) [Link] (1 responses)

> But now that we've accepted that using cgroups is not actually reliable

I'm still looking for a concrete example of a service process escaping cgroups when using the systemd single-writer that lives in PID 1. The only thing I can come up with is a full kernel exploit, and that breaks everything. Even khim's worst-case scenario of root with unconfined_t, can't escape other processes from service cgroups. The manager will not allow it, and there's no way to replace the manager.

Debian TC vote on init system coupling

Posted Feb 28, 2014 22:35 UTC (Fri) by mjg59 (subscriber, #23239) [Link]

ptrace a process that's running in another cgroup, ask it to exec another copy of you?

Debian TC vote on init system coupling

Posted Feb 28, 2014 23:33 UTC (Fri) by khim (subscriber, #9252) [Link]

Indeed. Cgroups are designed to be unescapable and non-intrusive means of managing process groups thus they are the only logical choice for the init system, but if you don't really care about making usable system and only want to create safe system there are many possibilities. Besides ptrace there are seccomp (and no, not this new fancy seccomp-bpf but plain old seccomp: it's enough, surpisingly enough). You can use it to create completely safe init system. Why this is bad idea left as an excercise for a reader.

Debian TC vote on init system coupling

Posted Feb 28, 2014 16:42 UTC (Fri) by peter-b (guest, #66996) [Link] (6 responses)

> Any daemon running as root can trivially escape a cgroup. You need something stronger in order to actually ensure "reliability".

Why are you running daemons as root?

Debian TC vote on init system coupling

Posted Feb 28, 2014 16:59 UTC (Fri) by fandingo (guest, #67019) [Link] (5 responses)

Most daemons are privileged for a portion of their lifetime, even if it's only to bind to a low numbered port.

Debian TC vote on init system coupling

Posted Feb 28, 2014 18:36 UTC (Fri) by vonbrand (subscriber, #4458) [Link] (4 responses)

You configure the port in the unit file, no privileges in the daemon required at all.

Debian TC vote on init system coupling

Posted Feb 28, 2014 18:50 UTC (Fri) by fandingo (guest, #67019) [Link] (3 responses)

Yes, you can do that with socket activation, but there are two problems. First, not everything supports socket activation. Httpd is an example that keeps a main process running as root.

Second, even some services that do, still run as root. openssh-server supports socket activation, but the main process is still root, and every session has a root process used for permission separation.

Debian TC vote on init system coupling

Posted Feb 28, 2014 19:15 UTC (Fri) by vonbrand (subscriber, #4458) [Link] (2 responses)

Fix them?

At the very least, this reduces the attack surface to a handful of daemons...

Debian TC vote on init system coupling

Posted Feb 28, 2014 21:06 UTC (Fri) by fandingo (guest, #67019) [Link] (1 responses)

I agree. I'd really like to see blanket prohibition on services calling bind(skt). Bound sockets should exclusively come from the init system.

That being said, while the current processes are "root" mostly in name. SELinux (and other LSMs) for the most part have neutered these processes.

The real security threat comes from kernel exploits, and unfortunately, neither changing service users nor using a LSM sandbox helps prevent kernel exploits that much.

Debian TC vote on init system coupling

Posted Feb 28, 2014 23:23 UTC (Fri) by mgb (guest, #3226) [Link]

"Bound sockets should exclusively come from the init system."
And all P2P S/W should be trash-canned.

Not.

P.S. Does systemd support AF_APPLETALK?

Debian TC vote on init system coupling

Posted Feb 28, 2014 16:57 UTC (Fri) by fandingo (guest, #67019) [Link]

Just so we're clear, I'm talking about the new cgroup implementation (single writer) with systemd as the cgroup manager (PID 1).

Short of a kernel exploit, there is no way to move out of cgroups or to a non-allowed cgroup. The cgroup manager won't allow it, and there's no way even a malicious program could kill the cgroup manager and register as a new manager with the kernel because the manager is PID 1, making it unkillable.

Yes, cgroupfs is insecure because it allows arbitrary writers, and you absolutely need something like SELinux to keep the privileged portions of daemons from causing a jailbreak. Fortunately, this mode of operation will disappear soon (at least for those using systemd).

Debian TC vote on init system coupling

Posted Feb 28, 2014 18:57 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (1 responses)

Maybe this is the security flaw being mentioned that Cyberax is questing for? Do you have more details?

Debian TC vote on init system coupling

Posted Feb 28, 2014 20:06 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link]

It's not a security issue, really.

A root process can simply move itself to another cgroup hierarchy, since it has access to cgroups.

And a single writer model won't really protect against it because a malicious root process can simply ptrace or replace the cgroups manager with a modified version that allows it to do anything.

Additional confinement is needed to fix this problem, in any case. Be it namespaces, SELinux, AppArmor or something else.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:34 UTC (Mon) by josh (subscriber, #17465) [Link]

> they get ignored or rejected out of hand as they're "not cool enough".

OpenRC was never ignored or rejected out of hand; the TC evaluated it, and across the board considered it less featureful than either systemd or upstart, though potentially better than sysvinit. That seems like a mostly accurate assessment. You might be bothered by the characterization of "featureful" as a desirable property (as opposed to properties such as "portable" or "minimalist" or "based on shell scripts"), but describing the reasoning process as "not cool enough" is both disingenuous and insulting.

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:35 UTC (Mon) by rodgerd (guest, #58896) [Link]

> And, when other people also "show up with code" (e.g. see busy OpenRC maintainers trying to figure out how to port it to all Debian supported architectures and fixing other problems) they get ignored or rejected out of hand as they're "not cool enough".

They got ignored because their code doesn't solve the same range of problems as either upstart or systemd. The habit of arguing that "features coming Soon" should be treated as "features already here in upstart" probably didn't help.

Debian TC vote on init system coupling

Posted Feb 25, 2014 15:57 UTC (Tue) by xxiao (guest, #9631) [Link]

Second this strongly.

Debian TC vote on init system coupling

Posted Feb 24, 2014 7:14 UTC (Mon) by jude- (guest, #95678) [Link] (17 responses)

> But, like it or not, they're the people who showed up with the code. And if Debian is going to go through the pain of an init switch anyway, they might as well get full benefit out of the switch, and allow tight coupling.

Just because Lennart et al. showed up with *a* solution does not make it inherently better than the status quo. For example, every feature I would use in systemd I already do myself without it (including putting services into cgroups). I'm not saying that systemd doesn't do useful things for other people, of course :) I'm just making the (small) point that showing up with code isn't a reason to necessarily use it, especially when you already have something that works.

Moreover, tightly coupling a distro to systemd (the implementation) precludes the possibility that something better (but incompatible) will come into being later. When (not if) that happens, we'll be right back where we are today if we're not careful.

Fortunately, the solution to achieving loose coupling without boxing ourselves into one init system is to stabilize the systemd APIs--namely, both the systemd-to-application and daemon-to-systemd-PID-1 APIs. This would help developers (and distro maintainers) know exactly what functionality can be expected from the plumbing layer and how to get at it, and will let those wishing to extend/improve/modify the systemd implementation do so without having to work with a constantly-moving upstream target. I know Lennart et al. are working on stabilizing the former (systemd stability promise), but stabilizing latter looks pretty far off, especially since we don't even know yet what the scope of systemd will be.

Once both sets of APIs are stabilized, with systemd serving as a reference implementation, I think a lot of the controversy around init systems will go away. If, for example, OpenRC evolves into something better than systemd, all that would need to be done to make it available would be to ensure it implements the (stabilized) systemd APIs. Then, you would be able to incrementally deploy OpenRC over systemd (possibly using components of both during the transition), without breaking the layers above them.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:11 UTC (Mon) by peter-b (guest, #66996) [Link] (5 responses)

> Fortunately, the solution to achieving loose coupling without boxing ourselves into one init system is to stabilize the systemd APIs--namely, both the systemd-to-application and daemon-to-systemd-PID-1 APIs.

You will, I'm sure, be pleased to hear that both of the APIs you mention are covered by the systemd interface stability promise.

http://www.freedesktop.org/wiki/Software/systemd/Interfac...

Debian TC vote on init system coupling

Posted Feb 24, 2014 19:50 UTC (Mon) by jude- (guest, #95678) [Link] (4 responses)

I must have mis-spoken. When I said the "daemon-to-systemd-PID-1 API", I was referring to "the D-Bus interfaces of the main service daemon." This one is not covered by the stability promise, according to the article you provided. However, if it were stable, it would be possible to do things like make alternative implementations of logind or journald without dealing with a moving upstream target.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:07 UTC (Mon) by fandingo (guest, #67019) [Link] (3 responses)

I assume that you're talking about "Service bus API," although that is covered by the interface stability promise, so I'm not sure. Not that it matters though -- everything with type DBus is covered by the promise.

If you're instead referring to "reimplementable independently," I think you misunderstand what that is supposed to mean. Those interfaces are considered too specific to systemd and other systems should implement their own specific interfaces. Therefore, the systemd developers don't want to provide counsel for reimplementations. Nonetheless, the interfaces are stable, and the developers won't stop you.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:28 UTC (Mon) by jude- (guest, #95678) [Link] (2 responses)

No, not every D-Bus API is covered. The article you provided says as much--the D-Bus interfaces of the main service daemon are explicitly listed under the APIs that are NOT covered.

> Those interfaces are considered too specific to systemd and other systems should implement their own specific interfaces.

The same article says that these interfaces will eventually be stabilized. Presumably, so that development in the various systemd components can occur without breaking other components' functionality.

> Therefore, the systemd developers don't want to provide counsel for reimplementations.

I would never expect it from them.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:34 UTC (Mon) by fandingo (guest, #67019) [Link] (1 responses)

Are we looking at the same web page? I don't see anything with type DBus (column 2) and covered by interface stability promise "no" (column 3). Perhaps you can provide the examples I'm not seeing.

Even if we include non-DBus interfaces, every interface except "udev session switch ACL properties" is included in the interface stability promise.

Debian TC vote on init system coupling

Posted Feb 24, 2014 21:53 UTC (Mon) by jude- (guest, #95678) [Link]

Ah, I think we're looking at different articles (but on the same subject). You're looking at this one [1], right?

The one I was referring to was peter-b's article [2]. This one's the one that says that the D-Bus interfaces to the main daemon are not stable.

My apologies for the confusion.

[1] http://www.freedesktop.org/wiki/Software/systemd/Interfac...

[2] http://www.freedesktop.org/wiki/Software/systemd/Interfac...

Debian TC vote on init system coupling

Posted Feb 24, 2014 15:34 UTC (Mon) by ewan (guest, #5533) [Link] (2 responses)

"For example, every feature I would use in systemd I already do myself without it (including putting services into cgroups)."

OK. Are you doing that with distro standard stuff, or custom local things? If the latter, wouldn't it be nice to a) not have to have to deal with custom local stuff, and b) for everyone else to get the same benefits without first having to re-invent your wheel?

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:09 UTC (Mon) by jude- (guest, #95678) [Link] (1 responses)

Regarding (a), the question would be whether or not the burden of dealing with systemd is more or less than the burden of dealing with my local stuff. Right now, systemd imposes the higher burden (i.e. putting things into cgroups is trivial, but according to [1], systemd will not allow it to remain trivial). Regarding (b), there's not much of a wheel to re-invent. It's just a matter of using the appropriate cgroups commands to start a service (cgcreate, cgexec), and iterating through the cgroup's PID list to stop its processes.

[1] http://www.freedesktop.org/wiki/Software/systemd/PaxContr...

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:46 UTC (Mon) by ovitters (guest, #27950) [Link]

That's a kernel change. Something standard across distributions is IMO easier than custom stuff.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:31 UTC (Mon) by fandingo (guest, #67019) [Link] (7 responses)

As peter-b says, systemd already has the stability promise and a track record of not breaking their APIs. It's not clear that ongoing development is having any negative impact on users of those APIs or alternative implementations (if they exist).

> Once both sets of APIs are stabilized, with systemd serving as a reference implementation, I think a lot of the controversy around init systems will go away. If, for example, OpenRC evolves into something better than systemd, all that would need to be done to make it available would be to ensure it implements the (stabilized) systemd APIs. Then, you would be able to incrementally deploy OpenRC over systemd (possibly using components of both during the transition), without breaking the layers above them.

The big problem with this sentiment is that it's not clear that any other group has the ability to keep up, desire to go in that direction, or commitment to even attempting to be compatible.

To expand, systemd development is happening at a blistering pace. The most notable thing is that they don't seem to need to spend much time redesigning or patching their code. It's all feature development. Upstart *was* the only project that might have had the manpower and resources to make a go at it, but Canonical has decided it's better to use systemd than commit resources to what would be an alternative without any benefits.

Alternatives and choice sound good in the abstract, but when they require serious amounts of work, you have to question whether that effort is better spent elsewhere. There aren't any complaints about the implementation quality of systemd. What's the point of an alternative implementation of the same interfaces if there's no obvious room for improvement?

Lastly, I don't see OpenRC as a potential competitor (let alone alternative implementation) to systemd. OpenRC doesn't even seek to replace /sbin/init. That leads me to believe that it won't provide a cgroup manager, early logging support, LSM integration, or session management. That doesn't even begin to include all of the medium and minor abilities like host name, time, and machine management.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:22 UTC (Mon) by jude- (guest, #95678) [Link] (6 responses)

> The big problem with this sentiment is that it's not clear that any other group has the ability to keep up, desire to go in that direction, or commitment to even attempting to be compatible.

I personally want to implement a separate journald, because the current implementation does not do (and likely will not do) what I need. If the journald-to-systemd-PID-1 API was stable, I would make the replacement, and I wouldn't have to worry about it breaking on the next upgrade.

> To expand, systemd development is happening at a blistering pace.

That is not an excuse to avoid API stability. The Linux kernel keeps a stable userspace API, and it does so while receiving far more patches than systemd.

> The most notable thing is that they don't seem to need to spend much time redesigning or patching their code. It's all feature development.

If this is true, then there is definitely no excuse for a non-stable API, if the API is not changing.

> There aren't any complaints about the implementation quality of systemd. What's the point of an alternative implementation of the same interfaces if there's no obvious room for improvement?

I have one: journald does not gracefully handle log file corruption it causes due to improper shutdown. What I would like it to do is write log records transactionally, so I can tell the difference between someone tampering with my log, and my log being left in an inconsistent state because my laptop crashed (i.e. uncommitted transactions). This will require changing the write protocol, which is non-trivial. Again, I'm willing to do this myself. But, a non-stable journald/systemd API (not to be confused with the external D-Bus API) would mean that I not only have to make the implementation, but also re-write parts of it each time I upgrade systemd. That makes it too cost-ineffective for me.

> Lastly, I don't see OpenRC as a potential competitor (let alone alternative implementation) to systemd. OpenRC doesn't even seek to replace /sbin/init. That leads me to believe that it won't provide a cgroup manager, early logging support, LSM integration, or session management. That doesn't even begin to include all of the medium and minor abilities like host name, time, and machine management.

OpenRC implements a cgroup manager [1]. Whether or not it uses /sbin/init in its implementation is irrelevant, as long as it can reliably start and stop services. Yes, OpenRC is not as mature at this point, but that does not mean that it will not be able to catch up.

[1] http://wiki.gentoo.org/wiki/OpenRC/CGroups

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:31 UTC (Mon) by fandingo (guest, #67019) [Link] (5 responses)

> I have one: journald does not gracefully handle log file corruption it causes due to improper shutdown. What I would like it to do is write log records transactionally, so I can tell the difference between someone tampering with my log, and my log being left in an inconsistent state because my laptop crashed (i.e. uncommitted transactions). This will require changing the write protocol, which is non-trivial. Again, I'm willing to do this myself. But, a non-stable journald/systemd API (not to be confused with the external D-Bus API) would mean that I not only have to make the implementation, but also re-write parts of it each time I upgrade systemd. That makes it too cost-ineffective for me.

You're in luck, and it doesn't require re-implementing journald. I'm at this moment working on a feature to journald that will allow you to do this much easier than you imagine.

I'm unsatisfied with the journald-->remote journald logging, which requires a syslog intermediary. Rather than building in remote logging directly into the journal, which is the obvious solution, I figured that there are other applications that would be interested in this data. (In particular, I was imaging more network-based uses like native loggers for Splunk and LogStash.) The implementation that I'm currently working on exposes log data over KDBus (so practically zero performance impact) to subscribers. Anything can subscribe and get log messages in their entirety. You would be able to set journald.conf Storage=None and have your own persistent writer connect to the system bus and write out your preferred format.

===

> If the journald-to-systemd-PID-1 API was stable

What gives you the impression that it is unstable? The systemd developers include it in the stability promise.

Debian TC vote on init system coupling

Posted Feb 24, 2014 21:59 UTC (Mon) by jude- (guest, #95678) [Link]

I guess I need clarification on what is meant by "The D-Bus interfaces of the main service daemon" and "The internal protocols used on the various sockets such as the sockets /run/systemd/shutdown, /run/systemd/private", as discussed in [1]. I interpreted this to include the interfaces by which systemd-as-PID-1 and journald communicate with one another. They're internal interfaces that applications don't use (as far as I can tell), but the various systemd daemons use.

Is this the same as the Service bus API (listed in [2])?

[1] http://www.freedesktop.org/wiki/Software/systemd/Interfac...
[2] http://www.freedesktop.org/wiki/Software/systemd/Interfac...

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:04 UTC (Mon) by jude- (guest, #95678) [Link] (3 responses)

> You would be able to set journald.conf Storage=None and have your own persistent writer connect to the system bus and write out your preferred format.

This sounds pretty cool, and is definitely something I'd be interested in using :)

My main concern with regards to transaction-like logging semantics is that the processes of updating the log indexes, updating the rolling log hash, and writing the log message do not occur as a single atomic operation. A crash in the middle of logging a message would leave the logs, indexes, and hashes in an inconsistent (but potentially recoverable) state. Does your implementation address this? As in, once you expose a log record over kdbus, are its associated hashes and indexes guaranteed to be consistent?

Debian TC vote on init system coupling

Posted Feb 24, 2014 22:47 UTC (Mon) by fandingo (guest, #67019) [Link] (2 responses)

I appreciate the interest. I'm just getting started on the implementation, so I can't speak with any authority on how the final product will turn out. Plus, who knows what modifications the core developers will like to see before merging.

> My main concern with regards to transaction-like logging semantics is that the processes of updating the log indexes, updating the rolling log hash, and writing the log message do not occur as a single atomic operation. A crash in the middle of logging a message would leave the logs, indexes, and hashes in an inconsistent (but potentially recoverable) state. Does your implementation address this? As in, once you expose a log record over kdbus, are its associated hashes and indexes guaranteed to be consistent?

This requires a little more explanation on what I'm actually trying to do. There's two separate pieces:

1) Modifications to systemd that expose log messages as signals. (Currently, there are methods to query log messages, but that won't be sufficient for constant forwarding.)

2) A service that listens for these signals and does *something* with them. (My something is sending them across the network to a listening service.)

#1 is the only part that necessarily lives within the systemd tree. Anyone is free to make their own #2, and they can even do wildly different things with those messages (like write them out locally in their own format). Furthermore, since #2 is subscribing to a set of signals, multiple services can simultaneously perform #2, and journald has no clue (except that subscribers >0).

Back to atomic operation, consistency, and tampering.

I suppose that it would be possible for journald to make some sort of log_entry_ack() method available that a #2 service could send back to the journal confirming receipt. The question is what's the purpose? Obviously, that ack cannot be forwarded back to #2 or else there is infinite amplification of acks. The only use would be for journald to use it's internal storage mechanism, but then you're dependent on local logs (which I'm trying to avoid and you don't like due to corruption and other concerns).

A #2 service is free to implement any sort of fancy syncing/checkpointing that it wants. The journal messages already contain useful monotonic timestamps that could be immediately written to disk in a durable manner and with the desired anti-tampering protection. That's certainly going to have performance implications, but you should be able to add as much safety as is desired.

KDBus is still in active development, so we'll have to wait to see what guarantees it provides to message. Nonetheless, it's running as part of the kernel, so there should at least be highly reliable signal delivery, possibly even guaranteed. DBus currently (and safe to assume that KDBus will continue to) guarantees message ordering, so that's also helps with consistency.

Lastly, journald has supported forward secure sealing (FSS). I'm not a cryptographer, but my understanding is that FSS is quality anti-tampering implementation. It would not appear to be that much of a challenge to send the sealing key over the system bus, allowing a #2 service to verify the integrity based on the verification key.

Let me know if you have additional questions or comments. As I said, I'm just getting started on implementation, and I don't want to pigeon-hole this idea to my use case, general network log aggregation.

Debian TC vote on init system coupling

Posted Feb 25, 2014 3:06 UTC (Tue) by jude- (guest, #95678) [Link] (1 responses)

It sounds like we're both going to implement part of the same wheel in #1. I sense an opportunity to collaborate :)

I think the biggest challenge to #1 is getting messages out of systemd without causing systemd to block, without filling up too much buffer space, and without losing messages. While signaling message consumers would get them to wake up and grab the next message, you'd have to be very careful to get the next message quickly (even under load), so systemd can free it. Even with (reliable) real-time signals, you'll still need to ensure that systemd holds onto your message long enough for your to get it (without blocking systemd). This is on top of contending with signal handler races, whereby you might consume messages concurrently and out-of-order. I think you might have better luck with a socket or a message queue.

I took a look at the kdbus GitHub. I looks to be designed specifically to address this challenge, so that might be a better long-term option (maybe use a compatibility library to access kdbus, if you need portability).

> A #2 service is free to implement any sort of fancy syncing/checkpointing that it wants. The journal messages already contain useful monotonic timestamps that could be immediately written to disk in a durable manner and with the desired anti-tampering protection. That's certainly going to have performance implications, but you should be able to add as much safety as is desired.

This is quite helpful :) They're already putting the messages in order for us. It looks like you would be able to get away with sending messages out as soon as they're ready (i.e. once you have the hash for the message).

Debian TC vote on init system coupling

Posted Feb 25, 2014 3:35 UTC (Tue) by fandingo (guest, #67019) [Link]

> I think the biggest challenge to #1 is getting messages out of systemd without causing systemd to block

DBus can take care of this.

> without filling up too much buffer space, and without losing messages

I think that this will be the biggest concern. User-space DBus has always been pretty slow, so it hasn't been used for large data transfers. I've inquired with the systemd developers to see if there is (or will be) any method of "expiring" signals (there is a timeout feature for regular method calls) and how that appears to the subscribers. If that is possible, we should be able to query journald for message IDs, although there are certainly lots of considerations to handle if the listener is overwhelmed by messages and cannot query messages from the journal (especially if the journal is only storing to memory).

I'd like to have someone to collaborate with. If you're interested, join the systemd mailing list. I'm going to work a very rough POC and post it to the list in the next couple of weeks to get some feedback.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:17 UTC (Sun) by cesarb (subscriber, #6266) [Link] (6 responses)

> We'll end up in a situation where systemd starts the system but all services are started using plain old sysvinit scripts anyway.

With systemd, you can have both the /etc/init.d script and a systemd unit with the same name. The systemd unit will override the /etc/init.d script, which will be ignored.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:24 UTC (Sun) by AngryChris (guest, #74783) [Link] (5 responses)

That's very true, yes, but I just foresee a situation much like in Ubuntu today, where Upstart has been the init system for years. I don't know what Ubuntu's policy is, but it looks like loose coupling to me. Much of the base operating system is brought up by Upstart jobs (mounting disks, starting the network, starting ttys, etc), but the services (postgresql, apache, etc) are all starting using sysvinit.

In fact, the only services my system starts that are started using Upstart jobs are jobs I wrote myself for 3rd party software that isn't distributed with Ubuntu (subsonic, ventrilo, Tiny Tiny RSS, etc).

While it's possible, I am sure, for maintainers to provide both systemd units and sysvinit scripts in their packages, loose coupling allows "path of least resistance" to take over and I believe that sysvinit scripts is all we're going to end up with for the most part. I think that writing that systemd unit is going to be left to the local administrator.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:33 UTC (Sun) by eean (subscriber, #50420) [Link] (3 responses)

Isn't the situation you describe in Ubuntu partly because of the status quo in Debian? It doesn't sound very ideal...

Debian TC vote on init system coupling

Posted Feb 23, 2014 21:40 UTC (Sun) by vonbrand (subscriber, #4458) [Link] (2 responses)

Given that upstart is Ubuntu native, it makes little sense that the upstream distribution hasn't done the job... It was also the init for several Fedora (and RHEL) versions. To me at least it looks like it was too hard to do right, given that in a short time most services got native systemd units.

Debian TC vote on init system coupling

Posted Feb 24, 2014 1:35 UTC (Mon) by eean (subscriber, #50420) [Link] (1 responses)

Well my point was that the upstream distribution for Ubuntu is Debian, which hasn't used Upstart. In the future, both Debian and Ubuntu will be using systemd.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:22 UTC (Mon) by vonbrand (subscriber, #4458) [Link]

In this particular case it is Ubuntu who is upstream.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:08 UTC (Sun) by anselm (subscriber, #2796) [Link]

I don't know what Ubuntu's policy is, but it looks like loose coupling to me.

To me it looks more like »Patching all the stuff we get from Debian to include Upstart jobs is a huge amount work for us few Ubuntu guys, so let's put it off for a while; the SysV init scripts will keep working in the meantime.«

It stands to reason that, if Debian had adopted Upstart as its default init system, eventually most of the Debian packages Ubuntu is re-using would have come with Upstart jobs, thus saving the Ubuntu people rather a lot of work. With the decision in favour of systemd, it was clear that this wasn't going to happen, so it made sense for Canonical to drop Upstart in favour of systemd, instead of ending up doing the work themselves.

I think that writing that systemd unit is going to be left to the local administrator.

However the coupling vote comes out, Debian package maintainers will most probably be encouraged by policy to adopt patches that add systemd unit files to their packages. There are people within Debian who are actively working on providing systemd unit files for other people's service packages. Now that systemd is slated to be the official default init we can expect this effort to gain further momentum, so it is safe to say that eventually most if not all packages that come with SysV init scripts today will also feature systemd unit files.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:26 UTC (Sun) by tao (subscriber, #17563) [Link] (32 responses)

The "N" option is the option to allow for tight coupling.

Debian TC vote on init system coupling

Posted Feb 23, 2014 19:39 UTC (Sun) by AngryChris (guest, #74783) [Link] (31 responses)

It "allows" for it, it doesn't mandate it. It means "do what you think best." It leaves the decision in the hands of maintainers. It means the landscape of init systems individual packages support will be as fractious as the original debate.

The only init that ends up being fully supported is sysvinit because systemd, upstart, and sysvinit itself all run sysvinit scripts. There's no incentive to write those systemd units for those maintainers who decide they just plain don't want to because ... whatever reason (don't know how to write systemd units, it's Tuesday, Lennart, don't like how the vote turned out, etc).

That N option also allows for loose coupling or no coupling at all. I don't think loose coupling should be an option. If a next generation init system is being adopted it should be adopted whole hog. I'm still surprised that even Ubuntu hasn't adopted its own next generation init system completely. I feel tight coupling should at least be one of the items to vote on. While I understand even then it may not pass (which would disappoint me) it should be an option in my opinion.

Debian TC vote on init system coupling

Posted Feb 23, 2014 20:34 UTC (Sun) by mathstuf (subscriber, #69389) [Link] (14 responses)

A large amount of unit files should be usable directly from other distros (which should, ideally, push them upstream). One of the bullet points for systemd is that distros no longer need to write their own service management glue. Other than that, maintainers need to test that things work. That would be a good topic for a Debian wiki page.

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:18 UTC (Sun) by set (guest, #4788) [Link] (13 responses)

A quick look under /usr/lib/systemd/system/ on my Gentoo box shows a plethora of unit files, which seem to cover all the daemons and such that I have installed. They certainly are not complex, so it seems unlikely that legacy /etc/init.d scripts will somehow persist for long once systemd has been chosen. And I am not even running systemd, Im running OpenRC. (Gentoo optionally supports systemd.)

Debian TC vote on init system coupling

Posted Mar 2, 2014 9:26 UTC (Sun) by elvis_ (guest, #63935) [Link] (12 responses)

My one wish is that all the config files go in /etc, not scattered all over the system. It drives me insane.

Debian TC vote on init system coupling

Posted Mar 2, 2014 14:26 UTC (Sun) by rahulsundaram (subscriber, #21946) [Link] (11 responses)

*user* configuration should go into /etc and it does.

Debian TC vote on init system coupling

Posted Mar 8, 2014 6:25 UTC (Sat) by elvis_ (guest, #63935) [Link] (10 responses)

It is an artificial distinction, unit files are configuration wherever they go. It just makes it harder for users to figure out what is going on when they are hidden away from /etc

I would much prefer unitfile.default and unitfile.localchanges in the same directory.

Debian TC vote on init system coupling

Posted Mar 8, 2014 8:52 UTC (Sat) by zdzichu (subscriber, #17118) [Link] (9 responses)

I personally believe the split is very useful, clearly separating customization done by administrator from distro defaults.
And systemctl make it dead simple to see where from configuration is gathered.

1) unit location is in the second line of status output:
$ systemctl status gdm
gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled)

2) If administrator does customistation by drop-in snippets, all are listed in next line:
$ systemctl status privoxy
privoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities
Loaded: loaded (/usr/lib/systemd/system/privoxy.service; enabled)
Drop-In: /etc/systemd/system/privoxy.service.d
└─after-tor.conf

3) administrator can review his own changes in /etc/systemd/system. To see final unit, ”systemctl cat” will merge all the changes and present the unit from systemd's point of view.

It is actually quite easy and clear to see what's going on.

Debian TC vote on init system coupling

Posted Mar 8, 2014 15:53 UTC (Sat) by raven667 (subscriber, #5198) [Link] (8 responses)

I don't think this person is disagreeing with you about splitting the config files, the only concern, which is a subjective, stylistic one, is that the default files aren't in /etc, so a new administrator is going to look in /etc/systemd for configs and see some empty directories and have to search around more to find where the defaults are stored, if the defaults were also in /etc/systemd, in a subdirectory or whatever then they'd be slightly more discoverable. The downside is that it is more inviting to edit the default files rather than create override files which is going against the grain of how the files are organized, which is probably why it isn't done this way, to lower slightly the chance of a misconfig by someone editing the wrong file.

Debian TC vote on init system coupling

Posted Mar 8, 2014 17:05 UTC (Sat) by rahulsundaram (subscriber, #21946) [Link] (7 responses)

The distinction between /etc/ which is user configuration and /usr which is what the distribution provides isn't merely a stylistic choice. If more programs adopt this convention, it makes it much more easier to understand what customizations have been done or snapshotting etc. There are other ways of handling it including storing /etc in a revision control system and package management specific tweaks but I would prefer if such ideas were baked in as common conventions.

Debian TC vote on init system coupling

Posted Mar 8, 2014 18:15 UTC (Sat) by dlang (guest, #313) [Link] (5 responses)

and systemd continues to throw away system administration conventions 'just because'

Debian TC vote on init system coupling

Posted Mar 8, 2014 18:21 UTC (Sat) by rahulsundaram (subscriber, #21946) [Link]

You are making vague assertions 'just because'.

Debian TC vote on init system coupling

Posted Mar 8, 2014 23:42 UTC (Sat) by anselm (subscriber, #2796) [Link] (3 responses)

Here's your system administration convention:

  • /etc = stuff the local administrator may change
  • /usr = stuff the local administrator shouldn't change
The distribution provides basic systemd units below /usr, and local changes to those systemd units, or all-new systemd units, go into /etc. Systemd figures out how these go together, and provides tools that make it easy to find the effective configuration that is actually being used. It is actually quite nifty.

Exactly how does systemd »throw away« anything? If anything, System V init is ignoring the convention by putting loads of stuff into /etc that is really quite difficult to change without producing a maintenance nightmare.

Debian TC vote on init system coupling

Posted Mar 9, 2014 4:19 UTC (Sun) by dlang (guest, #313) [Link] (2 responses)

Service startup is an administrator level activity, so configurations for service startups should be under /etc, including ones modified by the local administrator and those that are system defaults.

Debian TC vote on init system coupling

Posted Mar 9, 2014 5:13 UTC (Sun) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

Agreed on everything except the last part. There is no particular reason defaults shipped by the distribution needs to be part of /etc at all and systemd is hardly the only program shipping system configuration defaults in /usr. Dozens and dozens of programs do that. In systemd, you can override only what you want to:

Ex:

--
/etc/systemd/system/httpd.service.d/restart.conf

[Service]
Restart=always
RestartSec=30

--

man systemd.unit more details

Debian TC vote on init system coupling

Posted Mar 9, 2014 13:25 UTC (Sun) by anselm (subscriber, #2796) [Link]

This is particularly useful because in the systemd setup the configuration files provided by the distribution are cleanly separated from the local settings made by the administrator.

With something like System-V init, everyone unloads their init files in /etc/init.d, and it is difficult for an administrator to (a) see whether any of these scripts have indeed been changed to better suit local preferences, and (b) maintain such changes across updates from the distributor. Systemd makes this much more obvious because anything under /etc is by definition a local change, and updates to the distributor-provided configuration in /usr do not run the risk of either obliterating the local changes or else requiring a tedious manual merge.

Debian TC vote on init system coupling

Posted Mar 8, 2014 18:29 UTC (Sat) by raven667 (subscriber, #5198) [Link]

Just because a decision is stylistic or subjective doesn't mean it's arbitrary, it means that there are pros and cons of each approach and depending on how you weigh the assumptions you may logically arrive at different answers from other people.

Certainly in this case there are pros and cons of each approach, which I tried to highlight and provide some guesses of possible rationale for each, none of which was "just because".

Debian TC vote on init system coupling

Posted Feb 24, 2014 8:38 UTC (Mon) by palmer_eldritch (guest, #95160) [Link]

>It "allows" for it, it doesn't mandate it. It means "do what you think best." It leaves the decision in the hands of maintainers. It means the landscape of init systems individual packages support will be as fractious as the original debate.

Yes, that's how Debian's supposed to work: trust the maintainers to do what's best for their packages.

Debian TC vote on init system coupling

Posted Feb 24, 2014 13:34 UTC (Mon) by nye (subscriber, #51576) [Link] (14 responses)

>It "allows" for it, it doesn't mandate it. It means "do what you think best." It leaves the decision in the hands of maintainers. It means the landscape of init systems individual packages support will be as fractious as the original debate.

Just so we're clear, you think the tech committee should mandate that all packages must depend directly on systemd?

Because that's what you're saying.
IOW, I don't think you understand what this vote is about.

Debian TC vote on init system coupling

Posted Feb 24, 2014 15:06 UTC (Mon) by raven667 (subscriber, #5198) [Link] (11 responses)

I thought the whole idea of "loose coupling" was to forbid packages from shipping unit files that take advantage of any systemd native features and requiring they ship sysvinit scripts or just operating in sysvinit compat mode for example I thought Ian said that he'd rather GNOME be removed from the archive than have it use logind for console management.

It seems like the idea is to discourage use of kernel features like cgroups, namespaces, priorities, etc. because they are trivial to use with systemd but harder and less standardized to use by hand and requiring every developer to write management frameworks for these feature is additional work than just letting systemd do it, helping keep these features unpopular makes other kernels more competitive with Linux and the software more portable to other systems. If developers start relying on Linux features then competitive kernels are going to have to implement these features or see their available software drop.

Debian TC vote on init system coupling

Posted Feb 24, 2014 16:19 UTC (Mon) by anselm (subscriber, #2796) [Link] (9 responses)

It seems like the idea is to discourage use of kernel features like cgroups, namespaces, priorities, etc. because they are trivial to use with systemd but harder and less standardized to use by hand and requiring every developer to write management frameworks for these feature is additional work than just letting systemd do it, helping keep these features unpopular makes other kernels more competitive with Linux and the software more portable to other systems.

Under the »loose coupling« approach, packages are not supposed to depend on a particular init system. This does not mean that packages are forbidden from using, e.g., systemd features as long as they can also run on a system that doesn't use systemd – it doesn't mean that they must work identically across all available init systems. If they find that they are installed on a system that does in fact run systemd, they are absolutely allowed to behave differently than they would on non-systemd systems, as long as their behaviour on either system would not be considered RC-buggy if it occurred for all users.

For example, there would presumably be nothing to keep a package maintainer from shipping a systemd unit file that made use of all sorts of interesting, convenient, and helpful systemd features, in addition to a very basic System V init script that supported the very minimum of features that would still be compliant with Debian policy for the benefit of other init systems. There would also be nothing wrong with adding a »--systemd« option to a daemon that made it use all sorts of bells and whistles courtesy of systemd, and keeping the normal (clunky) behaviour for use with other init systems.

Finally, GNOME would not be allowed to depend on systemd in order to avail itself of logind, but it would be OK to depend on some (virtual) package that provided the logind DBUS interface as long as there'd be an alternative implementation outside systemd that could be used with other inits (although that implementation would not be required to perform 100% identically).

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:44 UTC (Mon) by raven667 (subscriber, #5198) [Link] (3 responses)

> Finally, GNOME would not be allowed to depend on systemd in order to avail itself of logind, but it would be OK to depend on some (virtual) package that provided the logind DBUS interface as long as there'd be an alternative implementation ...

That's the kind of discouragement I was talking about, the penalty for trying to use logind is that you are now committed to create a re-implementation of logind for people who don't want to use systemd. What kind of software engineer would accept those conditions?

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:00 UTC (Mon) by anselm (subscriber, #2796) [Link] (2 responses)

This is admittedly one of the hairier cases. However, in this case it is worth noting that you don't have to reimplement all of logind, you only need to reimplement those bits that GNOME actually uses, and not even all of those actually need to do anything (although it would sure be nice if they did). For example, you could probably get away with not supporting the nifty multiseat capability that systemd offers.

This approach may in the end still be preferable to supporting non-systemd systems in the actual GNOME code base until who-knows-when. I don't know whether upstream GNOME is planning to go Linux-only (which they would probably have to if they want to rely on systemd exclusively), but if they aren't they'll need something like this anyway.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:00 UTC (Mon) by fandingo (guest, #67019) [Link] (1 responses)

I agree, but here's some additional specificity:

http://www.freedesktop.org/software/systemd/man/systemd-l...

> systemd-logind is a system service that manages user logins. It is responsible for:

> 1. Keeping track of users and sessions, their processes and their idle state

> 2. Providing PolicyKit-based access for users to operations such as system shutdown or sleep

> 3. Implementing a shutdown/sleep inhibition logic for applications

> 4. Handling of power/sleep hardware keys

> 5. Multi-seat management

> 6. Session switch management

> 7. Device access management for users

> 8. Automatic spawning of text logins (gettys) on virtual console activation and user runtime directory management

It seems quite easy to make basically a "no-op" DBus interface to fake logind. #1 is only minimally necessary, although I can't say how much is actually needed and the complexity. #2 is simple enough to invoke a SUID binary for the underlying scripts, although security leaves something to be desired. #3 is completely optional. #4 could be handled through Gnome by configuring custom keyboard shortcut commands (sprinkle in SUID as necessary). #5 and #6 can be ignored. #7 should be simple. Since there's no multi-seat, it's easy to run a udev script for changing owner/group of the devices and sending a DBus signal to Gnome of the hotplug event. #8 can be ignored in favor of fixed gettys. Runtime directories should be kept and could likely be managed by a Gnome startup script (or if necessary something inserted earlier in the login sequence).

There's no doubt that it will be messy and half-baked (especially as I've described it), but I think it could mostly work. Whether anyone would want to run or enjoying running it is another matter.

Debian TC vote on init system coupling

Posted Feb 24, 2014 20:16 UTC (Mon) by anselm (subscriber, #2796) [Link]

Whether anyone would want to run or enjoying running it is another matter.

Yes, but that isn't the point. The point would be to achieve Debian policy compliance and make Ian Jackson happy. With proper documentation of the limitations of the gnome-compatibility-logind package it will probably be possible to avoid having any of those limitations look like RC bugs.

It is fairly safe to say that given a choice of a smooth GNOME user experience based on systemd and a clunky GNOME user experience based on »System V init or OpenRC plus essential-compatibility extras«, most GNOME users will be more interested in the former. If anyone doesn't like this, let them come up with a better non-systemd logind for GNOME; it is not the Debian GNOME maintainers' (or upstream GNOME's) job to ensure that the Debian non-systemd GNOME experience is 100% identical to the Debian GNOME experience based on systemd.

Debian TC vote on init system coupling

Posted Feb 24, 2014 17:56 UTC (Mon) by ovitters (guest, #27950) [Link]

> as there'd be an alternative implementation outside systemd that could be used with other inits

Only if the alternative init is guaranteed to work with all current and future init systems. As soon as there is another init system that keeps cgroups for itself, GNOME "would" require specific init systems and be disallowed.

I specifically asked about this.

I find it madness because the burden is placed on GNOME to execute Debian policy. Not with init system developers. I'm totally ok to ensure that we require stable APIs which can be reimplemented. Current state is that we either depend on some stable APIs or ConsoleKit btw. People keep forgetting about our ConsoleKit support (however buggy it might be because I think in practice nobody in practice uses it :P).

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:33 UTC (Mon) by rodgerd (guest, #58896) [Link]

Here is Ian's most recent explanation offered for the preferred wording for his disingenously-named "loose coupling" approach:

> Russ's text does not contain any
> kind of decision or statement that could be used as a part of a strong
> argument by systemd sceptics in the GNOME community

He has explicitly stated he wold prefer GNOME out of the Debian archive. He has also explicitly stated he believes it is appropriate to require than package maintainers be forced to develop the equivalent functionality for every non-systemd init systems before their packages be allowed in the archive.

Ian appears to be very unhappy with, well, a bunch of things in the free software world, and he appears to feel Debian is his bully pulpit to force various upstreams to do thing differently.

Debian TC vote on init system coupling

Posted Feb 24, 2014 19:30 UTC (Mon) by Wol (subscriber, #4433) [Link] (2 responses)

And has been pointed out, this would ban any 3rd-party utilities whose sole purpose in life was to make using systemd easier ...

It's been pointed out in previous discussions that the whole tight/loose coupling debate is flawed in that both options have unwanted side-effects, and both options either dump a load of work on maintainers, or dictate to upstream telling them what to do ...

Cheers,
Wol

Debian TC vote on init system coupling

Posted Feb 24, 2014 21:09 UTC (Mon) by mathstuf (subscriber, #69389) [Link] (1 responses)

I think there was an iteration with wording that would allow packages specifically intended to work with specific init systems (e.g., a journal viewer, a systemd unit IDE, or a systemd-mode for emacs) since if you want them, you are presumably willing to deal with such a requirement. But if you had a mail client, you couldn't refuse to work under sysvinit because it didn't set the hostname the right way or whatever. Another example would be requiring systemd's socket activation for a service dependency when xinitd could do just as well. I can try and dig out the email from ctte, but there are a *lot* of purple links (it was near the head of the thread). I stopped keeping a close eye on it, so I'm not sure if the wording persisted.

Debian TC vote on init system coupling

Posted Feb 25, 2014 7:19 UTC (Tue) by mbunkus (subscriber, #87248) [Link]

> I think there was an iteration with wording that would allow packages specifically intended to work with specific init systems (e.g., a journal viewer, a systemd unit IDE, or a systemd-mode for emacs)…

That is still the case in the actual vote[1]. Citing the lose coupling wording:

> The exceptions to this are as follows:…
> * special-use packages such as managers for init systems

The cases you've listed would fit this rule and would therefore be allowed to depend on systemd even in the lose coupling case.

[1] https://lists.debian.org/debian-ctte/2014/02/msg00575.html

Debian TC vote on init system coupling

Posted Feb 25, 2014 12:23 UTC (Tue) by nye (subscriber, #51576) [Link]

>I thought the whole idea of "loose coupling" was to forbid packages from shipping unit files that take advantage of any systemd native features and requiring they ship sysvinit scripts or just operating in sysvinit compat mode

Arguably that could be more-or-less the end result of 'loose coupling is required', but the point is that the opposite of loose coupling is not 'tight coupling is required', because that's nonsense - the grand majority of packages are not in any way connected to the init system for there to be any coupling of any kind. The opposite of 'loose coupling is required' is 'tight coupling is *permitted*', which is the option that the GP was complaining about, saying it should be *mandatory*, a requirement which makes no sense at all.

I guess he/she probably wants something like 'any coupling that exists must be tightly to systemd, and no package that cares about its init system should work with anything else', but that's obviously not going to fly, so it's hard to tell.

Debian TC vote on init system coupling

Posted Feb 27, 2014 10:18 UTC (Thu) by AngryChris (guest, #74783) [Link] (1 responses)

I am referring to this, nye:
Debian's technical committee starts another init system vote [LWN]
== dependencies rider version T (Tight coupling) ==

   Software may require a specific init system to be pid 1.

   However, where feasible, software should interoperate with
   all init systems; maintainers are encouraged to accept
   technically sound patches to enable interoperation, even if it
   results in degraded operation while running under the init system
   the patch enables interoperation with.

== dependencies rider version L (Loose coupling) ==

   Software outside of an init system's implementation may not require
   a specific init system to be pid 1, although degraded operation is
   tolerable.

   Maintainers are encouraged to accept technically sound patches
   to enable improved interoperation with various init systems.
So no, you are misunderstanding me. Does the above quote make things more clear?

Debian TC vote on init system coupling

Posted Feb 27, 2014 11:29 UTC (Thu) by nye (subscriber, #51576) [Link]

>So no, you are misunderstanding me. Does the above quote make things more clear?

No, it makes things even less clear, since the T option there is even looser than the N option you are complaining is too loose.

That T option specifically encourages loose coupling where feasible, which I would have expected to upset you even more than allowing maintainers to choose as they see fit.

Debian TC vote on init system coupling

Posted Feb 24, 2014 2:55 UTC (Mon) by plugwash (subscriber, #29694) [Link]

My guess would be it's not on there because no TC member has decided they support it.

BTW From reading debian-devel it seems like there are a number of people working on the problem of moving away from sysvinit style init scripts while still keeping support for multiple init systems.

Debian TC vote on init system coupling

Posted Feb 23, 2014 21:21 UTC (Sun) by vonbrand (subscriber, #4458) [Link]

The only option that makes any sense for Debian is A. But that has to be done anyway... I don't see the point of this (except for drawing out/kicking the decision to a GR).

Debian TC vote on init system coupling

Posted Feb 23, 2014 22:06 UTC (Sun) by abket (guest, #95676) [Link] (1 responses)

N is the only reasonable choice.

Almost all distributions have now adopted systemd as default, so almost everyone will run it, so we may as well take advantage of it.

Even if they were to choose L, almost nobody would test running without systemd (because everyone will use systemd), so in practice it will likely break often.

Debian TC vote on init system coupling

Posted Feb 24, 2014 8:07 UTC (Mon) by jezuch (subscriber, #52988) [Link]

> Even if they were to choose L, almost nobody would test running without systemd (because everyone will use systemd), so in practice it will likely break often.

I suppose the maintainers of non-Linux kernels will test run with something else than systemd, but yes, it's nearly impossible to test for everything with such limited manpower they have... (They also have the users, but pushing testing down to your users is not always such a great idea.)

Debian TC vote on init system coupling

Posted Feb 24, 2014 6:36 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (11 responses)

And the option 'N' has won, if I'm not too much mistaken.

Debian TC vote on init system coupling

Posted Feb 24, 2014 8:40 UTC (Mon) by rodgerd (guest, #58896) [Link] (10 responses)

Given the early stages of this vote were initiated by the proposer suggesting if it didn't go the way he wanted there'd be a GR I suspect it's only the opening skirmish.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:17 UTC (Mon) by hadrons123 (guest, #72126) [Link] (1 responses)

I think this current voting can only be over-rid by 2:1 majority unlike the default init decision.

Debian TC vote on init system coupling

Posted Feb 24, 2014 15:33 UTC (Mon) by plugwash (subscriber, #29694) [Link]

N is the TC making no decision and A is non-binding advice so AIUI in either of those cases a GR making a statement of the projects position on init system coupling would not be overrriding the TC.

L has an explicit provision allowing it to be overrideen by a GR with simple majority.

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:18 UTC (Mon) by AngryChris (guest, #74783) [Link] (7 responses)

Ah, that explains why tight coupling isn't an option. I missed that it was Ian Jackson who proposed this vote and I think we're all aware of his position on systemd. I hate to say it looks like he's trying to sabotage things, but could you see him failing to propose tight coupling were Upstart the decision?

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:22 UTC (Mon) by kugel (subscriber, #70540) [Link]

Option A (Advice: sysvinit compatibility in jessie and multiple init support) comes close to tight coupling.

Nobody wants to enforce tight coupling. The question is whether to allow it optionally. Therefore you advice multiple init support but DDs can ignore this advice on their own judgement and go for tight coupling (presumably, with reason).

Debian TC vote on init system coupling

Posted Feb 24, 2014 9:38 UTC (Mon) by mbunkus (subscriber, #87248) [Link] (2 responses)

Ian Jackson is certainly not trying to sabotage anything. His concerns are very real. Before this vote there has been a lively discussion about the exact wording of the ballot and all the options it contains. There have been amendments. All of this by all members of the TC, not just the perceived anti-systemd camp. Yes, I've taken the time to read pretty much everything on the ctte list.

I, as a very happy systemd user and proponent, am glad that there are people like Ian Jackson who look at the bigger picture and engage in a reasonable discussion on the advantages and disadvantages of concentrating on single init system. In a situation as emotionally charged as this debate it's relieving to see such an in-depth discussion among the TC members, and I regard all of them very highly for it.

Debian TC vote on init system coupling

Posted Feb 24, 2014 10:09 UTC (Mon) by ovitters (guest, #27950) [Link]

I agree that his concerns are real, but I don't find his way of dealing with the concerns very reasonable.

He doesn't want any tight coupling. I've invited various times on behalf of GNOME just to talk to us directly (in generic to ctte, in private and directly to Ian). I've asked various times to suggest concrete solutions (because I don't see them). All of that has been ignored.

Instead over and over again it is suggested that "upstreams are pushing systemd" (not true and it is starting to become questionable why this is still being repeated after all the communication from at least GNOME side), stuff about purposely not wanting to look at concrete examples (I find this utterly amazing) and something like "upstream has to listen to Debian" (while they're not responding when invited).

I see that Ian has great doubts, but when invited to talk about it, don't go hiding in a corner and cry wolf. My patience is getting thin. I expect that the vote won't go his way, but I tried over and over again that this vote is unneeded anyway. People do what is reasonable, if Debian decides on something I'll follow or not because of the reasoning, not because of "Debian says so" (that is not going to convince anyone).

IMO, it is becoming stop energy and that'll be ignored. He's more than capable to do things (provide/write alternative implementations, engage in technical discussion, etc). Same for other CTTE members. That is a fruitful way of dealing with this (technical work or discussion).

Now systemd is not just a GNOME issue, I know because I/we talk about it a lot it just seems to be viewed as a problem solely with us. Then you get the "GNOME is bad" and "you don't need that functionality" kind of reactions (not talking about Ian). But that's terribly easy way of dealing with things.

I don't see this vote going anywhere. It'll go to a GR anyway. While all the time could be used to properly explain what you want concretely to the various upstreams. Now possibly after 2.5 years we'll get a short GR summary stating like "you cannot depend on systemd" which we'll respond with as "we don't" and "whatever" (especially after trying to start a communication so many times).

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:51 UTC (Mon) by rodgerd (guest, #58896) [Link]

> His concerns are very real

His concerns may be very real, but they (a) are heavily obscured by his tactics and (b) seem to go beyond Debian and into the broader free software world, as far as I can ascertain them. But I'm not sure I can, because of (a).

Debian TC vote on init system coupling

Posted Feb 24, 2014 14:13 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

Not this time. This ballot was drafted cooperatively by multiple CTTE members with enough discussion.

And the outcome is good, IMO.

Debian TC vote on init system coupling

Posted Feb 24, 2014 14:49 UTC (Mon) by martin.langhoff (subscriber, #61417) [Link]

Agreed. I hope folks are smart enough to avoid calling a GR.

As others have posted here, even if you don't like systemd, once it has been chosen, you have to let folks implement it without unnecessary entanglements.

For all its faults, systemd is way better defined than SysV scripts; has a couple of APIs with a promise of stability and systemd authors and the many implementors involved have tamed the problem space. IOWs, it will be easier to replace systemd than it was to replace the jungle of SysV scripts.

... and that upstart implementors never tamed SysV is, in my analysis, their largest failure. There were reasons, I guess, with Ubuntu being downstream of Debian and not wanting to carry all those patches. The end result, however, was that upstart did not get to maturity.

Hats off to all the folks who rowed the boat hard to get systemd unit files all across the early distros (fedora et al), and pushed on systemd to mature early while it was still malleable. It worked.

[ I have worked extensively with both upstart and systemd. Like many others, working up close with it made me overcome my early dislike of systemd. It looks odd at the beginning, and the author might rub you the wrong way. But it is the right design, and it has the momentum. Not unlike git. Get over it -- the best solution, not the sweetest soul, wins. ]

Debian TC vote on init system coupling

Posted Feb 24, 2014 18:50 UTC (Mon) by rodgerd (guest, #58896) [Link]

> but could you see him failing to propose tight coupling were Upstart the decision?

He voted UL ahead of UT in his original megaballot, so I don't think this is a particularly fair characterisation.

Next flame war, please...

Posted Feb 24, 2014 22:18 UTC (Mon) by bojan (subscriber, #14302) [Link] (6 responses)

OK, I'm officially bored with systemd march on Debian. How about something new. Like... Converting Debian packaging to RPM? That is bound to generate some good flame wars! ;-)

Next feature to import

Posted Feb 24, 2014 23:25 UTC (Mon) by bluss (guest, #47454) [Link] (5 responses)

Next feature to import from Fedora could be the "UsrMove": merging /bin with /usr/bin etc. I'd like to see that.

Why stop there?

Posted Feb 25, 2014 1:37 UTC (Tue) by bojan (subscriber, #14302) [Link] (4 responses)

While at it, they can also rename /lib32 to /lib and /lib to /lib64. ;-)

Why stop there?

Posted Feb 25, 2014 2:18 UTC (Tue) by HelloWorld (guest, #56129) [Link]

Debian solved that problem a long time ago. 32 bit x86 libraries live in /usr/lib/i386-linux-gnu, 64 bit ones in /usr/lib/x86_64-linux-gnu.

Why stop there?

Posted Feb 25, 2014 2:19 UTC (Tue) by mathstuf (subscriber, #69389) [Link] (2 responses)

Debian already solved this with multiarch (e.g., lib/amd64 or something, probably the ABI triplet).

Once you get /usr/bin and /bin merged, let's get /usr/bin and /usr/sbin merged :D .

Why stop there?

Posted Feb 25, 2014 7:46 UTC (Tue) by mbunkus (subscriber, #87248) [Link] (1 responses)

This is not so uncommon anymore. On my Arch they've been merged last year:

[0 mbunkus@chai-latte ~] ls -ld /{s,}bin /usr/{s,}bin
lrwxrwxrwx 1 root root 7 31. Mai 2013 /bin -> usr/bin/
lrwxrwxrwx 1 root root 7 31. Mai 2013 /sbin -> usr/bin/
drwxr-xr-x 1 root root 81396 21. Feb 15:53 /usr/bin/
lrwxrwxrwx 1 root root 3 31. Mai 2013 /usr/sbin -> bin/

Why stop there?

Posted Feb 25, 2014 8:11 UTC (Tue) by mathstuf (subscriber, #69389) [Link]

Yeah, I would have guessed someone had done it; may as well be Arch. I run Rawhide and some of the stuff Arch does scares me (Python3 as default…).

Mailing list archives?

Posted Feb 25, 2014 17:54 UTC (Tue) by louie (guest, #3285) [Link]

What is up with Debian's Mhonarc and gmane archives? Are they both busted or is it just me?

Debian TC vote on init system coupling

Posted Feb 25, 2014 22:22 UTC (Tue) by josh (subscriber, #17465) [Link] (1 responses)

With 7 of 8 votes now in, the outcome is effectively determined, and N (the TC refusing to rule on the issue) will win. It probably won't be declared until the final vote comes in, because it's technically still in doubt: depending on the final vote, the result may or may not require a casting vote, but N will win either way assuming the holder of that casting vote casts it consistently with their main vote.

See https://lists.debian.org/debian-ctte/2014/02/msg00585.html and https://lists.debian.org/debian-ctte/2014/02/msg00586.html .

Given that nobody *asked* the technical committee to rule on the question of "init system coupling" (only on what init system Debian should use), and it only came up because some members of the TC took issue with it themselves, refusing to rule on the unasked question seems like a good outcome here.

Debian TC vote on init system coupling

Posted Feb 26, 2014 13:48 UTC (Wed) by Jonno (subscriber, #49613) [Link]

> Given that nobody *asked* the technical committee to rule on the question of "init system coupling" (only on what init system Debian should use), and it only came up because some members of the TC took issue with it themselves, [...]

Actually, the question *was* formally asked by a constitutionally delegated Policy Editor (Russ Allbery), though only after bystanders asked the TC to defer to the Policy maintainers on the matter.


Copyright © 2014, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds