xen: upgrade to 4.15

+376 -16
+16
pkgs/applications/virtualization/xen/0000-fix-install-python.4.15.patch
··· 1 + tools/python/install-wrap script brakes shebangs patching, disable 2 + 3 + diff --git a/tools/Rules.mk b/tools/Rules.mk 4 + index 444e5bacdd..c99ea959ff 100644 5 + --- a/tools/Rules.mk 6 + +++ b/tools/Rules.mk 7 + @@ -135,8 +135,7 @@ CFLAGS += $(CFLAGS-y) 8 + 9 + CFLAGS += $(EXTRA_CFLAGS_XEN_TOOLS) 10 + 11 + -INSTALL_PYTHON_PROG = \ 12 + - $(XEN_ROOT)/tools/python/install-wrap "$(PYTHON_PATH)" $(INSTALL_PROG) 13 + +INSTALL_PYTHON_PROG = $(INSTALL_PROG) 14 + 15 + %.opic: %.c 16 + $(CC) $(CPPFLAGS) -DPIC $(CFLAGS) $(CFLAGS_$*.opic) -fPIC -c -o $@ $< $(APPEND_CFLAGS)
+27
pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.15.patch
··· 1 + hack to make etherboot use prefetched ipxe 2 + 3 + diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile 4 + index ed9e11305f..979a3acea8 100644 5 + --- a/tools/firmware/etherboot/Makefile 6 + +++ b/tools/firmware/etherboot/Makefile 7 + @@ -16,6 +16,7 @@ IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz 8 + 9 + D=ipxe 10 + T=ipxe.tar.gz 11 + +G=ipxe.git 12 + 13 + ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) 14 + ROM = $D/src/bin/ipxe.bin 15 + @@ -41,9 +42,9 @@ $T: 16 + fi 17 + mv _$T $T 18 + 19 + -$D/src/arch/i386/Makefile: $T Config 20 + - rm -rf $D 21 + - gzip -dc $T | tar xf - 22 + +$D/src/arch/i386/Makefile: $G Config 23 + + mkdir $D 24 + + cp -a $G/* $D 25 + for i in $$(cat patches/series) ; do \ 26 + patch -d $D -p1 --quiet <patches/$$i || exit 1 ; \ 27 + done
+42
pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.4.15.patch
··· 1 + diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile 2 + index b6567c4127..83defeee95 100644 3 + --- a/xen/arch/x86/Makefile 4 + +++ b/xen/arch/x86/Makefile 5 + @@ -124,11 +124,11 @@ ifneq ($(efi-y),) 6 + export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check.o 2>/dev/null && echo y) 7 + # Check if the linker supports PE. 8 + EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 --strip-debug 9 + -XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) $(EFI_LDFLAGS) -o efi/check.efi efi/check.o 2>/dev/null && echo y)) 10 + +XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(EFI_LD) $(EFI_LDFLAGS) -o efi/check.efi efi/check.o 2>/dev/null && echo y)) 11 + CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI 12 + # Check if the linker produces fixups in PE by default (we need to disable it doing so for now). 13 + XEN_NO_PE_FIXUPS := $(if $(XEN_BUILD_EFI), \ 14 + - $(shell $(LD) $(EFI_LDFLAGS) --disable-reloc-section -o efi/check.efi efi/check.o 2>/dev/null && \ 15 + + $(shell $(EFI_LD) $(EFI_LDFLAGS) --disable-reloc-section -o efi/check.efi efi/check.o 2>/dev/null && \ 16 + echo --disable-reloc-section)) 17 + endif 18 + 19 + @@ -217,20 +217,20 @@ note_file_option ?= $(note_file) 20 + ifeq ($(XEN_BUILD_PE),y) 21 + $(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc 22 + $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ 23 + - $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ 24 + + $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ 25 + $(BASEDIR)/common/symbols-dummy.o $(note_file_option) -o $(@D)/.$(@F).$(base).0 &&) : 26 + efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S 27 + $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \ 28 + | $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S 29 + $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o 30 + $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ 31 + - $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ 32 + + $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ 33 + $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file_option) -o $(@D)/.$(@F).$(base).1 &&) : 34 + efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S 35 + $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \ 36 + | $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S 37 + $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o 38 + - $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ 39 + + $(EFI_LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ 40 + $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file_option) -o $@ 41 + $(NM) -pa --format=sysv $(@D)/$(@F) \ 42 + | $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort >$(@D)/$(@F).map
+37
pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.15.patch
··· 1 + EFI_MOUNTPOINT is conventionally /boot/efi or /boot/EFI or something 2 + like that, and (on my machine) has directories within that called 3 + {Boot, nixos, gummiboot}. 4 + 5 + This patch does two things: 6 + 7 + 1) Xen apparently wants to put files in 8 + $(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR) - we remove the duplicate 'efi' name 9 + because I can't see why we have it 10 + 11 + 2) Ensures the said directory exists 12 + 13 + 14 + diff --git a/xen/Makefile b/xen/Makefile 15 + index acb2d28891..d0763fbbe7 100644 16 + --- a/xen/Makefile 17 + +++ b/xen/Makefile 18 + @@ -289,7 +289,9 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) 19 + ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \ 20 + ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \ 21 + if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \ 22 + - $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ 23 + + [ -d $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ] || \ 24 + + $(INSTALL_DIR) $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ;\ 25 + + $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ 26 + elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \ 27 + echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \ 28 + fi; \ 29 + @@ -319,7 +321,7 @@ _uninstall: 30 + rm -f $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.map 31 + rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi 32 + rm -f $(D)$(EFI_DIR)/$(T).efi 33 + - rm -f $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi 34 + + rm -f $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi 35 + 36 + .PHONY: _debug 37 + _debug:
+14 -1
pkgs/applications/virtualization/xen/4.10.nix
··· 8 8 , withOVMF ? false, OVMF 9 9 , withLibHVM ? true 10 10 11 + # xen 12 + , lvm2, ncurses, python2Packages 13 + 11 14 # qemu 12 15 , udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir 13 16 , alsa-lib, glib, python2 ··· 173 176 ]; 174 177 175 178 postPatch = '' 179 + substituteInPlace tools/blktap2/lvm/lvm-util.c \ 180 + --replace /usr/sbin/vgs ${lvm2}/bin/vgs \ 181 + --replace /usr/sbin/lvs ${lvm2}/bin/lvs 182 + 183 + substituteInPlace tools/xenstat/Makefile \ 184 + --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h 185 + 176 186 # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror. 177 187 sed 1i'#include <sys/sysmacros.h>' \ 178 188 -i tools/blktap2/control/tap-ctl-allocate.c \ ··· 188 198 else throw "this xen has no qemu builtin"; 189 199 }; 190 200 191 - })) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_05; } // args) 201 + })) ({ 202 + ocamlPackages = ocaml-ng.ocamlPackages_4_05; 203 + pythonPackages = python2Packages; 204 + } // args)
+179
pkgs/applications/virtualization/xen/4.15.nix
··· 1 + { lib, callPackage, fetchurl, fetchpatch, fetchgit 2 + , ocaml-ng 3 + , withInternalQemu ? true 4 + , withInternalTraditionalQemu ? true 5 + , withInternalSeabios ? true 6 + , withSeabios ? !withInternalSeabios, seabios ? null 7 + , withInternalOVMF ? false # FIXME: tricky to build 8 + , withOVMF ? false, OVMF 9 + , withLibHVM ? false 10 + 11 + # xen 12 + , python3Packages 13 + 14 + # qemu 15 + , udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir 16 + , alsa-lib, glib, python3 17 + , ... } @ args: 18 + 19 + assert withInternalSeabios -> !withSeabios; 20 + assert withInternalOVMF -> !withOVMF; 21 + assert !withLibHVM; 22 + 23 + with lib; 24 + 25 + # Patching XEN? Check the XSAs at 26 + # https://xenbits.xen.org/xsa/ 27 + # and try applying all the ones we don't have yet. 28 + 29 + let 30 + xsa = import ./xsa-patches.nix { inherit fetchpatch; }; 31 + 32 + qemuMemfdBuildFix = fetchpatch { 33 + name = "xen-4.8-memfd-build-fix.patch"; 34 + url = "https://github.com/qemu/qemu/commit/75e5b70e6b5dcc4f2219992d7cffa462aa406af0.patch"; 35 + sha256 = "0gaz93kb33qc0jx6iphvny0yrd17i8zhcl3a9ky5ylc2idz0wiwa"; 36 + }; 37 + 38 + qemuDeps = [ 39 + udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir 40 + alsa-lib glib python3 41 + ]; 42 + in 43 + 44 + callPackage (import ./generic.nix (rec { 45 + version = "4.15.0"; 46 + 47 + src = fetchurl { 48 + url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz"; 49 + sha256 = "1bddy402pw7brng5xnbm9l592ylvgm2hfrydxl9jk7vcfaa17x3c"; 50 + }; 51 + 52 + # Sources needed to build tools and firmwares. 53 + xenfiles = optionalAttrs withInternalQemu { 54 + qemu-xen = { 55 + src = fetchgit { 56 + url = "https://xenbits.xen.org/git-http/qemu-xen.git"; 57 + # rev = "refs/tags/qemu-xen-${version}"; 58 + # use revision hash - reproducible but must be updated with each new version 59 + rev = "7ea428895af2840d85c524f0bd11a38aac308308"; 60 + sha256 = "0p6v8w3xasp2jggwyjnyn7hrzdmx1qimf8x49p070xcfr96mrpyp"; 61 + }; 62 + buildInputs = qemuDeps; 63 + postPatch = '' 64 + # needed in build but /usr/bin/env is not available in sandbox 65 + substituteInPlace scripts/tracetool.py \ 66 + --replace "/usr/bin/env python" "${python3}/bin/python" 67 + ''; 68 + meta.description = "Xen's fork of upstream Qemu"; 69 + }; 70 + } // optionalAttrs withInternalTraditionalQemu { 71 + # TODO 4.15: something happened with traditional in this release? 72 + qemu-xen-traditional = { 73 + src = fetchgit { 74 + url = "https://xenbits.xen.org/git-http/qemu-xen-traditional.git"; 75 + # rev = "refs/tags/xen-${version}"; 76 + # use revision hash - reproducible but must be updated with each new version 77 + rev = "3d273dd05e51e5a1ffba3d98c7437ee84e8f8764"; 78 + sha256 = "1dc6dhjp4y2irmi9yiyw1kzmm1habyy8j1s2zkf6qyak850krqj7"; 79 + }; 80 + buildInputs = qemuDeps; 81 + patches = [ 82 + ]; 83 + postPatch = '' 84 + substituteInPlace xen-hooks.mak \ 85 + --replace /usr/include/pci ${pciutils}/include/pci 86 + ''; 87 + meta.description = "Xen's fork of upstream Qemu that uses old device model"; 88 + }; 89 + } // optionalAttrs withInternalSeabios { 90 + "firmware/seabios-dir-remote" = { 91 + src = fetchgit { 92 + url = "https://xenbits.xen.org/git-http/seabios.git"; 93 + rev = "b0d61ecef66eb05bd7a4eb7ada88ec5dab06dfee"; 94 + sha256 = "07y06vlqj0qm1945c50pg07lvcpv6bibc6qxhavfcx3zskzsz863"; 95 + }; 96 + patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ]; 97 + meta.description = "Xen's fork of Seabios"; 98 + }; 99 + } // optionalAttrs withInternalOVMF { 100 + "firmware/ovmf-dir-remote" = { 101 + src = fetchgit { 102 + url = "https://xenbits.xen.org/git-http/ovmf.git"; 103 + rev = "a3741780fe3535e19e02efa869a7cac481891129"; 104 + sha256 = "0000000000000000000000000000000000000000000000000000"; 105 + }; 106 + meta.description = "Xen's fork of OVMF"; 107 + }; 108 + } // { 109 + # TODO: patch Xen to make this optional? 110 + "firmware/etherboot/ipxe.git" = { 111 + src = fetchgit { 112 + url = "https://git.ipxe.org/ipxe.git"; 113 + rev = "988d2c13cdf0f0b4140685af35ced70ac5b3283c"; 114 + sha256 = "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9"; 115 + }; 116 + meta.description = "Xen's fork of iPXE"; 117 + }; 118 + }; 119 + 120 + configureFlags = [] 121 + ++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH 122 + ++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional" 123 + ++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional" 124 + 125 + ++ optional (withSeabios) "--with-system-seabios=${seabios}" 126 + ++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios" 127 + 128 + ++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd" 129 + ++ optional (withInternalOVMF) "--enable-ovmf"; 130 + 131 + NIX_CFLAGS_COMPILE = toString [ 132 + # TODO 4.15: drop unneeded ones 133 + # Fix build on Glibc 2.24. 134 + "-Wno-error=deprecated-declarations" 135 + # Fix build with GCC 8 136 + "-Wno-error=maybe-uninitialized" 137 + "-Wno-error=stringop-truncation" 138 + "-Wno-error=format-truncation" 139 + "-Wno-error=array-bounds" 140 + # Fix build with GCC 9 141 + "-Wno-error=address-of-packed-member" 142 + "-Wno-error=format-overflow" 143 + "-Wno-error=absolute-value" 144 + # Fix build with GCC 10 145 + "-Wno-error=enum-conversion" 146 + "-Wno-error=zero-length-bounds" 147 + ]; 148 + 149 + patches = [ 150 + ./0000-fix-ipxe-src.4.15.patch 151 + ./0000-fix-install-python.4.15.patch 152 + ./0004-makefile-use-efi-ld.4.15.patch 153 + ./0005-makefile-fix-efi-mountdir-use.4.15.patch 154 + ]; 155 + 156 + postPatch = '' 157 + # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror. 158 + sed 1i'#include <sys/sysmacros.h>' \ 159 + -i tools/libs/light/libxl_device.c 160 + 161 + # Fix missing pkg-config dir 162 + mkdir -p tools/pkg-config 163 + ''; 164 + 165 + preBuild = '' 166 + # PKG_CONFIG env var collides with variables used in tools Makefiles. 167 + unset PKG_CONFIG 168 + ''; 169 + 170 + passthru = { 171 + qemu-system-i386 = if withInternalQemu 172 + then "lib/xen/bin/qemu-system-i386" 173 + else throw "this xen has no qemu builtin"; 174 + }; 175 + 176 + })) ({ 177 + ocamlPackages = ocaml-ng.ocamlPackages_4_05; 178 + pythonPackages = python3Packages; 179 + } // args)
+9 -14
pkgs/applications/virtualization/xen/generic.nix
··· 4 4 # Xen 5 5 , bison, bzip2, checkpolicy, dev86, figlet, flex, gettext, glib 6 6 , acpica-tools, libaio, libiconv, libuuid, ncurses, openssl, perl 7 - , python2Packages 8 - # python2Packages.python 9 7 , xz, yajl, zlib 8 + , pythonPackages 10 9 11 10 # Xen Optional 12 11 , ocamlPackages ··· 14 13 # Scripts 15 14 , coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools 16 15 , iproute2, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd 17 - , lvm2, util-linux, procps, systemd 16 + , util-linux, procps, systemd 18 17 19 18 # Documentation 20 - # python2Packages.markdown 21 19 , transfig, ghostscript, texinfo, pandoc 22 20 23 21 , binutils-unwrapped ··· 72 70 73 71 # Xen 74 72 bison bzip2 checkpolicy dev86 figlet flex gettext glib acpica-tools libaio 75 - libiconv libuuid ncurses openssl perl python2Packages.python xz yajl zlib 73 + libiconv libuuid ncurses openssl perl pythonPackages.python xz yajl zlib 76 74 77 75 # oxenstored 78 76 ocamlPackages.findlib ocamlPackages.ocaml systemd 79 77 80 78 # Python fixes 81 - python2Packages.wrapPython 79 + pythonPackages.wrapPython 82 80 83 81 # Documentation 84 - python2Packages.markdown transfig ghostscript texinfo pandoc 82 + pythonPackages.markdown transfig ghostscript texinfo pandoc 85 83 86 84 # Others 87 85 ] ++ (concatMap (x: x.buildInputs or []) (attrValues config.xenfiles)) ··· 152 150 substituteInPlace tools/libfsimage/common/fsimage_plugin.c \ 153 151 --replace /usr $out 154 152 155 - substituteInPlace tools/blktap2/lvm/lvm-util.c \ 156 - --replace /usr/sbin/vgs ${lvm2}/bin/vgs \ 157 - --replace /usr/sbin/lvs ${lvm2}/bin/lvs 158 - 159 153 substituteInPlace tools/misc/xenpvnetboot \ 160 154 --replace /usr/sbin/mount ${util-linux}/bin/mount \ 161 155 --replace /usr/sbin/umount ${util-linux}/bin/umount 162 156 163 157 substituteInPlace tools/xenmon/xenmon.py \ 164 158 --replace /usr/bin/pkill ${procps}/bin/pkill 165 - 166 - substituteInPlace tools/xenstat/Makefile \ 167 - --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h 168 159 169 160 ${optionalString (builtins.compareVersions config.version "4.8" >= 0) '' 170 161 substituteInPlace tools/hotplug/Linux/launch-xenstore.in \ ··· 204 195 #makeFlags = [ "XSM_ENABLE=y" "FLASK_ENABLE=y" "PREFIX=$(out)" "CONFIG_DIR=/etc" "XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files" ]; 205 196 makeFlags = [ "PREFIX=$(out) CONFIG_DIR=/etc" "XEN_SCRIPT_DIR=/etc/xen/scripts" ] 206 197 ++ (config.makeFlags or []); 198 + 199 + preBuild = '' 200 + ${config.preBuild or ""} 201 + ''; 207 202 208 203 buildFlags = [ "xen" "tools" ]; 209 204
+46 -1
pkgs/applications/virtualization/xen/packages.nix
··· 52 52 }; 53 53 }; 54 54 55 + xen_4_15-vanilla = callPackage ./4.15.nix { 56 + meta = { 57 + description = "vanilla"; 58 + longDescription = '' 59 + Vanilla version of Xen. Uses forks of Qemu and Seabios bundled 60 + with Xen. This gives vanilla experince, but wastes space and 61 + build time: typical NixOS setup that runs lots of VMs will 62 + build three different versions of Qemu when using this (two 63 + forks and upstream). 64 + ''; 65 + }; 66 + }; 67 + 68 + xen_4_15-slim = xen_4_15-vanilla.override { 69 + withInternalQemu = false; 70 + withInternalTraditionalQemu = true; 71 + withInternalSeabios = false; 72 + withSeabios = true; 73 + 74 + meta = { 75 + description = "slim"; 76 + longDescription = '' 77 + Slimmed-down version of Xen that reuses nixpkgs packages as 78 + much as possible. Different parts may get out of sync, but 79 + this builds faster and uses less space than vanilla. Use with 80 + `qemu_xen` from nixpkgs. 81 + ''; 82 + }; 83 + }; 84 + 85 + xen_4_15-light = xen_4_15-vanilla.override { 86 + withInternalQemu = false; 87 + withInternalTraditionalQemu = false; 88 + withInternalSeabios = false; 89 + withSeabios = true; 90 + 91 + meta = { 92 + description = "light"; 93 + longDescription = '' 94 + Slimmed-down version of Xen without `qemu-traditional` (you 95 + don't need it if you don't know what it is). Use with 96 + `qemu_xen-light` from nixpkgs. 97 + ''; 98 + }; 99 + }; 100 + 55 101 xen-vanilla = xen_4_10-vanilla; 56 102 xen-slim = xen_4_10-slim; 57 103 xen-light = xen_4_10-light; 58 - 59 104 }
+6
pkgs/top-level/all-packages.nix
··· 22452 22452 qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; }); 22453 22453 qemu_xen_4_10 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-slim; }); 22454 22454 qemu_xen_4_10-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-light; }); 22455 + qemu_xen_4_15 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-slim; }); 22456 + qemu_xen_4_15-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-light; }); 22455 22457 22456 22458 qemu_test = lowPrio (qemu.override { hostCpuOnly = true; nixosTestRunner = true; }); 22457 22459 ··· 29220 29222 xen_4_10 = xenPackages.xen_4_10-vanilla; 29221 29223 xen_4_10-slim = xenPackages.xen_4_10-slim; 29222 29224 xen_4_10-light = xenPackages.xen_4_10-light; 29225 + 29226 + xen_4_15 = xenPackages.xen_4_15-vanilla; 29227 + xen_4_15-slim = xenPackages.xen_4_15-slim; 29228 + xen_4_15-light = xenPackages.xen_4_15-light; 29223 29229 29224 29230 xkbset = callPackage ../tools/X11/xkbset { }; 29225 29231