summary refs log tree commit diff
path: root/pkgs/os-specific/linux/systemd
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-10-11 12:33:28 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-10-11 12:33:28 -0400
commit2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34 (patch)
tree66853574eb063df6ef53c529b9cfe45f9214f31f /pkgs/os-specific/linux/systemd
parentfa27534ec6be24f3b165dd47959cff46fe03ce8a (diff)
downloadnixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar.gz
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar.bz2
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar.lz
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar.xz
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.tar.zst
nixlib-2fa1b38853fc3c9eba02f47bf2d7031bf93e6f34.zip
systemd: Properly handle device aliases used as dependencies
http://lists.freedesktop.org/archives/systemd-devel/2012-October/006872.html
Diffstat (limited to 'pkgs/os-specific/linux/systemd')
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix2
-rw-r--r--pkgs/os-specific/linux/systemd/fix-device-aliases.patch14
2 files changed, 15 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 36d341af5e65..5abef22395e0 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0cgnnl6kqaz3als5y9g8jvsvbs4c8ccp0vl4s1g8rwk69w2cwxd2";
   };
 
-  patches = [ ./reexec.patch ./ignore-duplicates.patch ];
+  patches = [ ./reexec.patch ./ignore-duplicates.patch ./fix-device-aliases.patch ];
 
   buildInputs =
     [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
diff --git a/pkgs/os-specific/linux/systemd/fix-device-aliases.patch b/pkgs/os-specific/linux/systemd/fix-device-aliases.patch
new file mode 100644
index 000000000000..508fd0ec0749
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/fix-device-aliases.patch
@@ -0,0 +1,14 @@
+diff --git a/src/core/device.c b/src/core/device.c
+index 5307341..7bbe99a 100644
+--- a/src/core/device.c
++++ b/src/core/device.c
+@@ -255,8 +255,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p
+                         if (!is_path(alias))
+                                 log_warning("SYSTEMD_ALIAS for %s is not a path, ignoring: %s", sysfs, alias);
+                         else {
+-                                if ((r = device_add_escaped_name(u, alias)) < 0)
+-                                        goto fail;
++                                device_update_unit(m, dev, alias, false);
+                         }
+                 }
+