tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
lxd: move to by-name and format
Adam Stephens
2 years ago
20ab4593
5ebdf63b
+148
-124
3 changed files
expand all
collapse all
unified
split
pkgs
by-name
lx
lxd
package.nix
tools
admin
lxd
wrapper.nix
top-level
all-packages.nix
+148
pkgs/by-name/lx/lxd/package.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
lib,
3
+
lxd-unwrapped,
4
+
linkFarm,
5
+
makeWrapper,
6
+
stdenv,
7
+
symlinkJoin,
8
+
writeShellScriptBin,
9
+
acl,
10
+
apparmor-parser,
11
+
apparmor-profiles,
12
+
attr,
13
+
bash,
14
+
btrfs-progs,
15
+
cdrkit,
16
+
criu,
17
+
dnsmasq,
18
+
e2fsprogs,
19
+
getent,
20
+
gnutar,
21
+
gptfdisk,
22
+
gzip,
23
+
iproute2,
24
+
iptables,
25
+
kmod,
26
+
lvm2,
27
+
minio,
28
+
nftables,
29
+
OVMF,
30
+
qemu_kvm,
31
+
qemu-utils,
32
+
rsync,
33
+
spice-gtk,
34
+
squashfsTools,
35
+
thin-provisioning-tools,
36
+
util-linux,
37
+
virtiofsd,
38
+
xz,
39
+
}:
40
+
let
41
+
binPath = lib.makeBinPath [
42
+
acl
43
+
attr
44
+
bash
45
+
btrfs-progs
46
+
cdrkit
47
+
criu
48
+
dnsmasq
49
+
e2fsprogs
50
+
getent
51
+
gnutar
52
+
gptfdisk
53
+
gzip
54
+
iproute2
55
+
iptables
56
+
kmod
57
+
lvm2
58
+
minio
59
+
nftables
60
+
qemu_kvm
61
+
qemu-utils
62
+
rsync
63
+
squashfsTools
64
+
thin-provisioning-tools
65
+
util-linux
66
+
virtiofsd
67
+
xz
68
+
69
+
(writeShellScriptBin "apparmor_parser" ''
70
+
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
71
+
'')
72
+
];
73
+
74
+
clientBinPath = [ spice-gtk ];
75
+
76
+
ovmf-2mb = OVMF.override {
77
+
secureBoot = true;
78
+
fdSize2MB = true;
79
+
};
80
+
81
+
ovmf-4mb = OVMF.override {
82
+
secureBoot = true;
83
+
fdSize4MB = true;
84
+
};
85
+
86
+
ovmf-prefix = if stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
87
+
88
+
# mimic ovmf from https://github.com/canonical/lxd-pkg-snap/blob/3abebe1dfeb20f9b7729556960c7e9fe6ad5e17c/snapcraft.yaml#L378
89
+
# also found in /snap/lxd/current/share/qemu/ on a snap install
90
+
ovmf = linkFarm "lxd-ovmf" [
91
+
{
92
+
name = "OVMF_CODE.2MB.fd";
93
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd";
94
+
}
95
+
{
96
+
name = "OVMF_CODE.4MB.fd";
97
+
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_CODE.fd";
98
+
}
99
+
{
100
+
name = "OVMF_CODE.fd";
101
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd";
102
+
}
103
+
104
+
{
105
+
name = "OVMF_VARS.2MB.fd";
106
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
107
+
}
108
+
{
109
+
name = "OVMF_VARS.2MB.ms.fd";
110
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
111
+
}
112
+
{
113
+
name = "OVMF_VARS.4MB.fd";
114
+
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd";
115
+
}
116
+
{
117
+
name = "OVMF_VARS.4MB.ms.fd";
118
+
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd";
119
+
}
120
+
{
121
+
name = "OVMF_VARS.fd";
122
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
123
+
}
124
+
{
125
+
name = "OVMF_VARS.ms.fd";
126
+
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
127
+
}
128
+
];
129
+
in
130
+
symlinkJoin {
131
+
name = "lxd-${lxd-unwrapped.version}";
132
+
133
+
paths = [ lxd-unwrapped ];
134
+
135
+
nativeBuildInputs = [ makeWrapper ];
136
+
137
+
postBuild = ''
138
+
wrapProgram $out/bin/lxd --prefix PATH : ${lib.escapeShellArg binPath}:${qemu_kvm}/libexec:$out/bin --set LXD_OVMF_PATH ${ovmf}
139
+
140
+
wrapProgram $out/bin/lxc --prefix PATH : ${lib.makeBinPath clientBinPath}
141
+
'';
142
+
143
+
passthru = {
144
+
inherit (lxd-unwrapped) tests ui;
145
+
};
146
+
147
+
inherit (lxd-unwrapped) meta pname version;
148
+
}
-122
pkgs/tools/admin/lxd/wrapper.nix
···
1
-
{ lib
2
-
, lxd-unwrapped
3
-
, linkFarm
4
-
, makeWrapper
5
-
, stdenv
6
-
, symlinkJoin
7
-
, writeShellScriptBin
8
-
, acl
9
-
, apparmor-parser
10
-
, apparmor-profiles
11
-
, attr
12
-
, bash
13
-
, btrfs-progs
14
-
, cdrkit
15
-
, criu
16
-
, dnsmasq
17
-
, e2fsprogs
18
-
, getent
19
-
, gnutar
20
-
, gptfdisk
21
-
, gzip
22
-
, iproute2
23
-
, iptables
24
-
, kmod
25
-
, lvm2
26
-
, minio
27
-
, nftables
28
-
, OVMF
29
-
, qemu_kvm
30
-
, qemu-utils
31
-
, rsync
32
-
, spice-gtk
33
-
, squashfsTools
34
-
, thin-provisioning-tools
35
-
, util-linux
36
-
, virtiofsd
37
-
, xz
38
-
}:
39
-
let
40
-
binPath = lib.makeBinPath [
41
-
acl
42
-
attr
43
-
bash
44
-
btrfs-progs
45
-
cdrkit
46
-
criu
47
-
dnsmasq
48
-
e2fsprogs
49
-
getent
50
-
gnutar
51
-
gptfdisk
52
-
gzip
53
-
iproute2
54
-
iptables
55
-
kmod
56
-
lvm2
57
-
minio
58
-
nftables
59
-
qemu_kvm
60
-
qemu-utils
61
-
rsync
62
-
squashfsTools
63
-
thin-provisioning-tools
64
-
util-linux
65
-
virtiofsd
66
-
xz
67
-
68
-
(writeShellScriptBin "apparmor_parser" ''
69
-
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
70
-
'')
71
-
];
72
-
73
-
clientBinPath = [
74
-
spice-gtk
75
-
];
76
-
77
-
ovmf-2mb = OVMF.override {
78
-
secureBoot = true;
79
-
fdSize2MB = true;
80
-
};
81
-
82
-
ovmf-4mb = OVMF.override {
83
-
secureBoot = true;
84
-
fdSize4MB = true;
85
-
};
86
-
87
-
ovmf-prefix = if stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
88
-
89
-
# mimic ovmf from https://github.com/canonical/lxd-pkg-snap/blob/3abebe1dfeb20f9b7729556960c7e9fe6ad5e17c/snapcraft.yaml#L378
90
-
# also found in /snap/lxd/current/share/qemu/ on a snap install
91
-
ovmf = linkFarm "lxd-ovmf" [
92
-
{ name = "OVMF_CODE.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
93
-
{ name = "OVMF_CODE.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
94
-
{ name = "OVMF_CODE.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
95
-
96
-
{ name = "OVMF_VARS.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
97
-
{ name = "OVMF_VARS.2MB.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
98
-
{ name = "OVMF_VARS.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
99
-
{ name = "OVMF_VARS.4MB.ms.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
100
-
{ name = "OVMF_VARS.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
101
-
{ name = "OVMF_VARS.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
102
-
];
103
-
in
104
-
symlinkJoin {
105
-
name = "lxd-${lxd-unwrapped.version}";
106
-
107
-
paths = [ lxd-unwrapped ];
108
-
109
-
nativeBuildInputs = [ makeWrapper ];
110
-
111
-
postBuild = ''
112
-
wrapProgram $out/bin/lxd --prefix PATH : ${lib.escapeShellArg binPath}:${qemu_kvm}/libexec:$out/bin --set LXD_OVMF_PATH ${ovmf}
113
-
114
-
wrapProgram $out/bin/lxc --prefix PATH : ${lib.makeBinPath clientBinPath}
115
-
'';
116
-
117
-
passthru = {
118
-
inherit (lxd-unwrapped) tests ui;
119
-
};
120
-
121
-
inherit (lxd-unwrapped) meta pname version;
122
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-2
pkgs/top-level/all-packages.nix
···
10576
10577
lxc = callPackage ../os-specific/linux/lxc { };
10578
10579
-
lxd = callPackage ../tools/admin/lxd/wrapper.nix { };
10580
-
10581
lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
10582
10583
lzfse = callPackage ../tools/compression/lzfse { };
···
10576
10577
lxc = callPackage ../os-specific/linux/lxc { };
10578
0
0
10579
lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
10580
10581
lzfse = callPackage ../tools/compression/lzfse { };