diff options
author | Michael Mair-Keimberger <mmk@levelnine.at> | 2024-03-28 19:17:59 +0100 |
---|---|---|
committer | Arthur Zamarin <arthurzam@gentoo.org> | 2024-03-29 18:10:02 +0300 |
commit | a1b595c924bb7320402e78d35a3132c50b88df79 (patch) | |
tree | f7271f413bc38496457e2f9ecd4e82f2e87cedc4 /sys-boot | |
parent | dev-python/nose: Remove last-rited pkg (diff) | |
download | gentoo-a1b595c924bb7320402e78d35a3132c50b88df79.tar.gz gentoo-a1b595c924bb7320402e78d35a3132c50b88df79.tar.bz2 gentoo-a1b595c924bb7320402e78d35a3132c50b88df79.zip |
sys-boot/colo: EAPI8 bump, minor improvements
Signed-off-by: Michael Mair-Keimberger <mmk@levelnine.at>
Closes: https://github.com/gentoo/gentoo/pull/35970
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
Diffstat (limited to 'sys-boot')
-rw-r--r-- | sys-boot/colo/colo-1.22-r1.ebuild | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sys-boot/colo/colo-1.22-r1.ebuild b/sys-boot/colo/colo-1.22-r1.ebuild new file mode 100644 index 000000000000..3bd8c4f9c121 --- /dev/null +++ b/sys-boot/colo/colo-1.22-r1.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="CObalt LOader - Modern bootloader for Cobalt MIPS machines" +HOMEPAGE="https://www.colonel-panic.org/cobalt-mips/" +SRC_URI="https://www.colonel-panic.org/cobalt-mips/colo/colo-${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~mips" + +RESTRICT="strip" + +src_prepare() { + eapply "${FILESDIR}"/colo-stage2_src_heap-fix.patch + sed -E -i -e "s/CFLAGS_COLO=/CFLAGS_COLO:=/g" -e "/[A-Z]+= /d" Rules.mak || die # bug 725846 + default +} + +src_compile() { + echo -e "" + einfo ">>> Building the CoLo Bootloader ..." + + # Remove -Werror from CFLAGS + # gcc-4.3.x is more strict; We'll go back and fix later + cd "${S}" || die + local x + for x in $(grep -rl "Werror" "${S}"/*); do + sed -i -e 's/\-Werror//g' "${x}" || die + done + + # Keep elf2rfx from automatically building via the Makefile + sed -i -e 's/tools\/elf2rfx //' "${S}"/Makefile || die + + # Build it first with BUILD_CC in case of cross-compiles + cd "${S}"/tools/elf2rfx || die + make CC="$(tc-getBUILD_CC)" || die + + # Build the rest + cd "${S}" || die + make clean || die # emake breaks the build + make CC="$(tc-getCC)" OBJCOPY="$(tc-getOBJCOPY)" \ + STRIP="$(tc-getSTRIP)" || die + + # Now rebuild elf2rfx again with CC so it can be installed + cd "${S}"/tools/elf2rfx || die + make clean || die + make CC="$(tc-getCC)" || die +} + +src_install() { + # bins + dodir /usr/lib/colo + cp binaries/colo-chain.elf "${D}"/usr/lib/colo || die + cp binaries/colo-rom-image.bin "${D}"/usr/lib/colo || die + + # docs + dodoc CHANGES INSTALL README README.{restore,shell,netcon} tools/README.tools TODO + + # all tools except lcdtools (see below) + local tool + for tool in flash-tool colo-perm copy-rom elf2rfx; do + + einfo "Installing ${tool} binary to ${D}/usr/sbin" + dosbin tools/${tool}/${tool} + if [[ -f tools/${tool}/${tool}.8 ]]; then + einfo "Installing ${tool} manpage to ${D}/usr/share/man" + doman tools/flash-tool/flash-tool.8 + fi + + done + + # lcdtools + for tool in paneld putlcd e2fsck-lcd; do + einfo "Installing ${tool} binary and manpage to ${D}/usr/sbin" + dosbin tools/lcdtools/${tool}/${tool} + doman tools/lcdtools/${tool}/${tool}.8 + done + dolib.a tools/lcdtools/liblcd/liblcd.a + + # bootscripts + dodir /usr/lib/colo/scripts + cp "${FILESDIR}"/*.colo "${D}"/usr/lib/colo/scripts || die +} + +pkg_postinst() { + echo -e "" + einfo "Install locations:" + einfo " Binaries:\t/usr/lib/${PN}" + einfo " Docs:\t/usr/share/doc/${PF}" + einfo " Tools:\t/usr/sbin/{flash-tool,colo-perm,copy-rom," + einfo " \tputlcd,paneld,e2fsck-lcd,elf2rfx}" + einfo " Scripts:\t/usr/lib/${PN}/scripts" + echo -e "" + einfo "Please read the docs to fully understand the behavior of this bootloader, and" + einfo "edit the boot scripts to suit your needs." + echo -e "" + ewarn "Users installing ${PN} for the first time need to be aware that newer" + ewarn "versions of ${PN} disable the serial port by default. If the serial port" + ewarn "is needed, select it from the boot menu. Users using the example boot" + ewarn "scripts provided will have the serial port automatically enabled." + echo -e "" + ewarn "Note: It is HIGHLY recommended that you use the chain" + ewarn "bootloader (colo-chain.elf) first before attempting to" + ewarn "write the bootloader to the flash chip to verify that" + ewarn "it will work for you. It is also recommended that" + ewarn "you read the documentation in /usr/share/doc/${PF}" + ewarn "as it explains how to properly use this package." + echo -e "" + eerror "Warning: Make sure that IF you plan on flashing the" + eerror "bootloader into the flash chip that you are using a" + eerror "modern 2.4 Linux kernel (i.e., >2.4.18), otherwise" + eerror "you run a risk of destroying the contents of the" + eerror "flash chip and rendering the machine unusable." + echo -e "" + echo -e "" +} |