diff --git a/pkgs/applications/virtualization/xen/0000-fix-install-python.4.10.patch b/pkgs/applications/virtualization/xen/0000-fix-install-python.4.10.patch deleted file mode 100644 index 53821c0d9c51..000000000000 --- a/pkgs/applications/virtualization/xen/0000-fix-install-python.4.10.patch +++ /dev/null @@ -1,16 +0,0 @@ -tools/python/install-wrap script brakes shebangs patching, disable - -diff --git a/tools/Rules.mk b/tools/Rules.mk -index 87a56dc..a7da869 100644 ---- a/tools/Rules.mk -+++ b/tools/Rules.mk -@@ -90,8 +90,7 @@ CFLAGS += $(CFLAGS-y) - - CFLAGS += $(EXTRA_CFLAGS_XEN_TOOLS) - --INSTALL_PYTHON_PROG = \ -- $(XEN_ROOT)/tools/python/install-wrap "$(PYTHON_PATH)" $(INSTALL_PROG) -+INSTALL_PYTHON_PROG = $(INSTALL_PROG) - - %.opic: %.c - $(CC) $(CPPFLAGS) -DPIC $(CFLAGS) $(CFLAGS_$*.opic) -fPIC -c -o $@ $< $(APPEND_CFLAGS) diff --git a/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.10.patch b/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.10.patch deleted file mode 100644 index 072338b87aba..000000000000 --- a/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.10.patch +++ /dev/null @@ -1,27 +0,0 @@ -hack to make etherboot use prefetched ipxe - -diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile -index a0578d2..64428a0 100644 ---- a/tools/firmware/etherboot/Makefile -+++ b/tools/firmware/etherboot/Makefile -@@ -16,6 +16,7 @@ IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz - - D=ipxe - T=ipxe.tar.gz -+G=ipxe.git - - ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) - -@@ -36,9 +37,9 @@ $T: - fi - mv _$T $T - --$D/src/arch/i386/Makefile: $T Config -- rm -rf $D -- gzip -dc $T | tar xf - -+$D/src/arch/i386/Makefile: $G Config -+ mkdir $D -+ cp -a $G/* $D - for i in $$(cat patches/series) ; do \ - patch -d $D -p1 --quiet /dev/null && echo y) - # Check if the linker supports PE. --XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y)) -+XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(EFI_LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y)) - CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI - - $(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p') -@@ -188,20 +188,20 @@ - - $(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o $(BASEDIR)/common/symbols-dummy.o efi/mkreloc - $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ -- $(guard) $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ -+ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ - $(BASEDIR)/common/symbols-dummy.o $(note_file) -o $(@D)/.$(@F).$(base).0 &&) : - $(guard) efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S - $(guard) $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \ - | $(guard) $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S - $(guard) $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o - $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ -- $(guard) $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ -+ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ - $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file) -o $(@D)/.$(@F).$(base).1 &&) : - $(guard) efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S - $(guard) $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \ - | $(guard) $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S - $(guard) $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o -- $(guard) $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ -+ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ - $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file) -o $@ - if $(guard) false; then rm -f $@; echo 'EFI support disabled'; \ - else $(NM) -pa --format=sysv $(@D)/$(@F) \ diff --git a/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.10.patch b/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.10.patch deleted file mode 100644 index 11989e86c770..000000000000 --- a/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.10.patch +++ /dev/null @@ -1,35 +0,0 @@ -EFI_MOUNTPOINT is conventionally /boot/efi or /boot/EFI or something -like that, and (on my machine) has directories within that called -{Boot, nixos, gummiboot}. - -This patch does two things: - -1) Xen apparently wants to put files in -$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR) - we remove the duplicate 'efi' name -because I can't see why we have it - -2) Ensures the said directory exists - - ---- a/xen/Makefile 2016-01-08 01:50:58.028045657 +0000 -+++ b/xen/Makefile 2016-01-08 01:51:33.560268718 +0000 -@@ -49,7 +49,9 @@ - ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \ - ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \ - if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \ -- $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ -+ [ -d $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ] || \ -+ $(INSTALL_DIR) $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ;\ -+ $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ - elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \ - echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \ - fi; \ -@@ -69,7 +69,7 @@ - rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi - rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi - rm -f $(D)$(EFI_DIR)/$(T).efi -- rm -f $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi -+ rm -f $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi - - .PHONY: _debug - _debug: diff --git a/pkgs/applications/virtualization/xen/4.10.nix b/pkgs/applications/virtualization/xen/4.10.nix deleted file mode 100644 index 4e4df3976fc1..000000000000 --- a/pkgs/applications/virtualization/xen/4.10.nix +++ /dev/null @@ -1,204 +0,0 @@ -{ lib, callPackage, fetchurl, fetchpatch, fetchgit -, ocaml-ng -, withInternalQemu ? true -, withInternalTraditionalQemu ? true -, withInternalSeabios ? true -, withSeabios ? !withInternalSeabios, seabios ? null -, withInternalOVMF ? false # FIXME: tricky to build -, withOVMF ? false, OVMF -, withLibHVM ? true - -# xen -, lvm2, ncurses, python2Packages - -# qemu -, udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir -, alsa-lib, glib, python2 -, ... } @ args: - -assert withInternalSeabios -> !withSeabios; -assert withInternalOVMF -> !withOVMF; - -with lib; - -# Patching XEN? Check the XSAs at -# https://xenbits.xen.org/xsa/ -# and try applying all the ones we don't have yet. - -let - xsa = import ./xsa-patches.nix { inherit fetchpatch; }; - - qemuMemfdBuildFix = fetchpatch { - name = "xen-4.8-memfd-build-fix.patch"; - url = "https://github.com/qemu/qemu/commit/75e5b70e6b5dcc4f2219992d7cffa462aa406af0.patch"; - sha256 = "0gaz93kb33qc0jx6iphvny0yrd17i8zhcl3a9ky5ylc2idz0wiwa"; - }; - - qemuDeps = [ - udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir - alsa-lib glib python2 - ]; -in - -callPackage (import ./generic.nix (rec { - version = "4.10.4"; - - src = fetchurl { - url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz"; - sha256 = "0ipkr7b3v3y183n6nfmz7q3gnzxa20011df4jpvxi6pmr8cpnkwh"; - }; - - # Sources needed to build tools and firmwares. - xenfiles = optionalAttrs withInternalQemu { - qemu-xen = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/qemu-xen.git"; - # rev = "refs/tags/qemu-xen-${version}"; - # use revision hash - reproducible but must be updated with each new version - rev = "qemu-xen-${version}"; - sha256 = "0laxvhdjz1njxjvq3jzw2yqvdr9gdn188kqjf2gcrfzgih7xv2ym"; - }; - buildInputs = qemuDeps; - postPatch = '' - # needed in build but /usr/bin/env is not available in sandbox - substituteInPlace scripts/tracetool.py \ - --replace "/usr/bin/env python" "${python2}/bin/python" - ''; - meta.description = "Xen's fork of upstream Qemu"; - }; - } // optionalAttrs withInternalTraditionalQemu { - qemu-xen-traditional = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/qemu-xen-traditional.git"; - # rev = "refs/tags/xen-${version}"; - # use revision hash - reproducible but must be updated with each new version - rev = "c8ea0457495342c417c3dc033bba25148b279f60"; - sha256 = "0v5nl3c08kpjg57fb8l191h1y57ykp786kz6l525jgplif28vx13"; - }; - buildInputs = qemuDeps; - patches = [ - ]; - postPatch = '' - substituteInPlace xen-hooks.mak \ - --replace /usr/include/pci ${pciutils}/include/pci - ''; - meta.description = "Xen's fork of upstream Qemu that uses old device model"; - }; - } // optionalAttrs withInternalSeabios { - "firmware/seabios-dir-remote" = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/seabios.git"; - rev = "f0cdc36d2f2424f6b40438f7ee7cc502c0eff4df"; - sha256 = "1wq5pjkjrfzqnq3wyr15mcn1l4c563m65gdyf8jm97kgb13pwwfm"; - }; - patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ]; - meta.description = "Xen's fork of Seabios"; - }; - } // optionalAttrs withInternalOVMF { - "firmware/ovmf-dir-remote" = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/ovmf.git"; - rev = "173bf5c847e3ca8b42c11796ce048d8e2e916ff8"; - sha256 = "07zmdj90zjrzip74fvd4ss8n8njk6cim85s58mc6snxmqqv7gmcr"; - }; - meta.description = "Xen's fork of OVMF"; - }; - } // { - # TODO: patch Xen to make this optional? - "firmware/etherboot/ipxe.git" = { - src = fetchgit { - url = "https://git.ipxe.org/ipxe.git"; - rev = "356f6c1b64d7a97746d1816cef8ca22bdd8d0b5d"; - sha256 = "15n400vm3id5r8y3k6lrp9ab2911a9vh9856f5gvphkazfnmns09"; - }; - meta.description = "Xen's fork of iPXE"; - }; - } // optionalAttrs withLibHVM { - xen-libhvm-dir-remote = { - src = fetchgit { - name = "xen-libhvm"; - url = "https://github.com/michalpalka/xen-libhvm"; - rev = "83065d36b36d6d527c2a4e0f5aaf0a09ee83122c"; - sha256 = "1jzv479wvgjkazprqdzcdjy199azmx2xl3pnxli39kc5mvjz3lzd"; - }; - buildPhase = '' - make - cd biospt - cc -Wall -g -D_LINUX -Wstrict-prototypes biospt.c -o biospt -I../libhvm -L../libhvm -lxenhvm - ''; - installPhase = '' - make install - cp biospt/biospt $out/bin/ - ''; - meta = { - description = '' - Helper library for reading ACPI and SMBIOS firmware values - from the host system for use with the HVM guest firmware - pass-through feature in Xen''; - license = licenses.bsd2; - }; - }; - }; - - configureFlags = [] - ++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH - ++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional" - ++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional" - - ++ optional (withSeabios) "--with-system-seabios=${seabios}" - ++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios" - - ++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd" - ++ optional (withInternalOVMF) "--enable-ovmf"; - - env.NIX_CFLAGS_COMPILE = toString [ - # Fix build on Glibc 2.24. - "-Wno-error=deprecated-declarations" - # Fix build with GCC 8 - "-Wno-error=maybe-uninitialized" - "-Wno-error=stringop-truncation" - "-Wno-error=format-truncation" - "-Wno-error=array-bounds" - # Fix build with GCC 9 - "-Wno-error=address-of-packed-member" - "-Wno-error=format-overflow" - "-Wno-error=absolute-value" - # Fix build with GCC 10 - "-Wno-error=enum-conversion" - "-Wno-error=zero-length-bounds" - ]; - - patches = [ - ./0000-fix-ipxe-src.4.10.patch - ./0000-fix-install-python.4.10.patch - ./0004-makefile-use-efi-ld.4.10.patch - ./0005-makefile-fix-efi-mountdir-use.4.10.patch - ]; - - postPatch = '' - substituteInPlace tools/blktap2/lvm/lvm-util.c \ - --replace /usr/sbin/vgs ${lvm2}/bin/vgs \ - --replace /usr/sbin/lvs ${lvm2}/bin/lvs - - substituteInPlace tools/xenstat/Makefile \ - --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h - - # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror. - sed 1i'#include ' \ - -i tools/blktap2/control/tap-ctl-allocate.c \ - -i tools/libxl/libxl_device.c - # Makefile didn't include previous PKG_CONFIG_PATH so glib wasn't found - substituteInPlace tools/Makefile \ - --replace 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config' 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config:$(PKG_CONFIG_PATH)' - ''; - - passthru = { - qemu-system-i386 = if withInternalQemu - then "lib/xen/bin/qemu-system-i386" - else throw "this xen has no qemu builtin"; - }; - -})) ({ - ocamlPackages = ocaml-ng.ocamlPackages_4_05; - pythonPackages = python2Packages; -} // args) diff --git a/pkgs/applications/virtualization/xen/packages.nix b/pkgs/applications/virtualization/xen/packages.nix index 722551461946..c55a719995c0 100644 --- a/pkgs/applications/virtualization/xen/packages.nix +++ b/pkgs/applications/virtualization/xen/packages.nix @@ -6,52 +6,6 @@ # light] for each ./.nix. rec { - xen_4_10-vanilla = callPackage ./4.10.nix { - meta = { - description = "vanilla"; - longDescription = '' - Vanilla version of Xen. Uses forks of Qemu and Seabios bundled - with Xen. This gives vanilla experince, but wastes space and - build time: typical NixOS setup that runs lots of VMs will - build three different versions of Qemu when using this (two - forks and upstream). - ''; - }; - }; - - xen_4_10-slim = xen_4_10-vanilla.override { - withInternalQemu = false; - withInternalTraditionalQemu = true; - withInternalSeabios = false; - withSeabios = true; - - meta = { - description = "slim"; - longDescription = '' - Slimmed-down version of Xen that reuses nixpkgs packages as - much as possible. Different parts may get out of sync, but - this builds faster and uses less space than vanilla. Use with - `qemu_xen` from nixpkgs. - ''; - }; - }; - - xen_4_10-light = xen_4_10-vanilla.override { - withInternalQemu = false; - withInternalTraditionalQemu = false; - withInternalSeabios = false; - withSeabios = true; - - meta = { - description = "light"; - longDescription = '' - Slimmed-down version of Xen without `qemu-traditional` (you - don't need it if you don't know what it is). Use with - `qemu_xen-light` from nixpkgs. - ''; - }; - }; - xen_4_15-vanilla = callPackage ./4.15.nix { meta = { description = "vanilla"; @@ -98,7 +52,7 @@ rec { }; }; - xen-vanilla = xen_4_10-vanilla; - xen-slim = xen_4_10-slim; - xen-light = xen_4_10-light; + xen-vanilla = xen_4_15-vanilla; + xen-slim = xen_4_15-slim; + xen-light = xen_4_15-light; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1159ea79623b..d7d2d2f9b99d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26841,8 +26841,6 @@ with pkgs; # Building with `xen` instead of `xen-slim` is possible, but makes no sense. qemu_xen = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-slim; }); qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; }); - qemu_xen_4_10 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-slim; }); - qemu_xen_4_10-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-light; }); qemu_xen_4_15 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-slim; }); qemu_xen_4_15-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-light; }); @@ -34550,10 +34548,6 @@ with pkgs; xen-slim = xenPackages.xen-slim; xen-light = xenPackages.xen-light; - xen_4_10 = xenPackages.xen_4_10-vanilla; - xen_4_10-slim = xenPackages.xen_4_10-slim; - xen_4_10-light = xenPackages.xen_4_10-light; - xen_4_15 = xenPackages.xen_4_15-vanilla; xen_4_15-slim = xenPackages.xen_4_15-slim; xen_4_15-light = xenPackages.xen_4_15-light;