summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kvm
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-06-05 10:59:41 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-06-05 10:59:41 +0000
commitc955f608a21404d65aee67993dee9a5b0f1372c9 (patch)
treef7134bcf78acf2aee7dd92df2bcb7e0f4e08463e /pkgs/os-specific/linux/kvm
parente24afc19adf7d0888941ff25625f68bc971271ad (diff)
downloadnixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar.gz
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar.bz2
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar.lz
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar.xz
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.tar.zst
nixpkgs-c955f608a21404d65aee67993dee9a5b0f1372c9.zip
* KVM 69. Seems to improve performance quite a bit. In particular it
  implements the host support for virtio devices in Linux >= 2.6.25
  guests.  Network performance shows a huge improvement with
  virtio_net, which should be good for the build farm (which uses
  Samba/CIFS to mount the file system of the host).
* Kernel headers for 2.6.26-rc5 added to build KVM 69.  Also added the
  2.6.25 headers, which turned out to be too old for KVM 69.

svn path=/nixpkgs/trunk/; revision=11985
Diffstat (limited to 'pkgs/os-specific/linux/kvm')
-rw-r--r--pkgs/os-specific/linux/kvm/69.nix38
-rw-r--r--pkgs/os-specific/linux/kvm/readonly-kernel.patch14
2 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kvm/69.nix b/pkgs/os-specific/linux/kvm/69.nix
new file mode 100644
index 00000000000..b8a69894587
--- /dev/null
+++ b/pkgs/os-specific/linux/kvm/69.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, kernelHeaders, zlib, e2fsprogs, SDL, alsaLib, pkgconfig, rsync}:
+   
+assert stdenv.isLinux;
+   
+stdenv.mkDerivation {
+  name = "kvm-69";
+   
+  src = fetchurl {
+    url = mirror://sourceforge/kvm/kvm-69.tar.gz;
+    sha256 = "05zkzw81lk5ap99vi0jqs6lyp13gapyi1046zgjmjm19q4xzsjz4";
+  };
+
+  patches = [
+    # Allow setting the path to Samba through $QEMU_SMBD_COMMAND.
+    ./smbd-path.patch
+    # The makefile copies stuff from the kernel directory and then
+    # tries to modify the copy, but it must be made writable first.
+    ./readonly-kernel.patch
+  ];
+
+  configureFlags = "--with-patched-kernel --kerneldir=${kernelHeaders}";
+
+  # e2fsprogs is needed for libuuid.
+  # rsync is a weird dependency used for copying kernel header files.
+  buildInputs = [zlib e2fsprogs SDL alsaLib pkgconfig rsync];
+
+  preConfigure = ''
+    for i in configure user/configure; do
+      substituteInPlace $i --replace /bin/bash $shell
+    done
+    substituteInPlace libkvm/Makefile --replace kvm_para.h kvm.h # !!! quick hack
+  '';
+
+  meta = {
+    homepage = http://kvm.qumranet.com/;
+    description = "A full virtualization solution for Linux on x86 hardware containing virtualization extensions";
+  };
+}
diff --git a/pkgs/os-specific/linux/kvm/readonly-kernel.patch b/pkgs/os-specific/linux/kvm/readonly-kernel.patch
new file mode 100644
index 00000000000..54e9225d101
--- /dev/null
+++ b/pkgs/os-specific/linux/kvm/readonly-kernel.patch
@@ -0,0 +1,14 @@
+diff -rc kvm-69-orig/kernel/Makefile kvm-69/kernel/Makefile
+*** kvm-69-orig/kernel/Makefile	2008-05-12 13:30:43.000000000 +0200
+--- kvm-69/kernel/Makefile	2008-06-04 17:23:34.000000000 +0200
+***************
+*** 48,53 ****
+--- 48,54 ----
+  	     "$(LINUX)"/./include/linux/kvm*.h \
+  	     "$(LINUX)"/./include/asm-*/kvm*.h \
+               $T/
++ 	chmod -R u+w $T
+  
+  	set -e && for i in $(find $T -name '*.h'); do \
+  		$(call unifdef,$$i); done
+Only in kvm-69/kernel: Makefile~