You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.5 KiB
121 lines
3.5 KiB
# Copyright 1999-2017 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI="5"
|
|
|
|
inherit eutils multiprocessing toolchain-funcs
|
|
|
|
MY_HASH="e78ed7a67bbaa37dc57dfb37219f505c48755e14"
|
|
MY_P="${PN}-${MY_HASH}"
|
|
|
|
DESCRIPTION="Port of many Plan 9 programs and libraries"
|
|
HOMEPAGE="http://swtch.com/plan9port/"
|
|
SRC_URI="https://github.com/9fans/${PN}/archive/${MY_HASH}.tar.gz -> ${MY_P}.tar.gz"
|
|
|
|
LICENSE="9base BSD-4 MIT LGPL-2.1 BigelowHolmes"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~x86"
|
|
IUSE="X aqua truetype"
|
|
REQUIRED_USE="?? ( X aqua )"
|
|
|
|
DEPEND="X? ( x11-apps/xauth )
|
|
truetype? ( media-libs/freetype
|
|
media-libs/fontconfig )"
|
|
RDEPEND="${DEPEND}"
|
|
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
PLAN9=/usr/lib/plan9
|
|
EPLAN9="${EPREFIX}"${PLAN9}
|
|
QA_MULTILIB_PATHS="${PLAN9}/.*/.*"
|
|
|
|
src_prepare() {
|
|
epatch "${FILESDIR}/${PN}-"{noexecstack,cflags,builderr}".patch"
|
|
case ${CHOST} in
|
|
*freebsd10.*) # patch 9l to use -pthread also on FreeBSD-10
|
|
epatch "${FILESDIR}/${PN}-freebsd-10.patch" ;;
|
|
*apple*)
|
|
sed -i 's/--noexecstack/-noexecstack/' src/mkhdr ||
|
|
die "Failed to sed AFLAGS" ;;
|
|
esac
|
|
|
|
# don't hardcode /bin and /usr/bin in PATH
|
|
sed -i '/PATH/s,/bin:/usr/bin:,,' INSTALL || die "sed on INSTALL failed"
|
|
|
|
# don't hardcode /usr/{,local/}include and prefix /usr/include/*
|
|
for f in src/cmd/fontsrv/freetyperules.sh INSTALL \
|
|
$(find -name makefile); do
|
|
sed -r -i -e 's,-I/usr(|/local)/include ,,g' \
|
|
-e "s,-I/usr(|/local)/include,-I${EPREFIX}/usr\1/include,g" ${f} \
|
|
|| die "sed on ${f} failed"
|
|
done
|
|
|
|
# Fix paths, done in place of ./INSTALL -c
|
|
einfo "Fixing hard-coded /usr/local/plan9 paths"
|
|
grep --null -l -r '/usr/local/plan9' |
|
|
xargs --null sed -i "s,/usr/local/plan9,${EPLAN9},g"
|
|
}
|
|
|
|
src_configure() {
|
|
local myconf=()
|
|
if use X; then
|
|
myconf+=("X11=${EPREFIX}/usr" WSYSTYPE=x11)
|
|
elif use aqua; then
|
|
local wsystype=$(echo ${MACOSX_DEPLOYMENT_TARGET} |
|
|
awk '{if ($1 > 10.5) print "osx-cocoa"; else print "osx"}')
|
|
myconf+=("WSYSTYPE=${wsystype}")
|
|
else
|
|
myconf+=(WSYSTYPE=nowsys)
|
|
fi
|
|
|
|
if use truetype; then
|
|
myconf+=(FONTSRV=fontsrv)
|
|
else
|
|
myconf+=(FONTSRV=)
|
|
fi
|
|
printf '%s\n' "${myconf[@]}" >> LOCAL.config
|
|
}
|
|
|
|
src_compile() {
|
|
export NPROC=$(makeopts_jobs)
|
|
export CC9=$(tc-getCC)
|
|
|
|
# The INSTALL script builds mk then [re]builds everything using that
|
|
einfo "Compiling Plan 9 from User Space can take a very long time"
|
|
einfo "depending on the speed of your computer. Please be patient!"
|
|
./INSTALL -b || die "Please report bugs to bugs.gentoo.org, NOT Plan9Port."
|
|
}
|
|
|
|
src_install() {
|
|
dodir "${PLAN9}"
|
|
|
|
# P9P's man does not handle compression
|
|
docompress -x $PLAN9/man
|
|
|
|
# do* plays with the executable bit, and we should not modify them
|
|
cp -a * "${ED}/${PLAN9}"
|
|
|
|
# build the environment variables and install them in env.d
|
|
cat > "${T}/60plan9" <<-EOF
|
|
PLAN9="${EPLAN9}"
|
|
PATH="${EPLAN9}/bin"
|
|
ROOTPATH="${EPLAN9}/bin"
|
|
MANPATH="${EPLAN9}/man"
|
|
EOF
|
|
doenvd "${T}/60plan9"
|
|
}
|
|
|
|
pkg_postinst() {
|
|
elog "Plan 9 from User Space has been successfully installed into"
|
|
elog "${PLAN9}. Your PLAN9 and PATH environment variables have"
|
|
elog "also been appropriately set, please use env-update and"
|
|
elog "source /etc/profile to bring that into immediate effect."
|
|
elog
|
|
elog "Please note that ${PLAN9}/bin has been appended to the"
|
|
elog "*end* or your PATH to prevent conflicts. To use the Plan9"
|
|
elog "versions of common UNIX tools, use the absolute path:"
|
|
elog "${PLAN9}/bin or the 9 command (eg: 9 troff)"
|
|
elog
|
|
elog "Please report any bugs to bugs.gentoo.org, NOT Plan9Port."
|
|
}
|