summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Kinard <kumba@gentoo.org>2005-06-13 19:26:45 +0000
committerJoshua Kinard <kumba@gentoo.org>2005-06-13 19:26:45 +0000
commitd1864d02d5f9dc1ec063c3c328f65716e6e1ed55 (patch)
tree2b3323853b8fddb05bd552672ef20d3752a55e3f /sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild
parentalpha stable (diff)
downloadgentoo-2-d1864d02d5f9dc1ec063c3c328f65716e6e1ed55.tar.gz
gentoo-2-d1864d02d5f9dc1ec063c3c328f65716e6e1ed55.tar.bz2
gentoo-2-d1864d02d5f9dc1ec063c3c328f65716e6e1ed55.zip
Finally fix arcboot's compile-failures as well as remove onion's patch (features aren't needed).
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild')
-rw-r--r--sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild142
1 files changed, 142 insertions, 0 deletions
diff --git a/sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild b/sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild
new file mode 100644
index 000000000000..1ebae205b9a2
--- /dev/null
+++ b/sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/arcboot/arcboot-0.3.8.6-r1.ebuild,v 1.1 2005/06/13 19:26:45 kumba Exp $
+
+inherit eutils
+
+MY_P="${P/-/_}"
+ARCVER="1.1" # Version of the arcboot patch ball
+
+DESCRIPTION="ARCS Bootloader for SGI Machines (IP22, IP32)"
+HOMEPAGE="http://packages.qa.debian.org/a/arcboot.html"
+SRC_URI="http://http.us.debian.org/debian/pool/main/a/arcboot/${MY_P}.tar.gz
+ mirror://gentoo/arcboot-patches-${ARCVER}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~mips"
+IUSE="ip27 ip28 ip30 cobalt"
+
+DEPEND=""
+RDEPEND="sys-boot/dvhtool
+ sys-apps/debianutils"
+
+S=${WORKDIR}/${PN}
+
+pkg_setup() {
+ # arcboot is for SGI mips machines only, so exclude everyone but them
+ if use cobalt; then
+ eerror "Arcboot is a bootloader only for MIPS machines running"
+ eerror "ARCS firmware, such as SGI Machines. It is not intended"
+ eerror "for other kinds of MIPS machines."
+ die "Wrong MIPS Machine Type"
+ fi
+
+ # Machines which expect an ELF64 binary to boot can't use arcboot
+ if use ip27 || use ip28 || use ip30; then
+ eerror "Arcboot does not work on systems that can only boot pure 64bit"
+ eerror "ELF binaries. Arcboot needs some work to be able to compile as"
+ eerror "an ELF64 object. Patches are welcome!"
+ die "No ELF64 Support"
+ fi
+
+
+ # Set SGITYPE properly
+ case "$(uname -i)" in
+ "SGI IP32"|"SGI O2") SGITYPE="IP32" ;;
+ "SGI Indy"|"SGI Indigo2") SGITYPE="IP22" ;;
+ *)
+ eerror "Unknown SGI Machine type. It's possible arcboot is not usable for this machine"
+ eerror "type yet. Feel free to make it work and send patches!"
+ die "Unknown SGI Machine Type"
+ ;;
+ esac
+
+ # Lower case SGITYPE
+ SGITYPE_L="$(echo "${SGITYPE}" | tr [A-Z] [a-z])"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ # Set the version
+ echo "#define __ARCSBOOT_VERSION__ \"${PV}\"" > common/version.h
+
+ # Crazy patches. One is onion's patch, highly modified, from:
+ # http://www.tal.org/~milang/o2/
+ #
+ # Second is a clean up of bits in onion's patch to make it
+ # compile against our headers.
+ epatch ${WORKDIR}/patches/${P}-makefile.patch
+ epatch ${WORKDIR}/patches/${P}-segaddr.patch
+}
+
+src_compile() {
+ cd ${S}
+
+ echo -e ""
+ einfo ">>> Building for ${SGITYPE} ..."
+ echo -e ""
+
+ make SUBARCH="${SGITYPE}" || die
+}
+
+src_install() {
+ cd ${S}
+
+ # Arcboot
+ dodir /usr/lib/arcboot
+ cp ext2load/ext2load ${D}/usr/lib/arcboot/arcboot.${SGITYPE_L}
+
+ # Technically, we don't need tip[2|3]2 (attaches initrd to kernel), as
+ # MIPS kernels support embedding initrd's into kernels at build time,
+ # But maybe this will be useful one day. Until then, we leave it out.
+ dodir /usr/lib/tip22
+ cp tip22/t${SGITYPE_L} ${D}/usr/lib/tip22
+ cp tip22/tftpload.${SGITYPE}.o ${D}/usr/lib/tip22
+ cp tip22/ld.kernel.script.${SGITYPE} ${D}/usr/lib/tip22
+ cp tip22/ld.ramdisk.script.${SGITYPE} ${D}/usr/lib/tip22
+ cp tip22/ld.script ${D}/usr/lib/tip22
+ cp arclib/libarc.a ${D}/usr/lib/tip22
+
+ # Calling scripts for arcboot/tip22
+ # We also exclude these, since the logic in the debian script may not
+ # work correctly with a gentoo installation. All the information a
+ # user needs is provided in the example arcboot.conf, and in pkg_postinst().
+## dosbin scripts/arcboot
+ dosbin tip22/t${SGITYPE_L}
+
+ # Conf file
+ dodir /etc
+ cp etc/arcboot.conf ${D}/etc/arcboot.conf.example
+
+ # Man pages
+ # The arcboot manpage is more for the excluded arcboot script above, but
+ # also has info on setting the PROM option properly as well as arcboot.conf
+ # examples.
+ doman debian/arcboot.8
+ doman debian/t${SGITYPE_L}.8
+}
+
+pkg_postinst() {
+ echo -e ""
+ einfo "The arcboot image used to load the kernel from disk has been stored in"
+ einfo "/usr/lib/arcboot/arcboot.${SGITYPE}. To use it, you need to copy this into"
+ einfo "the volume header with dvhtool:"
+ einfo ""
+ einfo "dvhtool --unix-to-vh /usr/lib/arcboot/arcboot.${SGITYPE} arcboot"
+ echo -e ""
+ einfo "Next, you need to create an arcboot.conf file. An example arcboot.conf"
+ einfo "file has been placed in /etc."
+ echo -e ""
+ echo -e ""
+ ewarn "NOTE: If you put kernels in /boot for arcboot to load, and /boot is on a"
+ ewarn " separate partition, then arcboot.conf MUST go into /boot/etc, and a"
+ ewarn " symlink must be created to point /boot back to itself:"
+ ewarn ""
+ ewarn " cd /boot; ln -sf . boot"
+ echo -e ""
+ einfo "To use arcboot, from the PROM Monitor, simply type \"arcboot\" or \"boot -f arcboot\"."
+ echo -e ""
+ echo -e ""
+}