1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multiprocessing toolchain-funcs git-r3 readme.gentoo-r1
DESCRIPTION="Port of many Plan 9 programs and libraries"
HOMEPAGE="https://9fans.github.io/plan9port/
https://github.com/9fans/plan9port"
EGIT_REPO_URI="https://github.com/9fans/${PN}.git"
LICENSE="9base BSD-4 MIT LGPL-2.1 BigelowHolmes"
SLOT="0"
IUSE="X aqua truetype"
REQUIRED_USE="?? ( X aqua )"
DEPEND="
X? ( x11-apps/xauth )
truetype? (
media-libs/freetype
media-libs/fontconfig
)
"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-noexecstack.patch"
"${FILESDIR}/${PN}-cflags.patch"
"${FILESDIR}/${PN}-builderr.patch"
)
PLAN9="/opt/plan9"
EPLAN9="${EPREFIX}${PLAN9}"
QA_MULTILIB_PATHS="${PLAN9}/.*/.*"
DOC_CONTENTS="Plan 9 from User Space has been successfully installed into
${PLAN9}. Your PLAN9 and PATH environment variables have
also been appropriately set, please use env-update and
source /etc/profile to bring that into immediate effect.
Please note that ${PLAN9}/bin has been appended to the
*end* or your PATH to prevent conflicts. To use the Plan9
versions of common UNIX tools, use the absolute path:
${PLAN9}/bin or the 9 command (eg: 9 troff)
Please report any bugs to bugs.gentoo.org, NOT Plan9Port."
DISABLE_AUTOFORMATTING="yes"
src_prepare() {
default
case "${CHOST}" in
*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/*
sed -Ei -e 's,-I/usr(|/local)/include ,,g' \
-e "s,-I/usr(|/local)/include,-I${EPREFIX}/usr\1/include,g" \
src/cmd/fontsrv/freetyperules.sh INSTALL $(find -name makefile) ||
die "sed failed"
# Fix paths, done in place of ./INSTALL -c
einfo "Fixing hard-coded /usr/local/plan9 paths"
sed -i "s,/usr/local/plan9,${EPLAN9},g" $(grep -lr /usr/local/plan9) ||
die "sed failed"
}
src_configure() {
local -a myconf=(
CC9="$(tc-getCC)"
CC9FLAGS="'${CFLAGS} ${LDFLAGS}'"
)
if use X; then
myconf+=( WSYSTYPE=x11 )
elif use aqua; then
local wsystype="$(awk '{if ($1 > 10.5) print "osx-cocoa"; else print "osx"}' \
<<< "${MACOSX_DEPLOYMENT_TARGET}")"
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 ||
die "cannot create configuration"
}
src_compile() {
# 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!"
NPROC="$(makeopts_jobs)" ./INSTALL -b ||
die "Please report bugs to bugs.gentoo.org, NOT Plan9Port."
}
src_install() {
readme.gentoo_create_doc
# do* plays with the executable bit, and we should not modify them
dodir "${PLAN9}"
cp -a * "${ED}${PLAN9}" || die "cp failed"
# build the environment variables and install them in env.d
newenvd - 60plan9 <<-EOF
PLAN9="${EPLAN9}"
PATH="${EPLAN9}/bin"
ROOTPATH="${EPLAN9}/bin"
MANPATH="${EPLAN9}/man"
EOF
}
pkg_postinst() {
readme.gentoo_print_elog
}
|