On Tue, Mar 12, 2019 at 10:19:52PM +0200, Efraim Flashner wrote: > * gnu/packages/perl6.scm (rakudo): New variable. > --- > gnu/packages/perl6.scm | 70 +++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 69 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm > index 344bb4efda..9659361309 100644 > --- a/gnu/packages/perl6.scm > +++ b/gnu/packages/perl6.scm > @@ -25,7 +25,8 @@ > #:use-module (gnu packages bdw-gc) > #:use-module (gnu packages libevent) > #:use-module (gnu packages libffi) > - #:use-module (gnu packages pkg-config)) > + #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages tls)) > > (define-public moarvm > (package > @@ -159,3 +160,70 @@ Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a > runtime footprint as it can, while still providing a Perl 6 object model and > regular expression engine for the virtual machine.") > (license license:artistic2.0))) > + > +(define-public rakudo > + (package > + (name "rakudo") > + (version "2018.12") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/rakudo/rakudo.git") > + (commit version))) > + (file-name (git-file-name name version)) This can also be downloaded from https://rakudo.perl6.org/downloads/rakudo/ > + (sha256 > + (base32 > + "1g8n1vmpi3g6qd0bj59lwgmcqdwlyg3nciyxbdnq7bw7qp12k0p4")))) > + (build-system perl-build-system) > + (arguments > + '(#:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'patch-source-date > + (lambda _ > + (substitute* "tools/build/gen-version.pl" > + (("gmtime") "gmtime(0)")) > + #t)) > + (add-after 'patch-source-shebangs 'patch-more-shebangs > + (lambda _ > + (substitute* '("tools/build/create-js-runner.pl" > + "tools/build/create-moar-runner.p6" > + "tools/build/create-jvm-runner.pl" > + "src/core/Proc.pm6") > + (("/bin/sh") (which "sh"))) > + #t)) > + (replace 'configure > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (nqp (assoc-ref inputs "nqp"))) > + (invoke "perl" "./Configure.pl" > + "--backend=moar" > + "--with-nqp" (string-append nqp "/bin/nqp") > + "--prefix" out)))) > + ;; This is the recommended tool to use for installing perl6 modules as > + ;; a distribution. See: https://github.com/ugexe/zef/issues/117 "This is the recommended tool for distro maintainers to install perl6 modules systemwide" > + (add-after 'install 'install-dist-tool > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (dest (string-append out "/share/perl6/tools"))) > + (install-file "tools/install-dist.p6" dest) > + (substitute* (string-append dest "/install-dist.p6") > + (("/usr/bin/env perl6") > + (string-append out "/bin/perl6")))) Should we install the rest of the 'dist' folder and the 'resources' folder? > + #t))))) > + (inputs > + `(("moarvm" ,moarvm) > + ("nqp" ,nqp) > + ("openssl" ,openssl))) > + (home-page "https://rakudo.org/") > + (native-search-paths > + (list (search-path-specification > + (variable "PERL6LIB") > + (separator ",") > + (files '("share/perl6/lib" > + "share/perl6/site/lib" > + "share/perl6/vendor/lib"))))) > + (synopsis "Perl 6 Compiler") > + (description "Rakudo Perl is a compiler that implements the Perl 6 > +specification and runs on top of several virtual machines.") Can this be lengthened? > + (license license:artistic2.0))) > -- > 2.21.0 > -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted