Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot create Debian package with current rakudo-star build system #4857

Closed
p6rt opened this issue Dec 13, 2015 · 7 comments
Closed

Cannot create Debian package with current rakudo-star build system #4857

p6rt opened this issue Dec 13, 2015 · 7 comments
Labels

Comments

@p6rt
Copy link

p6rt commented Dec 13, 2015

Migrated from rt.perl.org#126894 (status was 'resolved')

Searchable as RT126894$

@p6rt
Copy link
Author

p6rt commented Dec 13, 2015

From dod@debian.org

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

@p6rt
Copy link
Author

p6rt commented Jan 13, 2016

From dod@debian.org

On Sun Dec 13 08​:48​:42 2015, dod@​debian.org wrote​:

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

I've managed to build rakudo-star with a fair number of patches. I'll provide a link once Debian git system is back online

@p6rt
Copy link
Author

p6rt commented Jan 26, 2016

From @niner

Right now the best way to handle the issue with the precomp files is to delete them after the installation step, before packing the files into the archive. I do the same in the openSUSE rakudo package​:
https://build.opensuse.org/package/view_file/home:niner9:branches:devel:languages:parrot/rakudo/rakudo.spec?expand=1
(lines 53 and 54)

Unfortunately the precomp files created during module installation are not even used right now. Instead, modules are precompiled again on first load and the files stored into ~/.perl6

Work is ongoing to improve this situation and also make it easier for packagers at the same time.

That said, distribution packages should really be based on the compiler releases, not on rakudo star and the components packaged individually.

@p6rt
Copy link
Author

p6rt commented Jan 26, 2016

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Apr 26, 2019

From @niner

I'm quite sure all the issues in that ticket have been resolved.
nqp's Configure.pl has a working --with-moar option and rakudo's Configure.pl has a working --with-nqp option. There's the Staging repository and tools/install-dist.p6 for packaging modules.
FWIW openSUSE compiles all packages with an unpriviledged user in a BUILDROOT directory and has been shipping precompiled Perl 6 module packages for years.

Examples​:
https://build.opensuse.org/package/view_file/devel:languages:perl6/rakudo/rakudo.spec?expand=1
https://build.opensuse.org/package/view_file/devel:languages:perl6/perl6-Inline-Perl5/perl6-Inline-Perl5.spec?expand=1

@p6rt
Copy link
Author

p6rt commented Apr 26, 2019

@niner - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Apr 26, 2019
@p6rt
Copy link
Author

p6rt commented Apr 27, 2019

From dod38fr@gmail.com

Le Fri, 26 Apr 2019 08​:28​:23 -0700, nine@​detonation.org a écrit :

I'm quite sure all the issues in that ticket have been resolved.

Yes. We managed to create separate Debian packages for moar, nqp and rakudo. We are also creating package for individual Perl6 modules, but we're still for from providing all the packages found in rakudo-star.

I'm sorry that I forgot about this bug I opened a while ago.

Thanks for taking care of it.

All the best

Dod

@p6rt p6rt added the build label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant