FS#31462 - [wpa_supplicant] Dependency on non-existent device in systemd config

Attached to Project: Arch Linux
Opened by Matt Corallo (BlueMatt) - Saturday, 08 September 2012, 00:54 GMT
Last edited by Thomas Bächler (brain0) - Saturday, 13 October 2012, 20:48 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

The wpa_supplicant@.service has the following lines:
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

However, the /sys/subsystem stuff isn't enabled in mainline kernels (or the arch binary kernels) so that service can never start.

I believe this is probably the issue #31147 was trying to debug.
This task depends upon

Closed by  Thomas Bächler (brain0)
Saturday, 13 October 2012, 20:48 GMT
Reason for closing:  Upstream
Additional comments about closing:  Will be fixed in systemd at some point.
Comment by Thomas Bächler (brain0) - Sunday, 09 September 2012, 09:35 GMT
Interesting. I wonder who wrote those systemd units, because I didn't :)

I was also under the impression that Requires= on a device made no sense.
Comment by Matt Corallo (BlueMatt) - Sunday, 09 September 2012, 17:10 GMT
Requires= on a device makes perfect sense, what if I have a second wifi cards and I only want wpa_supplicant to start with that one. Anyway, yea, the use of sys-subsystem is a bit strange...
Comment by Steven (Stebalien) - Sunday, 09 September 2012, 21:49 GMT
From /usr/lib/udev/rules.d/99-systemd.rules:

# We need a hardware independent way to identify network devices. We
# use the /sys/subsystem path for this. Current vanilla kernels don't
# actually support that hierarchy right now, however upcoming kernels
# will. HAL and udev internally support /sys/subsystem already, hence
# it should be safe to use this here, too. This is mostly just an
# identification string for systemd, so whether the path actually is
# accessible or not does not matter as long as it is unique and in the
# filesystem namespace.
#
# http://cgit.freedesktop.org/systemd/systemd/tree/src/libudev/libudev-enumerate.c#n922
Comment by Matt Corallo (BlueMatt) - Sunday, 09 September 2012, 21:55 GMT
Hmm...well for some reason any direct launches of wpa_supplicant@interface.service never works because systemd can never find the sys.subsystem...device entry (which I cannot find any indication that it is/will ever be created). Maybe its a bug in HAL/udev then?
Comment by Thomas Bächler (brain0) - Sunday, 09 September 2012, 22:07 GMT
According to Dave, that's the problem: https://bugs.freedesktop.org/show_bug.cgi?id=52580
Comment by Matt Corallo (BlueMatt) - Sunday, 09 September 2012, 22:14 GMT
Ah, yep, that would be it. Is there a way to mark a bug reported upstream?

Loading...