diff options
author | Sam Mulvey | 2020-07-20 11:44:06 -0700 |
---|---|---|
committer | Sam Mulvey | 2020-07-20 11:44:06 -0700 |
commit | 2a2c0d9e15eb2f837622d133a917743c7266bdc0 (patch) | |
tree | c4ddedb5779486eb0b810d5cf20548984c7198bb | |
parent | 892cf1ae980749f27e37c186dc9eb1dac0bf53d6 (diff) | |
download | aur-2a2c0d9e15eb2f837622d133a917743c7266bdc0.tar.gz |
parity with package at https://github.com/refutationalist/saur
-rw-r--r-- | .SRCINFO | 166 | ||||
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | PKGBUILD | 523 | ||||
-rw-r--r-- | efi-xen.cfg | 1 | ||||
-rw-r--r-- | grub-mkconfig-helper | 2 | ||||
-rw-r--r-- | xen-amd-ucode.hook | 12 | ||||
-rw-r--r-- | xen-intel-ucode.hook | 12 | ||||
-rw-r--r-- | xen-ucode-extract.sh | 37 | ||||
-rw-r--r-- | xen.install | 47 | ||||
-rw-r--r-- | xen_gcc10_1_omnibus.patch | 115 |
10 files changed, 498 insertions, 420 deletions
@@ -1,107 +1,131 @@ pkgbase = xen - pkgver = 4.12.1 - pkgrel = 1 - url = http://www.xenproject.org/ - changelog = ChangeLog + pkgdesc = Open-source type-1 or baremetal hypervisor + pkgver = 4.13.1 + pkgrel = 4 + url = https://xenproject.org/ arch = x86_64 license = GPL2 - makedepends = bin86 - makedepends = binutils>=2.30 + makedepends = zlib + makedepends = python + makedepends = ncurses + makedepends = openssl + makedepends = libx11 + makedepends = libuuid.so + makedepends = yajl + makedepends = libaio + makedepends = glib2 + makedepends = pkgconf makedepends = bridge-utils - makedepends = brltty - makedepends = cmake - makedepends = curl - makedepends = dev86 - makedepends = fig2dev - makedepends = figlet - makedepends = ghostscript - makedepends = git - makedepends = gnutls - makedepends = iasl makedepends = iproute2 + makedepends = inetutils + makedepends = acpica makedepends = lib32-glibc - makedepends = libaio - makedepends = libcap-ng - makedepends = libepoxy - makedepends = libiscsi - makedepends = libnl - makedepends = libpng + makedepends = gnutls + makedepends = vde2 makedepends = lzo - makedepends = markdown - makedepends = nasm - makedepends = ocaml-findlib - makedepends = pandoc makedepends = pciutils - makedepends = perl - makedepends = python2 makedepends = sdl - makedepends = spice - makedepends = spice-glib - makedepends = spice-protocol - makedepends = usbredir - makedepends = vde2 makedepends = wget - makedepends = yajl - noextract = ipxe-git.tar.gz + makedepends = pandoc + makedepends = valgrind + makedepends = git + makedepends = bin86 + makedepends = dev86 + makedepends = bison + makedepends = gettext + makedepends = flex + makedepends = pixman + makedepends = ocaml + noextract = ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz + noextract = gmp-4.3.2.tar.bz2 + noextract = grub-0.97.tar.gz + noextract = lwip-1.3.0.tar.gz + noextract = newlib-1.16.0.tar.gz + noextract = pciutils-2.2.9.tar.bz2 + noextract = polarssl-1.1.4-gpl.tgz + noextract = tpm_emulator-0.7.4.tar.gz + noextract = zlib-1.2.3.tar.gz options = !buildflags - options = !strip - options = !debug - source = https://downloads.xenproject.org/release/xen/4.12.1/xen-4.12.1.tar.gz - source = https://downloads.xenproject.org/release/xen/4.12.1/xen-4.12.1.tar.gz.sig - source = ipxe-git.tar.gz::http://xenbits.xen.org/xen-extfiles/ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz + source = https://downloads.xenproject.org/release/xen/4.13.1/xen-4.13.1.tar.gz + source = https://downloads.xenproject.org/release/xen/4.13.1/xen-4.13.1.tar.gz.sig + source = http://xenbits.xen.org/xen-extfiles/ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz + source = https://src.fedoraproject.org/rpms/xen/raw/master/f/xen.gcc10.fixes.patch + source = https://src.fedoraproject.org/rpms/xen/raw/master/f/xen.ocaml.4.10.patch + source = xen_gcc10_1_omnibus.patch source = grub-mkconfig-helper source = efi-xen.cfg source = grub.conf source = xen.conf source = tmpfiles.conf + source = xen-ucode-extract.sh + source = xen-intel-ucode.hook + source = xen-amd-ucode.hook + source = http://xenbits.xen.org/xen-extfiles/gmp-4.3.2.tar.bz2 + source = http://xenbits.xen.org/xen-extfiles/grub-0.97.tar.gz + source = http://xenbits.xen.org/xen-extfiles/lwip-1.3.0.tar.gz + source = http://xenbits.xen.org/xen-extfiles/newlib-1.16.0.tar.gz + source = http://xenbits.xen.org/xen-extfiles/pciutils-2.2.9.tar.bz2 + source = http://xenbits.xen.org/xen-extfiles/polarssl-1.1.4-gpl.tgz + source = http://xenbits.xen.org/xen-extfiles/tpm_emulator-0.7.4.tar.gz + source = http://xenbits.xen.org/xen-extfiles/zlib-1.2.3.tar.gz validpgpkeys = 23E3222C145F4475FA8060A783FE14C957E82BD9 - sha256sums = 5450a85497b84167df1d229b3ab98fb24ef4d6b0510dce522798c13c1b090159 - sha256sums = SKIP - sha256sums = fcb2b5da90a59a0011db7403a1ea7887b0dfb04ef91a7d31964c63ed14f7a426 - sha256sums = 23c3b0eab4cb06260bd07324d2060356560c9bc52270aaaf6130e1c130fc6e5e - sha256sums = ceaff798a92a7aef1465a0a0b27b1817aedd2c857332b456aaa6dd78dc72438f - sha256sums = 3f0af16958c3e057b9baa5afc47050d9adf7dd553274dd97ae4f35938fefb568 - sha256sums = 50a9b7fd19e8beb1dea09755f07318f36be0b7ec53d3c9e74f3266a63e682c0c - sha256sums = 40e0760810a49f925f2ae9f986940b40eba477dc6d3e83a78baaae096513b3cf + sha512sums = b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90 + sha512sums = SKIP + sha512sums = 8120696ba6d79fd9189664deed9b0489825d8d1edf7b931023b3979b7b9f82248e5b808c4517036cd40a85442ddf51a8dcad3b05d7f3c3cc6650654d53da4050 + sha512sums = a93b8f33a38af4434fb1fa0e1e24d6374105f7c6088fc011eccdd5d5576ad78152bf27b675ef37471bd6b45468f75499c08e0bb937ee880557acba3edec98a07 + sha512sums = abacb29fde9b583648651a076cc8697538dea51d7fcc8c2160e951548e7022a0c83c89ddac3d1b3e46e05cb265e8fe14c0d9248d055e914909232180b42b194f + sha512sums = eac4aaaaee05b8c0de88a78ba45329c4344b42c8d34651a6f7e99a7c7f16bfb9933a26fffbc5fb5d22e8561d07dfc13fe591aacb5f9a1d49aa725b253aad03ec + sha512sums = 1e95d8767bb0d4df6d95ac1f29e7fa7a74b4483f8bb46efcf95e08ddc9481d17c8e315f095e8d5ebf6e319811099e083566acc45aa3803aa4de4e8d17af04180 + sha512sums = 1bbcbcd9fb8344a207409ec9f0064a45b726416f043f902ca587f5e4fa58497a759be4ffd584fa32318e960aa478864cc05ec026c444e8d27ca8e3248bd67420 + sha512sums = 72b58aa4e2d0ba1242d789000f9a9df0969461b5eca119f92a9d5980e4340b6b2f502aac42b62bb85c9f580067e6120b79e6a30f961e7aa88394738a3ba2cc4c + sha512sums = ccaa2ff82e4203b11e5dec9aeccac2e165721d8067e0094603ecaa7a70b78c9eb9e2287a32687883d26b6ceae6f8d2ad7636ddf949eb658637b3ceaa6999711b + sha512sums = 53ba61587cc2e84044e935531ed161e22c36d9e90b43cab7b8e63bcc531deeefacca301b5dff39ce89210f06f1d1e4f4f5cf49d658ed5d9038c707e3c95c66ef + sha512sums = a9230ec6ef9636ac3f3e4b72b1747ee8c4648a8bf4bd8dc3650365e34f1f67474429dbdd24996907d277b0ff5f235574643e781cb3ff37da954e899ddadbe0d6 + sha512sums = 7a832de9b35f4b77ee80d33310b23886f4d48d1d42c3d6ef6f8e2b428bec7332a285336864b61cfa01d9a14c2023674015beb7527bd5849b069f2be88e6500cd + sha512sums = 99921b94a29fa7988c7fb5c17da8e598e777c972d6cae8c8643c991e5ff911a25525345ea8913945313d5c49fecf9da8cc3b83d47ab03928341e917b304370a9 + sha512sums = 2e0b0fd23e6f10742a5517981e5171c6e88b0a93c83da701b296f5c0861d72c19782daab589a7eac3f9032152a0fc7eff7f5362db8fccc4859564a9aa82329cf + sha512sums = c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb + sha512sums = 1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d + sha512sums = 40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3 + sha512sums = 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5 + sha512sums = 88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad + sha512sums = 4928b5b82f57645be9408362706ff2c4d9baa635b21b0d41b1c82930e8c60a759b1ea4fa74d7e6c7cae1b7692d006aa5cb72df0c3b88bf049779aa2b566f9d35 + sha512sums = 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e pkgname = xen - pkgdesc = Virtual Machine Hypervisor & Tools + pkgdesc = Open-source type-1 or baremetal hypervisor install = xen.install + depends = zlib + depends = python + depends = ncurses + depends = openssl + depends = libx11 + depends = libuuid.so + depends = yajl + depends = libaio + depends = glib2 + depends = pkgconf depends = bridge-utils - depends = brltty - depends = curl - depends = gnutls depends = iproute2 + depends = inetutils + depends = acpica depends = lib32-glibc - depends = libaio - depends = libcap-ng - depends = libepoxy - depends = libiscsi - depends = libnl - depends = libpng + depends = gnutls + depends = vde2 depends = lzo depends = pciutils - depends = python2 depends = sdl - depends = spice - depends = usbredir - depends = vde2 - depends = yajl - optdepends = xen-docs: Official Xen Documentation - optdepends = openvswitch: Optional Networking support - optdepends = seabios: Boot VMs with BIOS - optdepends = ovmf: Boot VMs with UEFI - provides = xen-4.12.1 + optdepends = ed2k-ovmf: UEFI support + optdepends = seabios: SeaBIOS payload support + optdepends = xen-docs: HTML documentation and man pages backup = etc/conf.d/xencommons backup = etc/conf.d/xendomains backup = etc/xen/efi-xen.cfg backup = etc/xen/cpupool backup = etc/xen/grub.conf - backup = etc/xen/oxenstored.conf backup = etc/xen/xl.conf pkgname = xen-docs - pkgdesc = Virtual Machine Hypervisor documentation + pkgdesc = Xen hypervisor documentation and man pages arch = any - provides = xen-docs-4.12.1 diff --git a/ChangeLog b/ChangeLog index fd77850e883e..ff03b676d939 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2020-08-20 Sam Mulvey + * 4.13.1-4 + 2019-08-15 Maik Broemme * 4.12.1-1 Xen 4.12.1 @@ -1,326 +1,225 @@ -# Maintainer: Maik Broemme <mbroemme@libmpq.org> -# Contributor: Janne Heß <jannehess@gmail.com> -# Contributor: Arthur Borsboom <arthurborsboom@gmail.com> -# Contributor: Shanmu Thiagaraja <sthiagaraja+AUR@prshanmu.com> -# Contributor: Limao Luo -# Contributor: Luceo -# Contributor: Revellion -# Contributor: John Thomson - -# Build variables to enable certain optional features. -_build_stubdom=${build_stubdom:-false} - -pkgbase="xen" +# Maintainer: Sam Mulvey (Refutationalist) <archlinux@sammulvey.com> +# Contributor: Filipe Laíns (FFY00) <lains@archlinux.org> + +# Build Options +_build_stubdom=${build_stubdom:-true} + +# Check http://xenbits.xen.org/xen-extfiles/ for updates +_gmp=4.3.2 +_grub=0.97 +_ipxe=1dd56dbd11082fb622c2ed21cfaced4f47d798a6 +_lwip=1.3.0 +_newlib=1.16.0 +_pciutils=2.2.9 +_polarssl=1.1.4 +_tpm_emulator=0.7.4 +_zlib=1.2.3 + +pkgbase=xen pkgname=("xen" "xen-docs") -pkgver="4.12.1" -pkgrel="1" -arch=("x86_64") # TODO What about ARM? -url="http://www.xenproject.org/" -license=("GPL2") -changelog="ChangeLog" -validpgpkeys=("23E3222C145F4475FA8060A783FE14C957E82BD9") -options=(!buildflags !strip !debug) -makedepends=( - "bin86" - "binutils>=2.30" - "bridge-utils" - "brltty" - "cmake" - "curl" - "dev86" - "fig2dev" - "figlet" - "ghostscript" - "git" - "gnutls" - "iasl" - "iproute2" - "lib32-glibc" - "libaio" - "libcap-ng" - "libepoxy" - "libiscsi" - "libnl" - "libpng" - "lzo" - "markdown" - "nasm" - "ocaml-findlib" - "pandoc" - "pciutils" - "perl" - "python2" - "sdl" - "spice" - "spice-glib" - "spice-protocol" - "usbredir" - "vde2" - "wget" - "yajl" -) -source=( - "https://downloads.xenproject.org/release/xen/${pkgver}/${pkgbase}-${pkgver}.tar.gz" - "https://downloads.xenproject.org/release/xen/${pkgver}/${pkgbase}-${pkgver}.tar.gz.sig" - "ipxe-git.tar.gz::http://xenbits.xen.org/xen-extfiles/ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz" - - # Helper and config files. - "grub-mkconfig-helper" - "efi-xen.cfg" - "grub.conf" - "${pkgbase}.conf" - "tmpfiles.conf" - - # XSA patches. - - # Compile fixes. -) -sha256sums=( - "5450a85497b84167df1d229b3ab98fb24ef4d6b0510dce522798c13c1b090159" - "SKIP" - "fcb2b5da90a59a0011db7403a1ea7887b0dfb04ef91a7d31964c63ed14f7a426" - - # Helper and config files. - "23c3b0eab4cb06260bd07324d2060356560c9bc52270aaaf6130e1c130fc6e5e" - "ceaff798a92a7aef1465a0a0b27b1817aedd2c857332b456aaa6dd78dc72438f" - "3f0af16958c3e057b9baa5afc47050d9adf7dd553274dd97ae4f35938fefb568" - "50a9b7fd19e8beb1dea09755f07318f36be0b7ec53d3c9e74f3266a63e682c0c" - "40e0760810a49f925f2ae9f986940b40eba477dc6d3e83a78baaae096513b3cf" - - # XSA patches. - - # Compile fixes. -) -noextract=( - "ipxe-git.tar.gz" -) - -# Stub Domain files (grep '_VERSION=' stubdom/configure). -if [ "${_build_stubdom}" = true ] ; then - source+=( - "zlib.tar.gz::http://xenbits.xen.org/xen-extfiles/zlib-1.2.3.tar.gz" - "pciutils.tar.bz2::http://xenbits.xen.org/xen-extfiles/pciutils-2.2.9.tar.bz2" - "newlib.tar.gz::http://xenbits.xen.org/xen-extfiles/newlib-1.16.0.tar.gz" - "lwip.tar.gz::http://xenbits.xen.org/xen-extfiles/lwip-1.3.0.tar.gz" - "grub.tar.gz::http://xenbits.xen.org/xen-extfiles/grub-0.97.tar.gz" - "ocaml.tar.gz::http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0.tar.gz" - "gmp.tar.bz2::http://xenbits.xen.org/xen-extfiles/gmp-4.3.2.tar.bz2" - "polarssl-gpl.tgz::http://xenbits.xen.org/xen-extfiles/polarssl-1.1.4-gpl.tgz" - "tpm_emulator.tar.gz::http://xenbits.xen.org/xen-extfiles/tpm_emulator-0.7.4.tar.gz" - ) - sha256sums+=( - "1795c7d067a43174113fdf03447532f373e1c6c57c08d61d9e4e9be5e244b05e" - "f60ae61cfbd5da1d849d0beaa21f593c38dac9359f0b3ddc612f447408265b24" - "db426394965c48c1d29023e1cc6d965ea6b9a9035d8a849be2750ca4659a3d07" - "772e4d550e07826665ed0528c071dd5404ef7dbe1825a38c8adbc2a00bca948f" - "4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b" - "ecdd4f8473ab0dee5d3acb5c0a31a4c1dd6aa12179895cf1903dd0f455c43a4f" - "936162c0312886c21581002b79932829aa048cfaf9937c6265aeaa14f1cd1775" - "2d29fd04a0d0ba29dae6bd29fb418944c08d3916665dcca74afb297ef37584b6" - "4e48ea0d83dd9441cc1af04ab18cd6c961b9fa54d5cbf2c2feee038988dea459" - ) - noextract+=( - "zlib.tar.gz" - "pciutils.tar.bz2" - "newlib.tar.gz" - "lwip.tar.gz" - "grub.tar.gz" - "ocaml.tar.gz" - "gmp.tar.bz2" - "polarssl-gpl.tgz" - "tpm_emulator.tar.gz" - ) +pkgver=4.13.1 +pkgrel=4 +pkgdesc='Open-source type-1 or baremetal hypervisor' +arch=('x86_64') +url='https://xenproject.org/' +license=('GPL2') + +makedepends=('zlib' 'python' 'ncurses' 'openssl' 'libx11' 'libuuid.so' 'yajl' 'libaio' 'glib2' 'pkgconf' + 'bridge-utils' 'iproute2' 'inetutils' 'acpica' 'lib32-glibc' 'gnutls' + 'vde2' 'lzo' 'pciutils' 'sdl') # last line from namcap, these depends are the xen depends +makedepends+=('wget' 'pandoc' 'valgrind' 'git' 'bin86' 'dev86' 'bison' 'gettext' 'flex' 'pixman' 'ocaml') + +options=(!buildflags) +_source=("https://downloads.xenproject.org/release/xen/$pkgver/$pkgname-$pkgver.tar.gz"{,.sig} + "http://xenbits.xen.org/xen-extfiles/ipxe-git-$_ipxe.tar.gz" + "https://src.fedoraproject.org/rpms/xen/raw/master/f/xen.gcc10.fixes.patch" + "https://src.fedoraproject.org/rpms/xen/raw/master/f/xen.ocaml.4.10.patch" + "xen_gcc10_1_omnibus.patch" + "grub-mkconfig-helper" + "efi-xen.cfg" + "grub.conf" + "xen.conf" + "tmpfiles.conf" + "xen-ucode-extract.sh" + "xen-intel-ucode.hook" + "xen-amd-ucode.hook") + +_stubdom_source=("http://xenbits.xen.org/xen-extfiles/gmp-$_gmp.tar.bz2" + "http://xenbits.xen.org/xen-extfiles/grub-$_grub.tar.gz" + "http://xenbits.xen.org/xen-extfiles/lwip-$_lwip.tar.gz" + "http://xenbits.xen.org/xen-extfiles/newlib-$_newlib.tar.gz" + "http://xenbits.xen.org/xen-extfiles/pciutils-$_pciutils.tar.bz2" + "http://xenbits.xen.org/xen-extfiles/polarssl-$_polarssl-gpl.tgz" + "http://xenbits.xen.org/xen-extfiles/tpm_emulator-$_tpm_emulator.tar.gz" + "http://xenbits.xen.org/xen-extfiles/zlib-$_zlib.tar.gz") + +noextract=("ipxe-git-$_ipxe.tar.gz") + + +if [ "${_build_stubdom}" == "true" ]; then + source=("${_source[@]}" "${_stubdom_source[@]}") + + for file in "${_stubdom_source[@]}"; do + noextract+=( $(basename ${file}) ) + done + + _config_stubdom='--enable-stubdom' +else + _config_stubdom='--disable-stubdom' fi + +sha512sums=('b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90' + 'SKIP' + '8120696ba6d79fd9189664deed9b0489825d8d1edf7b931023b3979b7b9f82248e5b808c4517036cd40a85442ddf51a8dcad3b05d7f3c3cc6650654d53da4050' + 'a93b8f33a38af4434fb1fa0e1e24d6374105f7c6088fc011eccdd5d5576ad78152bf27b675ef37471bd6b45468f75499c08e0bb937ee880557acba3edec98a07' + 'abacb29fde9b583648651a076cc8697538dea51d7fcc8c2160e951548e7022a0c83c89ddac3d1b3e46e05cb265e8fe14c0d9248d055e914909232180b42b194f' + 'eac4aaaaee05b8c0de88a78ba45329c4344b42c8d34651a6f7e99a7c7f16bfb9933a26fffbc5fb5d22e8561d07dfc13fe591aacb5f9a1d49aa725b253aad03ec' + '1e95d8767bb0d4df6d95ac1f29e7fa7a74b4483f8bb46efcf95e08ddc9481d17c8e315f095e8d5ebf6e319811099e083566acc45aa3803aa4de4e8d17af04180' + '1bbcbcd9fb8344a207409ec9f0064a45b726416f043f902ca587f5e4fa58497a759be4ffd584fa32318e960aa478864cc05ec026c444e8d27ca8e3248bd67420' + '72b58aa4e2d0ba1242d789000f9a9df0969461b5eca119f92a9d5980e4340b6b2f502aac42b62bb85c9f580067e6120b79e6a30f961e7aa88394738a3ba2cc4c' + 'ccaa2ff82e4203b11e5dec9aeccac2e165721d8067e0094603ecaa7a70b78c9eb9e2287a32687883d26b6ceae6f8d2ad7636ddf949eb658637b3ceaa6999711b' + '53ba61587cc2e84044e935531ed161e22c36d9e90b43cab7b8e63bcc531deeefacca301b5dff39ce89210f06f1d1e4f4f5cf49d658ed5d9038c707e3c95c66ef' + 'a9230ec6ef9636ac3f3e4b72b1747ee8c4648a8bf4bd8dc3650365e34f1f67474429dbdd24996907d277b0ff5f235574643e781cb3ff37da954e899ddadbe0d6' + '7a832de9b35f4b77ee80d33310b23886f4d48d1d42c3d6ef6f8e2b428bec7332a285336864b61cfa01d9a14c2023674015beb7527bd5849b069f2be88e6500cd' + '99921b94a29fa7988c7fb5c17da8e598e777c972d6cae8c8643c991e5ff911a25525345ea8913945313d5c49fecf9da8cc3b83d47ab03928341e917b304370a9' + '2e0b0fd23e6f10742a5517981e5171c6e88b0a93c83da701b296f5c0861d72c19782daab589a7eac3f9032152a0fc7eff7f5362db8fccc4859564a9aa82329cf' + 'c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb' + '1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d' + '40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3' + '2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5' + '88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad' + '4928b5b82f57645be9408362706ff2c4d9baa635b21b0d41b1c82930e8c60a759b1ea4fa74d7e6c7cae1b7692d006aa5cb72df0c3b88bf049779aa2b566f9d35' + '021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e') + + +validpgpkeys=('23E3222C145F4475FA8060A783FE14C957E82BD9') # Xen.org Xen tree code signing (signatures on the xen hypervisor and tools) <pgp@xen.org> + + +# TODO: Setup users, dirs, etc. + prepare() { - cd "${srcdir}/${pkgbase}-${pkgver}" - - # Preparing downloads. - msg2 'Copying downloaded files...' - cp "${srcdir}/ipxe-git.tar.gz" tools/firmware/etherboot/ipxe.tar.gz - - # XSA patches. - msg2 'Applying XSA patches...' - - # Security patches and compile fixes (qemu-xen-traditional). - msg2 'Applying tools patches (qemu-xen-traditional)...' - cd tools/qemu-xen-traditional - cd ../.. - - # Security patches and compile fixes (qemu-xen). - msg2 'Applying tools patches (qemu-xen)...' - cd tools/qemu-xen - cd ../.. - - # Misc compile fixes (removed in future versions if not needed anymore). - msg2 'Applying misc compile fixes...' - - # Compile fixes. - - # Fix Install Paths. - msg2 'Fixing installation paths...' - sed 's,/var/run,/run,g' -i tools/hotplug/Linux/locking.sh - sed 's,/var/run,/run,g' -i tools/misc/xenpvnetboot - sed 's,/var/run,/run,g' -i tools/xenmon/xenbaked.c - sed 's,/var/run,/run,g' -i tools/xenmon/xenmon.py - sed 's,/var/run,/run,g' -i tools/pygrub/src/pygrub - - # Copy supporting tarballs into place. - if [ "${_build_stubdom}" = true ] ; then - msg2 'Copying stubdom files...' - cp "${srcdir}/zlib.tar.gz" stubdom/ - cp "${srcdir}/pciutils.tar.bz2" stubdom/ - cp "${srcdir}/newlib.tar.gz" stubdom/ - cp "${srcdir}/lwip.tar.gz" stubdom/ - cp "${srcdir}/grub.tar.gz" stubdom/ - cp "${srcdir}/ocaml.tar.gz" stubdom/ - cp "${srcdir}/gmp.tar.bz2" stubdom/ - cp "${srcdir}/polarssl-gpl.tgz" stubdom/ - cp "${srcdir}/tpm_emulator.tar.gz" stubdom/ - fi + cd "${pkgbase}-${pkgver}" + + patch -p1 < ../xen.gcc10.fixes.patch + patch -p1 < ../xen.ocaml.4.10.patch + patch -p1 < ../xen_gcc10_1_omnibus.patch + + if [ "${_build_stubdom}" == "true" ]; then + + for file in "${_stubdom_source[@]}"; do + cp ../$(basename ${file}) stubdom/ + done + + fi + + cp ../ipxe-git-$_ipxe.tar.gz tools/firmware/etherboot/ipxe.tar.gz + + # Fix Install Paths. + sed 's,/var/run,/run,g' -i tools/hotplug/Linux/locking.sh + sed 's,/var/run,/run,g' -i tools/misc/xenpvnetboot + sed 's,/var/run,/run,g' -i tools/xenmon/xenbaked.c + sed 's,/var/run,/run,g' -i tools/xenmon/xenmon.py + sed 's,/var/run,/run,g' -i tools/pygrub/src/pygrub } build() { - cd "${srcdir}/${pkgbase}-${pkgver}" - if [ "${_build_stubdom}" = true ] ; then - _config_stubdom='--enable-stubdom' - else - _config_stubdom='--disable-stubdom' - fi - - # Configure Xen. - msg2 'Configuring...' - ./autogen.sh - PYTHON=/usr/bin/python2 ./configure \ - --prefix=/usr \ - --sbindir=/usr/bin \ - --with-sysconfig-leaf-dir=conf.d \ - --with-rundir=/run \ - --enable-systemd \ - --enable-ovmf \ - --with-system-ovmf=/usr/share/ovmf/x64/OVMF_CODE.fd \ - --with-system-seabios=/usr/share/qemu/bios-256k.bin \ - "${_config_stubdom}" \ - --with-extra-qemuu-configure-args=" \ - --disable-bluez \ - --disable-gtk \ - --disable-vte \ - --disable-werror \ - --disable-virglrenderer \ - --disable-libnfs \ - --disable-glusterfs \ - --disable-numa \ - --disable-smartcard \ - --disable-fdt \ - --enable-spice \ - --enable-usb-redir \ - --with-sdlabi=1.2" - - msg2 'Building Xen...' - make LANG=C PYTHON=python2 dist + cd "${pkgbase}-${pkgver}" + + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --libdir=/usr/lib \ + --with-rundir=/run \ + --enable-systemd \ + --disable-qemu-traditional \ + ${_config_stubdom} \ + --with-sysconfig-leaf-dir=conf.d \ + --with-system-ovmf=/usr/share/ovmf/x64/OVMF.fd \ + --with-system-qemu=/usr/bin/qemu-system-x86_64 \ + --with-system-seabios=/usr/share/qemu/bios-256k.bin + + make XEN_VENDORVERSION=arch } package_xen() { - pkgdesc="Virtual Machine Hypervisor & Tools" - depends=( - "bridge-utils" - "brltty" - "curl" - "gnutls" - "iproute2" - "lib32-glibc" - "libaio" - "libcap-ng" - "libepoxy" - "libiscsi" - "libnl" - "libpng" - "lzo" - "pciutils" - "python2" - "sdl" - "spice" - "usbredir" - "vde2" - "yajl" - ) - optdepends=( - "xen-docs: Official Xen Documentation" - "openvswitch: Optional Networking support" - "seabios: Boot VMs with BIOS" - "ovmf: Boot VMs with UEFI" - ) - provides=("xen-${pkgver}") - install="${pkgbase}.install" - backup=( - "etc/conf.d/xencommons" - "etc/conf.d/xendomains" - "etc/${pkgbase}/efi-xen.cfg" - "etc/${pkgbase}/cpupool" - "etc/${pkgbase}/grub.conf" - "etc/${pkgbase}/oxenstored.conf" - "etc/${pkgbase}/xl.conf" - ) - - cd "${srcdir}/${pkgbase}-${pkgver}" - msg2 'Installing Xen...' - make DESTDIR="${pkgdir}" LANG=C PYTHON=python2 install - - # Install files for Arch Linux. - msg2 'Installing Arch-specific files...' - install -D -m 0644 "${srcdir}/grub.conf" "${pkgdir}/etc/xen/grub.conf" - install -D -m 0755 "${srcdir}/grub-mkconfig-helper" "${pkgdir}/etc/grub.d/09_xen" - install -D -m 0644 "${srcdir}/efi-xen.cfg" "${pkgdir}/etc/xen/efi-xen.cfg" - install -D -m 0644 "${srcdir}/xen.conf" "${pkgdir}/usr/lib/modules-load.d/xen.conf" - install -D -m 0644 "${srcdir}/tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}.conf" - - # Create missing directories. - msg2 'Create missing directories...' - mkdir -p "${pkgdir}/var/log/xen/console" - - # Move EFI binaries to right location. - msg2 'Moving efi binary...' - mv "${pkgdir}/usr/lib64/efi/xen"*.efi "${pkgdir}/boot" - rmdir "${pkgdir}/usr/lib64/efi" - rmdir "${pkgdir}/usr/lib64" - - # Clean up. - msg2 'Cleaning up...' - - # Remove hypervisor symlinks. - find "${pkgdir}/boot" -type l -delete - - # Remove syms. - find "${pkgdir}/usr/lib/debug" -type f \( -name '*-syms*' -or -name '*\.map' \) -delete - rmdir "${pkgdir}/usr/lib/debug/usr/lib/xen/boot" - rmdir "${pkgdir}/usr/lib/debug/usr/lib/xen" - rmdir "${pkgdir}/usr/lib/debug/usr/lib" - rmdir "${pkgdir}/usr/lib/debug/usr" - rmdir "${pkgdir}/usr/lib/debug" - - # Remove SysVinit files. - rm -r "${pkgdir}/etc/init.d" - - # Remove temporary directories. - rm -r "${pkgdir}/run" - - # Remove documentation (included in separate xen-docs package). - rm -r "${pkgdir}/usr/share/doc" - rm -r "${pkgdir}/usr/share/man" - - # Remove unnecessary qemu support files. - rm "${pkgdir}/usr/share/qemu-xen/qemu/palcode-clipper" - rm "${pkgdir}/usr/share/qemu-xen/qemu/openbios-ppc" - rm "${pkgdir}/usr/share/qemu-xen/qemu/openbios-sparc32" - rm "${pkgdir}/usr/share/qemu-xen/qemu/openbios-sparc64" + pkgdesc='Open-source type-1 or baremetal hypervisor' + + depends=('zlib' 'python' 'ncurses' 'openssl' 'libx11' 'libuuid.so' 'yajl' 'libaio' 'glib2' 'pkgconf' + 'bridge-utils' 'iproute2' 'inetutils' 'acpica' 'lib32-glibc' 'gnutls' + 'vde2' 'lzo' 'pciutils' 'sdl') + + optdepends=('ed2k-ovmf: UEFI support' + 'seabios: SeaBIOS payload support' + 'xen-docs: HTML documentation and man pages') + + install="xen.install" + + + backup=("etc/conf.d/xencommons" + "etc/conf.d/xendomains" + "etc/xen/efi-xen.cfg" + "etc/xen/cpupool" + "etc/xen/grub.conf" + "etc/xen/xl.conf" + ) + + + cd "${pkgbase}-${pkgver}" + + + make DESTDIR="$pkgdir" install + + mv "$pkgdir"/usr/lib64/efi "$pkgdir"/usr/lib/efi + rm -rf "$pkgdir"{/var/run,/usr/lib64} + # This feels like The Arch Way, really. + find "${pkgdir}/usr/lib/efi" -type l -delete + mv "${pkgdir}/usr/lib/efi/xen-${pkgver}.efi" "${pkgdir}/usr/lib/efi/xen.efi" + + + [ -d "$pkgdir"/etc/xen/scripts ] && backup+=($(find "$pkgdir"/etc/xen/scripts/ -type f | sed "s|^$pkgdir/||g")) + + mkdir -p "${pkgdir}/var/log/xen/console" + + # Remove hypervisor symlinks. + find "${pkgdir}/boot" -type l -delete + # Continued: This feels like The Arch Way, really. + mv "${pkgdir}/boot/xen-${pkgver}.gz" "${pkgdir}/boot/xen.gz" + + # Remove syms. + find "${pkgdir}/usr/lib/debug" -type f \( -name '*-syms*' -or -name '*\.map' \) -delete + rmdir "${pkgdir}/usr/lib/debug/usr/lib/xen/boot" + rmdir "${pkgdir}/usr/lib/debug/usr/lib/xen" + rmdir "${pkgdir}/usr/lib/debug/usr/lib" + rmdir "${pkgdir}/usr/lib/debug/usr" + rmdir "${pkgdir}/usr/lib/debug" + + # Remove SysVinit files. + rm -r "${pkgdir}/etc/init.d" + + # Install files for Arch Linux. + install -D -m 0644 "${srcdir}/grub.conf" "${pkgdir}/etc/xen/grub.conf" + install -D -m 0755 "${srcdir}/grub-mkconfig-helper" "${pkgdir}/etc/grub.d/09_xen" + install -D -m 0644 "${srcdir}/efi-xen.cfg" "${pkgdir}/etc/xen/efi-xen.cfg" + install -D -m 0644 "${srcdir}/xen.conf" "${pkgdir}/usr/lib/modules-load.d/xen.conf" + install -D -m 0644 "${srcdir}/tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}.conf" + + # microcode hooks + mkdir -p "${pkgdir}/usr/share/libalpm/scripts" "${pkgdir}/usr/share/libalpm/hooks" + install -m755 "${srcdir}/xen-ucode-extract.sh" "${pkgdir}/usr/share/libalpm/scripts" + install -m644 "${srcdir}/xen-intel-ucode.hook" "${pkgdir}/usr/share/libalpm/hooks" + install -m644 "${srcdir}/xen-amd-ucode.hook" "${pkgdir}/usr/share/libalpm/hooks" + + # Remove documentation (included in separate xen-docs package). + rm -r "${pkgdir}/usr/share/doc" + rm -r "${pkgdir}/usr/share/man" + } package_xen-docs() { - pkgdesc="Virtual Machine Hypervisor documentation" - arch=("any") - provides=("xen-docs-${pkgver}") - - cd "${srcdir}/${pkgbase}-${pkgver}" - msg2 'Installing documentation...' - make DESTDIR="${pkgdir}" LANG=C PYTHON=python2 install-docs + pkgdesc="Xen hypervisor documentation and man pages" + arch=("any") + cd "${pkgbase}-${pkgver}" + make DESTDIR="${pkgdir}" install-docs } diff --git a/efi-xen.cfg b/efi-xen.cfg index 359dbfa582a2..16b0b5bd5cc5 100644 --- a/efi-xen.cfg +++ b/efi-xen.cfg @@ -5,3 +5,4 @@ default=xen options=console=vga dom0_mem=1024M,max:1024M dom0_max_vcpus=4 loglvl=all noreboot kernel=vmlinuz-linux root=<Root Device> rw ramdisk=initramfs-linux.img +ucode=<extracted microcode file> diff --git a/grub-mkconfig-helper b/grub-mkconfig-helper index be298eee12ab..7478cb85ffeb 100644 --- a/grub-mkconfig-helper +++ b/grub-mkconfig-helper @@ -115,7 +115,7 @@ else GRUB_LINUX_PARAMS="${XEN_LINUX_CMDLINE}" fi -xen_list=`for i in /boot/xen-*.gz /xen-*.gz ; do +xen_list=`for i in /boot/xen.gz /boot/xen-*.gz /xen-*.gz ; do if grub_file_is_not_garbage "$i" ; then echo -n "$i "; fi done` diff --git a/xen-amd-ucode.hook b/xen-amd-ucode.hook new file mode 100644 index 000000000000..8e56e98dc907 --- /dev/null +++ b/xen-amd-ucode.hook @@ -0,0 +1,12 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = boot/amd-ucode.img + +[Action] +Description = Extracting AMD microcode for Xen EFI... +When = PostTransaction +Exec = /usr/share/libalpm/scripts/xen-ucode-extract.sh + diff --git a/xen-intel-ucode.hook b/xen-intel-ucode.hook new file mode 100644 index 000000000000..c7013ff5c871 --- /dev/null +++ b/xen-intel-ucode.hook @@ -0,0 +1,12 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = boot/intel-ucode.img + +[Action] +Description = Extracting Intel microcode for Xen EFI... +When = PostTransaction +Exec = /usr/share/libalpm/scripts/xen-ucode-extract.sh + diff --git a/xen-ucode-extract.sh b/xen-ucode-extract.sh new file mode 100644 index 000000000000..7f8379d67150 --- /dev/null +++ b/xen-ucode-extract.sh @@ -0,0 +1,37 @@ +#!/bin/bash -e + + +do_firmware() { + + if [ "$1" == "intel" ]; then + UCODE_RD="/boot/intel-ucode.img" + XEN_EFI_UCODE="/boot/xen-efi-intel-ucode.bin" + UCODE_ORIG_BIN="kernel/x86/microcode/GenuineIntel.bin" + elif [ "$1" == "amd" ]; then + UCODE_RD="/boot/amd-ucode.img" + XEN_EFI_UCODE="/boot/xen-efi-amd-ucode.bin" + UCODE_ORIG_BIN="kernel/x86/microcode/AuthenticAMD.bin" + fi + + # remove old file + if [ -f $XEN_EFI_UCODE ]; then + rm $XEN_EFI_UCODE + fi + + # create new file + if [ -f $UCODE_RD ]; then + bsdtar -Oxf $UCODE_RD $UCODE_ORIG_BIN > $XEN_EFI_UCODE || exit 1 + fi + + +} + +if [ -f "/boot/intel-ucode.img" ]; then + do_firmware "intel" +fi + +if [ -f "/boot/amd-ucode.img" ]; then + do_firmware "amd" +fi + +exit 0 diff --git a/xen.install b/xen.install index 6e21a5230e6f..2a053c9f72a3 100644 --- a/xen.install +++ b/xen.install @@ -1,64 +1,38 @@ install_msg() { cat << __EOF__ -===> IMPORTANT NOTICES: + Bunch of Xen Notes: https://wiki.archlinux.org/index.php/Xen -In order to complete the installation, and enable Xen, -at the very least you must: -1. If using GRUB2, edit your GRUB2 config files as specified at - https://wiki.archlinux.org/index.php/Xen#Bootloader_Configuration - - Support for the grub-mkconfig command was added, and will auto-discover - the deployed xen hypervisor and linux kernel -2. If booting via efi, copy the example /etc/xen/efi-xen.cfg to /boot/xen.cfg + If booting via efi, copy the example /etc/xen/efi-xen.cfg to /boot/xen.cfg and edit the contents to match the settings you need. -3. Issue the following commands to allow you to create and start VMs: + + To make dom0 go: systemctl enable xen-qemu-dom0-disk-backend.service systemctl enable xen-init-dom0.service systemctl enable xenconsoled.service - Other optional services are: + Optional services are: systemctl enable xen-watchdog.service -4. If you want some domains to automatically start up/shutdown, run the following: + To start domains on boot: systemctl enable xendomains.service -For more information refer to the Wiki: - https://wiki.archlinux.org/index.php/Xen - -__EOF__ - -} -upgrade_msg() { - cat << __EOF__ -Xen 4.12 -Release notes -http://wiki.xen.org/wiki/Xen_Project_4.12_Release_Notes -Feature list -http://wiki.xen.org/wiki/Xen_Project_4.12_Feature_List __EOF__ - if [ "$(vercmp 4.8.0-4 "$1")" -lt 0 ]; then - cat << __EOF__ -!!!!! -This Xen version has split out SeaBIOS and OVMF. -If you need to use VMs with BIOS or UEFI, install seabios or ovmf respectively. -!!!!! -__EOF__ - fi } + post_install() { install_msg - upgrade_msg systemd-tmpfiles --create + /usr/share/libalpm/scripts/xen-ucode-extract.sh } post_upgrade() { - upgrade_msg $@ systemd-tmpfiles --create + /usr/share/libalpm/scripts/xen-ucode-extract.sh } pre_remove() { @@ -73,11 +47,12 @@ pre_remove() { systemctl disable xenconsoled.service systemctl disable xen-init-dom0.service systemctl disable xen-qemu-dom0-disk-backend.service + + echo "Be sure to check boot for auto-generated microcode files." } post_remove() { cat << __EOF__ -===> IMPORTANT NOTICE: In order to finish removing Xen, you will need to modify your bootloader configuration files to load your Linux diff --git a/xen_gcc10_1_omnibus.patch b/xen_gcc10_1_omnibus.patch new file mode 100644 index 000000000000..64fcb519f103 --- /dev/null +++ b/xen_gcc10_1_omnibus.patch @@ -0,0 +1,115 @@ +diff -Naur orig/stubdom/Makefile changed/stubdom/Makefile +--- orig/stubdom/Makefile 2020-05-14 05:19:32.000000000 -0700 ++++ changed/stubdom/Makefile 2020-05-20 12:06:15.266666457 -0700 +@@ -231,6 +231,7 @@ + patch -d $@ -p1 < vtpm-cmake-Wextra.patch + patch -d $@ -p1 < vtpm-implicit-fallthrough.patch + patch -d $@ -p1 < vtpm_TPM_ChangeAuthAsymFinish.patch ++ patch -d $@ -p1 < vtpm_gcc10_1.patch + mkdir $@/build + cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-declaration-after-statement" + touch $@ +diff -Naur orig/stubdom/vtpm_gcc10_1.patch changed/stubdom/vtpm_gcc10_1.patch +--- orig/stubdom/vtpm_gcc10_1.patch 1969-12-31 16:00:00.000000000 -0800 ++++ changed/stubdom/vtpm_gcc10_1.patch 2020-05-20 12:04:59.593333123 -0700 +@@ -0,0 +1,48 @@ ++diff -Naur orig/tpm/tpm_emulator_extern.h changed/tpm/tpm_emulator_extern.h ++--- orig/tpm/tpm_emulator_extern.h 2020-05-20 11:58:56.533333115 -0700 +++++ changed/tpm/tpm_emulator_extern.h 2020-05-20 11:50:57.153333124 -0700 ++@@ -29,7 +29,7 @@ ++ TPM_LOG_ERROR ++ }; ++ ++-void (*tpm_log)(int priority, const char *fmt, ...); +++extern void (*tpm_log)(int priority, const char *fmt, ...); ++ ++ #if defined(_WIN32) || defined(_WIN64) ++ #define __BFILE__ ((strrchr(__FILE__, '\\') ? : __FILE__ - 1) + 1) ++@@ -44,27 +44,27 @@ ++ #define error(fmt, ...) tpm_log(TPM_LOG_ERROR, "%s:%d: Error: " fmt "\n", \ ++ __BFILE__, __LINE__, ## __VA_ARGS__) ++ /* initialization */ ++-int (*tpm_extern_init)(void); ++-void (*tpm_extern_release)(void); +++extern int (*tpm_extern_init)(void); +++extern void (*tpm_extern_release)(void); ++ ++ /* memory allocation */ ++ ++-void* (*tpm_malloc)(size_t size); +++extern void* (*tpm_malloc)(size_t size); ++ ++-void (*tpm_free)(/*const*/ void *ptr); +++extern void (*tpm_free)(/*const*/ void *ptr); ++ ++ /* random numbers */ ++ ++-void (*tpm_get_extern_random_bytes)(void *buf, size_t nbytes); +++extern void (*tpm_get_extern_random_bytes)(void *buf, size_t nbytes); ++ ++ /* usec since last call */ ++ ++-uint64_t (*tpm_get_ticks)(void); +++extern uint64_t (*tpm_get_ticks)(void); ++ ++ /* file handling */ ++ ++-int (*tpm_write_to_storage)(uint8_t *data, size_t data_length); ++-int (*tpm_read_from_storage)(uint8_t **data, size_t *data_length); +++extern int (*tpm_write_to_storage)(uint8_t *data, size_t data_length); +++extern int (*tpm_read_from_storage)(uint8_t **data, size_t *data_length); ++ ++ #endif /* _TPM_EMULATOR_EXTERN_H_ */ ++ +diff -Naur orig/stubdom/vtpmmgr/vtpmmgr.h changed/stubdom/vtpmmgr/vtpmmgr.h +--- orig/stubdom/vtpmmgr/vtpmmgr.h 2020-05-14 05:19:32.000000000 -0700 ++++ changed/stubdom/vtpmmgr/vtpmmgr.h 2020-05-20 12:04:28.506666463 -0700 +@@ -50,7 +50,7 @@ + #define RSA_KEY_SIZE 0x0800 + #define RSA_CIPHER_SIZE (RSA_KEY_SIZE / 8) + +-enum { ++extern enum { + TPM1_HARDWARE = 1, + TPM2_HARDWARE, + } tpm_version; +diff -Naur orig/tools/firmware/etherboot/patches/ipxe_gcc10_1.patch changed/tools/firmware/etherboot/patches/ipxe_gcc10_1.patch +--- orig/tools/firmware/etherboot/patches/ipxe_gcc10_1.patch 1969-12-31 16:00:00.000000000 -0800 ++++ changed/tools/firmware/etherboot/patches/ipxe_gcc10_1.patch 2020-05-20 12:06:53.043333126 -0700 +@@ -0,0 +1,30 @@ ++diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping ++index 1dd14794..8aaa2754 100644 ++--- a/src/Makefile.housekeeping +++++ b/src/Makefile.housekeeping ++@@ -130,7 +130,7 @@ eval : ++ # Check for various tool workarounds ++ # ++ ++-WORKAROUND_CFLAGS := +++WORKAROUND_CFLAGS := -Wno-array-bounds -Wno-enum-conversion ++ WORKAROUND_ASFLAGS := ++ WORKAROUND_LDFLAGS := ++ ++@@ -170,6 +170,16 @@ CFI_FLAGS := $(shell $(CFI_TEST) && \ ++ WORKAROUND_CFLAGS += $(CFI_FLAGS) ++ endif ++ +++# gcc 10 switched default behavior from -fcommon to -fno-common. Since +++# "__shared" relies on the legacy behavior, explicitly specify it. +++# +++ifeq ($(CCTYPE),gcc) +++FCOMMON_TEST = $(CC) -fcommon -x c -c /dev/null \ +++ -o /dev/null >/dev/null 2>&1 +++FCOMMON_FLAGS := $(shell $(FCOMMON_TEST) && $(ECHO) '-fcommon') +++WORKAROUND_CFLAGS += $(FCOMMON_FLAGS) +++endif +++ ++ # gcc 4.6 generates spurious warnings if -Waddress is in force. ++ # Inhibit this. ++ # +diff -Naur orig/tools/firmware/etherboot/patches/series changed/tools/firmware/etherboot/patches/series +--- orig/tools/firmware/etherboot/patches/series 2020-05-14 05:19:32.000000000 -0700 ++++ changed/tools/firmware/etherboot/patches/series 2020-05-20 12:13:35.533333130 -0700 +@@ -1 +1,2 @@ + boot_prompt_option.patch ++ipxe_gcc10_1.patch |