blob: cb314f88b8ef1808779ac31c2cb7dba80b715e10 [file] [log] [blame]
Patrick Williamsd849ec72016-08-17 14:59:38 -05001DESCRIPTION = "Xen hypervisor"
2HOMEPAGE = "http://xen.org"
3LICENSE = "GPLv2"
4SECTION = "console/tools"
5
Patrick Williamse69d2352017-02-23 20:56:04 -06006LIC_FILES_CHKSUM = "file://COPYING;md5=bbb4b1bdc2c3b6743da3c39d03249095"
Patrick Williamsd849ec72016-08-17 14:59:38 -05007
8COMPATIBLE_HOST = '(x86_64.*).*-linux|aarch64.*-linux'
9
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010inherit autotools-brokensep setuptools update-rc.d systemd deploy
Patrick Williamsd849ec72016-08-17 14:59:38 -050011
12require xen-arch.inc
13
14PACKAGECONFIG ??= " \
15 sdl \
16 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
17 ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'hvm', '', d)} \
18 "
19
20FLASK_POLICY_FILE ?= "xenpolicy-${PV}"
21
22PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl,"
23PACKAGECONFIG[xsm] = "--enable-xsmpolicy,--disable-xsmpolicy,checkpolicy-native,"
24PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd,"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050025PACKAGECONFIG[hvm] = "--with-system-seabios="/usr/share/firmware/bios.bin",--disable-seabios,seabios ipxe vgabios,"
Patrick Williamsd849ec72016-08-17 14:59:38 -050026
27DEPENDS = " \
28 bison-native \
29 dev86-native \
30 flex-native \
31 file-native \
Brad Bishop6e60e8b2018-02-01 10:27:11 -050032 gettext-native \
Patrick Williamsd849ec72016-08-17 14:59:38 -050033 iasl-native \
Brad Bishop6e60e8b2018-02-01 10:27:11 -050034 ncurses-native \
Patrick Williamsd849ec72016-08-17 14:59:38 -050035 util-linux-native \
36 xz-native \
37 bridge-utils \
38 curl \
39 dtc \
40 gettext \
41 glib-2.0 \
42 gnutls \
43 iproute2 \
44 libnl \
45 ncurses \
46 openssl \
47 pciutils \
48 pixman \
49 procps \
50 python \
51 libaio \
52 lzo \
53 util-linux \
54 xz \
55 yajl \
56 zlib \
Patrick Williamse69d2352017-02-23 20:56:04 -060057 gnu-efi \
Patrick Williamsd849ec72016-08-17 14:59:38 -050058 "
59
60# inherit setuptools adds python to RDEPENDS, override it
61RDEPENDS_${PN} = ""
62
63RDEPENDS_${PN}-base = "\
64 bash perl xz \
65 ${PN}-blktap \
66 ${PN}-console \
67 ${PN}-libblktapctl \
68 ${PN}-libxenguest \
69 ${PN}-libxenlight \
70 ${PN}-libxenvchan \
71 ${PN}-libxenctrl \
72 ${PN}-libxlutil \
73 ${PN}-libvhd \
74 ${PN}-libxenstat \
75 ${PN}-libxenstore \
76 ${PN}-libfsimage \
77 ${PN}-fsimage \
78 ${PN}-scripts-block \
79 ${PN}-scripts-network \
80 ${PN}-xen-watchdog \
81 ${PN}-xencommons \
82 ${PN}-xendomains \
83 ${PN}-xenstore \
84 ${PN}-xenstored \
85 ${PN}-xl \
86 "
87
88RDEPENDS_${PN}-dev = ""
89
90RRECOMMENDS_${PN}-base = " \
91 ${PN}-libblktap \
92 ${PN}-flask \
93 ${PN}-hvmloader \
94 ${PN}-xenpaging \
95 "
96
97RDEPENDS_${PN}-devd = " \
98 ${PN}-xl \
99 "
100
101RDEPENDS_${PN}-fsimage = " \
102 libext2fs \
103 "
104
105RDEPENDS_${PN}-misc = " \
106 perl \
107 python \
108 "
109
110RDEPENDS_${PN}-remus = " \
111 bash \
112 python \
113 "
114
115RDEPENDS_${PN}-scripts-block = "\
116 bash \
117 ${PN}-scripts-common \
118 ${PN}-volatiles \
119 "
120
121RDEPENDS_${PN}-scripts-common = "bash"
122
123RDEPENDS_${PN}-scripts-network = "\
124 bash \
125 bridge-utils \
126 ${PN}-scripts-common \
127 ${PN}-volatiles \
128 "
129
130RDEPENDS_${PN}-xencommons = "\
131 bash \
132 ${PN}-console \
133 ${PN}-xenstore \
134 ${PN}-xenstored \
135 ${PN}-xl \
136 ${PN}-scripts-common \
137 "
138
139RDEPENDS_${PN}-xendomains = "\
140 bash \
141 ${PN}-console \
142 ${PN}-scripts-block \
143 ${PN}-scripts-common \
144 ${PN}-xenstored \
145 "
146
147RDEPENDS_${PN}-xl = "libgcc"
148
149RDEPENDS_${PN}-xentrace = "python"
150
151RDEPENDS_${PN}-xen-watchdog = "bash"
152
153PACKAGES = "\
154 ${PN}-base \
155 ${PN}-blktap \
156 ${PN}-console \
Patrick Williamse69d2352017-02-23 20:56:04 -0600157 ${PN}-cpuid \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500158 ${PN}-dbg \
159 ${PN}-dev \
160 ${PN}-devd \
161 ${PN}-doc \
162 ${PN}-efi \
163 ${PN}-flask \
164 ${PN}-flask-tools \
165 ${PN}-fsimage \
166 ${PN}-gdbsx \
167 ${PN}-hvmloader \
168 ${PN}-hypervisor \
169 ${PN}-init-xenstore-dom \
170 ${PN}-kdd \
171 ${PN}-libblktap \
172 ${PN}-libblktapctl \
173 ${PN}-libblktapctl-dev \
174 ${PN}-libblktap-dev \
175 ${PN}-libfsimage \
176 ${PN}-libfsimage-dev \
177 ${PN}-libvhd \
178 ${PN}-libvhd-dev \
179 ${PN}-libxencall \
180 ${PN}-libxencall-dev \
181 ${PN}-libxenctrl \
182 ${PN}-libxenctrl-dev \
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500183 ${PN}-libxendevicemodel \
184 ${PN}-libxendevicemodel-dev \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500185 ${PN}-libxenevtchn \
186 ${PN}-libxenevtchn-dev \
187 ${PN}-libxenforeignmemory \
188 ${PN}-libxenforeignmemory-dev \
189 ${PN}-libxengnttab \
190 ${PN}-libxengnttab-dev \
191 ${PN}-libxenguest \
192 ${PN}-libxenguest-dev \
193 ${PN}-libxenlight \
194 ${PN}-libxenlight-dev \
195 ${PN}-libxenstat \
196 ${PN}-libxenstat-dev \
197 ${PN}-libxenstore \
198 ${PN}-libxenstore-dev \
199 ${PN}-libxentoollog \
200 ${PN}-libxentoollog-dev \
201 ${PN}-libxenvchan \
202 ${PN}-libxenvchan-dev \
203 ${PN}-libxlutil \
204 ${PN}-libxlutil-dev \
Patrick Williamse69d2352017-02-23 20:56:04 -0600205 ${PN}-livepatch \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500206 ${PN}-misc \
207 ${PN}-pygrub \
208 ${PN}-python \
209 ${PN}-qemu \
210 ${PN}-remus \
211 ${PN}-scripts-block \
212 ${PN}-scripts-common \
213 ${PN}-scripts-network \
214 ${PN}-staticdev \
215 ${PN}-volatiles \
216 ${PN}-xcutils \
217 ${PN}-xencommons \
218 ${PN}-xend \
219 ${PN}-xend-examples \
220 ${PN}-xendomains \
221 ${PN}-xenmon \
222 ${PN}-xenpaging \
223 ${PN}-xenpmd \
224 ${PN}-xenstat \
225 ${PN}-xenstore \
226 ${PN}-xenstored \
227 ${PN}-xentrace \
228 ${PN}-xen-watchdog \
229 ${PN}-xl \
230 ${PN}-xl-examples \
231 ${PN}-xm \
232 ${PN}-xm-examples \
233 "
234
235FILES_${PN}-dbg += "\
236 ${libdir}/.debug \
237 ${libdir}/debug/* \
238 ${libdir}/xen/bin/.debug \
239 ${libdir}/python2.7/site-packages/.debug \
240 ${libdir}/python2.7/site-packages/xen/lowlevel/.debug \
241 ${libdir}/fs/xfs/.debug \
242 ${libdir}/fs/ufs/.debug \
243 ${libdir}/fs/ext2fs-lib/.debug \
244 ${libdir}/fs/fat/.debug \
245 ${libdir}/fs/zfs/.debug \
246 ${libdir}/fs/reiserfs/.debug \
247 ${libdir}/fs/iso9660/.debug \
248 ${libdir}/fs/*/.debug \
249 ${sbindir}/.debug \
250 ${libdir}exec/.debug \
251 ${libdir}/xen/libexec/.debug \
252 ${bindir}/.debug \
253 ${libdir}/python2.7/dist-packages/.debug \
254 ${libdir}/python2.7/dist-packages/xen/lowlevel/.debug \
255 "
256
257FILES_${PN}-dev = "\
258 ${includedir} \
259 "
260
261FILES_${PN}-doc = "\
262 ${sysconfdir}/xen/README \
263 ${sysconfdir}/xen/README.incompatibilities \
264 ${datadir}/doc \
265 ${datadir}/man \
266 "
267
268FILES_${PN}-staticdev += "\
269 ${libdir}/libblktapctl.a \
270 ${libdir}/libxenguest.a \
271 ${libdir}/libxenlight.a \
272 ${libdir}/libxenvchan.a \
273 ${libdir}/libxenctrl.a \
274 ${libdir}/libxlutil.a \
275 ${libdir}/libvhd.a \
276 ${libdir}/libxenstat.a \
277 ${libdir}/libxenstore.a \
278 ${libdir}/libblktap.a \
279 "
280
281FILES_${PN}-libblktapctl = "${libdir}/libblktapctl.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500282FILES_${PN}-libblktapctl-dev = " \
283 ${libdir}/libblktapctl.so \
284 ${datadir}/pkgconfig/xenblktapctl.pc \
285 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500286
287FILES_${PN}-libxencall = "${libdir}/libxencall.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500288FILES_${PN}-libxencall-dev = " \
289 ${libdir}/libxencall.so \
290 ${datadir}/pkgconfig/xencall.pc \
291 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500292
293FILES_${PN}-libxenctrl = "${libdir}/libxenctrl.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500294FILES_${PN}-libxenctrl-dev = " \
295 ${libdir}/libxenctrl.so \
296 ${datadir}/pkgconfig/xencontrol.pc \
297 "
298
299FILES_${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*"
300FILES_${PN}-libxendevicemodel-dev = " \
301 ${libdir}/libxendevicemodel.so \
302 ${datadir}/pkgconfig/xendevicemodel.pc \
303 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500304
305FILES_${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500306FILES_${PN}-libxenevtchn-dev = " \
307 ${libdir}/libxenevtchn.so \
308 ${datadir}/pkgconfig/xenevtchn.pc \
309 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500310
311FILES_${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500312FILES_${PN}-libxenforeignmemory-dev = " \
313 ${libdir}/libxenforeignmemory.so \
314 ${datadir}/pkgconfig/xenforeignmemory.pc \
315 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500316
317FILES_${PN}-libxengnttab = "${libdir}/libxengnttab.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500318FILES_${PN}-libxengnttab-dev = " \
319 ${libdir}/libxengnttab.so \
320 ${datadir}/pkgconfig/xengnttab.pc \
321 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500322
323FILES_${PN}-libxenguest = "${libdir}/libxenguest.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500324FILES_${PN}-libxenguest-dev = " \
325 ${libdir}/libxenguest.so \
326 ${datadir}/pkgconfig/xenguest.pc \
327 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500328
329FILES_${PN}-libxenlight = "${libdir}/libxenlight.so.*"
330FILES_${PN}-libxenlight-dev = " \
331 ${libdir}/libxenlight.so \
332 ${datadir}/pkgconfig/xenlight.pc \
333 "
334
335FILES_${PN}-libxenstat = "${libdir}/libxenstat.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500336FILES_${PN}-libxenstat-dev = " \
337 ${libdir}/libxenstat.so \
338 ${datadir}/pkgconfig/xenstat.pc \
339 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500340
341FILES_${PN}-libxenstore = "${libdir}/libxenstore.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500342FILES_${PN}-libxenstore-dev = " \
343 ${libdir}/libxenstore.so \
344 ${datadir}/pkgconfig/xenstore.pc \
345 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500346
347FILES_${PN}-libxentoollog = "${libdir}/libxentoollog.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500348FILES_${PN}-libxentoollog-dev = " \
349 ${libdir}/libxentoollog.so \
350 ${datadir}/pkgconfig/xentoollog.pc \
351 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500352
353FILES_${PN}-libxenvchan = "${libdir}/libxenvchan.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500354FILES_${PN}-libxenvchan-dev = " \
355 ${libdir}/libxenvchan.so \
356 ${datadir}/pkgconfig/xenvchan.pc \
357 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500358
359FILES_${PN}-libxlutil = "${libdir}/libxlutil.so.*"
360FILES_${PN}-libxlutil-dev = " \
361 ${libdir}/libxlutil.so \
362 ${datadir}/pkgconfig/xlutil.pc \
363 "
364FILES_${PN}-libvhd = "${libdir}/libvhd.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500365FILES_${PN}-libvhd-dev = " \
366 ${libdir}/libvhd.so \
367 ${datadir}/pkgconfig/vhd.pc \
368 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500369
370FILES_${PN}-libblktap = "${libdir}/libblktap.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500371FILES_${PN}-libblktap-dev = " \
372 ${libdir}/libblktap.so \
373 ${datadir}/pkgconfig/blktap.pc \
374 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500375
376FILES_${PN}-libfsimage = "${libdir}/libfsimage.so.*"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500377FILES_${PN}-libfsimage-dev = " \
378 ${libdir}/libfsimage.so \
379 ${datadir}/pkgconfig/fsimage.pc \
380 "
Patrick Williamsd849ec72016-08-17 14:59:38 -0500381
382FILES_${PN}-fsimage = "${libdir}/fs/*/*fsimage.so"
383
384FILES_${PN}-hypervisor = "\
385 /boot/xen-* \
386 /boot/xen \
387 /boot/xen-*.gz \
388 /boot/xen.gz \
389 /boot/xen-syms-* \
390 "
391
392FILES_${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain"
393
394FILES_${PN}-efi = "\
395 ${exec_prefix}/lib64 \
396 ${exec_prefix}/lib64/xen* \
397 "
398
399FILES_${PN}-base = "\
400 ${sysconfdir}/xen/auto \
401 ${sysconfdir}/xen/cpupool \
402 ${localstatedir}/xen/dump \
403 "
404
405FILES_${PN}-blktap = "\
406 ${sbindir}/blktapctrl \
407 ${sbindir}/img2qcow \
408 ${sbindir}/lock-util \
409 ${sbindir}/qcow2raw \
410 ${sbindir}/qcow-create \
411 ${sbindir}/tap-ctl \
412 ${sbindir}/tapdisk \
413 ${sbindir}/tapdisk2 \
414 ${sbindir}/tapdisk-client \
415 ${sbindir}/tapdisk-diff \
416 ${sbindir}/tapdisk-stream \
417 ${sbindir}/td-util \
418 ${sbindir}/vhd-update \
419 ${sbindir}/vhd-util \
420 "
421
422FILES_${PN}-console = "\
423 ${libdir}/xen/bin/xenconsole \
424 ${sbindir}/xenconsoled \
425 "
426
Patrick Williamse69d2352017-02-23 20:56:04 -0600427FILES_${PN}-cpuid = "\
428 ${bindir}/xen-cpuid \
429 "
430
Patrick Williamsd849ec72016-08-17 14:59:38 -0500431FILES_${PN}-devd = "\
432 ${sysconfdir}/init.d/xendriverdomain \
433 "
434
435FILES_${PN}-flask = "\
436 /boot/${FLASK_POLICY_FILE} \
437 "
438
439FILES_${PN}-flask-tools = "\
440 ${sbindir}/flask-get-bool \
441 ${sbindir}/flask-getenforce \
442 ${sbindir}/flask-label-pci \
443 ${sbindir}/flask-loadpolicy \
444 ${sbindir}/flask-set-bool \
445 ${sbindir}/flask-setenforce \
446 "
447
448FILES_${PN}-gdbsx = "\
449 ${sbindir}/gdbsx \
450 "
451
452INSANE_SKIP_${PN}-hvmloader = "arch"
453FILES_${PN}-hvmloader = "\
454 ${libdir}/xen/boot/hvmloader \
455 "
456
457FILES_${PN}-kdd = "\
458 ${sbindir}/kdd \
459 "
460
Patrick Williamse69d2352017-02-23 20:56:04 -0600461FILES_${PN}-livepatch += " \
462 ${sbindir}/xen-livepatch \
463 "
464
Patrick Williamsd849ec72016-08-17 14:59:38 -0500465FILES_${PN}-misc = "\
466 ${bindir}/xencons \
467 ${bindir}/xencov_split \
468 ${bindir}/xen-detect \
469 ${libdir}/xen/bin/xenpvnetboot \
470 ${sbindir}/gtracestat \
471 ${sbindir}/gtraceview \
472 ${sbindir}/xen-bugtool \
473 ${sbindir}/xencov \
474 ${sbindir}/xenperf \
475 ${sbindir}/xenpm \
476 ${sbindir}/xsview \
477 ${sbindir}/xen-tmem-list-parse \
478 ${sbindir}/xen-python-path \
479 ${sbindir}/xen-ringwatch \
480 ${sbindir}/xen-hptool \
481 ${sbindir}/xen-hvmcrash \
482 ${sbindir}/xen-hvmctx \
483 ${sbindir}/xenlockprof \
484 ${sbindir}/xen-lowmemd \
485 ${sbindir}/xen-mfndump \
486 ${libdir}/xen/bin/verify-stream-v2 \
487 ${libdir}/xen/bin/convert-legacy-stream \
488 "
489
490FILES_${PN}-pygrub = "\
491 ${bindir}/pygrub \
492 ${libdir}/xen/bin/pygrub \
493 "
494
495FILES_${PN}-python = "\
496 ${libdir}/python2.7 \
497 "
498
499INSANE_SKIP_${PN} = "already-stripped"
500INSANE_SKIP_${PN}-qemu = "arch"
501FILES_${PN}-qemu = " \
502 ${datadir}/xen/qemu \
503 ${libdir}/xen/bin/qemu-system-i386 \
504 ${libdir}/xen/bin/qemu-system-x86_64 \
505 ${libdir}/xen/bin/qemu-img \
506 ${libdir}/xen/bin/qemu-nbd \
507 ${libdir}/xen/bin/qemu-ga \
508 ${libdir}/xen/bin/qemu-io \
509 ${libdir}/xen/bin/qemu-dm \
510 ${libdir}/xen/bin/virtfs-proxy-helper \
511 /usr/libexec/qemu-bridge-helper \
512 ${libdir}/xen/libexec/qemu-bridge-helper \
513 /usr/etc/qemu \
514 /usr/etc/qemu/target-x86_64.conf \
515 ${libdir}/xen/etc/qemu/target-x86_64.conf \
516 ${datadir}/qemu-xen \
517 ${datadir}/qemu-xen/qemu \
518 ${datadir}/qemu-xen/qemu/bamboo.dtb \
519 ${datadir}/qemu-xen/qemu/pxe-pcnet.rom \
520 ${datadir}/qemu-xen/qemu/vgabios-vmware.bin \
521 ${datadir}/qemu-xen/qemu/pxe-eepro100.rom \
522 ${datadir}/qemu-xen/qemu/pxe-e1000.rom \
523 ${datadir}/qemu-xen/qemu/openbios-ppc \
524 ${datadir}/qemu-xen/qemu/multiboot.bin \
525 ${datadir}/qemu-xen/qemu/vgabios-cirrus.bin \
526 ${datadir}/qemu-xen/qemu/bios.bin \
527 ${datadir}/qemu-xen/qemu/vgabios-stdvga.bin \
528 ${datadir}/qemu-xen/qemu/palcode-clipper \
529 ${datadir}/qemu-xen/qemu/pxe-ne2k_pci.rom \
530 ${datadir}/qemu-xen/qemu/spapr-rtas.bin \
531 ${datadir}/qemu-xen/qemu/slof.bin \
532 ${datadir}/qemu-xen/qemu/vgabios-qxl.bin \
533 ${datadir}/qemu-xen/qemu/pxe-rtl8139.rom \
534 ${datadir}/qemu-xen/qemu/openbios-sparc64 \
535 ${datadir}/qemu-xen/qemu/pxe-virtio.rom \
536 ${datadir}/qemu-xen/qemu/kvmvapic.bin \
537 ${datadir}/qemu-xen/qemu/openbios-sparc32 \
538 ${datadir}/qemu-xen/qemu/petalogix-s3adsp1800.dtb \
539 ${datadir}/qemu-xen/qemu/sgabios.bin \
540 ${datadir}/qemu-xen/qemu/linuxboot.bin \
541 ${datadir}/qemu-xen/qemu/qemu-icon.bmp \
542 ${datadir}/qemu-xen/qemu/ppc_rom.bin \
543 ${datadir}/qemu-xen/qemu/vgabios.bin \
544 ${datadir}/qemu-xen/qemu/s390-zipl.rom \
545 ${datadir}/qemu-xen/qemu/petalogix-ml605.dtb \
546 ${datadir}/qemu-xen/qemu/keymaps \
547 ${datadir}/qemu-xen/qemu/keymaps/common \
548 ${datadir}/qemu-xen/qemu/keymaps/th \
549 ${datadir}/qemu-xen/qemu/keymaps/is \
550 ${datadir}/qemu-xen/qemu/keymaps/en-gb \
551 ${datadir}/qemu-xen/qemu/keymaps/ar \
552 ${datadir}/qemu-xen/qemu/keymaps/fr-be \
553 ${datadir}/qemu-xen/qemu/keymaps/ru \
554 ${datadir}/qemu-xen/qemu/keymaps/hu \
555 ${datadir}/qemu-xen/qemu/keymaps/de-ch \
556 ${datadir}/qemu-xen/qemu/keymaps/no \
557 ${datadir}/qemu-xen/qemu/keymaps/fr \
558 ${datadir}/qemu-xen/qemu/keymaps/pl \
559 ${datadir}/qemu-xen/qemu/keymaps/fr-ca \
560 ${datadir}/qemu-xen/qemu/keymaps/de \
561 ${datadir}/qemu-xen/qemu/keymaps/fr-ch \
562 ${datadir}/qemu-xen/qemu/keymaps/bepo \
563 ${datadir}/qemu-xen/qemu/keymaps/lv \
564 ${datadir}/qemu-xen/qemu/keymaps/ja \
565 ${datadir}/qemu-xen/qemu/keymaps/da \
566 ${datadir}/qemu-xen/qemu/keymaps/lt \
567 ${datadir}/qemu-xen/qemu/keymaps/hr \
568 ${datadir}/qemu-xen/qemu/keymaps/es \
569 ${datadir}/qemu-xen/qemu/keymaps/modifiers \
570 ${datadir}/qemu-xen/qemu/keymaps/sl \
571 ${datadir}/qemu-xen/qemu/keymaps/it \
572 ${datadir}/qemu-xen/qemu/keymaps/nl \
573 ${datadir}/qemu-xen/qemu/keymaps/fo \
574 ${datadir}/qemu-xen/qemu/keymaps/mk \
575 ${datadir}/qemu-xen/qemu/keymaps/pt-br \
576 ${datadir}/qemu-xen/qemu/keymaps/tr \
577 ${datadir}/qemu-xen/qemu/keymaps/sv \
578 ${datadir}/qemu-xen/qemu/keymaps/fi \
579 ${datadir}/qemu-xen/qemu/keymaps/en-us \
580 ${datadir}/qemu-xen/qemu/keymaps/et \
581 ${datadir}/qemu-xen/qemu/keymaps/nl-be \
582 ${datadir}/qemu-xen/qemu/keymaps/pt \
583 ${bindir}/qemu-nbd-xen \
584 ${bindir}/qemu-img-xen \
585 "
586
587FILES_${PN}-remus = "\
588 ${bindir}/remus \
589 ${sysconfdir}/xen/scripts/remus-netbuf-setup \
590 "
591
592FILES_${PN}-scripts-network = " \
Patrick Williamse69d2352017-02-23 20:56:04 -0600593 ${sysconfdir}/xen/scripts/colo-proxy-setup \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500594 ${sysconfdir}/xen/scripts/network-bridge \
595 ${sysconfdir}/xen/scripts/network-nat \
596 ${sysconfdir}/xen/scripts/network-route \
597 ${sysconfdir}/xen/scripts/qemu-ifup \
598 ${sysconfdir}/xen/scripts/vif2 \
599 ${sysconfdir}/xen/scripts/vif-bridge \
600 ${sysconfdir}/xen/scripts/vif-common.sh \
601 ${sysconfdir}/xen/scripts/vif-nat \
602 ${sysconfdir}/xen/scripts/vif-openvswitch \
603 ${sysconfdir}/xen/scripts/vif-route \
604 ${sysconfdir}/xen/scripts/vif-setup \
605 "
606
607FILES_${PN}-scripts-block = " \
608 ${sysconfdir}/xen/scripts/blktap \
609 ${sysconfdir}/xen/scripts/block \
610 ${sysconfdir}/xen/scripts/block-common.sh \
Patrick Williamse69d2352017-02-23 20:56:04 -0600611 ${sysconfdir}/xen/scripts/block-dummy \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500612 ${sysconfdir}/xen/scripts/block-enbd \
613 ${sysconfdir}/xen/scripts/block-iscsi \
614 ${sysconfdir}/xen/scripts/block-nbd \
615 ${sysconfdir}/xen/scripts/block-drbd-probe \
616 ${sysconfdir}/xen/scripts/block-tap \
617 ${sysconfdir}/xen/scripts/vscsi \
618 "
619
620FILES_${PN}-scripts-common = " \
621 ${sysconfdir}/xen/scripts/external-device-migrate \
622 ${sysconfdir}/xen/scripts/hotplugpath.sh \
623 ${sysconfdir}/xen/scripts/locking.sh \
624 ${sysconfdir}/xen/scripts/logging.sh \
625 ${sysconfdir}/xen/scripts/xen-hotplug-cleanup \
626 ${sysconfdir}/xen/scripts/xen-hotplug-common.sh \
627 ${sysconfdir}/xen/scripts/xen-network-common.sh \
628 ${sysconfdir}/xen/scripts/xen-script-common.sh \
629 "
630
631FILES_${PN}-volatiles = "\
632 ${sysconfdir}/default/volatiles/99_xen \
633 ${sysconfdir}/tmpfiles.d/xen.conf \
634 "
635
636FILES_${PN}-xcutils = "\
637 ${libdir}/xen/bin/lsevtchn \
638 ${libdir}/xen/bin/readnotes \
639 ${libdir}/xen/bin/xc_restore \
640 ${libdir}/xen/bin/xc_save \
641 "
642
643FILES_${PN}-xend-examples = "\
644 ${sysconfdir}/xen/xend-config.sxp \
645 ${sysconfdir}/xen/xend-pci-permissive.sxp \
646 ${sysconfdir}/xen/xend-pci-quirks.sxp \
647 "
648
649FILES_${PN}-xenpaging = "\
650 ${libdir}/xen/bin/xenpaging \
651 ${localstatedir}/lib/xen/xenpaging \
652 "
653
654FILES_${PN}-xenpmd = "\
655 ${sbindir}/xenpmd \
656 "
657
658FILES_${PN}-xenstat = "\
659 ${sbindir}/xentop \
660 "
661
662FILES_${PN}-xenstore = "\
663 ${bindir}/xenstore \
664 ${bindir}/xenstore-chmod \
665 ${bindir}/xenstore-control \
666 ${bindir}/xenstore-exists \
667 ${bindir}/xenstore-list \
668 ${bindir}/xenstore-ls \
669 ${bindir}/xenstore-read \
670 ${bindir}/xenstore-rm \
671 ${bindir}/xenstore-watch \
672 ${bindir}/xenstore-write \
673 "
674
675FILES_${PN}-xenstored = "\
676 ${sbindir}/xenstored \
677 ${localstatedir}/lib/xenstored \
678 "
679
680FILES_${PN}-xentrace = "\
681 ${bindir}/xentrace \
682 ${bindir}/xentrace_format \
683 ${bindir}/xentrace_setsize \
684 ${libdir}/xen/bin/xenctx \
685 ${bindir}/xenalyze \
686 ${sbindir}/xentrace \
687 ${sbindir}/xentrace_setsize \
688 "
689
690FILES_${PN}-xen-watchdog = "\
691 ${sbindir}/xenwatchdogd \
692 ${sysconfdir}/init.d/xen-watchdog \
693 ${systemd_unitdir}/system/xen-watchdog.service \
694 "
695
696FILES_${PN}-xl = "\
697 ${sysconfdir}/bash_completion.d/xl.sh \
698 ${sysconfdir}/xen/xl.conf \
699 ${libdir}/xen/bin/libxl-save-helper \
700 ${sbindir}/xl \
701 ${libdir}/xen/bin/xen-init-dom0 \
702 "
703
704FILES_${PN}-xl-examples = "\
705 ${sysconfdir}/xen/xlexample.hvm \
706 ${sysconfdir}/xen/xlexample.pvlinux \
707 "
708
709FILES_${PN}-xm-examples = "\
710 ${sysconfdir}/xen/xmexample1 \
711 ${sysconfdir}/xen/xmexample2 \
712 ${sysconfdir}/xen/xmexample3 \
713 ${sysconfdir}/xen/xmexample.hvm \
714 ${sysconfdir}/xen/xmexample.hvm-stubdom \
715 ${sysconfdir}/xen/xmexample.nbd \
716 ${sysconfdir}/xen/xmexample.pv-grub \
717 ${sysconfdir}/xen/xmexample.vti \
718 "
719
720FILES_${PN}-xenmon = "\
721 ${sbindir}/xenbaked \
722 ${sbindir}/xentrace_setmask \
723 ${sbindir}/xenmon.py \
724 "
725
726FILES_${PN}-xm = "\
727 ${sysconfdir}/xen/xm-config.xml \
728 ${datadir}/xen/create.dtd \
729 ${sbindir}/xm \
730 "
731
732FILES_${PN}-xencommons += "\
733 ${sysconfdir}/default/xencommons \
734 ${sysconfdir}/init.d/xencommons \
Patrick Williamse69d2352017-02-23 20:56:04 -0600735 ${sysconfdir}/xen/scripts/launch-xenstore \
Patrick Williamsd849ec72016-08-17 14:59:38 -0500736 ${systemd_unitdir}/modules-load.d/xen.conf \
737 ${systemd_unitdir}/system/proc-xen.mount \
738 ${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service \
739 ${systemd_unitdir}/system/xenconsoled.service \
740 ${systemd_unitdir}/system/xen-init-dom0.service \
741 ${systemd_unitdir}/system/xenstored.service \
742 ${systemd_unitdir}/system/xenstored.socket \
743 ${systemd_unitdir}/system/xenstored_ro.socket \
744 ${systemd_unitdir}/system/var-lib-xenstored.mount \
745 "
746
747FILES_${PN}-xend += " \
748 ${sysconfdir}/init.d/xend \
749 ${sbindir}/xend \
750 "
751
752FILES_${PN}-xendomains += "\
753 ${libdir}/xen/bin/xendomains \
754 ${sysconfdir}/default/xendomains \
755 ${sysconfdir}/init.d/xendomains \
756 ${sysconfdir}/sysconfig/xendomains \
757 ${systemd_unitdir}/system/xendomains.service \
758 "
759
760# configure init.d scripts
761INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xencommons ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd"
762INITSCRIPT_NAME_${PN}-xencommons = "xencommons"
763INITSCRIPT_PARAMS_${PN}-xencommons = "defaults 80"
764INITSCRIPT_NAME_${PN}-xen-watchdog = "xen-watchdog"
765INITSCRIPT_PARAMS_${PN}-xen-watchdog = "defaults 81"
766INITSCRIPT_NAME_${PN}-xend = "xend"
767INITSCRIPT_PARAMS_${PN}-xend = "defaults 82"
768INITSCRIPT_NAME_${PN}-xendomains = "xendomains"
769INITSCRIPT_PARAMS_${PN}-xendomains = "defaults 83"
770INITSCRIPT_NAME_${PN}-devd = "xendriverdomain"
771INITSCRIPT_PARAMS_${PN}-devd = "defaults 82"
772
773# systemd packages
774SYSTEMD_PACKAGES = "${PN}-xen-watchdog ${PN}-xencommons ${PN}-xendomains"
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500775SYSTEMD_SERVICE_${PN}-xen-watchdog = "xen-watchdog.service"
Patrick Williamsd849ec72016-08-17 14:59:38 -0500776SYSTEMD_SERVICE_${PN}-xencommons = " \
777 proc-xen.mount \
778 var-lib-xenstored.mount \
779 xen-qemu-dom0-disk-backend.service \
780 xenconsoled.service \
781 xen-init-dom0.service \
782 xenstored.service \
783 xenstored.socket \
784 xenstored_ro.socket \
785 "
786SYSTEMD_SERVICE_${PN}-xendomains = "xendomains.service"
787
788#### REQUIRED ENVIRONMENT VARIABLES ####
789export BUILD_SYS
790export HOST_SYS
791export STAGING_INCDIR
792export STAGING_LIBDIR
793
794# specify xen hypervisor to build/target
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500795export XEN_TARGET_ARCH = "${@map_xen_arch(d.getVar('TARGET_ARCH'), d)}"
796export XEN_COMPILE_ARCH = "${@map_xen_arch(d.getVar('BUILD_ARCH'), d)}"
Patrick Williamsd849ec72016-08-17 14:59:38 -0500797
798python () {
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500799 if d.getVar('XEN_TARGET_ARCH') == 'INVALID':
800 raise bb.parse.SkipPackage('Cannot map `%s` to a xen architecture' % d.getVar('TARGET_ARCH'))
Patrick Williamsd849ec72016-08-17 14:59:38 -0500801}
802
803# Yocto appends ${PN} to libexecdir by default and Xen appends 'xen' as well
804# the result is a nested xen/xen/ so let's avoid that by shunning Yocto's
805# extra ${PN} appended.
806libexecdir = "${libdir}"
807
808# hardcoded as Linux, as the only compatible hosts are Linux.
809export XEN_OS = "Linux"
810
811# this is used for the header (#!${bindir}/python) of the install python scripts
812export PYTHONPATH="${bindir}/python"
Patrick Williamse69d2352017-02-23 20:56:04 -0600813export ac_cv_path_PYTHONPATH="${bindir}/python"
Patrick Williamsd849ec72016-08-17 14:59:38 -0500814
Patrick Williamse69d2352017-02-23 20:56:04 -0600815# xen and seabios require HOSTCC and HOSTCXX set to cross-compile
Patrick Williamsd849ec72016-08-17 14:59:38 -0500816export HOSTCC="${BUILD_CC}"
Patrick Williamse69d2352017-02-23 20:56:04 -0600817export HOSTCXX="${BUILD_CXX}"
Patrick Williamsd849ec72016-08-17 14:59:38 -0500818
819# make xen requires CROSS_COMPILE set by hand as it does not abide by ./configure
820export CROSS_COMPILE="${TARGET_PREFIX}"
821
822# overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'"
823export LDFLAGS=""
824
825# Yocto injects -mfpmath=sse for some machine types into the CFLAGS which
826# conflicts with -mno-sse so instead we strip -mfpmath=sse instead of
827# patching the build to be ok with this
828TUNE_CCARGS := "${@oe_filter_out('-mfpmath=sse', '${TUNE_CCARGS}', d)}"
829
830EXTRA_OECONF += " \
831 --exec-prefix=/usr \
832 --prefix=/usr \
833 --host=${HOST_SYS} \
834 --with-systemd=${systemd_unitdir}/system \
835 --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
836 --disable-stubdom \
837 --disable-ioemu-stubdom \
838 --disable-pv-grub \
839 --disable-xenstore-stubdom \
840 --disable-rombios \
841 --disable-ocamltools \
842 --with-initddir=${INIT_D_DIR} \
843 --with-sysconfig-leaf-dir=default \
844 --with-system-qemu=/usr/bin/qemu-system-i386 \
845 --disable-qemu-traditional \
846 "
847
848EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.bin"
849EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.cirrus.bin"
850EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
851EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom"
852
853# prevent the Xen build scripts from fetching things during the build
854# all dependencies should be reflected in the Yocto recipe
855EXTRA_OEMAKE += "WGET=/bin/false"
856EXTRA_OEMAKE += "GIT=/bin/false"
857
858# check for XSM in package config to allow XSM_ENABLE to be set
859python () {
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500860 pkgconfig = d.getVar('PACKAGECONFIG')
Patrick Williamsd849ec72016-08-17 14:59:38 -0500861 if ('xsm') in pkgconfig.split():
862 d.setVar('XSM_ENABLED', '1')
863 else:
864 d.setVar('XSM_ENABLED', '0')
865}
866
867do_post_patch() {
868 # fixup AS/CC/CCP/etc variable within StdGNU.mk
869 for i in LD CC CPP CXX; do
870 sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk
871 done
872 # fixup environment passing in some makefiles
873 sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile
874
875 # libsystemd-daemon -> libsystemd for newer systemd versions
876 sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure
877}
878
879addtask post_patch after do_patch before do_configure
880
881do_stubs() {
882 # no stubs-32.h in our 64-bit sysroot - hack it into tools/include/gnu
883 if ! test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-32.h ; then
884 if test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h ; then
885 test -d ${S}/tools/include/gnu || mkdir ${S}/tools/include/gnu
886 cat ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h | grep -v stub_bdflush | grep -v stub_getmsg | grep -v stub_putmsg > ${S}/tools/include/gnu/stubs-32.h
887 echo \#define __stub___kernel_cosl >> ${S}/tools/include/gnu/stubs-32.h
888 echo \#define __stub___kernel_sinl >> ${S}/tools/include/gnu/stubs-32.h
889 echo \#define __stub___kernel_tanl >> ${S}/tools/include/gnu/stubs-32.h
890 fi
891 fi
892}
893
894addtask stubs after do_configure before do_compile
895
Patrick Williamse69d2352017-02-23 20:56:04 -0600896# Allow all hypervisor settings in a defconfig
897EXTRA_OEMAKE += "XEN_CONFIG_EXPERT=y"
898# Build release versions always. Technically since we track release
899# tarballs this always happens but occasionally people pull in patches
900# from staging that reverts this
901EXTRA_OEMAKE += "debug=n"
902
Patrick Williamsd849ec72016-08-17 14:59:38 -0500903do_configure() {
904
905 #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually
906 if [ "${XSM_ENABLED}" = "1" ]; then
907 echo "XSM_ENABLE := y" > ${S}/.config
908 fi
909
Patrick Williamse69d2352017-02-23 20:56:04 -0600910 if [ -f "${WORKDIR}/defconfig" ]; then
911 cp "${WORKDIR}/defconfig" "${B}/xen/.config" || \
912 bbfatal "Unable to copy defconfig to .config"
913 fi
914
Patrick Williamsd849ec72016-08-17 14:59:38 -0500915 # do configure
916 oe_runconf
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500917 if [ ! -e ${STAGING_INCDIR}/bits/long-double-32.h ]; then
918 cp ${STAGING_INCDIR}/bits/long-double-64.h ${STAGING_INCDIR}/bits/long-double-32.h
919 fi
Patrick Williamsd849ec72016-08-17 14:59:38 -0500920}
921
922do_compile() {
Patrick Williamse69d2352017-02-23 20:56:04 -0600923 # workaround for build bug when CFLAGS is exported
924 # https://www.mail-archive.com/xen-devel@lists.xen.org/msg67822.html
925 unset CFLAGS
Patrick Williamsd849ec72016-08-17 14:59:38 -0500926 oe_runmake
927}
928
929do_install() {
930 oe_runmake DESTDIR="${D}" install
931
932 # remove installed volatiles
933 rm -rf ${D}${localstatedir}/run \
934 ${D}${localstatedir}/lock \
935 ${D}${localstatedir}/log \
936 ${D}${localstatedir}/volatile \
937 ${D}${localstatedir}/lib/xen
938
939 VOLATILE_DIRS=" \
940 ${localstatedir}/run/xenstored \
941 ${localstatedir}/run/xend \
942 ${localstatedir}/run/xend/boot \
943 ${localstatedir}/run/xen \
944 ${localstatedir}/log/xen \
945 ${localstatedir}/lock/xen \
946 ${localstatedir}/lock/subsys \
947 ${localstatedir}/lib/xen \
948 "
949
950 # install volatiles using populate_volatiles mechanism
951 install -d ${D}${sysconfdir}/default/volatiles
952 for i in $VOLATILE_DIRS; do
953 echo "d root root 0755 $i none" >> ${D}${sysconfdir}/default/volatiles/99_xen
954 done
955
956 # workaround for xendomains script which searchs sysconfig if directory exists
957 install -d ${D}${sysconfdir}/sysconfig
958 ln -sf ${sysconfdir}/default/xendomains ${D}${sysconfdir}/sysconfig/xendomains
959
960 # systemd
961 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
962 # install volatiles using systemd tmpfiles.d
963 install -d ${D}${sysconfdir}/tmpfiles.d
964 for i in $VOLATILE_DIRS; do
965 echo "d $i 0755 root root - -" >> ${D}${sysconfdir}/tmpfiles.d/xen.conf
966 done
967 fi
968
969 # fixup default path to qemu-system-i386
970 sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
971
972 if [ -e ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service ]; then
973 sed -i 's#ExecStart=.*qemu-system-i386\(.*\)$#ExecStart=/usr/bin/qemu-system-i386\1#' \
974 ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service
975 fi
976}
977
978pkg_postinst_${PN}-volatiles() {
979 if [ -z "$D" ]; then
980 if command -v systemd-tmpfiles >/dev/null; then
981 systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/xen.conf
982 elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
983 ${sysconfdir}/init.d/populate-volatile.sh update
984 fi
985 fi
986}
987
988do_deploy() {
989 install -d ${DEPLOYDIR}
990
991 if [ -f ${D}/boot/xen ]; then
992 install -m 0644 ${D}/boot/xen ${DEPLOYDIR}/xen-${MACHINE}
993 fi
994
995 if [ -f ${D}/boot/xen.gz ]; then
996 install -m 0644 ${D}/boot/xen.gz ${DEPLOYDIR}/xen-${MACHINE}.gz
997 fi
998
999 if [ -f ${D}/usr/lib64/efi/xen.efi ]; then
1000 install -m 0644 ${D}/usr/lib64/efi/xen.efi ${DEPLOYDIR}/xen-${MACHINE}.efi
1001 fi
1002
1003 # Install the flask policy in the deploy directory if it exists
1004 if [ -f ${D}/boot/${FLASK_POLICY_FILE} ]; then
1005 install -m 0644 ${D}/boot/${FLASK_POLICY_FILE} ${DEPLOYDIR}
1006 ln -sf ${FLASK_POLICY_FILE} ${DEPLOYDIR}/xenpolicy-${MACHINE}
1007 fi
1008}
1009
1010addtask deploy after do_populate_sysroot
Brad Bishop6e60e8b2018-02-01 10:27:11 -05001011
1012# Enable use of menuconfig directly from bitbake and also within the devshell
1013OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO"
1014HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
1015HOSTLDFLAGS = "${BUILD_LDFLAGS}"
1016TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
1017do_devshell[depends] += "ncurses-native:do_populate_sysroot"
1018
1019KCONFIG_CONFIG_COMMAND ??= "menuconfig"
1020python do_menuconfig() {
1021 import shutil
1022
1023 try:
1024 mtime = os.path.getmtime("xen/.config")
1025 shutil.copy("xen/.config", "xen/.config.orig")
1026 except OSError:
1027 mtime = 0
1028
1029 oe_terminal("${SHELL} -c \"cd xen; XEN_CONFIG_EXPERT=y make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'),
1030 d.getVar('PN') + ' Configuration', d)
1031
1032 try:
1033 newmtime = os.path.getmtime("xen/.config")
1034 except OSError:
1035 newmtime = 0
1036
1037 if newmtime > mtime:
1038 bb.note("Configuration changed, recompile will be forced")
1039 bb.build.write_taint('do_compile', d)
1040}
1041do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
1042do_menuconfig[nostamp] = "1"
1043do_menuconfig[dirs] = "${B}"
1044addtask menuconfig after do_configure