diff options
Diffstat (limited to 'dev-util/plan9port/plan9port-20140306-r3.ebuild')
-rw-r--r-- | dev-util/plan9port/plan9port-20140306-r3.ebuild | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/dev-util/plan9port/plan9port-20140306-r3.ebuild b/dev-util/plan9port/plan9port-20140306-r3.ebuild new file mode 100644 index 000000000000..50a2ce47d7cc --- /dev/null +++ b/dev-util/plan9port/plan9port-20140306-r3.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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}/30plan9" <<-EOF + PLAN9="${EPLAN9}" + PATH="${EPLAN9}/bin" + ROOTPATH="${EPLAN9}/bin" + MANPATH="${EPLAN9}/man" + EOF + doenvd "${T}/30plan9" +} + +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." +} |