# New Ticket Created by  Dominique Dumont 
# Please include the string:  [perl #126894]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=126894 >


Hello

I'm trying to create a rakudo-star package for Debian using
pre-installed moar and nqp.

rakudo compilation works fine but I cannot figure out a way to
pre-compile and install the perl6 modules delivered with rakudo-star.

Debian packaging system requires that a package is built as normal
user (not root) and that the build products of a package are installed
in a temporary location. This means that the pre-compilation step
should use perl6-m installed in the temporary location (with the
moar-vm libraries also installed in the temp location).

When the package is installed on a Debian system, all files are
installed in /usr.

To compile a package, I've tried:

 perl Configure.pl --prefix=/usr --backends=moar
 -> this fails because make install will try (and fail) to install file in /usr 
as a normal user

 perl Configure.pl --prefix=/usr --sdkroot=/path-to-tmp-dir --backends=moar
 -> this fails because Configure.pl tries to find nqp and moar in 
/path-to-tmp-dir/usr/bin

  perl Configure.pl --prefix=/path-to-tmp-dir/usr  --backends=moar
 -> this fails because /usr/bin/perl6-m ends up with temporary paths

  perl Configure.pl --prefix=/usr --backends=moar
  export DESTDIR=/path-to-tmp-dir ; make install && make modules-install
  -> module precompilation fails because perl6-m search for libraries in 
/usr/share but
     these files are not installed there yet.

To create Debian package, I need a new option to Configure.pl to
specify a temporary installation location:
- which is not used to locate pre-installed nqp and moar 
- which is used to load rakudo libraries when rakudo is used to build modules
- which is not delivered in final installation step 

If this solution is too difficult, another possibility is to add a way
to build rakudo-star modules using a pre-installed rakudo.

All the best

 

Reply via email to