|
|
Subscribe / Log in / New account

Udev and systemd to merge

From:  Kay Sievers <kay-AT-vrfy.org>
To:  linux-hotplug-AT-vger.kernel.org
Subject:  The future of the udev source tree
Date:  Tue, 3 Apr 2012 18:15:13 +0200
Message-ID:  <CAPXgP110RNdjNqJtd7w=oSbLVM9XcspM2SMD_SjE8JmktEBtbQ@mail.gmail.com>
Archive‑link:  Article

We are about to merge the udev sources into the systemd source tree.
After that, the next version of systemd will continue with udev’s
version numbering, i.e. jump immediately from 45 to 184.

After udev is merged into the systemd tree you can still build it for
usage outside of systemd systems, and we will support these builds
officially. In fact, we will be supporting this for a long time since
it is a necessity to make initrds (which lack systemd) work properly.
Distributions not wishing to adopt systemd can build udev pretty much
the same way as before, however should then use the systemd tarball
instead of the udev tarball and package only what is necessary of the
resulting build.

Today, ‘Init’ needs to be fully hotplug-capable; udev device
management and knowledge about device lifecycles is an integral part
of systemd and not an isolated logic. Due to this, and to minimize our
administrative workload, as well as to minimize duplication of code,
and to resolve cyclic build dependencies in the core OS, we have
decided to merge the two projects.

The udev built from the systemd source tree will stay compatible with
non-systemd init systems for a long time. This change is mostly a
detail of the build scheme, rather than a change of direction or
interfaces. Accordingly, the libudev API is untouched by these build
infrastructure changes. For us, compatibility is key.
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html




to post comments

Udev and systemd to merge

Posted Apr 3, 2012 16:44 UTC (Tue) by sztanpet (subscriber, #60731) [Link] (1 responses)

Preemptive comment before the pitchforks come into the picture:
BASICALLY NOTHING WILL CHANGE

Dependency on DBUS?

Posted Apr 9, 2012 14:59 UTC (Mon) by oldtomas (guest, #72579) [Link]

Will there be a binary dependency on libdbus?

Udev and systemd to merge

Posted Apr 3, 2012 16:56 UTC (Tue) by slashdot (guest, #22014) [Link] (1 responses)

We are the Borg.
You will be assimilated.
Resistance is futile.

Seriously, it's probably a good idea.

Udev and systemd to merge

Posted Apr 3, 2012 17:07 UTC (Tue) by dwayne (subscriber, #17004) [Link]

I would so like to +1 this :-)

Udev and systemd to merge

Posted Apr 3, 2012 17:02 UTC (Tue) by cuboci (subscriber, #9641) [Link] (3 responses)

That would've been a very good headline for April Fool's. I actually checked the date ;-)

Udev and systemd to merge

Posted Apr 3, 2012 19:26 UTC (Tue) by drag (guest, #31333) [Link] (2 responses)

That's what I thought.

It's hilarious.

All we need to do now is merge Btrfs and Gnome-shell into udev and we'd be set.

Udev and systemd to merge

Posted Apr 3, 2012 20:36 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

Don't forget a text editor (that was one of emacs' failures)!

I think, nano would do nicely.

Udev and systemd to merge

Posted Apr 4, 2012 14:15 UTC (Wed) by drag (guest, #31333) [Link]

Nano? Pff.

Just rewrite Eclipse using Vala and then compile it to C and import it into the udev Git repository and that should be it. Problem solved.

Udev and systemd to merge

Posted Apr 3, 2012 17:14 UTC (Tue) by JEFFREY (guest, #79095) [Link] (9 responses)

This seems logical. My only concern is at what point does init become a super-duper program with as many lines of code as Microsoft Word, and become equally unmaintanable -- as opposed to keeping systems small, and doing only one thing well to isolate bugs.

All I can do is trust that they know how to edit and prevent feature bloat. The various Linux contributers have done quite well, thus far.

Should the project be renamed 'Udevstemd?'

Udev and systemd to merge

Posted Apr 3, 2012 17:30 UTC (Tue) by cesarb (subscriber, #6266) [Link] (1 responses)

Zawinski's Law.

Quick, someone write an email reader for systemd, to stop the progression before it's too late. ;-)

Udev and systemd to merge

Posted Apr 4, 2012 7:24 UTC (Wed) by dgm (subscriber, #49227) [Link]

Mail or Emacs are poor matches for systemd. The Linux kernel on the other hand...

Udev and systemd to merge

Posted Apr 3, 2012 17:30 UTC (Tue) by mezcalero (subscriber, #45103) [Link] (2 responses)

Note that this doesn't mean that udevd is merged into PID 1. udevd and systemd stay two separate binaries, which are just built from the same tree.

The net result will be less lines of code, simply because we can reduce duplicate code (i.e. code which exists in both projects will now be replaced by the same implementation)

Make it a library?

Posted Apr 3, 2012 17:44 UTC (Tue) by Pc5Y9sbv (guest, #41328) [Link] (1 responses)

Hopefully, this effort will include thinking about how to factor that common part out into library form? Or perhaps a core event service and client bindings for interop? It would seem unfortunate if it was just internally shared code between two monolithic daemons.

I have never dug into the Android side of things, but wonder if there is a common ground that could serve the needs of server, desktop, laptop, mobile, router, and embedded environments. I realize that is asking a lot, particularly in terms of flexibility/performance/efficiency tradeoffs, but this feels like the kind of thing that could help keep Linux from branching off indefinitely into different niche platforms... I'm not even sure if it needs kernel side effort, given the latency and efficiency issues on mobile or embedded?

Make it a library?

Posted Apr 4, 2012 14:58 UTC (Wed) by RCL (guest, #63264) [Link]

When you start to reuse code it becomes unmaintainable. Everyone is afraid of touching the common part lest they break some functionality they cannot test for themselves (or even know about).

So unless the common part is really simple and plain and will *never* need any refactor/improvement, don't do that. The world is built upon redundancy, which helps parallelization of efforts.

Udev and systemd to merge

Posted Apr 3, 2012 17:39 UTC (Tue) by marduk (subscriber, #3831) [Link] (3 responses)

So I take it you are opposed to merging udev/systemd with emacs?

Udev and systemd to merge

Posted Apr 3, 2012 17:44 UTC (Tue) by JEFFREY (guest, #79095) [Link] (2 responses)

emacs doesn't already implement these?!?

Udev and systemd to merge

Posted Apr 3, 2012 18:15 UTC (Tue) by SEJeff (guest, #51588) [Link] (1 responses)

It likely does, but google will need to re-invent it from scratch poorly as it is GPLv3 and GPLv3 has cooties.

Udev and systemd to merge

Posted Apr 4, 2012 8:36 UTC (Wed) by k3ninho (subscriber, #50375) [Link]

Well, if they checked the package repository, they'd have found systemd.el and udev.el and thus would only need to fork the pre-GPLv3 edition.

Udev and systemd to merge

Posted Apr 3, 2012 17:30 UTC (Tue) by landley (guest, #6789) [Link]

I need to see how mdev is doing these days in combination with devtmpfs...

Rob

Udev and systemd to merge

Posted Apr 3, 2012 18:55 UTC (Tue) by grobian (guest, #83608) [Link] (3 responses)

Thanks god that I've switched do mdev a few weeks ago.
(was absolutely painless BTW)

Udev and systemd to merge

Posted Apr 3, 2012 22:55 UTC (Tue) by nteon (subscriber, #53899) [Link] (2 responses)

Why do you thank god you've switched to mdev? I really don't follow your reasoning.

Udev and systemd to merge

Posted Apr 4, 2012 10:05 UTC (Wed) by Pawlerson (guest, #74136) [Link] (1 responses)

Do you have problems with a simple things or are you kidding, perhaps? There's just such saying. :) As a Christian I'm also using it a lot.

Udev and systemd to merge

Posted Apr 4, 2012 15:09 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

I think he's aware it's a saying. I think he's more asking why this would have any effect on his decision to switch to mdev at all.

Udev and systemd to merge

Posted Apr 3, 2012 21:05 UTC (Tue) by karim (subscriber, #114) [Link] (4 responses)

So now, this is very much Android's way of doing things. They have a mereged init and udev. Interesting.

Udev and systemd to merge

Posted Apr 3, 2012 21:29 UTC (Tue) by vrfy (guest, #13362) [Link]

They have lot of other things right too. Some parts are really ugly in the details, but the overall thing is very smart, and totally worth to learn from.

Udev and systemd to merge

Posted Apr 4, 2012 0:25 UTC (Wed) by samroberts (subscriber, #46749) [Link] (1 responses)

But they merged the functionality of udev into the init *process*, right? This just merges the source trees.

Udev and systemd to merge

Posted Apr 4, 2012 21:00 UTC (Wed) by karim (subscriber, #114) [Link]

No, Android merges the code-base, not the processes. They run as separate processes in Android.

Udev and systemd to merge

Posted Apr 5, 2012 16:43 UTC (Thu) by scientes (guest, #83068) [Link]

their linker also has an arbitrary (and low) limit of 96 shared libraries linked to a process.

Udev and systemd to merge

Posted Apr 3, 2012 21:40 UTC (Tue) by russell (guest, #10458) [Link] (40 responses)

The lazy approach to interface design, do away with the interface, commit to nothing. What will systemd "interface" with next?

Udev and systemd to merge

Posted Apr 3, 2012 22:31 UTC (Tue) by tpetazzoni (subscriber, #53127) [Link] (39 responses)

Next step is of course to integrate D-Bus in systemd, no?

Udev and systemd to merge

Posted Apr 3, 2012 22:41 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (33 responses)

I'm thinking that network handling is more likely.

Udev and systemd to merge

Posted Apr 3, 2012 23:07 UTC (Tue) by mezcalero (subscriber, #45103) [Link] (32 responses)

"Niemand hat die Absicht, eine Mauer zu errichten!" -- Walter Ulbricht

Udev and systemd to merge

Posted Apr 3, 2012 23:14 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (31 responses)

So we're getting networkd in two months? :)

BTW, I actually wouldn't mind if something cleaned up the mess that is /etc/network in Debian and /etc/sysconfig/network* in RHEL/CentOS.

Udev and systemd to merge

Posted Apr 4, 2012 9:06 UTC (Wed) by Aissen (subscriber, #59976) [Link] (30 responses)

The funny thing about Debian's mess: it relies heavily on ifplugd (although it isn't mandatory), which was written by… I'll let you guess ;-)
It works pretty well once you know how to configure it, and if your configuration isn't too dynamic.

BTW, NetworkManager should have been the one fixing this "mess" (not sure it really is a mess). Apparently it didn't work, otherwise some people wouldn't have written connman :-)

Udev and systemd to merge

Posted Apr 4, 2012 9:52 UTC (Wed) by hadess (subscriber, #24252) [Link]

> BTW, NetworkManager should have been the one fixing this "mess" (not sure
> it really is a mess). Apparently it didn't work, otherwise some people
> wouldn't have written connman :-)

Connman was written because somebody was allergic to NetworkManager's use of GObject. No other reasons that I know of.

Udev and systemd to merge

Posted Apr 4, 2012 10:22 UTC (Wed) by cortana (subscriber, #24596) [Link] (22 responses)

I think you mean ifupdown, not ifplugd.

NetworkManager is actually becoming pretty awesome. It's great to be able to e.g., quickly configure my laptop for "internet connection sharing" with just a few clicks.

For the foreseeable future, I'm sticking with ifupdown on my servers though. I'm not opposed to NM taking over there; the fact that it actually checks to see whether the configurations it enacts were successfully applies means that in theory it can be much more reliable than ifupdown, which just runs ip/dhclient, etc., without checking their exit statuses. It's just not as obvious how to configure it without a GUI (there's no man page for the per-connection configuration files in /etc, nor is there any obvious replacement for ifupdown's hook scripts).

Udev and systemd to merge

Posted Apr 4, 2012 10:52 UTC (Wed) by lindi (subscriber, #53135) [Link] (5 responses)

My largest problem with ifupdown is that it does not understand anything about multiple routing tables or firewalls. We just end up doing all network setup in ugly "post-up" calls.

Udev and systemd to merge

Posted Apr 4, 2012 13:46 UTC (Wed) by drag (guest, #31333) [Link] (4 responses)

I like network manager, personally, but I don't think it's going to offer much of a improvement over 'post-up' calls.

Generally what you'd want to do for network-manager is to put your scripts into /etc/NetworkManager/dispatcher.d in the typical "if [ "$2" = "up" ]; then" style format.

To get the best benefits out of NetworkManager you want to disable all the 'legacy' configuration plugins and use keyfile. That way you can edit all your network configurations using a 'ini' file format in /etc/NetworkManager/system-connections/

The advantage to this is that you can support a much more diverse amount of network connection types with better granularity then you can through traditional distro-specific configs.

The spec for the settings can be found..
http://projects.gnome.org/NetworkManager/developers/api/0...
http://live.gnome.org/NetworkManager

For managing it through the command line use 'nmcli'.

I wish Gnome would provide a better documentation and examples for people using network manager on a server, but oh well.

Udev and systemd to merge

Posted Apr 4, 2012 15:04 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

> The spec for the settings can be found..
> http://projects.gnome.org/NetworkManager/developers/api/0...

Thanks for that link. It really needs to be mentioned in the nmcli man pages.

Udev and systemd to merge

Posted Apr 4, 2012 17:59 UTC (Wed) by mgedmin (subscriber, #34497) [Link] (2 responses)

I've attempted to use nmcli to connect to a wireless network (WPA2 encryption) in the past and failed miserably. As far as I can tell, this is simply not supported (you can only connect to a connection you've configured before).

I can barely manage to figure out how to list available networks ('nmcli dev wifi', really?).

Udev and systemd to merge

Posted Apr 4, 2012 18:43 UTC (Wed) by tzafrir (subscriber, #11501) [Link] (1 responses)

That said, the full reference file is confusing without an example.

http://bugs.debian.org/637769

Last time I asked, I was told adding such a thing was not a good idea (which is why the bug report is not in the NM bugzilla).

Udev and systemd to merge

Posted Apr 4, 2012 18:52 UTC (Wed) by drag (guest, #31333) [Link]

It certainly seems like a good candidate for /usr/share/doc/*/examples item.

Udev and systemd to merge

Posted Apr 4, 2012 12:45 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

The problem is, Debian's /etc/network/interfaces is outdated. It doesn't have a good notion of dependencies, it can't really cope with interfaces having IPv4 and IPv6 addresses, bridge support is flaky and so on.

Most of my network configuration ends up in pre-up and post-down scripts.

Udev and systemd to merge

Posted Apr 4, 2012 23:16 UTC (Wed) by rleigh (guest, #14622) [Link]

Have you tried the new ifupdown in experimental? If not, it might be worth a try (but an updated version will be going into unstable in the next few days if you want to wait). This fixes a lot of long-standing issues.

Udev and systemd to merge

Posted Apr 4, 2012 15:01 UTC (Wed) by mathstuf (subscriber, #69389) [Link] (2 responses)

> NetworkManager is actually becoming pretty awesome. It's great to be able to e.g., quickly configure my laptop for "internet connection sharing" with just a few clicks.

Unfortunately, a feature[1] (though I consider it a bug) which is a blocker for me is still present.

Basically, I'd like to be able to set a wireless network as "flaky" so that if the connection drops, NM silently retries in the background continually instead of dropping the connection and *then* trying to reconnect. NM-aware applications tend to freak out if this happens every 5 minutes or so. Another use case is when moving around and one network is out of range temporarily in the presence of another known network (personal wireless, which is vastly preferred, versus campus wireless in my case). Going between floors takes me out of range of the my wireless, but the end points are both within range. I'd like to be able to tell NM that, but AFAIK, it will drop the connection, pick up the campus wireless and then not drop it when my wireless comes back into range because the campus connection is still there.

Of course, being able to create connections with nmcli would be nice too (unless it's a recent change, I haven't found out how to give it passwords and such for new wireless networks and instead have to launch nm-applet to create the connection which can then be managed with nmcli).

Currently, I just use ifcfg scripts for connections and wpa_supplicant.conf for wireless network configuration.

[1]There's a bug open somewhere for it, but I can't find it right now.

Udev and systemd to merge

Posted Apr 4, 2012 16:40 UTC (Wed) by drag (guest, #31333) [Link] (1 responses)

> Of course, being able to create connections with nmcli would be nice too (unless it's a recent change, I haven't found out how to give it passwords and such for new wireless networks and instead have to launch nm-applet to create the connection which can then be managed with nmcli).

You edit your own keyfile and then copy it to /etc/NetworkManager/system-connections/. NetworkManager watches that directory and should pick up on changes to configs automatically.

Although it's usually easier to use the nm-applet to make something so you have a config to work on when you want to make changes in the future.

Udev and systemd to merge

Posted Apr 4, 2012 16:46 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

Right, this is something I don't see why nmcli can't help with. A subcommand like "nmcli dump-config essid 'some_wireless_network'" to get a barebones keyfile which can then be edited should be possible.

Udev and systemd to merge

Posted Apr 5, 2012 16:49 UTC (Thu) by scientes (guest, #83068) [Link] (10 responses)

> It's great to be able to e.g., quickly configure my laptop for "internet connection sharing" with just a few clicks.

can i share over ethernet, as opposed to just wireless? If so, I guess I missed that functionality, I had alot of pain trying to do it myself while still having networkmanager work.

Udev and systemd to merge

Posted Apr 6, 2012 12:20 UTC (Fri) by cortana (subscriber, #24596) [Link] (8 responses)

I don't think NM cares about the kinds of each connection involved in sharing. One quirk that I never bothered to raise upstream was that you're not supposed to set the mode of the *upstream* connection to 'shared to other computers'; you're supposed to set the mode of the *local* connection. Perhaps NM sets up some iptables rules so that only packets from local interface marked as 'shared to other computers' will be routed out of the upstream interface... I didn't bother to look into it once I made it work. :)

Udev and systemd to merge

Posted Apr 6, 2012 14:39 UTC (Fri) by Eckhart (guest, #74500) [Link]

The way NetworkManager works is actually pretty simple. Unless a connection is marked "Shared", it is considered a potential upstream connection. Of all the upstream connections, the best one is marked the default gateway, with simple ordering (i.e. vpn wins over cable, cable wins over wireless…).
A connection marked as shared will get a DHCP server and uses NAT to route traffic over the default gateway. Therefore it is perfectly possible to share your 3g connection via ethernet to a bunch of computers.

Udev and systemd to merge

Posted Apr 6, 2012 19:44 UTC (Fri) by scientes (guest, #83068) [Link] (6 responses)

> One quirk that I never bothered to raise upstream was that you're not supposed to set the mode of the *upstream* connection to 'shared to other computers'; you're supposed to set the mode of the *local* connection.

as someone that has basic understanding of the networking, and has done this manually, this makes perfect sense, the other way you talk of is confusing, and would be way less capable.

If it wasn't for ipv4 exhaustion, sharing your internet connection could as simple as turning on ipv4 packet forwarding. (now there is also address allocation issues, so DHCP) the complexity, and ever difference between upstream, and downstream, somes from Network Address Translation.

Udev and systemd to merge

Posted Apr 6, 2012 20:02 UTC (Fri) by cortana (subscriber, #24596) [Link] (5 responses)

I find it confusing to have to set the mode of the downstream interface to 'share with other computers'. It's my internet connection I want to share, so I naturally expect to set its interface, the upstream one, to 'share with other computers'; the upstream connection is what I'm sharing, and is therefore be the object in the sentence "Share my internet connection with other computers".

Udev and systemd to merge

Posted Apr 6, 2012 20:23 UTC (Fri) by scientes (guest, #83068) [Link] (1 responses)

thats only because you are considering yourself a slave to your Internet connection, and a slave to the Internet. The way it works, it will share any connections you have, even if you dual-banding with the neighbor that has a differn't ISP so that you don't have to worry about censorship, are to evade network neutrality violations.

sure maybe the language needs to be made clearer, "share Internet to this interface?"

Udev and systemd to merge

Posted Apr 6, 2012 20:37 UTC (Fri) by cortana (subscriber, #24596) [Link]

That language change would definitely be a lot better.

Udev and systemd to merge

Posted Apr 6, 2012 20:39 UTC (Fri) by khim (subscriber, #9252) [Link] (2 responses)

It's my internet connection I want to share, so I naturally expect to set its interface, the upstream one, to 'share with other computers'; the upstream connection is what I'm sharing, and is therefore be the object in the sentence "Share my internet connection with other computers".

Well, it'll be nice psychology study which will show just why Joe Average gets the facts backward, but this logic is obviously quite strange.

Let's forget about network, routing, packets, etc. Suppose my neighbour lost electrical power and I, ever the helpful guy, want to share my grid power connection with him (electrical grid, not Internet).

Now, I have two choice:
1. I can go find out where and how my own house itself is connected to grid and try to change that global connection. I can even succeed and survive (if I'm lucky).
  or
2. I can change my local connection configuration: just plug extension cord to my wall socket and attach appliances of my neighbour to it.

Somehow when electrical grid is concerned everyone automatically assumes solution #2 is right, but for Internet they want go and try to change WAN#1 (their WAN connection)? WHY? What's so special about Internet?

P.S. This phenomenon is quite obviously present because Microsoft tries to “help” here. It ALSO makes no sense to change WAN configuration when you share it even in Windows, but hey, if people en masse want to do this strange thing then this is how it should be done. As a result when you share network connection you must “alter” WAN connection, but this is illusion. When you try to “share” WAN connection in Windows WAN connection is not changed at all. Instead Windows goes and silently changes LAN connection behind your back.

The end result is essentially the same as with Linux, but with a twist: in simple cases everything “just works”, but in complex cases you must imagine these behind the scenes changes and do complex dance (Ok, I need to change this network in this and that way, but this is impossible to do so I need to create fictive temporary network and change THIS, then I can delete it because it's unneeded and I can fix THAT and but this well mean that networks will be disconnected but this can be fixed later…) I hate that.

Udev and systemd to merge

Posted Apr 6, 2012 20:54 UTC (Fri) by scientes (guest, #83068) [Link] (1 responses)

#1. the entire concept of LAN vs. WAN only propagates this confusion

#2. The Linux way of electricity networking does exist in your 2nd electrical example, its called a Widow-maker or other similarly ominous names. (for good reason)

Udev and systemd to merge

Posted Apr 6, 2012 21:25 UTC (Fri) by khim (subscriber, #9252) [Link]

The Linux way of electricity networking does exist in your 2nd electrical example, its called a Widow-maker or other similarly ominous names. (for good reason)

s/Linux/Windows/

Widow-maker is used to attach to the upstream, to “WAN” power grid (this is what you “naturally expect” for some reason). This is Windows way.

In Linux you share your wall outlets (you local in-house “LAN” electric network) instead.

the entire concept of LAN vs. WAN only propagates this confusion

Why? WAN == WIDE area network (think city-level or even wider electrical network), LAN == LOCAL area network (think you own tiny in-house network with dozen or two plugs and few appliances). If you want to share electricity with someone you most definitely will do it using your local network (unless you have some serious reasons to use thing which is called Widow-maker or other similarly ominous names).

Udev and systemd to merge

Posted Apr 6, 2012 14:32 UTC (Fri) by Eckhart (guest, #74500) [Link]

> can i share over ethernet, as opposed to just wireless? If so, I guess I missed that functionality, I had alot of pain trying to do it myself while still having networkmanager work.

This is perfectly possible with NetworkManager. Just create a wired connection, set method to Shared, and NetworkManager will start a DHCP server on your wired connection.

Udev and systemd to merge

Posted Apr 4, 2012 15:28 UTC (Wed) by jond (subscriber, #37669) [Link] (4 responses)

> The funny thing about Debian's mess: it relies heavily on ifplugd (although it isn't mandatory), which was written by… I'll let you guess ;-)

Indeed, "it's entirely optional" would be closer to the truth.

Udev and systemd to merge

Posted Apr 4, 2012 16:05 UTC (Wed) by Aissen (subscriber, #59976) [Link] (3 responses)

Most things in Debian are optional, that's the beauty of the thing (and sometimes, the hassle, see the systemd "full integration" drama).
Also, previous commenter pointed out that I mixed ifplugd and ifupdown. He was right.

Udev and systemd to merge

Posted Apr 6, 2012 14:49 UTC (Fri) by Eckhart (guest, #74500) [Link] (2 responses)

>Most things in Debian are optional, that's the beauty of the thing (and sometimes, the hassle, see the systemd "full integration" drama).

Can you please explain the systemd "full integration" "drama"?
(both "full integration" and "drama")

Udev and systemd to merge

Posted Apr 6, 2012 15:26 UTC (Fri) by Aissen (subscriber, #59976) [Link] (1 responses)

See:
https://lwn.net/Articles/452865/
and more recently:
https://lwn.net/Articles/484168/

I said "full integration" because systemd is already in debian (http://packages.qa.debian.org/s/systemd.html ), it's just not the default init. So it's integrated, but not fully since not all daemons have systemd unit files.

Udev and systemd to merge

Posted Apr 6, 2012 16:53 UTC (Fri) by Eckhart (guest, #74500) [Link]

Ah, then I just misinterpreted your original sentence. Thanks.

Udev and systemd to merge

Posted Apr 4, 2012 21:23 UTC (Wed) by iabervon (subscriber, #722) [Link]

I'd guess it was actually the assumption that GNOME couldn't possibly get a system daemon right. Nobody wants to repeat the situation we had when every desktop environment had its own sound daemon that interfered with sound from programs that didn't use it. Of course, that's not actually the case, but having a generic component come from a desktop environment project gives people the wrong impression.

Second system effect?

Posted Apr 4, 2012 0:33 UTC (Wed) by Pc5Y9sbv (guest, #41328) [Link]

It knows when you are sleeping, it knows when you're awake, it knows when you've had disks attached, and it hashes logs for safety's sake... it's santad.

But seriously, maybe we really need a higher level set of event and process control abstractions from the kernel, rather than building some weird monolithic macro-micro-kernel architecture (kitchensinkd on top of Linux kernel)?

Udev and systemd to merge

Posted Apr 4, 2012 4:45 UTC (Wed) by iabervon (subscriber, #722) [Link] (2 responses)

Actually, that makes a surprising amount of sense. Surely, when you cause dbus to start upowerd on demand, upowerd should be possible to manage through systemd like any other daemon, right? I mean, it's not like it's part of dbus, despite dbus launching it. Sure, it's reasonable for dbus to handle demand-execution of services when your init isn't capable of that, but having dbus be a second process launcher when you've already got one is redundant and just makes management harder.

Udev and systemd to merge

Posted Apr 4, 2012 8:24 UTC (Wed) by nowster (subscriber, #67) [Link]

What is a process launcher? Should all fork()/exec() operations be done by message passing in the future?

Udev and systemd to merge

Posted Apr 4, 2012 12:28 UTC (Wed) by njs (subscriber, #40338) [Link]

Yes, which is why D-Bus now has the option of implementing bus activations by having systemd spawn the relevant service...

Udev and systemd to merge

Posted Apr 4, 2012 15:27 UTC (Wed) by jond (subscriber, #37669) [Link]

The D-Bus guys have been trying to push a lot of that into the Kernel (no, really)

Udev and systemd to merge

Posted Apr 4, 2012 9:43 UTC (Wed) by Aissen (subscriber, #59976) [Link] (9 responses)

Sad thing about this merge of source trees: loss of udev's git history. Where is my git blame ? (Ok, we'd blame it all on Kay anyway).

History preservation would have been possible with subtree merging:
http://help.github.com/subtree-merge/

Udev and systemd to merge

Posted Apr 4, 2012 11:35 UTC (Wed) by mezcalero (subscriber, #45103) [Link] (8 responses)

udev's git history is not lost. We merged the two repositories with both full histories. The wonders of git.

Udev and systemd to merge

Posted Apr 4, 2012 11:48 UTC (Wed) by zuki (subscriber, #41808) [Link] (7 responses)

Yeah, systemd now seems to go all the way back to:

commit f0083e3d4eb49e11fd7e37532dc64a6e6f5d4039
Author: Greg KH <greg@press.(none)>
Date: Tue Apr 26 20:59:47 2005 -0700

added initial files.

:)

Udev and systemd to merge

Posted Apr 4, 2012 12:51 UTC (Wed) by yoshi314 (guest, #36190) [Link] (6 responses)

too bad http://cgit.freedesktop.org/systemd/systemd/log/src/udev does not show much, even though the global log does.

Udev and systemd to merge

Posted Apr 4, 2012 13:00 UTC (Wed) by Aissen (subscriber, #59976) [Link] (5 responses)

Exactly my point. The first thing I did was:

$ git log --follow src/udev/udevd.c
commit 3e2147858f21943d5f4a781c60f33ac22c6096ed
Author: Kay Sievers <kay.sievers@vrfy.org>
Date: Tue Apr 3 21:24:46 2012 +0200

move imported udev into place

--
And that was all. Then git blame on the same file seems to have all the history. So what should I do to have git log show me the full history ?

Udev and systemd to merge

Posted Apr 4, 2012 14:20 UTC (Wed) by niner (subscriber, #26151) [Link] (4 responses)

You have to use the path the file had in the original repository.

Udev and systemd to merge

Posted Apr 4, 2012 14:54 UTC (Wed) by Aissen (subscriber, #59976) [Link] (3 responses)

Indeed, "git log --follow -- src/udevd.c" is giving the expected result — almost: it only shows the old commits.
It's a weird behaviour "git log" is having here, I don't fully understand why.

Udev and systemd to merge

Posted Apr 4, 2012 20:28 UTC (Wed) by przemoc (guest, #67594) [Link] (2 responses)

Maybe "merging" wasn't done right after all?

commit ad29a9f14fa8b1932c0e418bfcf1c10ce6a35a33
Author: Kay Sievers <kay.sievers@vrfy.org>
Date: Thu Jan 5 22:41:45 2012 +0100

merge udev/, libudev/, systemd/ files in src/; move extras/ to src/

R099 udev/udevd.c src/udevd.c

commit 3e2147858f21943d5f4a781c60f33ac22c6096ed
Author: Kay Sievers <kay.sievers@vrfy.org>
Date: Tue Apr 3 21:24:46 2012 +0200

move imported udev into place

R099 src/udev/src/udevd.c src/udev/udevd.c

Or git is losing some traces?

$ git log --follow --name-status -- src/udev/src/udevd.c
commit 3e2147858f21943d5f4a781c60f33ac22c6096ed
Author: Kay Sievers <kay.sievers@vrfy.org>
Date: Tue Apr 3 21:24:46 2012 +0200

move imported udev into place

D src/udev/src/udevd.c

It's interesting that the only history of this file is its deletion. ;-)

--
1.7.9.1

Udev and systemd to merge

Posted Apr 4, 2012 23:26 UTC (Wed) by geofft (subscriber, #59789) [Link] (1 responses)

If you pass a filename argument to git log with --stat or similar, it'll only show the changes that apply to that filename.

(I'm not sure this is the correct behavior, but it is the current behavior.)

Udev and systemd to merge

Posted Apr 6, 2012 7:33 UTC (Fri) by MaZe (subscriber, #53908) [Link]

This is a fundamental git metadata format bug.

a commit object includes 0 or more parent hashes.
initial commit having 0,
normal commits having 1,
merges having 2 or more.

a normal two-way merge thus has 2 parent hashes.
a subtree two-way merge also has 2 parent hashes.

nowhere in the merge commit metadata is the fact that it is a subtree merge recorded (nor is the subtree directory recorded)

ie. the fix would be to include not only the parent's hash, but also the subdirectory at which the parent commit is being merged.

Since the subtree merge commit does not include anything to distinguish it from a normal non-subtree merge, it is not possible to (cheaply in terms of processing power) determine that all changes happening at path X/Y/Z within the subtree parent history should actually be treated as happening at subtree/X/Y/Z.

When running something like git log across a commit, ie. across it's history, git has to look at hundreds or thousands or tens of thousands of merges, it cannot afford to devote cpu time to figuring out whether a merge commit is a subtree commit, so it assumes all of them aren't.

As a result of this, once starts looking at the parent of a subtree merge (and its parents), the assumption that the tree is rooted at / is no longer correct.

As a result:
git log subtree/X/Y/Z will show changes to Z since the subtree merge
git log X/Y/Z will show changes to Z before the subtree merge

Worse, if you have Makefile, and merge another project with a Makefile into subdirectory dir:
git log dir/Makefile shows changes since the subtree merge
git log Makefile shows all changes to the Makefile and changes to dir/Makefile from before the subtree merged - interspersed.

This could be fixed by having instead of
parent <hash>
information in the commit object something like
parent <hash> @ subtree

[for extra brownies also allow the opposite, ie. supertree merges, where you merge not commit into directory, but commit:directory into /, or even super-subtree merges, where you merge commit:directory into other_directory]

so the generic format should allow:
parent <hash>:directory/path @ subtree/path

and all the tools should be taught to follow such parent links properly.

Unfortunately, this will not fix subtree merges performed with old versions of git, and it is a backwards incompatible change.


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