Live data from Hacker News

Shall we fork Debian?

debianfork.org

241–250 of 284 posts

Re: Shall we fork Debian?

#241
post #9

Earlier quoted context omitted.

You listed two desktop environments, neither of which are of interest to sysadmins. Eg. I run an Openstack cluster and do not care if there are gnome or kde packages available. I don't particularly like systemd and would be happier not having to deal with the compatibility and/or conversion issues for what I perceive as minimal benefit.

I'm in a similar position with regard to those (or any) desktop features not being relevant for most of the systems I administer. I'm kind of irritated about having to learn a whole set of new things. I do recognise that there are some benefits for my use case in systemd. The desktop stuff aren't the only things that systemd brings. More than that though, is the fact that it's going to be the new default everywhere.…

"You'll be fighting against ... the default of every bit of third party software targeted at your distro."

Postgres and Apache? Seriously?

Re: Shall we fork Debian?

#242
post #157
post #151

Earlier quoted context omitted.

Show me where you do configtest in the systemd version? (you can't - it doesn't take custom EXEC commands)

Config test is a human operation; you manually do it after you've edited the configuration, and if you've forgotten to do it then the next start will crash. It makes no sense to automate configtest.

> It makes no sense to automate configtest.

Sure it does! It's a belt-and-suspenders approach that ensures that human error won't cause your system services to become unavailable. Why use a computer unless it automates tedious tasks for you and remembers to do things that you might forget?

The Gentoo OpenRC BIND 9 init script runs named-checkconf every time you try to start or stop the BIND service or reload its configuration files.

This automatic check has saved me a bunch of time and mental overhead over the years. The auto-check has also prevented some downtime when I -inevitably- fat-fingered something in a config file.

Re: Shall we fork Debian?

#243
post #218
post #159

Earlier quoted context omitted.

You can add ConditionPathExists= or ConditionPathIsDirectory= to a Unit to check if one or more directories exist. You can also substitute the userid into commands with %U, so you could have it always chown before running the command, as you can have multiple ExecStart= directives. http://www.freedesktop.org/software/systemd/man/systemd.serv... and http://www.freedesktop.org/software/systemd/man/systemd.unit...

That sounds a bit like reinventing the wheel. Can you use the result of external scripts to conditionally launch processes?

`ExecStartPre=` will do that.

Re: Shall we fork Debian?

#244
post #88
post #76

Earlier quoted context omitted.

It's dicey to obtain key material from external hardware because...?

Shell scrips have issues with race conditions (which is why they aren't setuid) and just generally create a lot of points of exposure.

What?

Racy code has issues with race conditions. Any error in setuid executables can be very dangerous, so they are strongly discouraged. However, once you've decided that you have to write a setuid program, there's no particular reason to not write it in a scripting language.

As a datapoint, the KDE folks think that using scripting languages for setuid executables is okay:

/usr/lib/kde4/libexec/fileshareset: setuid Perl script, ASCII text executable

Re: Shall we fork Debian?

#245
post #216
post #161

Earlier quoted context omitted.

And what happens when that single file doesn't work? The one time I had to deploy a custom service using systemd, there was no feedback as to why it wasn't working with service start. No error message, no guidance on how to debug online, no indication of where to look. By contrast adding it to a shell script just worked.

You can strace pid1 too. If start-via-systemd doesn't work, hack around it with a script and report it as a bug or write to the mailing list.

Strace is a tool of last resort.

An init system should have a verbose mode that tells you exactly what steps are being taken to start a service and what the result of each step is. Maybe this will come later, but -given the guy's history- it won't be written by Poettering.

Re: Shall we fork Debian?

#246

Am I the only person who prefers systemd? Maybe because it's the only init system I've managed to get my head around. Other init systems seem so complicated. A config file vs a bash script is far easier and they all seem to require forking. I only use Linux for servers so I may be unaware of a sane init system that works like systemd but isn't systemd. Until something like that appears, I'll stick to systemd.

I don't think you're wrong. I imagine all these people saying systemd is so awful are just worried that their hard-earned sysvinit knowledge will become obsolete and that new users won't have to go through silly bash scripts (that are totally secure of course - no chance of security vulnerabilities in something as ancient and wtf-free as bash). Instead they'll have something sane like this: [Unit] Description=Apache…

At this point I don't really want to touch the systemd argument with a barge pole anymore, but I think it's worth saying that I'm a lot more comfortable with the sysvinit script.

After a lot of years of maintaining and editing and writing configuration files for more Linux daemons and applications than I can remember, my least favorite are the ones like the top example, that have a pile of predicates and values. They require careful reading of documentation to look for any traps and gotchas (the documentation always has a fine print section buried deep within it somewhere that says, "oh, by the way, you can't foo with a bar setting because that will cause a baz to foom"). You have to either memorize a bunch of variables specific to a single application, for a ton of applications, or you have to spend time referencing documentation (and re-reading it for those gotchas) every time you open the config file. There's also the nuisance of new predicates in later versions, hidden and undocumented predicates, and on and on.

It's just a pain in the ass. Really, as much as I love Postfix otherwise, it is the poster child for why this approach sucks monkey. Here's the documentation for Postfix: http://www.postfix.org/documentation.html ... let me know when you've read and understood all of it. :-)

But the sysvinit file on the other hand is easy. It looks uglier, but only to people that aren't accustomed to shell scripts. I can take one look at it and know what most of it does, because all other shell scripts do similar things.

And here's the best part! If the shell script seems to be broken for some reason, I can debug it! I can stuff some stdout or stderr in there; I can call my own binaries or reference other shell scripts; I can do programmer-y things to it!

The default response here is usually, "well, we'll just keep the configuration file simple then." But that never happens. I would bet a donut that, years and years ago, some Postfix developer said, "the sendmail configuration system sucks, we'll do our own, and we'll just make sure it stays simple."

But software never gets simpler. It's a steadfast law, a more universal rule of reality than the arrow of time. Software only moves in one direction, and that's towards more complexity. The safe bet is that ten years from now, those systemd configuration predicates will have exploded 10-fold, with lots of hairy edge cases and gotchas and hidden or poorly documented interactions, because that's what always happens. A shell script on the other hand will still be editable; the Apache sysvinit script you posted doesn't do anything that a shell script couldn't do 15 years ago.

I'm really beginning to think this whole systemd thing is actually a culture war between two different generations of sysadmins. The older, bearded generation wants to stay with the thing that has always worked out for them in the end, and the younger, nicer-smelling generation wants to do something new because they haven't made enough mistakes yet.

Re: Shall we fork Debian?

#247
post #5

How does forking Debian solve anything? The issue is that Gnome, KDE, and other software requires systemd. You need to fix/maintain their compatibility with other init systems. Then it is easy for Debian user to switch init systems.

KDE doesn't require systemd. The KDE folks are still concerned about operating on the BSDs. Some of them are still concerned about running on Windows [0] and OS X [1].

Elias Probst:

"Reading the comments shows a lot of misconceptions about +Martin Gräßlin's proposal [to use systemd features to make Plasma startup under Wayland a little bit simpler]:

* KDE SC will still allow to use the old-way to startup a KDE session, as it will still ship the X11-way of doing it for [BSDs]. If you want to use a modern Wayland/systemd stack you're fine by using the defaults. If you don't want to: use the old X11/script startup stack.

* KDE SC won't enforce using systemd as init-system by this change. Instead, it will use parts of systemd which are completely independent from the init-system being used to handle the startup of the KDE session. If systemd is being used as an init-system, that's a plus because of some systemd integration effects, but that's all about it."

via: https://plus.google.com/+MartinGr%C3%A4%C3%9Flin/posts/GMtZr...

[0] http://mail.kde.org/pipermail/kde-windows/2014-October/threa... [1] http://mail.kde.org/pipermail/kde-mac/2014-October/thread.ht...

Re: Shall we fork Debian?

#248
post #156

Earlier quoted context omitted.

I'm not sure how to make strace pid 1 :-) And I'm not quite ready to abandon Debian yet. I've created a virt-install script which reproduces the problem reliably (honestly all it does is install jessie, then lxc-docker). Hopefully my workload eases and I can put this trivially reproducible thing into a bug report somewhere (debian? systemd? docker) for somebody to see what's going on. FWIW systemctl start docker work…

Sounds like lxc-docker.service simply wasn't enabled. "enabling" is basically creating a symlink from multi-user.target.wants to lxc-docker.service. This is done by 'systemctl enable lxc-docker.service' once that service declares WantedBy=multi-user.target in its [Install] section. Other symptoms that would indicate this was the problem would have been that 'systemctl status lxc-docker.serivce' would have said "Loade…

Surely Docker, Inc. isn't shipping a broken-out-of-the-box docker.service file... I had assumed this worked for everyone but debian jessie users.

Oh dear, that seems to be the case... https://github.com/docker/docker/commit/053c3557b3198466ecfb...

Re: Shall we fork Debian?

#249
post #241

Earlier quoted context omitted.

I'm in a similar position with regard to those (or any) desktop features not being relevant for most of the systems I administer. I'm kind of irritated about having to learn a whole set of new things. I do recognise that there are some benefits for my use case in systemd. The desktop stuff aren't the only things that systemd brings. More than that though, is the fact that it's going to be the new default everywhere.…

"You'll be fighting against ... the default of every bit of third party software targeted at your distro." Postgres and Apache? Seriously?

Probably not software like Apache and Postgres, no.

But when systemd is the default init system on almost every Linux distribution, new software will have the systemd integration written first and tested most.

Re: Shall we fork Debian?

#250
post #216
post #161

Earlier quoted context omitted.

And what happens when that single file doesn't work? The one time I had to deploy a custom service using systemd, there was no feedback as to why it wasn't working with service start. No error message, no guidance on how to debug online, no indication of where to look. By contrast adding it to a shell script just worked.

You can strace pid1 too. If start-via-systemd doesn't work, hack around it with a script and report it as a bug or write to the mailing list.

you're seriously suggesting strace as an acceptable form of troubleshooting?

Don't get me wrong, I love to bring out strace and will use it to solve all sorts of problems, but it really shouldn't be necessary use it near the start of troubleshooting.

Post reply on HN