diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.25.4.nix b/pkgs/os-specific/linux/kernel-headers/2.6.25.4.nix new file mode 100644 index 00000000000..c6d1cc409fc --- /dev/null +++ b/pkgs/os-specific/linux/kernel-headers/2.6.25.4.nix @@ -0,0 +1,26 @@ +{stdenv, fetchurl}: + +assert stdenv.isLinux; + +stdenv.mkDerivation { + name = "linux-headers-2.6.25.4"; + + builder = ./builder.sh; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.25.4.tar.bz2"; + sha256 = "0hp36pwphw5rs9kwm5ksr7ynfmzgpcd8gi45rigbilvcvmsdnxf3"; + }; + + 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"; + + # !!! hacky + fixupPhase = "ln -s $out/include/asm $out/include/asm-$platform"; + + extraIncludeDirs = + if stdenv.system == "powerpc-linux" then ["ppc"] else []; +} diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.26-rc5.nix b/pkgs/os-specific/linux/kernel-headers/2.6.26-rc5.nix new file mode 100644 index 00000000000..870b9a4c44c --- /dev/null +++ b/pkgs/os-specific/linux/kernel-headers/2.6.26-rc5.nix @@ -0,0 +1,26 @@ +{stdenv, fetchurl}: + +assert stdenv.isLinux; + +stdenv.mkDerivation { + name = "linux-headers-2.6.26-pre-rc5"; + + builder = ./builder.sh; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v2.6/testing/linux-2.6.26-rc5.tar.bz2"; + sha256 = "0mxhxiivm2dyca2shxnr3689x8f3l2vlmqdl80fm6lmq1b3j7k75"; + }; + + 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"; + + # !!! hacky + fixupPhase = "ln -s $out/include/asm $out/include/asm-$platform"; + + extraIncludeDirs = + if stdenv.system == "powerpc-linux" then ["ppc"] else []; +} 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~ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 368cfb9da8c..242f2e342e7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4601,6 +4601,14 @@ let pkgs = rec { inherit fetchurl stdenv; }; + kernelHeaders_2_6_25 = import ../os-specific/linux/kernel-headers/2.6.25.4.nix { + inherit fetchurl stdenv; + }; + + kernelHeaders_2_6_26 = import ../os-specific/linux/kernel-headers/2.6.26-rc5.nix { + inherit fetchurl stdenv; + }; + kernelHeadersArm = import ../os-specific/linux/kernel-headers-cross { inherit fetchurl stdenv; cross = "arm-linux"; @@ -4975,6 +4983,12 @@ let pkgs = rec { kernelHeaders = kernelHeaders_2_6_23; }; + kvm69 = import ../os-specific/linux/kvm/69.nix { + inherit fetchurl zlib e2fsprogs SDL alsaLib pkgconfig rsync; + stdenv = overrideGCC stdenv gcc34; + kernelHeaders = kernelHeaders_2_6_26; + }; + libcap = import ../os-specific/linux/libcap { inherit fetchurl stdenv attr; };