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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multiprocessing toolchain-funcs readme.gentoo-r1
MY_HASH="88a87fadae6629932d9c160f53ad5d79775f8f94"
MY_P="${PN}-${MY_HASH}"
DESCRIPTION="Port of many Plan 9 programs and libraries"
HOMEPAGE="https://9fans.github.io/plan9port/
https://github.com/9fans/plan9port"
SRC_URI="https://github.com/9fans/${PN}/archive/${MY_HASH}.tar.gz -> ${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="
MIT RSA Apache-2.0 public-domain BitstreamVera BZIP2
!freefonts? ( BigelowHolmes )
"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="X aqua freefonts 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
if use freefonts; then
pushd font || die
rm -r big5 fixed jis luc{,m,sans} misc naga10 pelm shinonome || die
popd || die
rm -r postscript/font/luxi || die
fi
case "${CHOST}" in
*apple*)
sed -i 's/--noexecstack/-noexecstack/' src/mkhdr ||
die "Failed to sed AFLAGS" ;;
*)
rm -rf mac || die
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
rm -rf src || die
# 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
}
|