Gentoo Archives: gentoo-commits

From: "M. B." <tomboy64@××××.cn>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/user/tbc:master commit in: dev-lang/nqp/, dev-lang/rakudo/
Date: Wed, 25 May 2016 16:17:32
Message-Id: 1464192991.9510f103db692ccc77f5988bbdd4d0d0f33b0b87.tomboy64@gentoo
1 commit: 9510f103db692ccc77f5988bbdd4d0d0f33b0b87
2 Author: Matthew Brewer <tomboy64 <AT> sina <DOT> cn>
3 AuthorDate: Wed May 25 12:16:40 2016 +0000
4 Commit: M. B. <tomboy64 <AT> sina <DOT> cn>
5 CommitDate: Wed May 25 16:16:31 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/user/tbc.git/commit/?id=9510f103
7
8 new experimental perl6 ebuilds
9
10 dev-lang/nqp/nqp-2016.04-r4.ebuild | 114 +++++++++++++++++++++
11 ...rakudo-9999.ebuild => rakudo-2016.04-r3.ebuild} | 56 +++++-----
12 2 files changed, 143 insertions(+), 27 deletions(-)
13
14 diff --git a/dev-lang/nqp/nqp-2016.04-r4.ebuild b/dev-lang/nqp/nqp-2016.04-r4.ebuild
15 new file mode 100644
16 index 0000000..6d3e38e
17 --- /dev/null
18 +++ b/dev-lang/nqp/nqp-2016.04-r4.ebuild
19 @@ -0,0 +1,114 @@
20 +# Copyright 1999-2016 Gentoo Foundation
21 +# Distributed under the terms of the GNU General Public License v2
22 +# $Id$
23 +
24 +EAPI=5
25 +
26 +inherit java-pkg-opt-2
27 +
28 +if [[ ${PV} == "9999" ]]; then
29 + EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
30 + inherit git-r3
31 + KEYWORDS=""
32 +else
33 + SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz"
34 + inherit vcs-snapshot
35 + KEYWORDS=""
36 +fi
37 +
38 +DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
39 +HOMEPAGE="http://rakudo.org/"
40 +
41 +LICENSE="Artistic-2"
42 +SLOT="0"
43 +IUSE="doc clang java +moar test"
44 +REQUIRED_USE="|| ( java moar )"
45 +
46 +CDEPEND="java? (
47 + dev-java/asm:4
48 + dev-java/jline:0
49 + dev-java/jna:4
50 + )
51 + moar? ( ~dev-lang/moarvm-${PV}[clang=] )
52 + dev-libs/libffi"
53 +RDEPEND="${CDEPEND}
54 + java? ( >=virtual/jre-1.7:* )"
55 +DEPEND="${CDEPEND}
56 + clang? ( sys-devel/clang )
57 + java? ( >=virtual/jdk-1.7:* )
58 + dev-lang/perl"
59 +
60 +java_prepare() {
61 + # Don't clean stage0 jars.
62 + java-pkg_clean 3rdparty/
63 +
64 + # Don't use jars we just deleted.
65 + sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
66 + src/vm/jvm/runners/nqp-j || die
67 +}
68 +
69 +src_configure() {
70 + local backends
71 + use java && backends+="jvm,"
72 + use moar && backends+="moar"
73 +
74 + local myconfargs=(
75 + "--backend=${backends}"
76 + "--prefix=/usr" )
77 +
78 + perl Configure.pl "${myconfargs[@]}" || die
79 +
80 + if use java; then
81 + # Export this for the script we sed'd above.
82 + export THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4)
83 + fi
84 +}
85 +
86 +src_compile() {
87 + if use java; then
88 + emake -j1 \
89 + THIRDPARTY_JARS="${THIRDPARTY_JARS}" \
90 + JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
91 + else
92 + emake -j1
93 + fi
94 +}
95 +
96 +src_test() {
97 + emake -j1 test
98 +}
99 +
100 +src_install() {
101 + if use java; then
102 + # Set JAVA_PKG_JARDEST early.
103 + java-pkg_init_paths_
104 +
105 + # Upstream sets the classpath to this location. Perhaps it's
106 + # used to locate the additional libraries?
107 + java-pkg_addcp "${JAVA_PKG_JARDEST}"
108 +
109 + insinto "${JAVA_PKG_JARDEST}"
110 + local jar
111 +
112 + for jar in *.jar; do
113 + if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
114 + # jars for NQP itself.
115 + java-pkg_dojar ${jar}
116 + else
117 + # jars used by NQP.
118 + doins ${jar}
119 + fi
120 + done
121 +
122 + # Upstream uses -Xbootclasspath/a, which is faster due to lack
123 + # of verification, but gjl isn't flexible enough yet. :(
124 + java-pkg_dolauncher ${PN}-j --main ${PN}
125 + dosym ${PN}-j /usr/bin/${PN}
126 + dobin tools/jvm/eval-client.pl
127 + else
128 + emake DESTDIR="${ED}" install
129 + fi
130 +
131 + dodoc CREDITS README.pod
132 + use doc && dodoc -r docs/*
133 +}
134
135 diff --git a/dev-lang/rakudo/rakudo-9999.ebuild b/dev-lang/rakudo/rakudo-2016.04-r3.ebuild
136 similarity index 64%
137 rename from dev-lang/rakudo/rakudo-9999.ebuild
138 rename to dev-lang/rakudo/rakudo-2016.04-r3.ebuild
139 index c6696c6..5b8088c 100644
140 --- a/dev-lang/rakudo/rakudo-9999.ebuild
141 +++ b/dev-lang/rakudo/rakudo-2016.04-r3.ebuild
142 @@ -4,7 +4,7 @@
143
144 EAPI=6
145
146 -inherit java-pkg-2
147 +inherit java-pkg-opt-2
148
149 DESCRIPTION="A compiler for the Perl 6 programming language"
150 HOMEPAGE="http://rakudo.org"
151 @@ -15,31 +15,29 @@ if [[ ${PV} == "9999" ]]; then
152 KEYWORDS=""
153 else
154 SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz"
155 - KEYWORDS="~amd64 ~x86"
156 + KEYWORDS=""
157 fi
158
159 LICENSE="Artistic-2"
160 SLOT="0"
161 # TODO: add USE="javascript" once that's usable in nqp
162 -IUSE="clang java moar test"
163 +IUSE="clang java +moar test"
164 +REQUIRED_USE="|| ( java moar )"
165
166 -RDEPEND="~dev-lang/nqp-${PV}:=[java=,moar=,clang=]"
167 -DEPEND="${RDEPEND}
168 - clang? ( sys-devel/clang )
169 - >=dev-lang/perl-5.10"
170 +CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java=,moar=,clang=]"
171
172 -REQUIRED_USE="|| ( java moar )"
173 -PATCHES=( "${FILESDIR}/${PN}-2016.04-Makefile.in.patch" )
174 +RDEPEND="${CDEPEND}
175 + java? ( >=virtual/jre-1.7:* )"
176
177 -pkg_pretend() {
178 - if has_version dev-lang/rakudo && use java; then
179 - die "Rakudo is known to fail compilation with the jvm backend if it's already installed."
180 - fi
181 -}
182 +DEPEND="${CDEPEND}
183 + clang? ( sys-devel/clang )
184 + java? ( >=virtual/jdk-1.7:* )
185 + >=dev-lang/perl-5.10"
186
187 -pkg_setup() {
188 - use java && java-pkg-2_pkg_setup
189 -}
190 +PATCHES=(
191 + "${FILESDIR}/${PN}-2016.04-Makefile.in.patch"
192 + "${FILESDIR}/${PN}-jna-lib.patch"
193 +)
194
195 src_prepare() {
196 eapply "${PATCHES[@]}"
197 @@ -52,32 +50,36 @@ src_prepare() {
198 done
199
200 eapply_user
201 - use java && java-pkg-2_src_prepare
202 + java-pkg-opt-2_src_prepare
203 }
204
205 src_configure() {
206 local backends
207 use java && backends+="jvm,"
208 use moar && backends+="moar,"
209 - local myargs=( "--prefix=/usr"
210 +
211 + local myargs=(
212 + "--prefix=/usr"
213 "--sysroot=/"
214 "--sdkroot=/"
215 - "--make-install"
216 - "--sdkroot=/"
217 "--backends=${backends}"
218 )
219 +
220 perl Configure.pl "${myargs[@]}"
221 +
222 + if use java; then
223 + NQP=$(java-pkg_getjars --with-dependencies nqp)
224 + fi
225 }
226
227 src_compile() {
228 - emake DESTDIR="${D}"
229 + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
230 }
231
232 -src_test() {
233 - export RAKUDO_PRECOMP_PREFIX=$(mktemp -d)
234 - default
235 +src_install() {
236 + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
237 }
238
239 -src_install() {
240 - emake DESTDIR="${D}" install
241 +src_test() {
242 + RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
243 }