From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 02 00:27:41 2022 Received: (at 58235) by debbugs.gnu.org; 2 Oct 2022 04:27:41 +0000 Received: from localhost ([127.0.0.1]:46072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oeqZo-0004gI-6l for submit@debbugs.gnu.org; Sun, 02 Oct 2022 00:27:41 -0400 Received: from out0.migadu.com ([94.23.1.103]:56637) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oeqZk-0004g7-18 for 58235@debbugs.gnu.org; Sun, 02 Oct 2022 00:27:39 -0400 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codesections.com; s=key1; t=1664684854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t3ridZ7ixk0MCtu8uRWsD48QcwGxlKUrPEZIDCRx50c=; b=hO4023+F4PSyltJcVa6dk5jSGndNyqSbYGlTXpXyz3ATvUq4x+RbzKUeWKZphDAUOL1WGu Xn6fhV7pBlhxuQUMlud6CXnHT0UO8B90FXIpANXdtnCszDDBwMTQK8KjjW7dXSfCGOPlyK eASv+t4zMVTd5GxGKckgzZSyom+veuGpMbPoFNvxGVUfcTkKYiBEI3EZ0UEoHmm9Tr4+1Z S00JoKyuiVKq7yjkCnuqTKJ6+s2UuW/24M1Gcf3BNYSwd7U1XI8QAqIqtzVy0NWpdtlsfb dShs+yewWq26wZW0/CEktTNqCN9AGSXMsRnTnX/3BXHDWMgSpVpCLHlLFx6fow== Date: Sun, 02 Oct 2022 04:27:33 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: "Daniel Sockwell" Message-ID: <4f73f996ad1242eed18abb2324412903@codesections.com> Subject: Re: [bug#58235] [PATCH] rakdo-build-system (2 of 3) To: 58235@debbugs.gnu.org In-Reply-To: <7a3e89c7546867c54d76824ac8f47cb1@codesections.com> References: <7a3e89c7546867c54d76824ac8f47cb1@codesections.com> X-Migadu-Flow: FLOW_OUT X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 58235 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) As previously indicated, this is the second of three patches to update=0A= the Raku ecosystem. This patch contains updates to the core Raku package= s=0Athat are used to build/test the rest of the ecosystem; these updates = align=0Athe core packages with the changes to rakudo-build-system in the = previous=0Apatch.=0A=0AFor clarity, I split changes to different packages= into separate commits.=0AThe final patch in this series will complete th= e update process for the=0ARaku ecosystem.=0A=0ABest,=0ADaniel=0A=0AFrom = 8a76462dfb478f0d7290e1facecf51153257be8f Mon Sep 17 00:00:00 2001=0AMessa= ge-Id: <8a76462dfb478f0d7290e1facecf51153257be8f.1664684430.git.daniel@co= desections.com>=0AFrom: Daniel Sockwell =0ADate:= Sat, 1 Oct 2022 19:10:04 -0400=0ASubject: [PATCH 1/5] gnu: moarvm: Updat= e 2019.03 -> 2022.07=0A=0A* gnu/packages/perl6.scm Update MoarVM to 2022.= 07=0AChange build system from perl-build-system to gnu-build-system=0AUpd= ate synopsis and description=0A---=0A gnu/packages/perl6.scm | 97 +++++++= +++++++++++++++--------------------=0A 1 file changed, 51 insertions(+), = 46 deletions(-)=0A=0Adiff --git a/gnu/packages/perl6.scm b/gnu/packages/p= erl6.scm=0Aindex dab9dd477b..b4e1ac8c27 100644=0A--- a/gnu/packages/perl6= .scm=0A+++ b/gnu/packages/perl6.scm=0A@@ -22,11 +22,14 @@ (define-module = (gnu packages perl6)=0A #:use-module (guix download)=0A #:use-module = (guix git-download)=0A #:use-module (guix packages)=0A+ #:use-module (= guix build-system gnu)=0A #:use-module (guix build-system perl)=0A #:= use-module (guix build-system rakudo)=0A+ #:use-module (gnu packages)=0A= #:use-module (gnu packages bdw-gc)=0A #:use-module (gnu packages lib= event)=0A #:use-module (gnu packages libffi)=0A+ #:use-module (gnu pac= kages perl)=0A #:use-module (gnu packages multiprecision)=0A #:use-mo= dule (gnu packages pkg-config)=0A #:use-module (gnu packages tls))=0A@@= -34,65 +37,67 @@ (define-module (gnu packages perl6)=0A (define-public m= oarvm=0A (package=0A (name "moarvm")=0A- (version "2019.03")=0A+= (version "2022.07")=0A (source=0A- (origin=0A- (metho= d url-fetch)=0A- (uri (string-append "https://moarvm.org/releases/= MoarVM-"=0A- version ".tar.gz"))=0A- (s= ha256=0A- (base32=0A- "017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7= alw1vvsckw95190xc14"))=0A- (modules '((guix build utils)))=0A- = (snippet=0A- '(begin=0A- ;(delete-file-recursively= "3rdparty/dynasm") ; JIT=0A- (delete-file-recursively "3rdpar= ty/dyncall")=0A- (delete-file-recursively "3rdparty/freebsd")= =0A- (delete-file-recursively "3rdparty/libatomicops")=0A- = (delete-file-recursively "3rdparty/libuv")=0A- (delete= -file-recursively "3rdparty/libtommath")=0A- (delete-file-recu= rsively "3rdparty/msinttypes")=0A- #t))))=0A- (build-system= perl-build-system)=0A+ (origin=0A+ (method url-fetch)=0A+ = (uri (string-append "https://moarvm.org/releases/MoarVM-" version ".tar= .gz"))=0A+ (sha256 (base32 "0ijvdd7jyq990zyxrlv8pqhf53q20qhbjly6cna= gj9pq2r6z0zik"))=0A+ (modules '((guix build utils)))=0A+ (sni= ppet=0A+ '(begin (for-each=0A+ delete-file-recursi= vely=0A+ '(;"3rdparty/dyncall" ; upstream prefers dyncall= to libffi=0A+ ;"3rdparty/dynasm" ; needed for JIT=0A+= ;"3rdparty/freebsd" ; freebsd/memmem.o is used on linu= x=0A+ "3rdparty/libatomicops"=0A+ "3r= dparty/libtommath"=0A+ "3rdparty/libuv"=0A+ = "3rdparty/msinttypes"))))))=0A+ (build-system gnu-build-system)= =0A (arguments=0A- '(#:phases=0A+ `(#:test-target "test"=0A+ = #:phases=0A (modify-phases %standard-phases=0A (rep= lace 'configure=0A (lambda* (#:key inputs outputs #:allow-othe= r-keys)=0A- (let ((out (assoc-ref outputs "out"))=0A- = (pkg-config (assoc-ref inputs "pkg-config")))=0A+ = (let* ((out (assoc-ref outputs "out"))=0A+ = (perl (string-append (assoc-ref inputs "perl") "/bin/perl"))=0A+ = (dest (string-append out "/moar"))=0A+ = (pkg-config (assoc-ref inputs "pkg-config")))=0A (set= env "CFLAGS" "-fcommon")=0A (setenv "LDFLAGS" (string-appe= nd "-Wl,-rpath=3D" out "/lib"))=0A- (invoke "perl" "Configu= re.pl"=0A- "--prefix" out=0A- = "--pkgconfig" (string-append pkg-config "/bin/pkg-config")=0A- = "--has-libtommath"=0A+ (invoke perl "Configure= .pl"=0A+ "--mimalloc"=0A "--= has-libatomic_ops"=0A- "--has-libffi"=0A- = "--has-libuv")))))))=0A+ "--has-libtom= math"=0A+ "--has-libuv"=0A+ ;= "--has-dyncall" ; TODO: package dyncall for guix=0A+ = "--toolchain" "gnu"=0A+ "--os" "linux"=0A+ = "--pkgconfig" (string-append pkg-config "/bin/pkg-config"= )=0A+ "--prefix" out)))))))=0A (home-page "http= s://moarvm.org/")=0A ;; These should be inputs but moar.h can't find = them when building rakudo=0A- (propagated-inputs=0A- (list libatom= ic-ops libffi libtommath-1.0 libuv))=0A- (native-inputs=0A- (list = pkg-config))=0A- (synopsis "VM for NQP And Rakudo Perl 6")=0A+ (pro= pagated-inputs (list libatomic-ops libtommath libuv))=0A+ (native-inpu= ts (list pkg-config perl))=0A+ (synopsis "Virtual machine for the Raku= programming language")=0A (description=0A- "Short for \"Metamode= l On A Runtime\", MoarVM is a modern virtual machine=0A-built for the Rak= udo Perl 6 compiler and the NQP Compiler Toolchain. Highlights=0A-includ= e:=0A+ "MoarVM (\"Metamodel On A Runtime\") is a modern virtual machi= ne built for=0A+the Raku programming language, NQP, and the Rakudo Raku c= ompiler. MoarVM's=0A+features include:=0A =0A @itemize=0A-@item Great Un= icode support, with strings represented at grapheme level=0A-@item Dynami= c analysis of running code to identify hot functions and loops, and=0A-pe= rform a range of optimizations, including type specialization and inlinin= g=0A-@item Support for threads, a range of concurrency control constructs= , and=0A-asynchronous sockets, timers, processes, and more=0A-@item Gener= ational, parallel, garbage collection=0A-@item Support for numerous langu= age features, including first class functions,=0A-exceptions, continuatio= ns, runtime loading of code, big integers and interfacing=0A-with native = libraries.=0A+@item Just-in-time compilation and optimization of running = code hot functions/loops.=0A+Optimizations include type specialization, c= ode inlining/elimination, and on-stack=0A+replacement.=0A+@item Unusually= strong Unicode support due to representing strings as=0A+graphemes and t= he compiled-in data from the Unicode Character Database=0A+@item Support = various Raku language features, such as delimited continuations,=0A+first= -class functions, resumable exceptions, runtime code loading, bounded=0A+= serialization, and native calling/pointer manipulation.=0A+@item The low-= level concurrency primitives required for Raku's concurrency=0A+system.= =0A @end itemize")=0A (license license:artistic2.0)))=0A =0A-- =0A2.3= 7.3=0A=0AFrom e5416f42bd130a1306bf44c1628188a32f0222da Mon Sep 17 00:00:0= 0 2001=0AMessage-Id: =0AIn-Reply-To: <8a76462dfb478f0d7290e1facec= f51153257be8f.1664684430.git.daniel@codesections.com>=0AReferences: <8a76= 462dfb478f0d7290e1facecf51153257be8f.1664684430.git.daniel@codesections.c= om>=0AFrom: Daniel Sockwell =0ADate: Sat, 1 Oct = 2022 19:21:20 -0400=0ASubject: [PATCH 2/5] gnu: nqp-configure: add packag= e=0A=0A* gnu/packages/perl6.scm: add nqp-configure=0AAdd package needed a= s input to NQP and Rakudo=0A---=0A gnu/packages/perl6.scm | 25 ++++++++++= +++++++++++++++=0A 1 file changed, 25 insertions(+)=0A=0Adiff --git a/gnu= /packages/perl6.scm b/gnu/packages/perl6.scm=0Aindex b4e1ac8c27..1c125c02= ae 100644=0A--- a/gnu/packages/perl6.scm=0A+++ b/gnu/packages/perl6.scm= =0A@@ -23,6 +23,7 @@ (define-module (gnu packages perl6)=0A #:use-modul= e (guix git-download)=0A #:use-module (guix packages)=0A #:use-module= (guix build-system gnu)=0A+ #:use-module (guix build-system copy)=0A = #:use-module (guix build-system perl)=0A #:use-module (guix build-syste= m rakudo)=0A #:use-module (gnu packages)=0A@@ -101,6 +102,30 @@ (define= -public moarvm=0A @end itemize")=0A (license license:artistic2.0)))= =0A =0A+(define-public nqp-configure=0A+ (let ((commit "9b98931e0bfb8c4a= ac61590edf5074e63aa8ea4b" )=0A+ (revision "0"))=0A+ (package=0A= + (name "nqp-configure")=0A+ (version (git-version "0.1" revisi= on commit))=0A+ (source=0A+ (origin=0A+ (method git-fe= tch)=0A+ (uri (git-reference (url "https://github.com/Raku/nqp-co= nfigure")=0A+ (commit commit)))=0A+ (= sha256 (base32 "1vc1q11kjb964jal9dhgf5vwp371a3rfw7gj987n33kzli7a10n0"))= =0A+ (file-name (git-file-name name version))))=0A+ (build-s= ystem copy-build-system)=0A+ (arguments=0A+ '(#:install-plan= =0A+ '(("lib" "lib")=0A+ ("bin" "bin"))))=0A+ (syn= opsis "Configuration utility for NQP and Rakudo installations")=0A+ = (description "A utility that simplifies the process of compiling and=0A+i= nstalling NQP (Not Quite Perl) and the Rakudo Raku compiler.")=0A+ (= license license:artistic2.0)=0A+ (home-page "https://github.com/Raku= /nqp-configure" ))))=0A+=0A (define-public nqp=0A (package=0A (name= "nqp")=0A-- =0A2.37.3=0A=0AFrom 1652e35754b06a54ff1d90fc3372f10bfb149898= Mon Sep 17 00:00:00 2001=0AMessage-Id: <1652e35754b06a54ff1d90fc3372f10b= fb149898.1664684430.git.daniel@codesections.com>=0AIn-Reply-To: <8a76462d= fb478f0d7290e1facecf51153257be8f.1664684430.git.daniel@codesections.com>= =0AReferences: <8a76462dfb478f0d7290e1facecf51153257be8f.1664684430.git.d= aniel@codesections.com>=0AFrom: Daniel Sockwell = =0ADate: Sat, 1 Oct 2022 19:26:30 -0400=0ASubject: [PATCH 3/5] gnu: nqp: = Update 2019.03 -> 2022.07=0A=0A* gnu/packages/perl6.scm: Update nqp to 20= 22.07=0AAdd patch to use nqp-configure as input (in place of fetching fro= m GitHub)=0AUpdate synopsis and description=0A---=0A .../nqp.do-not-pull-= files-via-git.patch | 26 +++++++=0A gnu/packages/perl6.scm = | 69 +++++++++----------=0A 2 files changed, 57 insertions= (+), 38 deletions(-)=0A create mode 100644 gnu/packages/patches/nqp.do-no= t-pull-files-via-git.patch=0A=0Adiff --git a/gnu/packages/patches/nqp.do-= not-pull-files-via-git.patch b/gnu/packages/patches/nqp.do-not-pull-files= -via-git.patch=0Anew file mode 100644=0Aindex 0000000000..b99919286f=0A--= - /dev/null=0A+++ b/gnu/packages/patches/nqp.do-not-pull-files-via-git.pa= tch=0A@@ -0,0 +1,26 @@=0A+# Don't fetch nqp-configure from git (Guix supp= lies it as an input)=0A+diff --git a/Configure.pl b/Configure.patched.pl= =0A+index ded227d..1fd59c8 100755=0A+--- a/Configure.pl=0A++++ b/Configur= e.patched.pl=0A+@@ -11,20 +11,6 @@ use File::Spec;=0A+ use File::Path;=0A= + use FindBin;=0A+ =0A+-BEGIN {=0A+- # Download / Update submodules=0A= +- my $set_config =3D !qx{git config nqp.initialized};=0A+- if ( !-= e '3rdparty/nqp-configure/LICENSE' ) {=0A+- my $code =3D system($^= X, 'tools/build/update-submodules.pl', Cwd::cwd(), @ARGV);=0A+- ex= it 1 if $code >> 8 !=3D 0;=0A+- $set_config =3D 1;=0A+- }=0A+- = if ($set_config) {=0A+- system("git config submodule.recurse tr= ue");=0A+- system("git config nqp.initialized 1");=0A+- }=0A+-}= =0A+-=0A+ use lib ( "$FindBin::Bin/tools/lib",=0A+ "$FindBin::Bin/3rd= party/nqp-configure/lib", );=0A+ use NQP::Config qw;=0Adif= f --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm=0Aindex 1c125c0= 2ae..af85df0aca 100644=0A--- a/gnu/packages/perl6.scm=0A+++ b/gnu/package= s/perl6.scm=0A@@ -129,19 +129,19 @@ (define-public nqp-configure=0A (defi= ne-public nqp=0A (package=0A (name "nqp")=0A- (version "2019.03"= )=0A+ (version "2022.07")=0A (source=0A- (origin=0A- (= method url-fetch)=0A- (uri (string-append "https://rakudo.perl6.or= g/downloads/nqp/nqp-"=0A- version ".tar.gz"))= =0A- (sha256=0A- (base32=0A- "183zhll13fx416s3hkg= 4bkvib77kyr857h0nydgrl643fpacxp83"))=0A- (modules '((guix build ut= ils)))=0A+ (origin=0A+ (method url-fetch)=0A+ (uri (strin= g-append=0A+ "https://github.com/Raku/nqp/releases/download/2= 022.07/nqp-"=0A+ version ".tar.gz"))=0A+ (sha256 (base3= 2 "0s124fl2kjahbhr52n92pw9gv1flr099kmlg04358ak7dl81q22q"))=0A+ (pat= ches (search-patches "nqp.do-not-pull-files-via-git.patch"))=0A+ (m= odules '((guix build utils)))=0A (snippet=0A '(begin=0A-= (delete-file-recursively "3rdparty") #t))))=0A+ (d= elete-file-recursively "3rdparty")))))=0A (build-system perl-build-sy= stem)=0A (arguments=0A '(#:phases=0A@@ -152,43 +152,36 @@ (defin= e-public nqp=0A "tools/build/gen-js-cross-run= ner.pl"=0A "tools/build/gen-js-runner.pl"=0A = "tools/build/install-js-runner.pl"=0A- = "tools/build/install-moar-runner.pl"=0A- = "tools/build/gen-moar-runner.pl"=0A = "t/nqp/111-spawnprocasync.t"=0A "t/nqp= /113-run-command.t")=0A- (("/bin/sh") (which "sh")))=0A- = #t))=0A- (add-after 'unpack 'patch-source-date=0A- = (lambda _=0A- (substitute* "tools/build/gen-version.pl"= =0A- (("gmtime") "gmtime(0)"))=0A- #t))=0A- = (add-after 'unpack 'remove-failing-test=0A- ;; One subtest= fails for unknown reasons=0A- (lambda _=0A- (delet= e-file "t/nqp/019-file-ops.t")=0A- #t))=0A+ (("= /bin/sh") (which "sh")))))=0A (replace 'configure=0A = (lambda* (#:key inputs outputs #:allow-other-keys)=0A- (let (= (out (assoc-ref outputs "out"))=0A- (moar (assoc-ref i= nputs "moarvm")))=0A+ (let ((out (assoc-ref outputs "o= ut"))=0A+ (moar (assoc-ref inputs "moarvm"))=0A+ = (nqp-config (assoc-ref inputs "nqp-configure")))=0A+ = (setenv "PERL5LIB" (string-append=0A+ = nqp-config "/lib:" (or (getenv "PERL5LIB")=0A+ = "")))=0A+ ; MoarV= M has some M_AST files that NQP expects to share=0A+ (copy-= recursively (string-append moar "/share/nqp/lib")=0A+ = (string-append out "/share/nqp/lib"))=0A+ (mk= dir-p (string-append out "/share/nqp/lib/short"))=0A (inv= oke "perl" "Configure.pl"=0A "--backends=3Dmoar"= =0A "--with-moar" (string-append moar "/bin/moar")= =0A "--prefix" out)))))))=0A- (inputs=0A- (= list moarvm))=0A- (home-page "https://github.com/perl6/nqp")=0A- (s= ynopsis "Not Quite Perl")=0A- (description "This is \"Not Quite Perl\"= -- a lightweight Perl 6-like=0A-environment for virtual machines. The k= ey feature of NQP is that it's designed=0A-to be a very small environment= (as compared with, say, perl6 or Rakudo) and is=0A-focused on being a hi= gh-level way to create compilers and libraries for virtual=0A-machines li= ke MoarVM, the JVM, and others.=0A+ (inputs (list moarvm))=0A+ (nat= ive-inputs (list nqp-configure))=0A+ (home-page "https://github.com/Ra= ku/nqp")=0A+ (synopsis "Small programming language built for writing c= ompilers and VMs")=0A+ (description "NQP is \"Not Quite Perl\", a ligh= tweight Raku-like=0A+programming language designed for compilers and VM c= reation. NQP is used to=0A+implement the Rakudo compiler for Raku and to= integrate it with VMs such as=0A+MoarVM and the Java Virtual Machine.=0A= =0A-Unlike a full-fledged implementation of Perl 6, NQP strives to have = as small a=0A-runtime footprint as it can, while still providing a Perl 6= object model and=0A-regular expression engine for the virtual machine.")= =0A+NQP attempts to minimize its runtime footprint while providing Raku's= object=0A+model and regular expression engine.")=0A (license license= :artistic2.0)))=0A =0A (define-public rakudo=0A-- =0A2.37.3=0A=0AFrom 9f9= cd47ce2293f7dfdab07f024a246af000ed03a Mon Sep 17 00:00:00 2001=0AMessage-= Id: <9f9cd47ce2293f7dfdab07f024a246af000ed03a.1664684430.git.daniel@codes= ections.com>=0AIn-Reply-To: <8a76462dfb478f0d7290e1facecf51153257be8f.166= 4684430.git.daniel@codesections.com>=0AReferences: <8a76462dfb478f0d7290e= 1facecf51153257be8f.1664684430.git.daniel@codesections.com>=0AFrom: Danie= l Sockwell =0ADate: Sun, 2 Oct 2022 00:01:18 -04= 00=0ASubject: [PATCH 5/5] gnu: perl6-zef: Update 0.6.7 -> 0.14.2=0A=0A* g= nu/packages/perl6.scm: Update perl6-zef to 0.14.2=0AUpdate synopsis and d= escription=0ASet install directory to integrate with Guix-installed Raku = packages=0A---=0A .../perl6-zef.config-interpolation.patch | 42 ++++= ++++++++++++++=0A gnu/packages/perl6.scm | 44 ++++= +++++++--------=0A 2 files changed, 67 insertions(+), 19 deletions(-)=0A = create mode 100644 gnu/packages/patches/perl6-zef.config-interpolation.pa= tch=0A=0Adiff --git a/gnu/packages/patches/perl6-zef.config-interpolation= .patch b/gnu/packages/patches/perl6-zef.config-interpolation.patch=0Anew = file mode 100644=0Aindex 0000000000..357dfd18e6=0A--- /dev/null=0A+++ b/g= nu/packages/patches/perl6-zef.config-interpolation.patch=0A@@ -0,0 +1,42 = @@=0A+From f9e4306cba875999a44286bd8c585ef9e84a7a88 Mon Sep 17 00:00:00 2= 001=0A+From: Daniel Sockwell =0A+Date: Fri, 30 S= ep 2022 17:43:04 -0400=0A+Subject: [PATCH 4/4] Improve support for env va= rs in config.json=0A+=0A+The "StoreDir" and "TempDir" previously allowed = for limited=0A+interpolation (limited to $*HOME and $*TMPDIR). This comm= it adds=0A+interpolation of $*XDG_DATA_HOME, $*XDG_CONFIG_HOME, and=0A+$*= XDG_STATE_HOME with default values from the XDG spec, see=0A+https://spec= ifications.freedesktop.org/basedir-spec/basedir-spec-latest.html=0A+=0A+I= t also extends the interpolation for the same values to "DefaultCUR",=0A+= which also specifies a path.=0A+---=0A+ lib/Zef/Config.rakumod | 11 +++++= ++++--=0A+ 1 file changed, 9 insertions(+), 2 deletions(-)=0A+=0A+diff --= git a/lib/Zef/Config.rakumod b/lib/Zef/Config.rakumod=0A+index f77c6be..4= 362b17 100644=0A+--- a/lib/Zef/Config.rakumod=0A++++ b/lib/Zef/Config.rak= umod=0A+@@ -4,8 +4,15 @@ module Zef::Config {=0A+ our sub parse-file(= $path) {=0A+ my %config =3D %(Zef::from-json( $path.IO.slurp ));= =0A+ =0A+- for %config.grep(*.key.ends-with('Dir')) {=0A+- = %config{$_.key} =3D $_.value.subst(/'{$*HOME}' || '$*HOME'/, $*HOME /= / $*TMPDIR, :g);=0A++ for %config.grep({.key.ends-with('Dir') || .= key eq 'DefaultCUR'}) {=0A++ my $home =3D $*HOME // $*TMPDIR;= =0A++ %config{$_.key} =3D $_.value.subst(/'{$*XDG_DATA_HOME}' = || '$*XDG_DATA_HOME'/,=0A++ %*EN= V // "$home/.local/share", :g);=0A++ %config{$_= .key} =3D $_.value.subst(/'{$*XDG_CONFIG_HOME}' || '$*XDG_CONFIG_HOME'/,= =0A++ %*ENV // = "$home/.config", :g);=0A++ %config{$_.key} =3D $_.value.subst(= /'{$*XDG_STATE_HOME}' || '$*XDG_STATE_HOME'/,=0A++ = %*ENV // "$home/.local/bin", :g);=0A++= %config{$_.key} =3D $_.value.subst(/'{$*HOME}' || '$*HOME'/, = $home, :g);=0A+ %config{$_.key} =3D $_.value.subst(/'{$*TMPDI= R}' || '$*TMPDIR'/, $*TMPDIR, :g);=0A+ }=0A+ =0A+-- =0A+2.37.3=0A= +=0Adiff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm=0Aindex = e571920e53..a47d55a901 100644=0A--- a/gnu/packages/perl6.scm=0A+++ b/gnu/= packages/perl6.scm=0A@@ -803,30 +803,36 @@ (define-public perl6-xml-write= r=0A (define-public perl6-zef=0A (package=0A (name "perl6-zef")=0A-= (version "0.6.7")=0A+ (version "0.14.2")=0A (source=0A- (= origin=0A- (method git-fetch)=0A- (uri (git-reference=0A- = (url "https://github.com/ugexe/zef")=0A- (comm= it (string-append "v" version))))=0A- (file-name (git-file-name na= me version))=0A- (sha256=0A- (base32=0A- "07n7g1x= w2c4g860rs890gx85vyhdq0ysgwbrnzw6q905jph2bkv7"))))=0A+ (origin=0A+ = (method git-fetch)=0A+ (uri (git-reference (url "https://github= .com/ugexe/zef")=0A+ (commit (string-append "v"= version))))=0A+ (file-name (git-file-name name version))=0A+ = (sha256 (base32 "09lgpkz93w5g9bsw44rag763fa8857bvjj9r4wwvnnawykl4lkzr"))= =0A+ ;; patch submitted upstream, https://github.com/ugexe/zef/pull= /470=0A+ (patches (search-patches "perl6-zef.config-interpolation.p= atch"))))=0A (build-system rakudo-build-system)=0A (arguments=0A-= '(#:with-zef? #f=0A+ '(#:test-runner "rakudo" ; to avoid bootstr= apping issues=0A #:phases=0A (modify-phases %standard-phase= s=0A- (replace 'check=0A+ (add-after 'unpack 'set-config-= values=0A (lambda _=0A- (setenv "HOME" "/tmp")=0A-= (invoke "perl6" "-I." "bin/zef" "--debug"=0A- = "--tap-harness" "test" "."))))))=0A+ ;; Upstream recomm= ends editing config.json to set system defaults=0A+ (substitu= te* "resources/config.json"=0A+ (("DefaultCUR.+$")=0A+ = "DefaultCUR\" : [\"$*XDG_DATA_HOME/raku/repo\"],\n")))))))=0A = (home-page "https://github.com/ugexe/zef")=0A- (synopsis "Perl6 Mo= dule Management")=0A- (description "Zef is a Perl 6 package (module) m= anager. It can be used to=0A-download and install Perl 6 modules in your= home directory or as a system-wide=0A-module.")=0A+ (synopsis "Raku L= anguage Package Management")=0A+ (description "Zef is a language packa= ge manager for the Raku programming=0A+language. It can be used to searc= h for, download, install, and manage Raku=0A+modules to your home directo= ry.=0A+=0A+As an end user, you should typically prefer to install executa= ble Raku=0A+packages via Guix when possible. However, Zef provides parti= cular support for=0A+using Raku packages while developing other Raku prog= rams, so developers may=0A+prefer Zef in that situation. Zef and Guix pa= ckages are installed such that=0A+they should work smoothly together.")= =0A (license license:artistic2.0)))=0A-- =0A2.37.3