diff options
Diffstat (limited to 'pkgs/applications/virtualization/xen/default.nix')
-rw-r--r-- | pkgs/applications/virtualization/xen/default.nix | 62 |
1 files changed, 58 insertions, 4 deletions
diff --git a/pkgs/applications/virtualization/xen/default.nix b/pkgs/applications/virtualization/xen/default.nix index 0a0bf9d431d3..b7a7d1ed31f4 100644 --- a/pkgs/applications/virtualization/xen/default.nix +++ b/pkgs/applications/virtualization/xen/default.nix @@ -1,8 +1,36 @@ { stdenv, fetchurl, which, zlib, pkgconfig, SDL, openssl, python , libuuid, gettext, ncurses, dev86, iasl, pciutils, bzip2, xz -, lvm2, utillinux, procps }: +, lvm2, utillinux, procps, texinfo, perl }: + +with stdenv.lib; + +let + + version = "4.0.1"; + + libDir = if stdenv.is64bit then "lib64" else "lib"; + + # Sources needed to build the stubdoms. + + stubdomSrcs = + [ { url = http://xenbits.xensource.com/xen-extfiles/lwip-1.3.0.tar.gz; + sha256 = "13wlr85s1hnvia6a698qpryyy12lvmqw0a05xmjnd0h71ralsbkp"; + } + { url = http://xenbits.xensource.com/xen-extfiles/zlib-1.2.3.tar.gz; + sha256 = "0pmh8kifb6sfkqfxc23wqp3f2wzk69sl80yz7w8p8cd4cz8cg58p"; + } + { url = http://xenbits.xensource.com/xen-extfiles/newlib-1.16.0.tar.gz; + sha256 = "01rxk9js833mwadq92jx0flvk9jyjrnwrq93j39c2j2wjsa66hnv"; + } + { url = http://xenbits.xensource.com/xen-extfiles/grub-0.97.tar.gz; + sha256 = "02r6b52r0nsp6ryqfiqchnl7r1d9smm80sqx24494gmx5p8ia7af"; + } + { url = http://xenbits.xensource.com/xen-extfiles/pciutils-2.2.9.tar.bz2; + sha256 = "092v4q478i1gc7f3s2wz6p4xlf1wb4gs5shbkn21vnnmzcffc2pn"; + } + ]; -let version = "4.0.1"; in +in stdenv.mkDerivation { name = "xen-${version}"; @@ -20,12 +48,12 @@ stdenv.mkDerivation { buildInputs = [ which zlib pkgconfig SDL openssl python libuuid gettext ncurses - dev86 iasl pciutils bzip2 xz + dev86 iasl pciutils bzip2 xz texinfo perl ]; makeFlags = "PREFIX=$(out) CONFIG_DIR=/etc"; - buildFlags = "xen tools"; + buildFlags = "xen tools stubdom"; preBuild = '' @@ -55,6 +83,29 @@ stdenv.mkDerivation { substituteInPlace tools/python/xen/xend/XendQCoWStorageRepo.py \ --replace /usr/sbin/qcow-create $out/sbin/qcow-create + + substituteInPlace tools/python/xen/remus/save.py \ + --replace /usr/lib/xen/bin/xc_save $out/${libDir}/xen/bin/xc_save + + substituteInPlace tools/python/xen/remus/device.py \ + --replace /usr/lib/xen/bin/imqebt $out/${libDir}/xen/bin/imqebt + + # Allow the location of the xendomains config file to be + # overriden at runtime. + substituteInPlace tools/hotplug/Linux/init.d/xendomains \ + --replace 'XENDOM_CONFIG=/etc/sysconfig/xendomains' "" \ + --replace /bin/ls ls + + # Xen's stubdoms need various sources that it usually fetches at + # build time using wget. We can't have that. + ${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in '' + cp ${src} stubdom/${src.name} + '')} + ''; + + postBuild = + '' + make -C docs man-pages ''; installPhase = @@ -62,6 +113,7 @@ stdenv.mkDerivation { cp -prvd dist/install/nix/store/* $out cp -prvd dist/install/boot $out/boot cp -prvd dist/install/etc $out/etc + cp -dR docs/man1 docs/man5 $out/share/man/ ''; # */ postFixup = @@ -80,5 +132,7 @@ stdenv.mkDerivation { meta = { homepage = http://www.xen.org/; description = "Xen hypervisor and management tools for Dom0"; + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = [ stdenv.lib.maintainers.eelco ]; }; } |