1 |
commit: 4d4d6e767bc30f0e0030e7d2f27f428aa907f5ef |
2 |
Author: Marshall Brewer <tomboy64 <AT> sina <DOT> cn> |
3 |
AuthorDate: Thu May 26 15:52:27 2016 +0000 |
4 |
Commit: Amy Winston <amynka <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Jun 2 12:52:35 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d4d6e76 |
7 |
|
8 |
dev-lang/nqp: revbump 2016.04-r3 |
9 |
|
10 |
- enabled proper use of jna:4 (by Chewi) |
11 |
- using multibuild.eclass to enable custom java install procedure |
12 |
- minor qa corrections |
13 |
- warn before installation with NQP and Rakudo present |
14 |
- drop system-libs use-flag (from ebuilds and metadata.xml) |
15 |
|
16 |
dev-lang/nqp/metadata.xml | 1 - |
17 |
dev-lang/nqp/nqp-2016.04-r2.ebuild | 99 ----------------------- |
18 |
dev-lang/nqp/nqp-2016.04-r3.ebuild | 161 +++++++++++++++++++++++++++++++++++++ |
19 |
3 files changed, 161 insertions(+), 100 deletions(-) |
20 |
|
21 |
diff --git a/dev-lang/nqp/metadata.xml b/dev-lang/nqp/metadata.xml |
22 |
index dd228ef..7d0e9d2 100644 |
23 |
--- a/dev-lang/nqp/metadata.xml |
24 |
+++ b/dev-lang/nqp/metadata.xml |
25 |
@@ -16,7 +16,6 @@ |
26 |
<use> |
27 |
<flag name="clang">Toggle usage of the clang compiler in conjunction with MoarVM</flag> |
28 |
<flag name="moar">Build the MoarVM backend (experimental/broken)</flag> |
29 |
- <flag name="system-libs">Use jars provided by the system instead of upstream</flag> |
30 |
</use> |
31 |
<upstream> |
32 |
<remote-id type="github">perl6/nqp</remote-id> |
33 |
|
34 |
diff --git a/dev-lang/nqp/nqp-2016.04-r2.ebuild b/dev-lang/nqp/nqp-2016.04-r2.ebuild |
35 |
deleted file mode 100644 |
36 |
index e47071d..0000000 |
37 |
--- a/dev-lang/nqp/nqp-2016.04-r2.ebuild |
38 |
+++ /dev/null |
39 |
@@ -1,99 +0,0 @@ |
40 |
-# Copyright 1999-2016 Gentoo Foundation |
41 |
-# Distributed under the terms of the GNU General Public License v2 |
42 |
-# $Id$ |
43 |
- |
44 |
-EAPI=6 |
45 |
- |
46 |
-inherit java-pkg-2 |
47 |
- |
48 |
-if [[ ${PV} == "9999" ]]; then |
49 |
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git" |
50 |
- inherit git-r3 |
51 |
- KEYWORDS="" |
52 |
-else |
53 |
- SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" |
54 |
- KEYWORDS="~x86 ~amd64" |
55 |
-fi |
56 |
- |
57 |
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" |
58 |
-HOMEPAGE="http://rakudo.org/" |
59 |
- |
60 |
-LICENSE="Artistic-2" |
61 |
-SLOT="0" |
62 |
-IUSE="doc clang java +moar +system-libs test" |
63 |
-REQUIRED_USE="|| ( java moar )" |
64 |
- |
65 |
-RDEPEND="java? ( >=virtual/jre-1.7:* |
66 |
- system-libs? ( |
67 |
- dev-java/asm:4 |
68 |
- dev-java/jline:0 |
69 |
- ) |
70 |
- ) |
71 |
- moar? ( ~dev-lang/moarvm-${PV}[clang=] ) |
72 |
- dev-libs/libffi" |
73 |
-DEPEND="${RDEPEND} |
74 |
- clang? ( sys-devel/clang ) |
75 |
- java? ( >=virtual/jdk-1.7:* ) |
76 |
- dev-lang/perl" |
77 |
-PATCHES=( "${FILESDIR}/enable-external-jars.patch" ) |
78 |
- |
79 |
-pkg_setup() { |
80 |
- use java && java-pkg-2_pkg_setup |
81 |
-} |
82 |
- |
83 |
-src_prepare() { |
84 |
- eapply "${PATCHES[@]}" |
85 |
- eapply_user |
86 |
- use java && java-pkg-2_src_prepare |
87 |
-} |
88 |
- |
89 |
-src_unpack() { |
90 |
- if [[ ${PV} == "9999" ]]; then |
91 |
- git-r3_src_unpack |
92 |
- else |
93 |
- unpack ${A} |
94 |
- mv "${WORKDIR}/perl6-nqp-"* "${WORKDIR}/${P}" || die |
95 |
- fi |
96 |
-} |
97 |
- |
98 |
-src_configure() { |
99 |
- local backends |
100 |
- use java && backends+="jvm," |
101 |
- use moar && backends+="moar" |
102 |
- local myconfargs=( |
103 |
- "--backend=${backends}" |
104 |
- "--prefix=/usr" ) |
105 |
- |
106 |
- # 2016.04 doesn't like our jna-3.4.1 nor jna-4.1.0 |
107 |
- # keep testing against it |
108 |
- if use system-libs; then |
109 |
- if use java; then |
110 |
- myconfargs+=( |
111 |
- "--with-asm=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm\.jar$')" |
112 |
- "--with-asm-tree=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm-tree\.jar$')" |
113 |
- "--with-jline=$(echo $(java-pkg_getjars jline) | tr : '\n' | grep '/jline\.jar$')" ) |
114 |
- else |
115 |
- einfo "USE=system-libs set, but this won't have any effect without USE=java." |
116 |
- fi |
117 |
- fi |
118 |
- |
119 |
- perl Configure.pl "${myconfargs[@]}" || die |
120 |
-} |
121 |
- |
122 |
-src_compile() { |
123 |
- MAKEOPTS=-j1 emake |
124 |
-} |
125 |
- |
126 |
-src_test() { |
127 |
- MAKEOPTS=-j1 emake test |
128 |
-} |
129 |
- |
130 |
-src_install() { |
131 |
- emake DESTDIR="${ED}" install || die |
132 |
- |
133 |
- dodoc CREDITS README.pod || die |
134 |
- |
135 |
- if use doc; then |
136 |
- dodoc -r docs/* || die |
137 |
- fi |
138 |
-} |
139 |
|
140 |
diff --git a/dev-lang/nqp/nqp-2016.04-r3.ebuild b/dev-lang/nqp/nqp-2016.04-r3.ebuild |
141 |
new file mode 100644 |
142 |
index 0000000..35e745f |
143 |
--- /dev/null |
144 |
+++ b/dev-lang/nqp/nqp-2016.04-r3.ebuild |
145 |
@@ -0,0 +1,161 @@ |
146 |
+# Copyright 1999-2016 Gentoo Foundation |
147 |
+# Distributed under the terms of the GNU General Public License v2 |
148 |
+# $Id$ |
149 |
+ |
150 |
+EAPI=5 |
151 |
+ |
152 |
+inherit java-pkg-opt-2 multibuild |
153 |
+ |
154 |
+if [[ ${PV} == "9999" ]]; then |
155 |
+ EGIT_REPO_URI="https://github.com/perl6/${PN}.git" |
156 |
+ inherit git-r3 |
157 |
+ KEYWORDS="" |
158 |
+else |
159 |
+ SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" |
160 |
+ inherit vcs-snapshot |
161 |
+ KEYWORDS="~amd64 ~x86" |
162 |
+fi |
163 |
+ |
164 |
+DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" |
165 |
+HOMEPAGE="http://rakudo.org/" |
166 |
+ |
167 |
+LICENSE="Artistic-2" |
168 |
+SLOT="0" |
169 |
+IUSE="doc clang java +moar test" |
170 |
+REQUIRED_USE="|| ( java moar )" |
171 |
+ |
172 |
+CDEPEND="java? ( |
173 |
+ dev-java/asm:4 |
174 |
+ dev-java/jline:0 |
175 |
+ dev-java/jna:4 |
176 |
+ ) |
177 |
+ moar? ( ~dev-lang/moarvm-${PV}[clang=] )" |
178 |
+RDEPEND="${CDEPEND} |
179 |
+ java? ( >=virtual/jre-1.7 )" |
180 |
+DEPEND="${CDEPEND} |
181 |
+ clang? ( sys-devel/clang ) |
182 |
+ java? ( >=virtual/jdk-1.7 ) |
183 |
+ dev-lang/perl" |
184 |
+PATCHES=( "${FILESDIR}/enable-external-jars.patch" ) |
185 |
+ |
186 |
+pkg_pretend() { |
187 |
+ if has_version dev-lang/rakudo || has_version dev-lang/nqp; then |
188 |
+ ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP" |
189 |
+ ewarn "already being installed. So if it fails, try uninstalling both" |
190 |
+ ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation." |
191 |
+ ewarn "(see Bug #584394)" |
192 |
+ fi |
193 |
+} |
194 |
+ |
195 |
+java_prepare() { |
196 |
+ # Don't clean stage0 jars. |
197 |
+ einfo "Cleaning upstream jars" |
198 |
+ java-pkg_clean 3rdparty/ |
199 |
+ |
200 |
+ # Don't use jars we just deleted. |
201 |
+ sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \ |
202 |
+ src/vm/jvm/runners/nqp-j || die |
203 |
+} |
204 |
+ |
205 |
+src_prepare() { |
206 |
+ MULTIBUILD_VARIANTS=() |
207 |
+ use moar && MULTIBUILD_VARIANTS+=( moar ) |
208 |
+ use java && MULTIBUILD_VARIANTS+=( jvm ) |
209 |
+ |
210 |
+ multibuild_copy_sources |
211 |
+ |
212 |
+ # This will pull in conditional java_prepare |
213 |
+ default |
214 |
+} |
215 |
+ |
216 |
+nqp_configure() { |
217 |
+ pushd "${BUILD_DIR}" > /dev/null || die |
218 |
+ local myconfargs=( |
219 |
+ "--backend=${MULTIBUILD_VARIANT}" |
220 |
+ "--prefix=/usr" ) |
221 |
+ |
222 |
+ perl Configure.pl "${myconfargs[@]}" || die |
223 |
+ popd || die |
224 |
+} |
225 |
+ |
226 |
+nqp_compile() { |
227 |
+ if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then |
228 |
+ emake -j1 \ |
229 |
+ -C "${BUILD_DIR}" \ |
230 |
+ THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \ |
231 |
+ JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)" |
232 |
+ elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then |
233 |
+ emake -j1 \ |
234 |
+ -C "${BUILD_DIR}" |
235 |
+ fi |
236 |
+} |
237 |
+ |
238 |
+nqp_test() { |
239 |
+ emake -j1 \ |
240 |
+ -C "${BUILD_DIR}" \ |
241 |
+ test |
242 |
+} |
243 |
+ |
244 |
+nqp_install() { |
245 |
+ # This is the actual reason we need multibuild.eclass. |
246 |
+ # We need to distinguish the install procedure for MoarVM and JVM backends. |
247 |
+ case "${MULTIBUILD_VARIANT}" in |
248 |
+ moar) |
249 |
+ emake \ |
250 |
+ DESTDIR="${ED}" \ |
251 |
+ -C "${BUILD_DIR}" \ |
252 |
+ install |
253 |
+ ;; |
254 |
+ jvm) |
255 |
+ pushd "${BUILD_DIR}" > /dev/null || die |
256 |
+ # Set JAVA_PKG_JARDEST early. |
257 |
+ java-pkg_init_paths_ |
258 |
+ |
259 |
+ # Upstream sets the classpath to this location. Perhaps it's |
260 |
+ # used to locate the additional libraries? |
261 |
+ java-pkg_addcp "${JAVA_PKG_JARDEST}" |
262 |
+ |
263 |
+ insinto "${JAVA_PKG_JARDEST}" |
264 |
+ local jar |
265 |
+ |
266 |
+ for jar in *.jar; do |
267 |
+ if has ${jar} ${PN}.jar ${PN}-runtime.jar; then |
268 |
+ # jars for NQP itself. |
269 |
+ java-pkg_dojar ${jar} |
270 |
+ else |
271 |
+ # jars used by NQP. |
272 |
+ doins ${jar} |
273 |
+ fi |
274 |
+ done |
275 |
+ |
276 |
+ # Upstream uses -Xbootclasspath/a, which is faster due to lack |
277 |
+ # of verification, but gjl isn't flexible enough yet. :( |
278 |
+ java-pkg_dolauncher ${PN}-j --main ${PN} |
279 |
+ dosym ${PN}-j /usr/bin/${PN} |
280 |
+ dobin tools/jvm/eval-client.pl |
281 |
+ popd > /dev/null || die |
282 |
+ ;; |
283 |
+ *) |
284 |
+ die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}." |
285 |
+ ;; |
286 |
+ esac |
287 |
+} |
288 |
+ |
289 |
+src_configure() { |
290 |
+ multibuild_foreach_variant nqp_configure |
291 |
+} |
292 |
+ |
293 |
+src_compile() { |
294 |
+ multibuild_foreach_variant nqp_compile |
295 |
+} |
296 |
+ |
297 |
+src_test() { |
298 |
+ multibuild_foreach_variant nqp_test |
299 |
+} |
300 |
+ |
301 |
+src_install() { |
302 |
+ multibuild_foreach_variant nqp_install |
303 |
+ |
304 |
+ dodoc CREDITS README.pod |
305 |
+ use doc && dodoc -r docs/* |
306 |
+} |