|
|
Log in / Subscribe / Register

Nobody expects the spanish plonk squad!

Nobody expects the spanish plonk squad!

Posted Nov 28, 2014 22:06 UTC (Fri) by dlang (guest, #313)
In reply to: Nobody expects the spanish plonk squad! by mathstuf
Parent article: The Grumpy Editor's guide to surviving the systemd debate

>> The accuracy of the principled argument is made quite clear by LP's "wakeup call" to Gentoo about udev. Whether or not they are actively trying to take a dominant position in the Linux "ecosystem" to force changes downstream, the end result of their "we broke it, you fix it" attitude is the same.

> I read that as more of "we aren't going to maintain this old code [netlink] anymore, it are going to use kdbus instead; if this bothers you, do something about it".

Well, that's a large part of the problem. Deliberately breaking existing users because you don't want to bother maintaining the code any longer.

This is the opposite of the stable external API guarantee that the kernel team maintains where they only remove something if nobody is using it or if it's got serious security holes they can't fix.

This is the attitude towards compatibility that makes people grumble and declare that Linux will never be a serious desktop.


to post comments

Nobody expects the spanish plonk squad!

Posted Nov 28, 2014 22:40 UTC (Fri) by anselm (subscriber, #2796) [Link] (8 responses)

Is udev's netlink-based communication protocol actually part of an "external API" of udev? Or is it essentially an internal implementation choice, the sort of thing a kernel developer would feel free to change at very short notice if any? Which non-udev programs make use of it?

Nobody expects the spanish plonk squad!

Posted Nov 28, 2014 22:47 UTC (Fri) by dlang (guest, #313) [Link] (5 responses)

well, if it's used by things outside of udev, then it's an "external API", and since LP is calling out that Gentoo is going to have to change things as a result, it sure seems like things other than udev are affected.

On the other hand, if you ignore the claims about systemd being modular and consider udev just an internal component of systemd, and users have to go all-or-nothing with systemd, then it could be an "internal API" of systemd.

But that would make the claims that systemd isn't forcing you to use everything a lie.

Nobody expects the spanish plonk squad!

Posted Nov 28, 2014 23:05 UTC (Fri) by anselm (subscriber, #2796) [Link] (4 responses)

well, if it's used by things outside of udev, then it's an "external API", and since LP is calling out that Gentoo is going to have to change things as a result, it sure seems like things other than udev are affected

I think Lennart called out Gentoo because they forked udev (IIRC mostly because they didn't like that the udev and systemd repositories were merged). AFAIK the netlink-based interface is what the kernel uses to talk to udev, so once that is replaced by kdbus then the Gentoo version of udev will also have to start using kdbus (either by adopting the userspace kdbus binding that is part of systemd, which does not force you to take on anything else from systemd, or by implementing another kdbus binding), or else the Gentoo people will need to maintain their own version of the kernel side of things, too.

On the other hand, if you ignore the claims about systemd being modular and consider udev just an internal component of systemd, and users have to go all-or-nothing with systemd, then it could be an "internal API" of systemd.

I don't think that systemd's degree of modularity has anything to do with the problem at hand. Udev is really quite independent of systemd, and AFAIK the netlink-based communications protocol is used by udev but by nothing else in systemd. As long as this is only used by udev and the kernel, it remains an internal interface, and it is reasonable to change it if that makes technical sense. Hence my question whether anything outside of udev uses it (and Gentoo's udev fork doesn't really count).

Nobody expects the spanish plonk squad!

Posted Nov 29, 2014 0:39 UTC (Sat) by mgb (guest, #3226) [Link]

> Hence my question whether anything outside of udev uses it (and Gentoo's udev fork doesn't really count).

Will your proposed kernel changes break eudev?

Nobody expects the spanish plonk squad!

Posted Dec 10, 2014 16:32 UTC (Wed) by nix (subscriber, #2304) [Link] (2 responses)

Sorry, last I encountered it, udev was userspace, right? And there are other things that do what udev does (Gentoo's fork, eudev, perhaps mdev?). That makes this a userspace/kernel ABI in my eyes, with multiple users, making breaking it verboten. What's worse they are multiple boot-critical users!

Nobody expects the spanish plonk squad!

Posted Dec 10, 2014 20:53 UTC (Wed) by mathstuf (subscriber, #69389) [Link] (1 responses)

It's backwards. My understanding: the kernel and udev currently communicate over netlink. Newer udev will only talk over kdbus (netlink isn't going away in the kernel) and kdbus requires some userspace process to set up the bus (which systemd currently does). Gentoo can fix this by writing their own kdbus setup tool (which is what the warning was about).

Nobody expects the spanish plonk squad!

Posted Dec 11, 2014 17:04 UTC (Thu) by nix (subscriber, #2304) [Link]

Ah, so this is 'newer udev will require a bleeding-edge kernel yet again', not 'we're going to break everyone using older udev and force them to upgrade'. So I'm not as annoyed as I might be, and Al is probably more annoyed...

Nobody expects the spanish plonk squad!

Posted Nov 29, 2014 0:10 UTC (Sat) by viro (subscriber, #7872) [Link] (1 responses)

You still don't get it. Incompatible changes in udev did happen. _Exactly_ because somebody thought that there is such a thing as application-private kernel API. And it was a fucking disaster.

These days any kernel developer who would even try to pull off something like that would get painfully educated on the reasons why You Don't Fucking Do That(tm).

It doesn't matter how many programs use it. One boot-critical is more than enough. Quite a few of us avoided udev for years after that stunt, exactly because it made our lives very, very unpleasant *and* udev developers tried to pull off that kind of indignant "but it's just a private API, how can you say that we don't get to change it at whim?" shit, making everyone suspect that they fundamentally didn't get it.

We can keep several kernel images and boot one of them. Easily. We can not do the same with the userland programs. And you don't get to assume that your Great! Shiny! Change! renders all previous history instantly obsolete and uninteresting.

Nobody expects the spanish plonk squad!

Posted Nov 29, 2014 3:15 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link]

As I understand, nobody is going to rip off the netlink API from the kernel. They simply plan to rip it from udev. Your old boot system will still work.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds