summaryrefslogtreecommitdiff
path: root/sys-boot
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-06-22 11:40:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-06-22 11:40:06 +0100
commit7a86906b67693cc65671d3e1476835d3a7e13092 (patch)
tree9de1b9e2cf77833183d4e5ffab2e94d0403ef725 /sys-boot
parentd56d144655e3785864da43c9acb6c228ef9360ae (diff)
gentoo resync : 22.06.2019
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/mbr-gpt/mbr-gpt-0.0.1-r1.ebuild61
1 files changed, 61 insertions, 0 deletions
diff --git a/sys-boot/mbr-gpt/mbr-gpt-0.0.1-r1.ebuild b/sys-boot/mbr-gpt/mbr-gpt-0.0.1-r1.ebuild
new file mode 100644
index 000000000000..915fc0e5dd5d
--- /dev/null
+++ b/sys-boot/mbr-gpt/mbr-gpt-0.0.1-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="An MBR that can handle BIOS-based boot on GPT"
+MY_P="${PN}_${PV}"
+HOMEPAGE="https://web.archive.org/web/20080704173538/http://aybabtu.com/mbr-gpt/"
+SRC_URI="https://dev.gentoo.org/~robbat2/distfiles/${MY_P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+# This should probably NEVER go to stable. It's crazy advanced dangerous magic.
+# It's also pure ASM, so not suitable for elsewhere anyway.
+# Please don't remove it, robbat2 has a box that depends on it for # booting!
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+# It only depends on binutils/gcc/make, and doesn't link against libc even.
+DEPEND=""
+RDEPEND=""
+
+# It's a mostly an MBR block and it does use the executable stack.
+QA_WX_LOAD="usr/lib/$PN/boot.elf"
+QA_PRESTRIPPED="${QA_WX_LOAD}"
+QA_FLAGS_IGNORED="${QA_WX_LOAD}"
+
+# Don't strip it either; this binary reboots your host!
+RESTRICT="binchecks strip"
+
+src_prepare() {
+ default
+ # Messy upstream
+ emake clean
+
+ # Need to build it 32-bit for the MBR
+ # Btw, no CFLAGS are respected, it's ASM!
+ use amd64 && sed -i -e 's/-Wall/-Wall -m32/g' "${S}"/Makefile
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ # get_libdir is not correct here. We want this to go into a 32-bit library
+ # location.
+ insinto /usr/lib/$PN
+ doins mbr
+ exeinto /usr/lib/$PN
+ exeopts -m 700
+ doexe boot.elf
+ dodoc AUTHORS
+}
+
+pkg_postinst() {
+ einfo "See the instructions on the homepage, and make sure you know what"
+ einfo "you are doing before touching this. The mbr file does into your"
+ einfo "MBR, or alternatively you can do a creative reboot utilizing the"
+ einfo "boot.elf binary."
+}