sys-boot/arcload: Bump to EAPI7

Signed-off-by: Joshua Kinard <kumba@gentoo.org>
Closes: https://bugs.gentoo.org/742119
Package-Manager: Portage-3.0.8, Repoman-3.0.1
This commit is contained in:
Joshua Kinard
2020-10-15 20:11:33 -04:00
parent f296fe71bc
commit e9d73dceae
2 changed files with 19 additions and 120 deletions

View File

@@ -1,83 +0,0 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=4
inherit eutils toolchain-funcs versionator
# Hack until upstream renames from 0.5 to 0.50
MY_PV="${PV/50/5}"
DESCRIPTION="ARCLoad - SGI Multi-bootloader. Able to bootload many different SGI Systems"
HOMEPAGE="https://www.linux-mips.org/wiki/ARCLoad"
SRC_URI="https://www.linux-mips.org/pub/linux/mips/people/skylark/arcload-${MY_PV}.tar.bz2"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="-* ~mips"
IUSE=""
DEPEND="sys-boot/dvhtool"
RDEPEND=""
RESTRICT="strip"
S="${WORKDIR}/${PN}-${MY_PV}"
src_prepare() {
# For gcc-4.x, quiet down some of the warnings
$(version_is_at_least "4.0" "$(gcc-version)") && \
epatch "${FILESDIR}"/${P}-shut-gcc4x-up.patch
# Redefine the targets in the primary Makefile to give us
# finer control over building the tools. This is for properly
# cross-compiling arcload
epatch "${FILESDIR}"/${P}-makefile-targets.patch
}
src_compile() {
# Build the wreckoff tool first. It converts a 32bit MIPS ELF
# into a relocatable ECOFF image. We call for BUILD_CC
# on the offchance that we're cross-compiling.
echo -e ""
einfo ">>> Building the 'wreckoff' utility with $(tc-getBUILD_CC) ..."
emake CC=$(tc-getBUILD_CC) tools_clean tools
# 32bit copy (sashARCS for IP22/IP32)
echo -e ""
einfo ">>> Building 32-bit version (sashARCS) for IP22/IP32 ..."
cd "${S}"
emake MODE=M32 bootloader_clean
emake CC=$(tc-getCC) LD=$(tc-getLD) MODE=M32 bootloader
cp "${S}"/arcload.ecoff "${WORKDIR}"/sashARCS
# 64bit copy (sash64 for IP27/IP28/IP30)
echo -e ""
einfo ">>> Building 64-bit version (sash64) for IP27/IP28/IP30 ..."
emake MODE=M64 bootloader_clean
emake CC=$(tc-getCC) LD=$(tc-getLD) MODE=M64 bootloader
cp "${S}"/arcload "${WORKDIR}"/sash64
}
src_install() {
dodir /usr/lib/arcload
cp "${WORKDIR}"/sashARCS "${D}"/usr/lib/arcload
cp "${WORKDIR}"/sash64 "${D}"/usr/lib/arcload
cp "${S}"/arc.cf-bootcd "${D}"/usr/lib/arcload/arc-bootcd.cf
cp "${S}"/arc.cf-octane "${D}"/usr/lib/arcload/arc-octane.cf
}
pkg_postinst() {
echo -e ""
einfo "ARCLoad binaries copied to: /usr/lib/arcload"
echo -e ""
einfo "Use of ARCLoad is relatively easy:"
einfo "\t1) Determine which version you need"
einfo "\t\tA) sashARCS for IP22/IP32"
einfo "\t\tB) sash64 for IP27/IP28/IP30"
einfo "\t2) Copy that to the volume header using 'dvhtool'"
einfo "\t3) Edit /usr/lib/arcload/arc-*.cf to fit your specific system"
einfo "\t (See ${HOMEPAGE} for"
einfo "\t an explanation of the format of the config file)"
einfo "\t4) Copy the config file to the volume header with 'dvhtool' as 'arc.cf'"
einfo "\t5) Copy any kernels to the volume header that you want to be bootable"
einfo "\t6) Reboot, and enjoy!"
echo -e ""
}

View File

@@ -1,9 +1,9 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=4
EAPI=7
inherit eutils toolchain-funcs versionator
inherit toolchain-funcs
# Hack until upstream renames from 0.5 to 0.50
MY_PV="${PV/50/5}"
@@ -13,9 +13,11 @@ DESCRIPTION="ARCLoad - SGI Multi-bootloader. Able to bootload many different SG
HOMEPAGE="https://www.linux-mips.org/wiki/ARCLoad"
SRC_URI="https://www.linux-mips.org/pub/linux/mips/people/skylark/${PN}-${MY_PV}.tar.bz2
mirror://gentoo/${P}-patches-v${PATCHREV}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="-* ~mips"
IUSE="abi_mips_o32"
DEPEND="sys-boot/dvhtool
abi_mips_o32? ( sys-devel/kgcc64 )"
@@ -25,41 +27,21 @@ RESTRICT="strip"
S="${WORKDIR}/${PN}-${MY_PV}"
PATCHDIR="${WORKDIR}/${P}-patches"
PATCHES=(
"${PATCHDIR}/${P}-shut-gcc4x-up.patch" # For gcc-4.x, quiet down some of the warnings
"${PATCHDIR}/${P}-makefile-targets.patch" # Tweak Makefile to allow for cross-compiling
# "${PATCHDIR}/${P}_deb-elf64-on-m32.patch" # Load ELF64 images on 32-bit systems - XXX: #543978
"${PATCHDIR}/${P}_deb-cmdline-config.patch" # Pass arcload label name on PROM cmdline
"${PATCHDIR}/${P}_deb-config-in-etc.patch" # Look for arc.cf in /etc and fallback to /
"${PATCHDIR}/${P}-local-elf_h.patch" # Use std sysheaders bits to make compiler happy
"${PATCHDIR}/${P}-wreckoff-abiflags-fix.patch" # Patch wreckoff.c to handle the .MIPS.abiflags section
"${PATCHDIR}/${P}-disable-ssp.patch" # Disable SSP for ELF->ECOFF, as wreckoff can't handle
"${PATCHDIR}/${P}-silence-warnings.patch" # Silence various warnings due to the code being old
)
src_prepare() {
# For gcc-4.x, quiet down some of the warnings
epatch "${PATCHDIR}"/${P}-shut-gcc4x-up.patch
# Redefine the targets in the primary Makefile to give us
# finer control over building the tools. This is for properly
# cross-compiling arcload
epatch "${PATCHDIR}"/${P}-makefile-targets.patch
# Patches borrowed from Debian:
# - Load ELF64 images on 32-bit systems - XXX: #543978
# - Pass an arcload label name directly on the PROM cmdline.
# - Look for arc.cf in /etc and fallback to /.
# epatch "${PATCHDIR}"/${P}_deb-elf64-on-m32.patch
epatch "${PATCHDIR}"/${P}_deb-cmdline-config.patch
epatch "${PATCHDIR}"/${P}_deb-config-in-etc.patch
# Building arcload on different MIPS ABIs can be difficult,
# so we include specific bits from standard system headers
# to make the compiler happy. These should rarely, if ever,
# change...
epatch "${PATCHDIR}"/${P}-local-elf_h.patch
# Patch wreckoff.c to handle the new .MIPS.abiflags section.
epatch "${PATCHDIR}"/${P}-wreckoff-abiflags-fix.patch
# In order to convert from ELF to ECOFF, we need to disable
# SSP, as that adds additional program headers that I don't
# know how to handle in wreckoff.c.
epatch "${PATCHDIR}"/${P}-disable-ssp.patch
# The code is old and has a lot of issues. But it's just a
# simple bootloader, so silence the various warnings until
# it can be re-written.
epatch "${PATCHDIR}"/${P}-silence-warnings.patch
default
eapply_user
}
src_compile() {