Gentoo Archives: gentoo-commits

From: Patrick Lauer <patrick@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rakudo/files/2015.12/, dev-lang/rakudo/
Date: Sun, 03 Jan 2016 13:05:58
Message-Id: 1451826311.9639bc8346213571665a094657af9f3ea8446db5.patrick@gentoo
1 commit: 9639bc8346213571665a094657af9f3ea8446db5
2 Author: Patrick Lauer <patrick <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jan 3 13:05:11 2016 +0000
4 Commit: Patrick Lauer <patrick <AT> gentoo <DOT> org>
5 CommitDate: Sun Jan 3 13:05:11 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9639bc83
7
8 dev-lang/rakudo: Bump, patches thanks to flussence
9
10 Package-Manager: portage-2.2.26
11
12 dev-lang/rakudo/Manifest | 1 +
13 ...make-install-when-nqp-is-distro-installed.patch | 78 +++++++++++++
14 .../0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch | 27 +++++
15 ...e-and-complete-the-manpage-s-env-var-list.patch | 125 +++++++++++++++++++++
16 dev-lang/rakudo/rakudo-2015.12.ebuild | 44 ++++++++
17 5 files changed, 275 insertions(+)
18
19 diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest
20 index 58499ac..c338461 100644
21 --- a/dev-lang/rakudo/Manifest
22 +++ b/dev-lang/rakudo/Manifest
23 @@ -6,3 +6,4 @@ DIST rakudo-2015.05.tar.gz 2503009 SHA256 81ecf442e5c1720d8112effc5531f171c83907
24 DIST rakudo-2015.06.tar.gz 2505308 SHA256 eea69522bc415a2566acb7277db44e5e0df558b3f3d667b64c4e700e917d18fa SHA512 1fb7f6fa42cc71977c26663ae38f5421b390781825e8acd0a0fae9c2781aa06018db3b474a0da43eb519eeb1aed8220df686968e2484272df095e21476b3023d WHIRLPOOL afea51402961a0ca2428a9e8ea5bda48b23b955fb04ad86aeb002b2a387c98931c3e03de24dda247b42a4e00ce772234f52bf6cb76f2951b28f57bef8908b56c
25 DIST rakudo-2015.07.2.tar.gz 2539175 SHA256 1794f2d670af1174aee620587270c05fbc06ef3026ae144daac436101856c492 SHA512 2e487df689c40b45673fc14a66127f893a5b0db13c5747e030dbc4b293cec76114b88909598f2ac7d607e7fe6d8fa632ee0c7386a064da31e76feeec48406d5f WHIRLPOOL bfa2ae4c3f5e24f641eaf8c52d96e61c9cfc48d4ecd9fcacae5a19ed1f60d636d3241fddf2bcbf40df2f2b98add912992c8e955dd237b7583af38c17bbb6713c
26 DIST rakudo-2015.11.tar.gz 2643309 SHA256 a27c8357d06ebfcd1337003c869686f5041aba563a3a8c57bc3c555334e43bc3 SHA512 e4d662709cf47b2b98398c5781973d1abd008f6f13b170fdba418bf36ff552e6c33caee26e2833539828c06ab7562f02cf5e54789f898e2e2d1d31db98d2e95e WHIRLPOOL 22fdaaf616dc62606ca320cb08231b2ae0740e4191f238f2fa26247b2fcd45ae061a2b4f1c616181ea68339a45054751fef0ebab825e98580ecede43c039805e
27 +DIST rakudo-2015.12.tar.gz 2669528 SHA256 f8a57a7b543416c8ea623644f3d74673c4e6c68f3b0161a6b963550ecb74781b SHA512 48e4c98bbff67a52f68a835cc87a19a0b17f2d67790f8162ffd9f167f080d09180d375b5ea9a8577d1de5036c78e604473a2140107d448aff3630c138fd16114 WHIRLPOOL 351ab7ff4b4a1ff00195f913d48f87ef620888cf709e68df5b169f24256d5042bd4a89ef5b3595d9be32ed27cae2e87da9cf3f2585eec0823420be5ee6d8a1a3
28
29 diff --git a/dev-lang/rakudo/files/2015.12/0001-Fix-make-install-when-nqp-is-distro-installed.patch b/dev-lang/rakudo/files/2015.12/0001-Fix-make-install-when-nqp-is-distro-installed.patch
30 new file mode 100644
31 index 0000000..2dfc05b
32 --- /dev/null
33 +++ b/dev-lang/rakudo/files/2015.12/0001-Fix-make-install-when-nqp-is-distro-installed.patch
34 @@ -0,0 +1,78 @@
35 +From fb00ed3d71f9407a776c82f03855d1242997878c Mon Sep 17 00:00:00 2001
36 +From: Anthony Parsons <flussence@×××××.com>
37 +Date: Sat, 26 Dec 2015 19:37:18 +0000
38 +Subject: [PATCH] Fix `make install` when nqp is distro-installed
39 +MIME-Version: 1.0
40 +Content-Type: text/plain; charset=UTF-8
41 +Content-Transfer-Encoding: 8bit
42 +
43 +During the installation process, tools/build/install-core-dist.pl is called to
44 +precompile the bundled non-CORE.setting libraries such as Test.pm. The way this
45 +was initially coded, it pulled the install path from NQP's build-time
46 +configuration, which will be a root-owned filesystem path if NQP was installed
47 +via a system package manager.
48 +
49 +Other parts of the CompUnit code will see these paths don't exist, and attempt
50 +to helpfully call `mkdir` on them which brings the whole process to a messy end.
51 +This part usually works fine when building everything from a git checkout,
52 +because Moar/NQP/Rakudo all default to an installation prefix the user has write
53 +access to.
54 +
55 +This patch fixes that step of the build process by passing the makefile's path
56 +prefixes to install-core-dist.pl (ensuring precompilation output goes to the
57 +right place), and modifying it to *only* use that path (ensuring it doesn't try
58 +to mkdir where it shouldn't). This isn't a 100% solution, but it fixes enough
59 +to unblock packaging work on a few distros.
60 +
61 +Thanks to mst++ for doing almost all of the legwork here, crux++ for an initial
62 +patch that gave us a few pointers to work from, and nine++ for giving us some
63 +Boxing Day fun ☺
64 +---
65 + tools/build/Makefile-JVM.in | 2 +-
66 + tools/build/Makefile-Moar.in | 2 +-
67 + tools/build/install-core-dist.pl | 3 ++-
68 + 3 files changed, 4 insertions(+), 3 deletions(-)
69 +
70 +diff --git a/tools/build/Makefile-JVM.in b/tools/build/Makefile-JVM.in
71 +index 11e17810265d..0a3095114e0a 100644
72 +--- a/tools/build/Makefile-JVM.in
73 ++++ b/tools/build/Makefile-JVM.in
74 +@@ -391,7 +391,7 @@ j-install: j-all tools/build/create-jvm-runner.pl tools/build/install-core-dist.
75 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/resources
76 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/bin
77 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/short
78 +- .@slash@$(J_RUNNER) tools/build/install-core-dist.pl
79 ++ .@slash@$(J_RUNNER) tools/build/install-core-dist.pl $(DESTDIR)$(PERL6_LANG_DIR)
80 + $(PERL) tools/build/create-jvm-runner.pl install "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS)
81 + $(PERL) tools/build/create-jvm-runner.pl install-debug "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS)
82 +
83 +diff --git a/tools/build/Makefile-Moar.in b/tools/build/Makefile-Moar.in
84 +index 1e586d92a1fa..670b89c20774 100644
85 +--- a/tools/build/Makefile-Moar.in
86 ++++ b/tools/build/Makefile-Moar.in
87 +@@ -246,7 +246,7 @@ m-install: m-all tools/build/create-moar-runner.pl tools/build/install-core-dist
88 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/resources
89 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/bin
90 + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/short
91 +- .@slash@$(M_RUNNER) tools/build/install-core-dist.pl
92 ++ .@slash@$(M_RUNNER) tools/build/install-core-dist.pl $(DESTDIR)$(PERL6_LANG_DIR)
93 + $(PERL) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-m "$(PERL6_LANG_DIR)/runtime" "" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"
94 + $(PERL) tools/build/create-moar-runner.pl "$(MOAR)" perl6-debug.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-debug-m "$(PERL6_LANG_DIR)/runtime" "" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"
95 + $(CHMOD) 755 $(DESTDIR)$(PREFIX)/bin/perl6-m$(M_BAT)
96 +diff --git a/tools/build/install-core-dist.pl b/tools/build/install-core-dist.pl
97 +index 0990b2676a10..ba14b20828d8 100644
98 +--- a/tools/build/install-core-dist.pl
99 ++++ b/tools/build/install-core-dist.pl
100 +@@ -9,7 +9,8 @@ my %provides =
101 + "experimental" => "lib/experimental.pm6",
102 + ;
103 +
104 +-CompUnit::RepositoryRegistry.repository-for-name('perl').install(
105 ++PROCESS::<$REPO> := CompUnit::RepositoryRegistry.repository-for-spec("inst#@*ARGS[0]");
106 ++$*REPO.install(
107 + Distribution.new(
108 + name => "CORE",
109 + auth => "perl",
110 +--
111 +2.6.4
112 +
113
114 diff --git a/dev-lang/rakudo/files/2015.12/0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch b/dev-lang/rakudo/files/2015.12/0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch
115 new file mode 100644
116 index 0000000..1c5f1af
117 --- /dev/null
118 +++ b/dev-lang/rakudo/files/2015.12/0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch
119 @@ -0,0 +1,27 @@
120 +From 4fe18ce14c87c4d63f18db3c38cf32733ba72c31 Mon Sep 17 00:00:00 2001
121 +From: Anthony Parsons <flussence@×××××.com>
122 +Date: Sun, 27 Dec 2015 02:02:22 +0000
123 +Subject: [PATCH 2/2] Add RAKUDO_PRECOMP_PREFIX env var
124 +
125 +As suggested by nine++, with some name tweaking
126 +---
127 + docs/running.pod | 6 ++++++
128 + src/core/CompUnit/RepositoryRegistry.pm | 2 +-
129 + 2 files changed, 7 insertions(+), 1 deletion(-)
130 +
131 +diff --git a/src/core/CompUnit/RepositoryRegistry.pm b/src/core/CompUnit/RepositoryRegistry.pm
132 +index f70f22105849..e628ee659c7c 100644
133 +--- a/src/core/CompUnit/RepositoryRegistry.pm
134 ++++ b/src/core/CompUnit/RepositoryRegistry.pm
135 +@@ -75,7 +75,7 @@ class CompUnit::RepositoryRegistry {
136 + }
137 + #?endif
138 +
139 +- my $prefix := nqp::p6box_s(
140 ++ my $prefix := %*ENV<RAKUDO_PRECOMP_PREFIX> // nqp::p6box_s(
141 + nqp::concat(nqp::atkey(nqp::backendconfig,'prefix'),'/share/perl6')
142 + );
143 +
144 +--
145 +2.6.4
146 +
147
148 diff --git a/dev-lang/rakudo/files/2015.12/0003-Rewrite-and-complete-the-manpage-s-env-var-list.patch b/dev-lang/rakudo/files/2015.12/0003-Rewrite-and-complete-the-manpage-s-env-var-list.patch
149 new file mode 100644
150 index 0000000..3b43b62
151 --- /dev/null
152 +++ b/dev-lang/rakudo/files/2015.12/0003-Rewrite-and-complete-the-manpage-s-env-var-list.patch
153 @@ -0,0 +1,125 @@
154 +From c6d759c5df9ae4cb539717ecba99f80efe35d9ac Mon Sep 17 00:00:00 2001
155 +From: Anthony Parsons <flussence@×××××.com>
156 +Date: Sun, 27 Dec 2015 01:28:19 +0000
157 +Subject: [PATCH 1/2] Rewrite and complete the manpage's env var list
158 +
159 +This includes everything I could find with an `ack 'ENV<' src/` command.
160 +Descriptions have been expanded on, expected datatypes are shown, and items are
161 +now broken up into categories.
162 +---
163 + docs/running.pod | 81 +++++++++++++++++++++++++++++++++++++++++++++-----------
164 + 1 file changed, 66 insertions(+), 15 deletions(-)
165 +
166 +diff --git a/docs/running.pod b/docs/running.pod
167 +index 9ed7571df54e..53fb577c8481 100644
168 +--- a/docs/running.pod
169 ++++ b/docs/running.pod
170 +@@ -44,39 +44,90 @@ The supported values for C<--target> are:
171 + For C<--profile-filename>, specifying a name ending in C<.json> will write a raw JSON profile dump.
172 + The default if this is omitted is C<profile-I<[timestamp]>.html>.
173 +
174 +-=head1 List of env vars used in Rakudo
175 ++=head1 ENVIRONMENT VARIABLES
176 ++
177 ++Rakudo's behavior can be tweaked by a (growing) number of environment variables; this section
178 ++attempts to document all those currently in use.
179 ++
180 ++=head2 Module Loading
181 ++
182 ++=over
183 ++
184 ++=item C<RAKUDOLIB>, C<PERL6LIB> (I<Str>; F<src/core/Inc.pm>)
185 ++
186 ++Appends a comma-delimited list of paths to C<@INC>. C<RAKUDOLIB> is evaluated first.
187 ++
188 ++=item C<RAKUDO_MODULE_DEBUG> (I<Bool>; F<src/Perl6/ModuleLoader.pm>)
189 ++
190 ++Causes the module loader to print debugging information to standard error.
191 ++
192 ++=back
193 ++
194 ++=head2 Error Message Verbosity and Strictness
195 +
196 + =over
197 +
198 +-=item C<RAKUDOLIB>, C<PERL6LIB> (src/core/Inc.pm)
199 ++=item C<RAKUDO_NO_DEPRECATIONS> (I<Bool>; F<src/core/Deprecations.pm>)
200 ++
201 ++If true, suppresses deprecation warnings triggered by the C<is DEPRECATED> trait.
202 +
203 +-Appends a delimited list of paths to C<@INC>. C<RAKUDOLIB> is evaluated first.
204 ++=item C<RAKUDO_DEPRECATIONS_FATAL> (I<Bool>; F<src/core/Deprecations.pm>)
205 +
206 +-=item C<RAKUDO_MODULE_DEBUG> (src/Perl6/ModuleLoader.pm)
207 ++If true, deprecation warnings become thrown exceptions.
208 +
209 +-If set to a non-false value, causes the module loader to print debugging information to standard
210 +-error.
211 ++=item C<RAKUDO_VERBOSE_STACKFRAME> (I<UInt>; F<src/core/Backtrace.pm>)
212 +
213 +-=item C<RAKUDO_ERROR_COLOR> (src/core/Exception.pm)
214 ++Displays source code in stack frames surrounded by the specified number of lines of context.
215 ++
216 ++=item C<RAKUDO_BACKTRACE_SETTING> (I<Bool>; F<src/core/Backtrace.pm>)
217 ++
218 ++Controls whether .setting files are included in backtraces.
219 ++
220 ++=back
221 ++
222 ++=head2 Affecting Precompilation
223 ++
224 ++=over
225 ++
226 ++=item C<RAKUDO_PRECOMP_DIST> (F<src/core/CompUnit/PrecompilationRepository.pm>)
227 ++
228 ++=item C<RAKUDO_PRECOMP_LOADING> (F<src/core/CompUnit/PrecompilationRepository.pm>)
229 ++
230 ++=item C<RAKUDO_PRECOMP_WITH> (F<src/core/CompUnit/PrecompilationRepository.pm>)
231 ++
232 ++These are internal variables for passing serialized state to precompilation jobs in child processes.
233 ++Please do not set them manually.
234 ++
235 ++=back
236 ++
237 ++=head2 Other
238 ++
239 ++=over
240 ++
241 ++=item C<RAKUDO_ERROR_COLOR> (I<Bool>; F<src/core/Exception.pm>)
242 +
243 + Controls whether to emit ANSI codes for error highlighting. Defaults to true if unset, except on
244 + Win32.
245 +
246 +-=item C<RAKUDO_MAX_THREADS> (src/core/ThreadPoolScheduler.pm)
247 ++=item C<RAKUDO_MAX_THREADS> (I<UInt>; F<src/core/ThreadPoolScheduler.pm>)
248 +
249 +-Controls the maximum number of threads used by a thread pool.
250 ++Override the default maximum number of threads used by a thread pool.
251 +
252 +-=item C<RAKUDO_NO_DEPRECATIONS> (src/core/Deprecations.pm)
253 ++=item C<TMPDIR>, C<TEMP>, C<TMP> (I<Str>; F<src/core/IO/Spec/>)
254 +
255 +-If set, suppresses deprecation warnings.
256 ++The C<IO::Spec::Unix.tmpdir> method will return C<$TMPDIR> if it points to a directory with full
257 ++access permissions for the current user, with a fallback default of C<'/tmp'>.
258 +
259 +-=item C<RAKUDO_VERBOSE_STACKFRAME> (src/core/Backtrace.pm)
260 ++C<IO::Spec::Cygwin> and C<IO::Spec::Win32> use more Win32-appropriate lists which also include the
261 ++C<%TEMP%> and C<%TMP%> environment variables.
262 +
263 +-Controls stack frame verbosity.
264 ++=item C<PATH>, C<Path> (I<Str>; F<src/core/IO/Spec/>)
265 +
266 +-=item C<RAKUDO_BACKTRACE_SETTING> (src/core/Backtrace.pm)
267 ++The C<IO::Spec::Unix.path> method splits C<$PATH> as a shell would; i.e. as a colon-separated list.
268 ++C<IO::Spec::Cygwin> inherits this from C<IO::Spec::Unix>.
269 +
270 +-Controls whether .setting files are included in backtraces.
271 ++C<IO::Spec::Win32.path> will read the first defined of either C<%PATH%> or C<%Path%> as a
272 ++semicolon-delimited list.
273 +
274 + =back
275 +
276 +--
277 +2.6.4
278 +
279
280 diff --git a/dev-lang/rakudo/rakudo-2015.12.ebuild b/dev-lang/rakudo/rakudo-2015.12.ebuild
281 new file mode 100644
282 index 0000000..29ce6a7
283 --- /dev/null
284 +++ b/dev-lang/rakudo/rakudo-2015.12.ebuild
285 @@ -0,0 +1,44 @@
286 +# Copyright 1999-2016 Gentoo Foundation
287 +# Distributed under the terms of the GNU General Public License v2
288 +# $Id$
289 +
290 +EAPI=6
291 +
292 +DESCRIPTION="A compiler for the Perl 6 programming language"
293 +HOMEPAGE="http://rakudo.org"
294 +
295 +if [[ ${PV} == "9999" ]]; then
296 + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
297 + inherit git-r3
298 +else
299 + SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz"
300 +fi
301 +
302 +LICENSE="Artistic-2"
303 +SLOT="0"
304 +KEYWORDS="~amd64 ~x86"
305 +# TODO: add USE="javascript" once that's usable in nqp
306 +IUSE="java +moar test"
307 +REQUIRED_USE="|| ( java moar )"
308 +
309 +RDEPEND="=dev-lang/nqp-${PV}*:=[moar?,java?]"
310 +DEPEND="${RDEPEND}
311 + >=dev-lang/perl-5.10"
312 +
313 +PATCHES=(${FILESDIR}/${PV})
314 +
315 +src_configure() {
316 + local BACKENDS
317 +
318 + # The order of this list determines which gets installed as "perl6"
319 + use moar && BACKENDS+="moar,"
320 + use java && BACKENDS+="jvm,"
321 + #use javascript && BACKENDS+="js,"
322 +
323 + perl Configure.pl --prefix=/usr --sysroot=/usr --backends=$BACKENDS
324 +}
325 +
326 +src_test() {
327 + export RAKUDO_PRECOMP_PREFIX=$(mktemp -d)
328 + default
329 +}