mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-15 00:52:07 +03:00
lxd: add dependencies to wrapper for VM support
This commit is contained in:
parent
195110917e
commit
60e3a11e1e
@ -1,6 +1,8 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, lxd-unwrapped
|
, lxd-unwrapped
|
||||||
|
, linkFarm
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
|
, stdenv
|
||||||
, symlinkJoin
|
, symlinkJoin
|
||||||
, writeShellScriptBin
|
, writeShellScriptBin
|
||||||
, acl
|
, acl
|
||||||
@ -12,13 +14,18 @@
|
|||||||
, criu
|
, criu
|
||||||
, dnsmasq
|
, dnsmasq
|
||||||
, gnutar
|
, gnutar
|
||||||
|
, gptfdisk
|
||||||
, gzip
|
, gzip
|
||||||
, iproute2
|
, iproute2
|
||||||
, iptables
|
, iptables
|
||||||
|
, OVMF
|
||||||
|
, qemu_kvm
|
||||||
|
, qemu-utils
|
||||||
, rsync
|
, rsync
|
||||||
|
, spice-gtk
|
||||||
, squashfsTools
|
, squashfsTools
|
||||||
|
, virtiofsd
|
||||||
, xz
|
, xz
|
||||||
,
|
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
binPath = lib.makeBinPath [
|
binPath = lib.makeBinPath [
|
||||||
@ -29,17 +36,63 @@ let
|
|||||||
criu
|
criu
|
||||||
dnsmasq
|
dnsmasq
|
||||||
gnutar
|
gnutar
|
||||||
|
gptfdisk
|
||||||
gzip
|
gzip
|
||||||
iproute2
|
iproute2
|
||||||
iptables
|
iptables
|
||||||
|
qemu_kvm
|
||||||
|
qemu-utils
|
||||||
rsync
|
rsync
|
||||||
squashfsTools
|
squashfsTools
|
||||||
|
virtiofsd
|
||||||
xz
|
xz
|
||||||
|
|
||||||
(writeShellScriptBin "apparmor_parser" ''
|
(writeShellScriptBin "apparmor_parser" ''
|
||||||
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
|
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
|
|
||||||
|
clientBinPath = [
|
||||||
|
spice-gtk
|
||||||
|
];
|
||||||
|
|
||||||
|
ovmf-2mb = OVMF.override {
|
||||||
|
secureBoot = true;
|
||||||
|
csmSupport = false;
|
||||||
|
fdSize2MB = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ovmf-4mb = OVMF.override {
|
||||||
|
secureBoot = true;
|
||||||
|
csmSupport = false;
|
||||||
|
fdSize4MB = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ovmf-4mb-csm = OVMF.override {
|
||||||
|
secureBoot = true;
|
||||||
|
csmSupport = false;
|
||||||
|
fdSize2MB = false;
|
||||||
|
fdSize4MB = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ovmf-prefix = if stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
|
||||||
|
|
||||||
|
# mimic ovmf from https://github.com/canonical/lxd-pkg-snap/blob/3abebe1dfeb20f9b7729556960c7e9fe6ad5e17c/snapcraft.yaml#L378
|
||||||
|
# also found in /snap/lxd/current/share/qemu/ on a snap install
|
||||||
|
ovmf = linkFarm "lxd-ovmf" [
|
||||||
|
{ name = "OVMF_CODE.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
|
||||||
|
{ name = "OVMF_CODE.4MB.CSM.fd"; path = "${ovmf-4mb-csm.fd}/FV/${ovmf-prefix}_CODE.fd"; }
|
||||||
|
{ name = "OVMF_CODE.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
|
||||||
|
{ name = "OVMF_CODE.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
|
||||||
|
|
||||||
|
{ name = "OVMF_VARS.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.2MB.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.4MB.CSM.fd"; path = "${ovmf-4mb-csm.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.4MB.ms.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
{ name = "OVMF_VARS.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
|
||||||
|
];
|
||||||
in
|
in
|
||||||
symlinkJoin {
|
symlinkJoin {
|
||||||
name = "lxd-${lxd-unwrapped.version}";
|
name = "lxd-${lxd-unwrapped.version}";
|
||||||
@ -49,11 +102,13 @@ symlinkJoin {
|
|||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
wrapProgram $out/bin/lxd --prefix PATH : ${lib.escapeShellArg binPath}
|
wrapProgram $out/bin/lxd --prefix PATH : ${lib.escapeShellArg binPath}:${qemu_kvm}/libexec:$out/bin --set LXD_OVMF_PATH ${ovmf}
|
||||||
|
|
||||||
|
wrapProgram $out/bin/lxc --prefix PATH : ${lib.makeBinPath clientBinPath}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit (lxd-unwrapped) tests;
|
inherit (lxd-unwrapped) tests ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit (lxd-unwrapped) meta pname version;
|
inherit (lxd-unwrapped) meta pname version;
|
||||||
|
Loading…
Reference in New Issue
Block a user