diff --git a/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch b/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch index 1eb3d5949de2..339972a2cdeb 100644 --- a/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch +++ b/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch @@ -1,8 +1,7 @@ -diff --git a/src/Kconfig b/src/Kconfig -index 45ca59c..faf8951 100644 ---- a/src/Kconfig -+++ b/src/Kconfig -@@ -144,13 +144,13 @@ menu "Hardware support" +diff -uNr a/src/Kconfig b/src/Kconfig +--- a/src/Kconfig 2015-08-31 10:15:13.231134858 +0200 ++++ b/src/Kconfig 2015-08-31 10:14:24.039180178 +0200 +@@ -144,13 +144,13 @@ config ATA_DMA depends on ATA bool "ATA DMA" @@ -16,8 +15,5 @@ index 45ca59c..faf8951 100644 - default n + default y help - Use 32bit PIO accesses on ATA (minor optimization on PCI -transfers). + Use 32bit PIO accesses on ATA (minor optimization on PCI transfers). config AHCI --- -1.7.10.4 diff --git a/pkgs/applications/virtualization/xen/4.4.1.nix b/pkgs/applications/virtualization/xen/4.4.1.nix deleted file mode 100644 index ec2056cc5475..000000000000 --- a/pkgs/applications/virtualization/xen/4.4.1.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ callPackage, fetchurl, ... } @ args: - -let - # Xen 4.4.1 - xenConfig = { - name = "xen-4.4.1"; - version = "4.4.1"; - - src = fetchurl { - url = "http://bits.xensource.com/oss-xen/release/4.4.1/xen-4.4.1.tar.gz"; - sha256 = "09gaqydqmy64s5pqnwgjyzhd3wc61xyghpqjfl97kmvm8ly9vd2m"; - }; - - # Sources needed to build the xen tools and tools/firmware. - toolsGits = - [ # tag qemu-xen-4.4.1 - { git = { name = "qemu-xen"; - url = git://xenbits.xen.org/qemu-upstream-4.4-testing.git; - rev = "65fc9b78ba3d868a26952db0d8e51cecf01d47b4"; - sha256 = "e24fb58f773fd9134c5aae6d3ca7e9f754dc9822de92b1eb2cedc76faf911f18"; - }; - } - # tag xen-4.4.1 - { git = { name = "qemu-xen-traditional"; - url = git://xenbits.xen.org/qemu-xen-4.4-testing.git; - rev = "6ae4e588081620b141071eb010ec40aca7e12876"; - sha256 = "b1ed1feb92fbe658273a8d6d38d6ea60b79c1658413dd93979d6d128d8554ded"; - }; - } - ]; - - firmwareGits = - [ # tag 1.7.3.1 - { git = { name = "seabios"; - url = git://xenbits.xen.org/seabios.git; - rev = "7d9cbe613694924921ed1a6f8947d711c5832eee"; - sha256 = "c071282bbcb1dd0d98536ef90cd1410f5d8da19648138e0e3863bc540d954a87"; - }; - } - { git = { name = "ovmf"; - url = git://xenbits.xen.org/ovmf.git; - rev = "447d264115c476142f884af0be287622cd244423"; - sha256 = "7086f882495a8be1497d881074e8f1005dc283a5e1686aec06c1913c76a6319b"; - }; - } - ]; - - }; - -in callPackage ./generic.nix (args // { xenConfig=xenConfig; }) diff --git a/pkgs/applications/virtualization/xen/4.5.0.nix b/pkgs/applications/virtualization/xen/4.5.0.nix index 156255be0d75..48b3ee4d75b1 100644 --- a/pkgs/applications/virtualization/xen/4.5.0.nix +++ b/pkgs/applications/virtualization/xen/4.5.0.nix @@ -58,17 +58,18 @@ let } ]; - xenserverPatches = let - patches = { - url = https://github.com/ts468/xen-4.5.pg.git; - rev = "3442b65b490f43c817cbc53369220d0b1ab9b785"; - sha256 = "31436c15def0a300b3ea1a63b2208c4a3bcbb143db5c6488d4db370b3ceeb845"; - }; + xenserverPatches = + let + patches = { + url = https://github.com/ts468/xen-4.5.pg.git; + rev = "3442b65b490f43c817cbc53369220d0b1ab9b785"; + sha256 = "31436c15def0a300b3ea1a63b2208c4a3bcbb143db5c6488d4db370b3ceeb845"; + }; in '' cp -r ${fetchgit patches}/master patches quilt push -a substituteInPlace tools/xenguest/Makefile --replace "_BSD_SOURCE" "_DEFAULT_SOURCE" - ''; + ''; xenPatches = [ ./0001-libxl-Spice-image-compression-setting-support-for-up.patch ./0002-libxl-Spice-streaming-video-setting-support-for-upst.patch diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix index 32e385635250..2ff66d843cad 100644 --- a/pkgs/applications/virtualization/xen/generic.nix +++ b/pkgs/applications/virtualization/xen/generic.nix @@ -76,79 +76,9 @@ stdenv.mkDerivation { pythonPath = [ pythonPackages.curses ]; patches = stdenv.lib.optionals ((xenserverPatched == false) && (builtins.hasAttr "xenPatches" xenConfig)) xenConfig.xenPatches; - patchPhase = stdenv.lib.optional ((xenserverPatched == true) && (builtins.hasAttr "xenserverPatches" xenConfig)) xenConfig.xenserverPatches; - preConfigure = '' - # Fake wget: copy prefetched downloads instead - mkdir wget - echo "#!/bin/sh" > wget/wget - echo "echo ===== Not fetching \$*, copy pre-fetched file instead" >> wget/wget - echo "cp \$4 \$3" >> wget/wget - chmod +x wget/wget - export PATH=$PATH:$PWD/wget - export EXTRA_QEMUU_CONFIGURE_ARGS="--enable-spice --enable-usb-redir --enable-linux-aio" - ''; - - # TODO: Flask needs more testing before enabling it by default. - #makeFlags = "XSM_ENABLE=y FLASK_ENABLE=y PREFIX=$(out) CONFIG_DIR=/etc XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files "; - makeFlags = "PREFIX=$(out) CONFIG_DIR=/etc XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files "; - - buildFlags = "xen tools stubdom"; - - preBuild = - '' - substituteInPlace tools/libfsimage/common/fsimage_plugin.c \ - --replace /usr $out - - substituteInPlace tools/blktap2/lvm/lvm-util.c \ - --replace /usr/sbin/vgs ${lvm2}/sbin/vgs \ - --replace /usr/sbin/lvs ${lvm2}/sbin/lvs - - substituteInPlace tools/hotplug/Linux/network-bridge \ - --replace /usr/bin/logger ${utillinux}/bin/logger - - substituteInPlace tools/xenmon/xenmon.py \ - --replace /usr/bin/pkill ${procps}/bin/pkill - - substituteInPlace tools/xenstat/Makefile \ - --replace /usr/include/curses.h ${ncurses}/include/curses.h - - substituteInPlace tools/ioemu-qemu-xen/xen-hooks.mak \ - --replace /usr/include/pci ${pciutils}/include/pci - - substituteInPlace tools/hotplug/Linux/xen-backend.rules \ - --replace /etc/xen/scripts $out/etc/xen/scripts - - # blktap is not provided by xen, but by xapi - sed -i '/blktap/d' tools/hotplug/Linux/xen-backend.rules - - # Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't - # print the GCC version number properly. - substituteInPlace xen/Makefile \ - --replace '$(CC) $(CFLAGS) -v' '$(CC) -v' - - substituteInPlace tools/python/xen/xend/server/BlktapController.py \ - --replace /usr/sbin/tapdisk2 $out/sbin/tapdisk2 - - 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 'XENDOM_CONFIG=/etc/default/xendomains' "" \ - --replace /etc/xen/scripts/hotplugpath.sh $out/etc/xen/scripts/hotplugpath.sh \ - --replace /bin/ls ls - - substituteInPlace tools/hotplug/Linux/xendomains \ - --replace /bin/ls ls + postPatch = '' + ${stdenv.lib.optionalString ((xenserverPatched == true) && (builtins.hasAttr "xenserverPatches" xenConfig)) xenConfig.xenserverPatches} # Xen's tools and firmares need various git repositories that it # usually checks out at time using git. We can't have that. @@ -171,12 +101,76 @@ stdenv.mkDerivation { ${flip concatMapStrings xenExtfiles (x: let src = fetchurl x; in '' cp ${src} xen_ext_files/${src.name} '')} + ''; + + preConfigure = '' + # Fake wget: copy prefetched downloads instead + mkdir wget + echo "#!/bin/sh" > wget/wget + echo "echo ===== Not fetching \$*, copy pre-fetched file instead" >> wget/wget + echo "cp \$4 \$3" >> wget/wget + chmod +x wget/wget + export PATH=$PATH:$PWD/wget + export EXTRA_QEMUU_CONFIGURE_ARGS="--enable-spice --enable-usb-redir --enable-linux-aio" + ''; + + postConfigure = + '' + substituteInPlace tools/libfsimage/common/fsimage_plugin.c \ + --replace /usr $out + + substituteInPlace tools/blktap2/lvm/lvm-util.c \ + --replace /usr/sbin/vgs ${lvm2}/sbin/vgs \ + --replace /usr/sbin/lvs ${lvm2}/sbin/lvs + + substituteInPlace tools/hotplug/Linux/network-bridge \ + --replace /usr/bin/logger ${utillinux}/bin/logger + + substituteInPlace tools/xenmon/xenmon.py \ + --replace /usr/bin/pkill ${procps}/bin/pkill + + substituteInPlace tools/xenstat/Makefile \ + --replace /usr/include/curses.h ${ncurses}/include/curses.h + + substituteInPlace tools/qemu-xen-traditional/xen-hooks.mak \ + --replace /usr/include/pci ${pciutils}/include/pci + + substituteInPlace tools/qemu-xen-traditional-dir-remote/xen-hooks.mak \ + --replace /usr/include/pci ${pciutils}/include/pci + + substituteInPlace tools/hotplug/Linux/xen-backend.rules \ + --replace /etc/xen/scripts $out/etc/xen/scripts + + # blktap is not provided by xen, but by xapi + sed -i '/blktap/d' tools/hotplug/Linux/xen-backend.rules + + # Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't + # print the GCC version number properly. + substituteInPlace xen/Makefile \ + --replace '$(CC) $(CFLAGS) -v' '$(CC) -v' + + # 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 'XENDOM_CONFIG=/etc/default/xendomains' "" \ + --replace /etc/xen/scripts/hotplugpath.sh $out/etc/xen/scripts/hotplugpath.sh \ + --replace /bin/ls ls + + substituteInPlace tools/hotplug/Linux/xendomains \ + --replace /bin/ls ls # Hack to get `gcc -m32' to work without having 32-bit Glibc headers. mkdir -p tools/include/gnu touch tools/include/gnu/stubs-32.h ''; + # TODO: Flask needs more testing before enabling it by default. + #makeFlags = "XSM_ENABLE=y FLASK_ENABLE=y PREFIX=$(out) CONFIG_DIR=/etc XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files "; + makeFlags = "PREFIX=$(out) CONFIG_DIR=/etc XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files "; + + buildFlags = "xen tools stubdom"; + postBuild = '' make -C docs man-pages diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fba483b6ed8c..7c0b9208e7c9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13461,7 +13461,6 @@ let xdotool = callPackage ../tools/X11/xdotool { }; - xen_4_4_1 = callPackage ../applications/virtualization/xen/4.4.1.nix { }; xen_4_5_0 = callPackage ../applications/virtualization/xen/4.5.0.nix { }; xen_4_5_1 = callPackage ../applications/virtualization/xen/4.5.1.nix { }; xen_xenServer = callPackage ../applications/virtualization/xen/4.5.0.nix { xenserverPatched = true; };