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/rakudo/files/, dev-lang/rakudo/
Date: Thu, 02 Jun 2016 12:55:10
Message-Id: 1464871957.ef2f15f048eccbec7e68f754788a3acdbd184450.amynka@gentoo
1 commit: ef2f15f048eccbec7e68f754788a3acdbd184450
2 Author: Marshall Brewer <tomboy64 <AT> sina <DOT> cn>
3 AuthorDate: Thu May 26 15:56:10 2016 +0000
4 Commit: Amy Winston <amynka <AT> gentoo <DOT> org>
5 CommitDate: Thu Jun 2 12:52:37 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef2f15f0
7
8 dev-lang/rakudo: revbump 2016.04-r2
9
10 - switched to java-pkg-opt-2
11 - removed unnecessary DESTDIR hack
12 - not requiring nqp to have USE=-java/-moar, if it's not set for
13 rakudo
14 - enable usage of nqp with system jna (patch and mechanics contributed
15 by Chewi)
16
17 dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch | 21 ++++++
18 dev-lang/rakudo/rakudo-2016.04-r1.ebuild | 83 ---------------------
19 dev-lang/rakudo/rakudo-2016.04-r2.ebuild | 84 ++++++++++++++++++++++
20 3 files changed, 105 insertions(+), 83 deletions(-)
21
22 diff --git a/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch b/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch
23 new file mode 100644
24 index 0000000..3f4532f
25 --- /dev/null
26 +++ b/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch
27 @@ -0,0 +1,21 @@
28 +Upstream uses -Xbootclasspath, which prevents us from using
29 +LD_LIBRARY_PATH, thefore we need to set jna.boot.library.path.
30 +See http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4285197.
31 +
32 +Chewi
33 +2016/05/15
34 +
35 +diff -Naur rakudo-2016.04.orig/tools/build/create-jvm-runner.pl rakudo-2016.04/tools/build/create-jvm-runner.pl
36 +--- rakudo-2016.04.orig/tools/build/create-jvm-runner.pl 2015-12-25 19:23:19.000000000 +0000
37 ++++ rakudo-2016.04/tools/build/create-jvm-runner.pl 2016-05-15 11:30:37.488085661 +0100
38 +@@ -60,7 +60,10 @@
39 + }
40 +
41 + my $classpath = join($cpsep, ($jardir, $libdir, $nqplibdir));
42 ++my $jna_lib = `java-config --query LIBRARY_PATH --package jna-4`;
43 ++chomp $jna_lib;
44 + my $jopts = '-noverify -Xms100m -Xbootclasspath/a:' . $perl6jars
45 ++ . ' -Djna.boot.library.path=' . $jna_lib
46 + . ' -cp ' . ($^O eq 'MSWin32' ? '"%CLASSPATH%";' : '$CLASSPATH:') . $classpath
47 + . ' -Dperl6.prefix=' . $prefix
48 + . ' -Djna.library.path=' . $sharedir
49
50 diff --git a/dev-lang/rakudo/rakudo-2016.04-r1.ebuild b/dev-lang/rakudo/rakudo-2016.04-r1.ebuild
51 deleted file mode 100644
52 index e677758..0000000
53 --- a/dev-lang/rakudo/rakudo-2016.04-r1.ebuild
54 +++ /dev/null
55 @@ -1,83 +0,0 @@
56 -# Copyright 1999-2016 Gentoo Foundation
57 -# Distributed under the terms of the GNU General Public License v2
58 -# $Id$
59 -
60 -EAPI=6
61 -
62 -inherit java-pkg-2
63 -
64 -DESCRIPTION="A compiler for the Perl 6 programming language"
65 -HOMEPAGE="http://rakudo.org"
66 -
67 -if [[ ${PV} == "9999" ]]; then
68 - EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
69 - inherit git-r3
70 - KEYWORDS=""
71 -else
72 - SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz"
73 - KEYWORDS="~amd64 ~x86"
74 -fi
75 -
76 -LICENSE="Artistic-2"
77 -SLOT="0"
78 -# TODO: add USE="javascript" once that's usable in nqp
79 -IUSE="clang java +moar test"
80 -
81 -RDEPEND="~dev-lang/nqp-${PV}:=[java=,moar=,clang=]"
82 -DEPEND="${RDEPEND}
83 - clang? ( sys-devel/clang )
84 - >=dev-lang/perl-5.10"
85 -
86 -REQUIRED_USE="|| ( java moar )"
87 -PATCHES=( "${FILESDIR}/${PN}-2016.04-Makefile.in.patch" )
88 -
89 -pkg_pretend() {
90 - if has_version dev-lang/rakudo && use java; then
91 - die "Rakudo is known to fail compilation with the jvm backend if it's already installed."
92 - fi
93 -}
94 -
95 -pkg_setup() {
96 - use java && java-pkg-2_pkg_setup
97 -}
98 -
99 -src_prepare() {
100 - eapply "${PATCHES[@]}"
101 -
102 - # yup, this is ugly. but emake doesn't respect DESTDIR.
103 - for i in Moar JVM; do
104 - echo "DESTDIR = ${D}" > "${T}/Makefile-${i}.in" || die
105 - cat "${S}/tools/build/Makefile-${i}.in" >> "${T}/Makefile-${i}.in" || die
106 - mv "${T}/Makefile-${i}.in" "${S}/tools/build/Makefile-${i}.in" || die
107 - done
108 -
109 - eapply_user
110 - use java && java-pkg-2_src_prepare
111 -}
112 -
113 -src_configure() {
114 - local backends
115 - use java && backends+="jvm,"
116 - use moar && backends+="moar,"
117 - local myargs=( "--prefix=/usr"
118 - "--sysroot=/"
119 - "--sdkroot=/"
120 - "--make-install"
121 - "--sdkroot=/"
122 - "--backends=${backends}"
123 - )
124 - perl Configure.pl "${myargs[@]}"
125 -}
126 -
127 -src_compile() {
128 - emake DESTDIR="${D}"
129 -}
130 -
131 -src_test() {
132 - export RAKUDO_PRECOMP_PREFIX=$(mktemp -d)
133 - default
134 -}
135 -
136 -src_install() {
137 - emake DESTDIR="${D}" install
138 -}
139
140 diff --git a/dev-lang/rakudo/rakudo-2016.04-r2.ebuild b/dev-lang/rakudo/rakudo-2016.04-r2.ebuild
141 new file mode 100644
142 index 0000000..18eb631
143 --- /dev/null
144 +++ b/dev-lang/rakudo/rakudo-2016.04-r2.ebuild
145 @@ -0,0 +1,84 @@
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
153 +
154 +DESCRIPTION="A compiler for the Perl 6 programming language"
155 +HOMEPAGE="http://rakudo.org"
156 +
157 +if [[ ${PV} == "9999" ]]; then
158 + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
159 + inherit git-r3
160 + KEYWORDS=""
161 +else
162 + SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz"
163 + KEYWORDS="~amd64 ~x86"
164 +fi
165 +
166 +LICENSE="Artistic-2"
167 +SLOT="0"
168 +# TODO: add USE="javascript" once that's usable in nqp
169 +IUSE="clang java +moar test"
170 +REQUIRED_USE="|| ( java moar )"
171 +
172 +CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]
173 + >=dev-lang/nqp-2016.04-r3"
174 +RDEPEND="${CDEPEND}
175 + java? ( >=virtual/jre-1.7 )"
176 +DEPEND="${CDEPEND}
177 + clang? ( sys-devel/clang )
178 + java? ( >=virtual/jdk-1.7 )
179 + >=dev-lang/perl-5.10"
180 +
181 +PATCHES=(
182 + "${FILESDIR}/${PN}-2016.04-Makefile.in.patch"
183 + "${FILESDIR}/${P}-jna-lib.patch"
184 +)
185 +
186 +pkg_pretend() {
187 + if has_version dev-lang/rakudo; then
188 + ewarn "Rakudo is known to fail compilation/installation with Rakudo"
189 + ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
190 + ewarn "then do a new installation."
191 + ewarn "(see Bug #584394)"
192 + fi
193 +}
194 +
195 +src_prepare() {
196 + epatch "${PATCHES[@]}"
197 + epatch_user
198 +}
199 +
200 +src_configure() {
201 + local backends
202 + use moar && backends+="moar,"
203 + use java && backends+="jvm"
204 +
205 + local myargs=(
206 + "--prefix=/usr"
207 + "--sysroot=/"
208 + "--sdkroot=/"
209 + "--backends=${backends}"
210 + )
211 +
212 + perl Configure.pl "${myargs[@]}" || die
213 +
214 + if use java; then
215 + NQP=$(java-pkg_getjars --with-dependencies nqp)
216 + fi
217 +}
218 +
219 +src_compile() {
220 + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
221 +}
222 +
223 +src_install() {
224 + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
225 +}
226 +
227 +src_test() {
228 + RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
229 +}