* Try to hack around libvirt's stateful use of /etc/libvirt. (Routine

operations such as creating VMs modify the contents of
  /etc/libvirt.)

svn path=/nixos/trunk/; revision=26644
This commit is contained in:
Eelco Dolstra 2011-03-31 22:10:26 +00:00
parent ef80abc886
commit 1e2c0d6284

View file

@ -63,7 +63,24 @@ in
''
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";