about summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-03-21T12·54+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-03-21T16·27+0100
commit24cb65efc3c34e24fc653779a4d42cf4f31c6737 (patch)
tree7f36c82b67b9ec64b4dee37418d9ed5232413a9d /src/libstore
parent3fc056927c962ec9778e94528f2f9ae316afca4e (diff)
Make /dev/kvm optional
The daemon now creates /dev deterministically (thanks!).  However, it
expects /dev/kvm to be present.

The patch below restricts that requirement (1) to Linux-based systems,
and (2) to systems where /dev/kvm already exists.

I’m not sure about the way to handle (2).  We could special-case
/dev/kvm and create it (instead of bind-mounting it) in the chroot, so
it’s always available; however, it wouldn’t help much since most likely,
if /dev/kvm missing, then KVM support is missing.
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/build.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 973e7a122f5f..e846995f76bb 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -2020,7 +2020,10 @@ void DerivationGoal::initChild()
                 createDirs(chrootRootDir + "/dev/pts");
                 Strings ss;
                 ss.push_back("/dev/full");
-                ss.push_back("/dev/kvm");
+#ifdef __linux__
+                if (pathExists("/dev/kvm"))
+                    ss.push_back("/dev/kvm");
+#endif
                 ss.push_back("/dev/null");
                 ss.push_back("/dev/random");
                 ss.push_back("/dev/tty");