summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kqemu/1.4.0pre1.nix
blob: a24e65b378f37b45b97dfed5d94380e6d2f128ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{ stdenv, fetchurl, kernel, perl, fullDepEntry, ... }:

stdenv.mkDerivation rec {
  name = "kqemu-1.4.0pre1";
  
  src = fetchurl {
    url = "http://www.nongnu.org/qemu/${name}.tar.gz";
    sha256 = "14dlmawn3gia1j401ag5si5k1a1vav7jpv86rl37p1hwmr7fihxs";
  };

  buildInputs = [perl];
  
  configureFlags = [''--PREFIX=$out'' ''--kernel-path=$(ls -d ${kernel}/lib/modules/*/build)''];
  
  preConfigure = fullDepEntry ('' 
    sed -e '/#include/i#include <linux/sched.h>' -i kqemu-linux.c

    sed -e 's/memset/mymemset/g; s/memcpy/mymemcpy/g; s/void [*]my/static void *my/g' -i common/kernel.c
    sed -e 's/`uname -r`/'"$(basename ${kernel}/lib/modules/*)"'/' -i install.sh
    sed -e '/kernel_path=/akernel_path=$out$kernel_path' -i install.sh
    sed -e '/depmod/d' -i install.sh
    cat install.sh
  '') ["minInit" "doUnpack"]; 

  phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
  
  meta = {
    description = "Kernel module for Qemu acceleration";
  }; 
}