From 9fdea6a9177abfb17cea3213631905883961e8f8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 12 Feb 2007 10:23:43 +0000 Subject: [PATCH] * KVM (Kernel-based Virtual Machine). Requires KVM support in the kernel for performance (and VT/AMD-V in the CPU), but also provides a working QEMU for non-KVM-enabled systems. svn path=/nixpkgs/trunk/; revision=7889 --- .../linux/kernel-headers/2.6.20.nix | 21 +++++++++++++++++++ pkgs/os-specific/linux/kvm/12.nix | 15 +++++++++++++ pkgs/top-level/all-packages.nix | 12 +++++++++++ 3 files changed, 48 insertions(+) create mode 100644 pkgs/os-specific/linux/kernel-headers/2.6.20.nix create mode 100644 pkgs/os-specific/linux/kvm/12.nix diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.20.nix b/pkgs/os-specific/linux/kernel-headers/2.6.20.nix new file mode 100644 index 00000000000..3676ece7825 --- /dev/null +++ b/pkgs/os-specific/linux/kernel-headers/2.6.20.nix @@ -0,0 +1,21 @@ +{stdenv, fetchurl}: + +assert stdenv.isLinux; + +stdenv.mkDerivation { + name = "linux-headers-2.6.20"; + builder = ./builder.sh; + src = fetchurl { + url = http://ftp.nl.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2; + sha256 = "0n455dyvmbs9l0m3hll2rilyrj8gsqqablrhnh1jw9vxmjhss51c"; + }; + + platform = + if stdenv.system == "i686-linux" then "i386" else + if stdenv.system == "x86_64-linux" then "x86_64" else + if stdenv.system == "powerpc-linux" then "powerpc" else + abort "don't know what the kernel include directory is called for this platform"; + + extraIncludeDirs = + if stdenv.system == "powerpc-linux" then ["ppc"] else []; +} diff --git a/pkgs/os-specific/linux/kvm/12.nix b/pkgs/os-specific/linux/kvm/12.nix new file mode 100644 index 00000000000..aaa2ae5af14 --- /dev/null +++ b/pkgs/os-specific/linux/kvm/12.nix @@ -0,0 +1,15 @@ +{stdenv, fetchurl, kernelHeaders, zlib, e2fsprogs, SDL, alsaLib}: + +stdenv.mkDerivation { + name = "kvm-12"; + + src = fetchurl { + url = http://heanet.dl.sourceforge.net/sourceforge/kvm/kvm-12.tar.gz; + sha256 = "0w2w4kzir1qsapfav30bhng061570zl12ycyvpgwlx2br4s9mlmw"; + }; + + configureFlags = "--with-patched-kernel --kerneldir=${kernelHeaders}"; + + # e2fsprogs is needed for libuuid. + buildInputs = [zlib e2fsprogs SDL alsaLib]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 570d6d15e7b..3449d4d2bac 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2173,6 +2173,10 @@ rec { inherit fetchurl stdenv; }; + kernelHeaders_2_6_20 = import ../os-specific/linux/kernel-headers/2.6.20.nix { + inherit fetchurl stdenv; + }; + kernelHeadersArm = import ../os-specific/linux/kernel-headers-cross { inherit fetchurl stdenv; cross = "arm-linux"; @@ -2263,6 +2267,14 @@ rec { inherit fetchurl stdenv perl bison mktemp kernel; }; + kvm = kvm12; + + kvm12 = import ../os-specific/linux/kvm/12.nix { + inherit fetchurl zlib e2fsprogs SDL alsaLib; + stdenv = overrideGCC stdenv gcc34; + kernelHeaders = kernelHeaders_2_6_20; + }; + libcap = import ../os-specific/linux/libcap { inherit fetchurl stdenv; };