aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix34
1 files changed, 26 insertions, 8 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
index 854debc458a3..7cd02e69c5ef 100644
--- a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
@@ -14,12 +14,14 @@ config:
# Scripts
, coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools
, iproute, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
-, lvm2, utillinux, procps, systemd
+, lvm2, util-linux, procps, systemd
# Documentation
# python2Packages.markdown
, transfig, ghostscript, texinfo, pandoc
+, binutils-unwrapped
+
, ...} @ args:
with stdenv.lib;
@@ -28,7 +30,7 @@ let
#TODO: fix paths instead
scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [
which perl
- coreutils gawk gnused gnugrep diffutils utillinux multipath-tools
+ coreutils gawk gnused gnugrep diffutils util-linux multipath-tools
iproute inetutils iptables bridge-utils openvswitch nbd drbd
];
@@ -42,6 +44,17 @@ let
}
( __do )
'');
+
+ # We don't want to use the wrapped version, because this version of ld is
+ # only used for linking the Xen EFI binary, and the build process really
+ # needs control over the LDFLAGS used
+ efiBinutils = binutils-unwrapped.overrideAttrs (oldAttrs: {
+ name = "efi-binutils";
+ configureFlags = oldAttrs.configureFlags ++ [
+ "--enable-targets=x86_64-pep"
+ ];
+ doInstallCheck = false; # We get a spurious failure otherwise, due to host/target mis-match
+ });
in
stdenv.mkDerivation (rec {
@@ -119,10 +132,12 @@ stdenv.mkDerivation (rec {
'')}
'';
- patches = [ ./0000-fix-ipxe-src.patch
- ./0000-fix-install-python.patch
- ] ++ optional (versionOlder version "4.8.5") ./acpica-utils-20180427.patch
- ++ (config.patches or []);
+ patches = [
+ ./0000-fix-ipxe-src.patch
+ ./0000-fix-install-python.patch
+ ./0004-makefile-use-efi-ld.patch
+ ./0005-makefile-fix-efi-mountdir-use.patch
+ ] ++ (config.patches or []);
postPatch = ''
### Hacks
@@ -146,8 +161,8 @@ stdenv.mkDerivation (rec {
--replace /usr/sbin/lvs ${lvm2}/bin/lvs
substituteInPlace tools/misc/xenpvnetboot \
- --replace /usr/sbin/mount ${utillinux}/bin/mount \
- --replace /usr/sbin/umount ${utillinux}/bin/umount
+ --replace /usr/sbin/mount ${util-linux}/bin/mount \
+ --replace /usr/sbin/umount ${util-linux}/bin/umount
substituteInPlace tools/xenmon/xenmon.py \
--replace /usr/bin/pkill ${procps}/bin/pkill
@@ -186,6 +201,9 @@ stdenv.mkDerivation (rec {
--replace /bin/ls ls
'';
+ EFI_LD = "${efiBinutils}/bin/ld";
+ EFI_VENDOR = "nixos";
+
# 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_SCRIPT_DIR=/etc/xen/scripts" ]