dev-util/plan9port: add prefix support, bug #567260
authorAnthony G. Basile <blueness@gentoo.org>
Sun, 27 Dec 2015 22:57:30 +0000 (17:57 -0500)
committerAnthony G. Basile <blueness@gentoo.org>
Sun, 27 Dec 2015 22:58:01 +0000 (17:58 -0500)
Thanks Jeremi Piotrowski <jeremi.piotrowski@gmail.com>

Package-Manager: portage-2.2.24

dev-util/plan9port/files/plan9port-freebsd-10.patch [new file with mode: 0644]
dev-util/plan9port/plan9port-20140306-r2.ebuild [new file with mode: 0644]

diff --git a/dev-util/plan9port/files/plan9port-freebsd-10.patch b/dev-util/plan9port/files/plan9port-freebsd-10.patch
new file mode 100644 (file)
index 0000000..cc46dc6
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/bin/9l   2015-12-09 19:12:50.000000000 +0000\r
++++ b/bin/9l   2015-12-09 19:13:00.000000000 +0000\r
+@@ -19,7 +19,7 @@ case "$tag" in\r
+       5.2.*)\r
+               extralibs="$extralibs -lkse"\r
+               ;;\r
+-      [5-9].*)\r
++      [5-9].*|10.*)\r
+               extralibs="$extralibs -lpthread"\r
+               ;;\r
+       esac\r
diff --git a/dev-util/plan9port/plan9port-20140306-r2.ebuild b/dev-util/plan9port/plan9port-20140306-r2.ebuild
new file mode 100644 (file)
index 0000000..05fdf5f
--- /dev/null
@@ -0,0 +1,118 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils multiprocessing toolchain-funcs
+
+DESCRIPTION="Port of many Plan 9 programs and libraries"
+HOMEPAGE="http://swtch.com/plan9port/"
+SRC_URI="https://${PN}.googlecode.com/files/${P}.tgz"
+
+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}/${PN}"
+
+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."
+}