Message ID | 20190312202014.31224-3-efraim@flashner.co.il |
---|---|
State | Accepted |
Headers | show |
Series | Add perl6 | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
cbaines/applying patch | success | Successfully applied |
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 >
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)) + (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 + (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")))) + #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.") + (license license:artistic2.0)))