Latest version (2014.04) of Rakudo Star supports MoarVM backend. However, on Portage, nqp already has had moar USE flag but Rakudo hasn't. It's nice if we can run Rakudo + MoarVM on Gentoo. (Note: I tried to build Rakudo + MoarVM with modified rakudo-2014.04.ebuild, but the installed binary is broken; paths to ${D}/usr/... are embedded somewhere.) Reproducible: Always
+ 26 May 2014; Patrick Lauer <patrick@gentoo.org> +rakudo-2014.05.ebuild, + metadata.xml: + Bump, add moarvm support I've also noticed the broken paths with moar, so that's a bit annoying ...
Created attachment 383318 [details] A patched moarvm live ebuild. I believe this bug report belongs to dev-lang/moarvm. Both of the ebuilds for dev-lang/moarvm have perl Configure.pl --prefix="${D}/usr"|| die in their src_configure. which should(probably) be perl Configure.pl --prefix="/usr"|| die The attached moarvm live ebuild has been working for me (minimal testing). Note, however, that I am using live ebuilds for rakudo, nqp, and moarvm. So further changes may be needed for non-live installs. (assuming that I am not mistaking this bug for another one).
Created attachment 383320 [details] A patched moarvm 2014.07 ebuild. Tested with rakudo and nqp 2014.07 ebuilds. Correction on the problem, it is both the src_configure and src_install. the src_install needed DESTDIR to be set to the temporary install location. ## dev-lang/moarvm src_configure() { perl Configure.pl --prefix="/usr"|| die } src_install() { emake DESTDIR="${ED}" install }
(In reply to FireFish5000 from comment #2) > perl Configure.pl --prefix="/usr"|| die For Gentoo Prefix, --prefix="${EPREFIX}/usr" might be better, right?
(In reply to OGINO Masanori from comment #4) > (In reply to FireFish5000 from comment #2) > > perl Configure.pl --prefix="/usr"|| die > > For Gentoo Prefix, --prefix="${EPREFIX}/usr" might be better, right? I would imagine so, however, a similar change would be needed for the nqp and rakudo ebuilds (If they haven't been changed already on your portage tree). Although I am not a Gentoo developer(nor a Prefix user), I would suggest that you try it and see. (It sounds correct to me)
Created attachment 385206 [details, diff] A patch for moarvm-2014.09.ebuild to address the problem
I confirmed that src_configure with ${EPREFIX} and src_install with ${D} (used in the default src_install) works with both Gentoo Linux (amd64) and Gentoo Prefix (on amd64 Linux).
(In reply to OGINO Masanori from comment #7) > I confirmed that src_configure with ${EPREFIX} and src_install with ${D} > (used in the default src_install) works with both Gentoo Linux (amd64) and > Gentoo Prefix (on amd64 Linux). As FireFish5000 said, NQP and Rakudo also need to patch to work with Prefix. Should I make separated issues to fix the problems in NQP and Rakudo, or is it ok to attach patches for them to this issue too?
(In reply to OGINO Masanori from comment #6) > Created attachment 385206 [details, diff] [details, diff] The attached patch fixed the issue, at least for me, a non-prefix-user.
Created attachment 386764 [details, diff] A patch for nqp-2014.09.ebuild to use ${EPREFIX}
Created attachment 386766 [details, diff] A patch for rakudo-2014.09.ebuild to use ${EPREFIX}
I attached patches for NQP and Rakudo. (Let me know if I should create new bugs for them)
Created attachment 405392 [details, diff] A patch for moarvm-2015.06 to fix the bug.
(In reply to OGINO Masanori from comment #13) > Created attachment 405392 [details, diff] [details, diff] > A patch for moarvm-2015.06 to fix the bug. NQP and Rakudo use /usr on configure phase and ${ED} on install phase, so new patch also does. Does it make sense?
Tis a bit unfortunate. $ perl6-m -e 'say <<ok>>' Could not find Perl6::BOOTSTRAP in any of: . blib /var/tmp/portage/dev-lang/moarvm-2015.07/image/usr/share/perl6/lib /var/tmp/portage/dev-lang/moarvm-2015.07/image/usr/share/nqp/lib ...
Applied to 2016.01. Looks good to me, thanks for figuring this out
(In reply to Patrick Lauer from comment #16) > Applied to 2016.01. Looks good to me, thanks for figuring this out $ perl6-m -e 'say <<ok>>' While looking for '/var/tmp/portage/dev-lang/moarvm-2016.01/image/usr/share/nqp/lib/Perl6/BOOTSTRAP.moarvm': no such file or directory at gen/moar/m-ModuleLoader.nqp:93 (/usr/share/nqp/lib/Perl6/ModuleLoader.moarvm::69)
Hmm, I've depclean'd dev-lang/moarvm, dev-lang/nqp and dev-lang/rakudo, then emerged virtual/perl6-0. Then it worked! Previously, I had installed dev-lang/moarvm, dev-lang/nqp and dev-lang/rakudo manually. There should be some sort of issue with the emerge order.
Oops, virtual/perl6 was from perl6 overlay (which seems outdated, btw).
The problem has been fixed now, so I guess it is time to fix this bug, isn't it? $ perl6 --version This is Rakudo version 2016.03 built on MoarVM version 2016.03 implementing Perl 6.c. $ perl6 -e 'say <<ok>>' ok
(In reply to OGINO Masanori from comment #20) > The problem has been fixed now, so I guess it is time to fix this bug, isn't > it? > > $ perl6 --version > This is Rakudo version 2016.03 built on MoarVM version 2016.03 > implementing Perl 6.c. > $ perl6 -e 'say <<ok>>' > ok OK, acting on this. Otherwise please reopen.