commit: 9639bc8346213571665a094657af9f3ea8446db5 Author: Patrick Lauer <patrick <AT> gentoo <DOT> org> AuthorDate: Sun Jan 3 13:05:11 2016 +0000 Commit: Patrick Lauer <patrick <AT> gentoo <DOT> org> CommitDate: Sun Jan 3 13:05:11 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9639bc83
dev-lang/rakudo: Bump, patches thanks to flussence Package-Manager: portage-2.2.26 dev-lang/rakudo/Manifest | 1 + ...make-install-when-nqp-is-distro-installed.patch | 78 +++++++++++++ .../0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch | 27 +++++ ...e-and-complete-the-manpage-s-env-var-list.patch | 125 +++++++++++++++++++++ dev-lang/rakudo/rakudo-2015.12.ebuild | 44 ++++++++ 5 files changed, 275 insertions(+) diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest index 58499ac..c338461 100644 --- a/dev-lang/rakudo/Manifest +++ b/dev-lang/rakudo/Manifest @@ -6,3 +6,4 @@ DIST rakudo-2015.05.tar.gz 2503009 SHA256 81ecf442e5c1720d8112effc5531f171c83907 DIST rakudo-2015.06.tar.gz 2505308 SHA256 eea69522bc415a2566acb7277db44e5e0df558b3f3d667b64c4e700e917d18fa SHA512 1fb7f6fa42cc71977c26663ae38f5421b390781825e8acd0a0fae9c2781aa06018db3b474a0da43eb519eeb1aed8220df686968e2484272df095e21476b3023d WHIRLPOOL afea51402961a0ca2428a9e8ea5bda48b23b955fb04ad86aeb002b2a387c98931c3e03de24dda247b42a4e00ce772234f52bf6cb76f2951b28f57bef8908b56c DIST rakudo-2015.07.2.tar.gz 2539175 SHA256 1794f2d670af1174aee620587270c05fbc06ef3026ae144daac436101856c492 SHA512 2e487df689c40b45673fc14a66127f893a5b0db13c5747e030dbc4b293cec76114b88909598f2ac7d607e7fe6d8fa632ee0c7386a064da31e76feeec48406d5f WHIRLPOOL bfa2ae4c3f5e24f641eaf8c52d96e61c9cfc48d4ecd9fcacae5a19ed1f60d636d3241fddf2bcbf40df2f2b98add912992c8e955dd237b7583af38c17bbb6713c DIST rakudo-2015.11.tar.gz 2643309 SHA256 a27c8357d06ebfcd1337003c869686f5041aba563a3a8c57bc3c555334e43bc3 SHA512 e4d662709cf47b2b98398c5781973d1abd008f6f13b170fdba418bf36ff552e6c33caee26e2833539828c06ab7562f02cf5e54789f898e2e2d1d31db98d2e95e WHIRLPOOL 22fdaaf616dc62606ca320cb08231b2ae0740e4191f238f2fa26247b2fcd45ae061a2b4f1c616181ea68339a45054751fef0ebab825e98580ecede43c039805e +DIST rakudo-2015.12.tar.gz 2669528 SHA256 f8a57a7b543416c8ea623644f3d74673c4e6c68f3b0161a6b963550ecb74781b SHA512 48e4c98bbff67a52f68a835cc87a19a0b17f2d67790f8162ffd9f167f080d09180d375b5ea9a8577d1de5036c78e604473a2140107d448aff3630c138fd16114 WHIRLPOOL 351ab7ff4b4a1ff00195f913d48f87ef620888cf709e68df5b169f24256d5042bd4a89ef5b3595d9be32ed27cae2e87da9cf3f2585eec0823420be5ee6d8a1a3 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 new file mode 100644 index 0000000..2dfc05b --- /dev/null +++ b/dev-lang/rakudo/files/2015.12/0001-Fix-make-install-when-nqp-is-distro-installed.patch @@ -0,0 +1,78 @@ +From fb00ed3d71f9407a776c82f03855d1242997878c Mon Sep 17 00:00:00 2001 +From: Anthony Parsons <flusse...@gmail.com> +Date: Sat, 26 Dec 2015 19:37:18 +0000 +Subject: [PATCH] Fix `make install` when nqp is distro-installed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +During the installation process, tools/build/install-core-dist.pl is called to +precompile the bundled non-CORE.setting libraries such as Test.pm. The way this +was initially coded, it pulled the install path from NQP's build-time +configuration, which will be a root-owned filesystem path if NQP was installed +via a system package manager. + +Other parts of the CompUnit code will see these paths don't exist, and attempt +to helpfully call `mkdir` on them which brings the whole process to a messy end. +This part usually works fine when building everything from a git checkout, +because Moar/NQP/Rakudo all default to an installation prefix the user has write +access to. + +This patch fixes that step of the build process by passing the makefile's path +prefixes to install-core-dist.pl (ensuring precompilation output goes to the +right place), and modifying it to *only* use that path (ensuring it doesn't try +to mkdir where it shouldn't). This isn't a 100% solution, but it fixes enough +to unblock packaging work on a few distros. + +Thanks to mst++ for doing almost all of the legwork here, crux++ for an initial +patch that gave us a few pointers to work from, and nine++ for giving us some +Boxing Day fun ☺ +--- + tools/build/Makefile-JVM.in | 2 +- + tools/build/Makefile-Moar.in | 2 +- + tools/build/install-core-dist.pl | 3 ++- + 3 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tools/build/Makefile-JVM.in b/tools/build/Makefile-JVM.in +index 11e17810265d..0a3095114e0a 100644 +--- a/tools/build/Makefile-JVM.in ++++ b/tools/build/Makefile-JVM.in +@@ -391,7 +391,7 @@ j-install: j-all tools/build/create-jvm-runner.pl tools/build/install-core-dist. + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/resources + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/bin + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/short +- .@slash@$(J_RUNNER) tools/build/install-core-dist.pl ++ .@slash@$(J_RUNNER) tools/build/install-core-dist.pl $(DESTDIR)$(PERL6_LANG_DIR) + $(PERL) tools/build/create-jvm-runner.pl install "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS) + $(PERL) tools/build/create-jvm-runner.pl install-debug "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS) + +diff --git a/tools/build/Makefile-Moar.in b/tools/build/Makefile-Moar.in +index 1e586d92a1fa..670b89c20774 100644 +--- a/tools/build/Makefile-Moar.in ++++ b/tools/build/Makefile-Moar.in +@@ -246,7 +246,7 @@ m-install: m-all tools/build/create-moar-runner.pl tools/build/install-core-dist + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/resources + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/bin + $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/site/short +- .@slash@$(M_RUNNER) tools/build/install-core-dist.pl ++ .@slash@$(M_RUNNER) tools/build/install-core-dist.pl $(DESTDIR)$(PERL6_LANG_DIR) + $(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" + $(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" + $(CHMOD) 755 $(DESTDIR)$(PREFIX)/bin/perl6-m$(M_BAT) +diff --git a/tools/build/install-core-dist.pl b/tools/build/install-core-dist.pl +index 0990b2676a10..ba14b20828d8 100644 +--- a/tools/build/install-core-dist.pl ++++ b/tools/build/install-core-dist.pl +@@ -9,7 +9,8 @@ my %provides = + "experimental" => "lib/experimental.pm6", + ; + +-CompUnit::RepositoryRegistry.repository-for-name('perl').install( ++PROCESS::<$REPO> := CompUnit::RepositoryRegistry.repository-for-spec("inst#@*ARGS[0]"); ++$*REPO.install( + Distribution.new( + name => "CORE", + auth => "perl", +-- +2.6.4 + 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 new file mode 100644 index 0000000..1c5f1af --- /dev/null +++ b/dev-lang/rakudo/files/2015.12/0002-Add-RAKUDO_PRECOMP_PREFIX-env-var.patch @@ -0,0 +1,27 @@ +From 4fe18ce14c87c4d63f18db3c38cf32733ba72c31 Mon Sep 17 00:00:00 2001 +From: Anthony Parsons <flusse...@gmail.com> +Date: Sun, 27 Dec 2015 02:02:22 +0000 +Subject: [PATCH 2/2] Add RAKUDO_PRECOMP_PREFIX env var + +As suggested by nine++, with some name tweaking +--- + docs/running.pod | 6 ++++++ + src/core/CompUnit/RepositoryRegistry.pm | 2 +- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/core/CompUnit/RepositoryRegistry.pm b/src/core/CompUnit/RepositoryRegistry.pm +index f70f22105849..e628ee659c7c 100644 +--- a/src/core/CompUnit/RepositoryRegistry.pm ++++ b/src/core/CompUnit/RepositoryRegistry.pm +@@ -75,7 +75,7 @@ class CompUnit::RepositoryRegistry { + } + #?endif + +- my $prefix := nqp::p6box_s( ++ my $prefix := %*ENV<RAKUDO_PRECOMP_PREFIX> // nqp::p6box_s( + nqp::concat(nqp::atkey(nqp::backendconfig,'prefix'),'/share/perl6') + ); + +-- +2.6.4 + 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 new file mode 100644 index 0000000..3b43b62 --- /dev/null +++ b/dev-lang/rakudo/files/2015.12/0003-Rewrite-and-complete-the-manpage-s-env-var-list.patch @@ -0,0 +1,125 @@ +From c6d759c5df9ae4cb539717ecba99f80efe35d9ac Mon Sep 17 00:00:00 2001 +From: Anthony Parsons <flusse...@gmail.com> +Date: Sun, 27 Dec 2015 01:28:19 +0000 +Subject: [PATCH 1/2] Rewrite and complete the manpage's env var list + +This includes everything I could find with an `ack 'ENV<' src/` command. +Descriptions have been expanded on, expected datatypes are shown, and items are +now broken up into categories. +--- + docs/running.pod | 81 +++++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 66 insertions(+), 15 deletions(-) + +diff --git a/docs/running.pod b/docs/running.pod +index 9ed7571df54e..53fb577c8481 100644 +--- a/docs/running.pod ++++ b/docs/running.pod +@@ -44,39 +44,90 @@ The supported values for C<--target> are: + For C<--profile-filename>, specifying a name ending in C<.json> will write a raw JSON profile dump. + The default if this is omitted is C<profile-I<[timestamp]>.html>. + +-=head1 List of env vars used in Rakudo ++=head1 ENVIRONMENT VARIABLES ++ ++Rakudo's behavior can be tweaked by a (growing) number of environment variables; this section ++attempts to document all those currently in use. ++ ++=head2 Module Loading ++ ++=over ++ ++=item C<RAKUDOLIB>, C<PERL6LIB> (I<Str>; F<src/core/Inc.pm>) ++ ++Appends a comma-delimited list of paths to C<@INC>. C<RAKUDOLIB> is evaluated first. ++ ++=item C<RAKUDO_MODULE_DEBUG> (I<Bool>; F<src/Perl6/ModuleLoader.pm>) ++ ++Causes the module loader to print debugging information to standard error. ++ ++=back ++ ++=head2 Error Message Verbosity and Strictness + + =over + +-=item C<RAKUDOLIB>, C<PERL6LIB> (src/core/Inc.pm) ++=item C<RAKUDO_NO_DEPRECATIONS> (I<Bool>; F<src/core/Deprecations.pm>) ++ ++If true, suppresses deprecation warnings triggered by the C<is DEPRECATED> trait. + +-Appends a delimited list of paths to C<@INC>. C<RAKUDOLIB> is evaluated first. ++=item C<RAKUDO_DEPRECATIONS_FATAL> (I<Bool>; F<src/core/Deprecations.pm>) + +-=item C<RAKUDO_MODULE_DEBUG> (src/Perl6/ModuleLoader.pm) ++If true, deprecation warnings become thrown exceptions. + +-If set to a non-false value, causes the module loader to print debugging information to standard +-error. ++=item C<RAKUDO_VERBOSE_STACKFRAME> (I<UInt>; F<src/core/Backtrace.pm>) + +-=item C<RAKUDO_ERROR_COLOR> (src/core/Exception.pm) ++Displays source code in stack frames surrounded by the specified number of lines of context. ++ ++=item C<RAKUDO_BACKTRACE_SETTING> (I<Bool>; F<src/core/Backtrace.pm>) ++ ++Controls whether .setting files are included in backtraces. ++ ++=back ++ ++=head2 Affecting Precompilation ++ ++=over ++ ++=item C<RAKUDO_PRECOMP_DIST> (F<src/core/CompUnit/PrecompilationRepository.pm>) ++ ++=item C<RAKUDO_PRECOMP_LOADING> (F<src/core/CompUnit/PrecompilationRepository.pm>) ++ ++=item C<RAKUDO_PRECOMP_WITH> (F<src/core/CompUnit/PrecompilationRepository.pm>) ++ ++These are internal variables for passing serialized state to precompilation jobs in child processes. ++Please do not set them manually. ++ ++=back ++ ++=head2 Other ++ ++=over ++ ++=item C<RAKUDO_ERROR_COLOR> (I<Bool>; F<src/core/Exception.pm>) + + Controls whether to emit ANSI codes for error highlighting. Defaults to true if unset, except on + Win32. + +-=item C<RAKUDO_MAX_THREADS> (src/core/ThreadPoolScheduler.pm) ++=item C<RAKUDO_MAX_THREADS> (I<UInt>; F<src/core/ThreadPoolScheduler.pm>) + +-Controls the maximum number of threads used by a thread pool. ++Override the default maximum number of threads used by a thread pool. + +-=item C<RAKUDO_NO_DEPRECATIONS> (src/core/Deprecations.pm) ++=item C<TMPDIR>, C<TEMP>, C<TMP> (I<Str>; F<src/core/IO/Spec/>) + +-If set, suppresses deprecation warnings. ++The C<IO::Spec::Unix.tmpdir> method will return C<$TMPDIR> if it points to a directory with full ++access permissions for the current user, with a fallback default of C<'/tmp'>. + +-=item C<RAKUDO_VERBOSE_STACKFRAME> (src/core/Backtrace.pm) ++C<IO::Spec::Cygwin> and C<IO::Spec::Win32> use more Win32-appropriate lists which also include the ++C<%TEMP%> and C<%TMP%> environment variables. + +-Controls stack frame verbosity. ++=item C<PATH>, C<Path> (I<Str>; F<src/core/IO/Spec/>) + +-=item C<RAKUDO_BACKTRACE_SETTING> (src/core/Backtrace.pm) ++The C<IO::Spec::Unix.path> method splits C<$PATH> as a shell would; i.e. as a colon-separated list. ++C<IO::Spec::Cygwin> inherits this from C<IO::Spec::Unix>. + +-Controls whether .setting files are included in backtraces. ++C<IO::Spec::Win32.path> will read the first defined of either C<%PATH%> or C<%Path%> as a ++semicolon-delimited list. + + =back + +-- +2.6.4 + diff --git a/dev-lang/rakudo/rakudo-2015.12.ebuild b/dev-lang/rakudo/rakudo-2015.12.ebuild new file mode 100644 index 0000000..29ce6a7 --- /dev/null +++ b/dev-lang/rakudo/rakudo-2015.12.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +DESCRIPTION="A compiler for the Perl 6 programming language" +HOMEPAGE="http://rakudo.org" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git" + inherit git-r3 +else + SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz" +fi + +LICENSE="Artistic-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +# TODO: add USE="javascript" once that's usable in nqp +IUSE="java +moar test" +REQUIRED_USE="|| ( java moar )" + +RDEPEND="=dev-lang/nqp-${PV}*:=[moar?,java?]" +DEPEND="${RDEPEND} + >=dev-lang/perl-5.10" + +PATCHES=(${FILESDIR}/${PV}) + +src_configure() { + local BACKENDS + + # The order of this list determines which gets installed as "perl6" + use moar && BACKENDS+="moar," + use java && BACKENDS+="jvm," + #use javascript && BACKENDS+="js," + + perl Configure.pl --prefix=/usr --sysroot=/usr --backends=$BACKENDS +} + +src_test() { + export RAKUDO_PRECOMP_PREFIX=$(mktemp -d) + default +}