Author: eelco
Date: Thu Mar 31 22:10:26 2011
New Revision: 26644
URL: https://svn.nixos.org/websvn/nix/?rev=26644&sc=1

Log:
* Try to hack around libvirt's stateful use of /etc/libvirt.  (Routine
  operations such as creating VMs modify the contents of
  /etc/libvirt.)

Modified:
   nixos/trunk/modules/virtualisation/libvirtd.nix

Modified: nixos/trunk/modules/virtualisation/libvirtd.nix
==============================================================================
--- nixos/trunk/modules/virtualisation/libvirtd.nix     Thu Mar 31 22:09:07 
2011        (r26643)
+++ nixos/trunk/modules/virtualisation/libvirtd.nix     Thu Mar 31 22:10:26 
2011        (r26644)
@@ -63,7 +63,24 @@
           ''
             mkdir -p /var/log/libvirt/qemu -m 755
             rm -f /var/run/libvirtd.pid
-          '';
+
+            mkdir -p /var/lib/libvirt -m 700
+            mkdir -p /var/lib/libvirt/dnsmasq -m 700
+
+            # Libvirt unfortunately writes mutable state (such as
+            # runtime changes to VM, network or filter configurations)
+            # to /etc.  So we can't use environment.etc to make the
+            # default network and filter definitions available, since
+            # libvirt will then modify the originals in the Nix store.
+            # So here we copy them instead.  Ugly.
+            for i in $(cd ${pkgs.libvirt}/etc && echo \
+                libvirt/qemu/networks/*.xml 
libvirt/qemu/networks/autostart/*.xml \
+                libvirt/nwfilter/*.xml );
+            do
+                mkdir -p /etc/$(dirname $i) -m 755
+                cp -fpd ${pkgs.libvirt}/etc/$i /etc/$i
+            done
+          ''; # */
 
         exec = "${pkgs.libvirt}/sbin/libvirtd --daemon --verbose";
 
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to