Hacker News new | ask | show | jobs
by peveechi 4092 days ago
I was about to ask you to walk us through the thought process that lead you from this video to that strange conclusion. But after reading your last few comments, this seems quite pointless.
1 comments

How nice of you to create a new account to ask me such a favor. you systemd guys sure get around. I'll be happy to oblige.

as GNOME requires SystemD to operate (battery, login, logging, etc, udev) [1],

and as SystemD is only a Linux technology (more specifically, a Red Hat Technology), and BSD would either have to a) recreate systemd in their software stacks, or b) make a shim so that GNOME will continue working[2],

and as every *BSD conference talk in the last year has at least one derogatory mention of systemd therein,

Therefore, the fact that we can now use GNOME under OpenBSD is thanks to the hard work of a lot of people who really do not like systemd, and are working extra hard to ensure it doesn't infect their OS.

1. https://blogs.gnome.org/ovitters/2014/09/07/systemd-in-gnome...

2. http://undeadly.org/cgi?action=article&sid=20140915064856

One of your premises seems to be equal to your conclusion. So I still don't see, how this video has anything to do with it.
This video is a sign of the systemd shims (workarounds) getting to the point where GNOME runs fully in OpenBSD.

now, if they liked SystemD, why would they create shims, rather than reimplement it in OpenBSD?

This video is a sign that either the OpenBSD/Gnome-porters are sucessfully maintaining the old non-systemd codepaths (as e.g. this https://mail.gnome.org/archives/desktop-devel-list/2015-Janu... message from the guy who made the video indicates), or that they have implemented enough of the systemd-interfaces to get Gnome running.

What exactly do you mean by "reimplement it in OpenBSD" and what would be the difference to the current approach you call "shims"?

all the non-systemd codepaths were explicitly removed in gnome 3.14. two revisions ago.

As GNOME 3.14 is quite different in many incompatible ways with 3.16[1], the fact that they're making that old code work, and updating it to 3.16 is not exactly a trivial task.

they haven't implemented any systemd interfaces. they have essentially redirected the systemd calls to proper utilities supported on OpenBSD (such as ntpd), which is defined as a "shim"; GNOME thinks systemd is there, but in reality, the apps that handled stuff before systemd are still handling everything while lying to GNOME.

1. https://blogs.gnome.org/ovitters/2014/09/07/systemd-in-gnome...

(Sorry for the long delay; new accounts are somewhat throttled.)

The article you link to doesn't support your claims. It explicitly states that Gnome 3.14 (which, btw, is only one revision ago, since Gnome uses the old Linux kernel version scheme) would still support ConsoleKit (i.e. a non-systemd codepath). In fact, Gnome 3.16 still supports ConsoleKit, at least in gdm (see the configure-option here [1]). Can you point out commits where non-systemd support was removed in Gnome 3.14?

And what exactly do you mean by "redirected the systemd calls"? Gnome calls certain methods on certain D-Bus objects; if there is a process on OpenBSD that receives these method calls and acts appropriately, why not call that implementing that particular interface?

I don't want to diminish the amount of work that went into this port. I find it really great that someone is doing all that work. But I don't think that the picture you paint of this is entirely accurate. You assume that the OpenBSD-guys hate systemd. That might be the case (it probably is for a lot of them), but I don't think that this has anything to do with this video. If the video e.g. had shown that they removed any reference to systemd whatsoever from the Gnome code and inserted some sneering comments, I might agree with your conclusion. But it simply shows that they succeded in porting Gnome 3.16 to OpenBSD.

How would this video have had to look, to persuade you of the opposite (i.e. that there were OpenBSD developers that love systemd)?

1. https://git.gnome.org/browse/gdm/tree/configure.ac?id=3.16.0...

> all the non-systemd codepaths were explicitly removed in gnome 3.14. two revisions ago.

It's a bit odd that you are writing this while citing a blog that said that removing ConsoleKit (non-systemd) code was not done in Gnome 3.16 ?

But let's accept that for the sake of the argument.

It looks like GNOME wants to depend on systemd's public and stable DBus interfaces; this is good because it gets GNOME out of having to maintain OS portability gunk, and puts the burden of maintaining said gunk on other projects, i.e., the systemd project on GNU/Linux.

The goal is rather similar to what the OpenBSD community is doing in its applications, in e.g. the OpenSSH project, which (in its upstream release) only runs on OpenBSD, making maintenance easier.

There is a difference though between the two approaches: while OpenSSH has a downstream project OpenSSH-portable that patches the source code to replace OpenBSD specific calls with portable calls or #ifdefs, the GNOME strategy is to depend on abstract APIs that are implemented by some lower layer in the OS.