View Raw Ebuild
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MULTILIB_COMPAT=(abi_x86_32)
inherit git-r3 pax-utils multilib-build
DESCRIPTION="OS Inferno Fourth Edition"
HOMEPAGE="https://bitbucket.org/inferno-os/inferno-os"
LICENSE="GPL-2"
SLOT=0
IUSE="X doc source cjson ipv6"
DEPEND="X? (
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
)"
EGIT_REPO_URI="https://bitbucket.org/inferno-os/inferno-os"
EGIT_COMMIT="48f2755"
CJSON_EGIT_REPO_URI="https://github.com/powerman/inferno-cjson"
CJSON_EGIT_COMMIT=0.3.3
CJSON_EGIT_CHECKOUT_DIR="$WORKDIR"/cjson
PATCHES=(
"$FILESDIR"/issue-122-csendalt.patch
"$FILESDIR"/issue-147-wait.patch
"$FILESDIR"/issue-271-microsec.patch
"$FILESDIR"/issue-274-execatidle.patch
"$FILESDIR"/issue-287-man-index.patch
"$FILESDIR"/issue-360-common.patch
)
src_unpack() {
git-r3_src_unpack
if use cjson; then
git-r3_fetch "$CJSON_EGIT_REPO_URI" "$CJSON_EGIT_COMMIT"
git-r3_checkout "$CJSON_EGIT_REPO_URI" "$CJSON_EGIT_CHECKOUT_DIR"
cp -a "$CJSON_EGIT_CHECKOUT_DIR"/* "$S" || die
fi
default
}
src_prepare() {
default
if ! use ipv6; then
sed -i 's/ipif6/ipif/g' emu/Linux/emu emu/Linux/emu-g || die
fi
if use cjson; then
./patch.cjson || die
fi
}
src_compile() {
export INFERNO_ROOT="$S"
sed -i "s:^ROOT=.*:ROOT=${INFERNO_ROOT}:" mkconfig || die
sed -i 's/^SYSHOST=.*/SYSHOST=Linux/' mkconfig || die
sed -i 's/^OBJTYPE=.*/OBJTYPE=386/' mkconfig || die
export PATH="${INFERNO_ROOT}/Linux/386/bin:${PATH}"
sh makemk.sh || die
mk nuke || die
mk mkdirs || die
if use X; then
mk install || die
fi
mk CONF=emu-g install || die
pax-mark pems Linux/386/bin/emu*
# needed to allow rebuilding already installed inferno (with "use source")
export INFERNO_ROOT="/usr/inferno"
sed -i "s:^ROOT=.*:ROOT=${INFERNO_ROOT}:" mkconfig || die
}
src_install() {
insinto /usr/inferno
doins -r *
if use source; then
doins -r .git*
fi
# Fix permissions
while IFS="" read -d $'\0' -r f; do
fperms +x /usr/inferno/"$f"
done < <(find Linux/386/bin/ dis/ -type f -not -name '*.dis' -print0)
fperms 0600 /usr/inferno/keydb/keys
# Cleanup extra files
pushd "$D"/usr/inferno || die
if ! use X; then
cp Linux/386/bin/emu{-g,} || die
fi
if ! use doc; then
rm -rf doc || die
fi
if ! use source; then
rm -rf {DragonFly,FreeBSD,Hp,Inferno,Irix,MacOSX,NetBSD,Nt,OpenBSD,Plan9,Solaris} || die
rm -rf {asm,emu,include,lib?*,limbo,mkfiles,os,tools,utils} || die
rm -rf {makemk.sh,mkconfig,mkfile} || die
fi
popd || die
# Custom files
insinto /usr/inferno/lib/sh
newins "$FILESDIR"/profile.env profile
# Setup the path environment
doenvd "$FILESDIR"/99inferno
}