diff options
Diffstat (limited to 'app-emulation/grub-xen-host')
-rw-r--r-- | app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild (renamed from app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild) | 27 | ||||
-rw-r--r-- | app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild | 98 | ||||
-rw-r--r-- | app-emulation/grub-xen-host/metadata.xml | 5 |
3 files changed, 125 insertions, 5 deletions
diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild index 9150a04e8c80..2aaa8eb6a896 100644 --- a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild +++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild @@ -1,18 +1,19 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=7 DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol" -HOMEPAGE="https://blog.xenproject.org/2015/01/07/using-grub-2-as-a-bootloader-for-xen-pv-guests/" +HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2" SRC_URI="" LICENSE="BSD-2" SLOT="0" KEYWORDS="amd64" -IUSE="" +IUSE="pvh" DEPEND="sys-boot/grub:2=[grub_platforms_xen] + pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] ) app-emulation/xen-tools:=" RDEPEND="${DEPEND}" @@ -71,9 +72,27 @@ src_compile() { echo "${args[@]}" "${args[@]}" || die "failed to grub-mkimage" + + if use pvh; then + local args=( + "${grub_mkimage}" + -O i386-xen_pvh + -c grub-bootstrap.cfg + -m memdisk.tar + -o grub-i386-xen_pvh.bin + /usr/lib/grub/i386-xen_pvh/*.mod + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + fi + } src_install() { exeinto /usr/libexec/xen/bin doexe grub-x86_64-xen.bin + if use pvh; then + doexe grub-i386-xen_pvh.bin + fi } diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild new file mode 100644 index 000000000000..502d03bee2b3 --- /dev/null +++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol" +HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="pvh" + +DEPEND=" + sys-boot/grub:2=[grub_platforms_xen] + pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] ) +" +RDEPEND="${DEPEND}" + +S="${WORKDIR}" + +RESTRICT="binchecks strip test" + +src_configure() { + : +} + +src_compile() { + cat > "${S}/grub-bootstrap.cfg" <<- EOF || die + normal (memdisk)/grub.cfg + EOF + + cat > "${S}/grub.cfg" <<- EOF || die + if search -s -f /boot/xen/pvboot-x86_64.elf ; then + echo "Chainloading (${root})/boot/xen/pvboot-x86_64.elf" + multiboot "/boot/xen/pvboot-x86_64.elf" + boot + fi + + if search -s -f /xen/pvboot-x86_64.elf ; then + echo "Chainloading (${root})/xen/pvboot-x86_64.elf" + multiboot "/xen/pvboot-x86_64.elf" + boot + fi + + if search -s -f /boot/grub/grub.cfg ; then + echo "Reading (${root})/boot/grub/grub.cfg" + configfile /boot/grub/grub.cfg + fi + + if search -s -f /grub/grub.cfg ; then + echo "Reading (${root})/grub/grub.cfg" + configfile /grub/grub.cfg + fi + EOF + + tar cf memdisk.tar grub.cfg || die "failed to tar" + + local grub_mkimage=grub-mkimage + if type grub2-mkimage &> /dev/null; then + grub_mkimage=grub2-mkimage + fi + + local args=( + "${grub_mkimage}" + -O x86_64-xen + -c grub-bootstrap.cfg + -m memdisk.tar + -p "${EPREFIX}"/usr/lib/grub/x86_64-xen/*.mod + -o grub-x86_64-xen.bin + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + + if use pvh; then + local args=( + "${grub_mkimage}" + -O i386-xen_pvh + -c grub-bootstrap.cfg + -m memdisk.tar + -p "${EPREFIX}"/usr/lib/grub/i386-xen_pvh/*.mod + -o grub-i386-xen_pvh.bin + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + fi + +} + +src_install() { + exeinto /usr/libexec/xen/bin + doexe grub-x86_64-xen.bin + if use pvh; then + doexe grub-i386-xen_pvh.bin + fi +} diff --git a/app-emulation/grub-xen-host/metadata.xml b/app-emulation/grub-xen-host/metadata.xml index 84e79366a42d..485b9cd416b6 100644 --- a/app-emulation/grub-xen-host/metadata.xml +++ b/app-emulation/grub-xen-host/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>xen@gentoo.org</email> @@ -9,4 +9,7 @@ a guest installed PV grub (grub legacy or grub 2) or handle a guest supplied grub 2 config file. </longdescription> + <use> + <flag name="pvh">Build an additional grub bin for pvh.</flag> + </use> </pkgmetadata> |