savagezen / pkgbuild

ARCHIVE - MOVED TO GITLAB | Arch User Repository Packages
https://gitlab.com/savagezen/pkgbuild
4 stars 3 forks source link

Rakudo Star: Installation of modules doesn't respect DESTDIR #2

Open savagezen opened 8 years ago

savagezen commented 8 years ago

Rakudo Star

gtbjj :

== Installing modules for MoarVM cd modules/panda && /home/austin/git/pkgbuild/rakudo-star/pkg/rakudo-star/usr/bin/perl6-m bootstrap.pl Unhandled exception: While looking for '/usr/share/perl6/runtime/perl6.moarvm': no such file or directory Makefile:65: recipe for target 'modules-install-m' failed make: *** [modules-install-m] Error 1 ==> ERROR: A failure occurred in package(). Aborting...

ptahpeteh:

I've got the same. Looks like feature or bug introduced with 2016.01. The problem is that installation of modules doesn't respect DESTDIR setting. As a result it's impossible to package rakudo-star. I found these:

https://github.com/rakudo/star/issues/65 https://github.com/rakudo/star/issues/43 https://github.com/voidlinux/void-packages/pull/3536

I'll check what has changed between ver 2015.11 and 2016.01. Maybe I can think of some patch?

savagezen commented 8 years ago

@ptahpeteh :

ptahpeteh commented 8 years ago

@gtbjj: Prepending sudo to make install doesn't help. I still have:

== Installing modules for MoarVM  
cd modules/panda && /home/rafalp/pkgs/rakudo-star/pkg/rakudo-star/usr/bin/perl6-m bootstrap.pl  
Unhandled exception: While looking for '/usr/share/perl6/runtime/perl6.moarvm': no such file or directory  
Makefile:65: recipe for target 'modules-install-m' failed  
make: *** [modules-install-m] Error 1  
==> ERROR: A failure occurred in package().  
    Aborting...  

I tried to do some patching but with no success. I edited perl6-m from build directory to correct libpaths (originally libpaths pointed to /usr/share/perl6 which at this stage is empty). But then I got:

== Installing modules for MoarVM  
cd modules/panda && /home/rafalp/pkg/rakudo-star/perl6 bootstrap.pl --prefix=/usr/share/perl6  
Unhandled exception: Cannot call method 'load_setting' on a null object  
   at <unknown>:1  (/home/rafalp/pkg/rakudo-star/pkg/rakudo-star/usr/share/nqp/lib/Perl6  /ModuleLoader.moarvm:<dependencies+deserialize>:12)  
 from <unknown>:1  (/home/rafalp/pkg/rakudo-star/pkg/rakudo-star/usr/share/perl6/runtime/perl6.moarvm:<dependencies+deserialize>:6)  
Makefile:67: recipe for target 'modules-install-m' failed  

Then I tried to install rakudo before installing rakudo-star (so that perl6 is already there at /usr/bin when rakudo-star installs modules). But again failed:

==> Bootstrapping Panda  
Earlier failures:  
 Failed to open file /usr/share/perl6/site/panda/projects.json: permission denied  
  in any  at /usr/share/perl6/runtime/CORE.setting.moarvm line 1  
  in sub MAIN at bootstrap.pl line 50  
  in block <unit> at bootstrap.pl line 8  

Final error:  
 Cannot call say(Failure: Str); none of these signatures match:  
    (Mu $: *%_)  
  in sub MAIN at bootstrap.pl line 51  
  in block <unit> at bootstrap.pl line 8  

However after adding sudo as you suggested the build goes farther till making package but it doesn't have any modules only perl6 inside.

I'm starting to think that it's not possible to package panda and other modules. Building from source panda installs itself in user home directory ~/.perl6 and not in /usr. Which is weird and I don't know how makepkg would handle this.

Maybe it'd be better to make rakudo-star sort of meta-package? So it depends on rakudo and all other modules. But as of now you can't install panda from aur because of broken dependency...

savagezen commented 8 years ago

@ptahpeteh : You're right, it wasn't the sudo that worked. I forgot that I had installed rakudobrew as a backup. So, along the same lines as installing rakudo first, but for me things seemed to work okay except where I noted before.

The meta-package might work. In the AUR panda has a dependency of perl6-panda (which installed fine for me after rakudo). Not sure if the separate package would be worth it when you can install the star module(s) via $ panda install Task::Star

ptahpeteh commented 8 years ago

@gtbjj: One more question. Do you get usable panda after installing perl6-panda? Mine reports an error when I try to install Task::Star:

Found no writable directory into which panda could be installed

Sudo does not help.

savagezen commented 8 years ago

Yes, I got a usable panda that installed Task::Star from what I can tell. I pulled down the latest rakudo-star tarball, untar'd it the, ran panda from inside.

savagezen commented 7 years ago

UPDATE: This issue still persists. I've tracked it down to Makefile:66 which references Makefile:15 where STAR_BIN_DIR is declared. The issues is that in building the package we want PREFIX_DIR to be /usr, but need to look for the install binaries (exclusive to Rakudo Star variant) in $srcdir/$pkgname-$pkgver"/rakudo/