Gentoo Archives: gentoo-commits

From: Amy Winston <amynka@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/nqp/
Date: Thu, 02 Jun 2016 12:55:19
Message-Id: 1464871955.4d4d6e767bc30f0e0030e7d2f27f428aa907f5ef.amynka@gentoo
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 +}