From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:41476) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOsId-0003UE-AQ for guix-patches@gnu.org; Thu, 09 May 2019 19:18:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hOsIc-00025f-ER for guix-patches@gnu.org; Thu, 09 May 2019 19:18:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51371) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hOsIc-00025H-9j for guix-patches@gnu.org; Thu, 09 May 2019 19:18:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hOsIb-0004Wo-S4 for guix-patches@gnu.org; Thu, 09 May 2019 19:18:01 -0400 Subject: [bug#35318] [PATCH] Update cargo-build-system to expand package inputs Resent-Message-ID: Content-Type: multipart/mixed; boundary="Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7" Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) From: Ivan Petkov In-Reply-To: <2C03880B-F90E-4949-9637-DC918B6D40A0@gmail.com> Date: Thu, 9 May 2019 16:17:46 -0700 Message-Id: <074E4899-C4FF-4A76-8E97-093378D2F8D5@gmail.com> References: <87ftpsnhal.fsf@gnu.org> <2C03880B-F90E-4949-9637-DC918B6D40A0@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35318@debbugs.gnu.org Cc: Chris Marusich --Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Updated the patch series as per Ludo=E2=80=99s feedback. Thanks, =E2=80=94Ivan --Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7 Content-Disposition: attachment; filename=0001-build-system-cargo-expand-transitive-package-inputs.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-build-system-cargo-expand-transitive-package-inputs.patch" Content-Transfer-Encoding: quoted-printable =46rom=203ac8a092fad93754e323f7d9bec2af1a3912b36f=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Ivan=20Petkov=20=0A= Date:=20Tue,=2016=20Apr=202019=2003:37:44=20-0700=0ASubject:=20[PATCH=20= 1/3]=20build-system/cargo:=20expand=20transitive=20package=20inputs=0A=0A= *=20guix/build/cargo:=20(package-target-inputs):=20Add=20it.=0A= (expand-inputs):=20Add=20it.=0A(expand-native-inputs):=20Add=20it.=0A= (package-transitive-dependencies):=20Add=20it.=0A(lower):=20Use=20new=20= variables.=0A---=0A=20guix/build-system/cargo.scm=20|=20105=20= +++++++++++++++++++++++++++++++++++-=0A=201=20file=20changed,=20103=20= insertions(+),=202=20deletions(-)=0A=0Adiff=20--git=20= a/guix/build-system/cargo.scm=20b/guix/build-system/cargo.scm=0Aindex=20= dc137421e9..811a044a8c=20100644=0A---=20a/guix/build-system/cargo.scm=0A= +++=20b/guix/build-system/cargo.scm=0A@@=20-29,6=20+29,8=20@@=0A=20=20=20= #:use-module=20(guix=20build-system)=0A=20=20=20#:use-module=20(guix=20= build-system=20gnu)=0A=20=20=20#:use-module=20(ice-9=20match)=0A+=20=20= #:use-module=20(ice-9=20vlist)=0A+=20=20#:use-module=20(srfi=20srfi-1)=0A= =20=20=20#:use-module=20(srfi=20srfi-26)=0A=20=20=20#:export=20= (%cargo-build-system-modules=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= %cargo-utils-modules=0A@@=20-121,6=20+123,105=20@@=20to=20NAME=20and=20= VERSION."=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20#:outputs=20(cons=20"src"=20outputs)=0A= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20#:guile-for-build=20guile-for-build))=0A=20=0A= +(define=20(package-transitive-dependencies=20inputs)=0A+=20=20"Return=20= the=20closure=20of=20INPUTS=20when=20considering=20the=20'inputs'=20and=0A= +'propagated-inputs'=20edges.=20=20Omit=20duplicate=20inputs,=20except=20= for=20those=0A+already=20present=20in=20INPUTS=20itself.=0A+=0A+This=20= is=20implemented=20as=20a=20breadth-first=20traversal=20such=20that=20= INPUTS=20is=0A+preserved,=20and=20only=20duplicate=20extracted=20inputs=20= are=20removed.=0A+=0A+Forked=20from=20((guix=20packages)=20= transitive-inputs)=20since=20this=20extraction=0A+uses=20slightly=20= different=20rules=20compared=20to=20the=20rest=20of=20guix=20(i.e.=20we=0A= +extract=20more=20than=20just=20propagated-inputs)."=0A+=20=20(define=20= (seen?=20seen=20item=20outputs)=0A+=20=20=20=20;;=20FIXME:=20We're=20= using=20pointer=20identity=20here,=20which=20is=20extremely=20sensitive=0A= +=20=20=20=20;;=20to=20memoization=20in=20package-producing=20= procedures;=20see=0A+=20=20=20=20;;=20.=0A+=20= =20=20=20(match=20(vhash-assq=20item=20seen)=0A+=20=20=20=20=20=20((_=20= .=20o)=20(equal?=20o=20outputs))=0A+=20=20=20=20=20=20(_=20=20=20=20=20=20= =20#f)))=0A+=0A+=20=20(let=20loop=20((inputs=20=20=20=20=20inputs)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20(result=20=20=20=20=20'())=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20(propagated=20'())=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20(first?=20=20=20=20=20#t)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20(seen=20=20=20=20=20=20=20vlist-null))=0A+=20=20=20=20(match=20= inputs=0A+=20=20=20=20=20=20(()=0A+=20=20=20=20=20=20=20(if=20(null?=20= propagated)=0A+=20=20=20=20=20=20=20=20=20=20=20(reverse=20result)=0A+=20= =20=20=20=20=20=20=20=20=20=20(loop=20(reverse=20(concatenate=20= propagated))=20result=20'()=20#f=20seen)))=0A+=20=20=20=20=20=20(((and=20= input=20(label=20(?=20package?=20package)=20outputs=20...))=20rest=20= ...)=0A+=20=20=20=20=20=20=20(if=20(and=20(not=20first?)=20(seen?=20seen=20= package=20outputs))=0A+=20=20=20=20=20=20=20=20=20=20=20(loop=20rest=20= result=20propagated=20first?=20seen)=0A+=20=20=20=20=20=20=20=20=20=20=20= (loop=20rest=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(cons=20= input=20result)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cons=20(append=20(package-inputs=20package)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (package-propagated-inputs=20package))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20propagated)=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20first?=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(vhash-consq=20package=20outputs=20seen))))=0A+=20=20=20=20= =20=20((input=20rest=20...)=0A+=20=20=20=20=20=20=20(loop=20rest=20(cons=20= input=20result)=20propagated=20first?=20seen)))))=0A+=0A+(define*=20= (expand-inputs=20inputs)=0A+=20=20"Return=20the=20transitive=20target=20= inputs=20for=20each=20package=20in=20INPUTS.=0A+=0A+Cargo=20requires=20= all=20transitive=20crate=20dependencies=20to=20be=20available=20in=20its=20= index,=0A+even=20if=20they=20are=20optional=20(this=20is=20so=20it=20can=20= generate=20deterministic=0A+Cargo.lock=20files=20regardless=20of=20the=20= target=20platform=20or=20enabled=20features).=0A+=0A+Rather=20than=20= burden=20the=20package=20definition=20to=20expand=20these,=20we'll=20= automate=0A+that=20process=20in=20the=20build=20system."=0A+=20=20= (package-transitive-dependencies=20inputs))=0A+=0A+(define*=20= (expand-native-inputs=20native-inputs)=0A+=20=20"Return=20the=20= transitive=20target=20inputs=20for=20each=20package=20in=20= NATIVE-INPUTS.=0A+=0A+We=20need=20all=20transitive=20crate=20= dependencies=20for=20any=20cargo=20dev-dependencies,=0A+but=20this=20is=20= only=20needed=20when=20building/testing=20a=20crate=20directly=0A+(i.e.=20= we=20will=20never=20need=20transitive=20dev-dependencies=20for=20any=20= dependency=0A+crates).=0A+=0A+In=20addition,=20we=20need=20to=20modify=20= any=20native-inputs=20to=20avoid=20any=20apparent=0A+cycles.=20Cargo=20= does=20not=20permit=20cyclic=20dependencies=20between=20crates,=20= however,=0A+it=20permits=20cycles=20to=20occur=20via=20dev-dependencies.=20= For=20example,=20if=20crate=20X=0A+depends=20on=20crate=20Y,=20crate=20= Y's=20tests=20could=20pull=20in=20crate=20X=20to=20to=20verify=0A= +everything=20builds=20properly=20(this=20is=20a=20rare=20scenario,=20= but=20it=20it=20happens=20for=0A+example=20with=20the=20`proc-macro2`=20= and=20`quote`=20crates).=20This=20is=20allowed=20by=20cargo=0A+because=20= tests=20are=20built=20as=20a=20pseudo-crate=20which=20happens=20to=20= depend=20on=20the=0A+X=20and=20Y=20crates,=20forming=20an=20acyclic=20= graph.=0A+=0A+Cargo=20ultimately=20needs=20only=20the=20crate=20sources=20= available=20when=20doing=20a=20build.=0A+Ultimately,=20if=20a=20cycle=20= is=20detected,=20we=20can=20break=20it=20by=20replacing=20the=20current=0A= +crate=20we're=20trying=20to=20build=20with=20a=20no-op=20build=20which=20= only=20packages=20the=20crate=0A+source;=20cargo=20will=20then=20find=20= the=20source=20available=20in=20its=20index=20and=20build=20things=0A= +properly."=0A+=20=20(map=0A+=20=20=20=20(lambda=20(dep)=0A+=20=20=20=20=20= =20(match=20dep=0A+=20=20=20=20=20=20=20((name=20input=20rest=20...)=0A+=20= =20=20=20=20=20=20=20;;=20TODO:=20Starting=20out=20real=20simple=20by=20= ensuring=20no=20native-inputs=20are=0A+=20=20=20=20=20=20=20=20;;=20= actually=20built=20so=20we=20don't=20accidentally=20hit=20a=20cycle.=20= We=20can=20revisit=0A+=20=20=20=20=20=20=20=20;;=20this=20later=20and=20= more=20intelligently=20replace=20any=20dependency=20on=20the=20cycle=0A+=20= =20=20=20=20=20=20=20;;=20root=20with=20a=20version=20of=20the=20root=20= with=20#:skip-build?=20enabled.=0A+=20=20=20=20=20=20=20=20;;=0A+=20=20=20= =20=20=20=20=20;;=20Right=20now=20this=20means=20that=20if=20a=20package=20= shows=20up=20in=20both=20input=0A+=20=20=20=20=20=20=20=20;;=20and=20= native-input=20closures,=20we'll=20try=20to=20build=20it's=20src=20= output=20twice.=0A+=20=20=20=20=20=20=20=20;;=0A+=20=20=20=20=20=20=20=20= ;;=20This=20also=20means=20that=20we're=20potentially=20setting=20the=20= #:skip-build?=0A+=20=20=20=20=20=20=20=20;;=20flag=20on=20non=20= cargo-build-system=20packages,=20but=20this=20should=20be=20okay=0A+=20=20= =20=20=20=20=20=20;;=20for=20now.=0A+=20=20=20=20=20=20=20=20(let*=20= ((translated-input=20(package=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(inherit=20= input)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(inputs=20'())=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(propagated-inputs=20'())=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (native-inputs=20'())=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(arguments=20= '(#:skip-build?=20#t)))))=0A+=20=20=20=20=20=20=20=20=20=20`(,name=20= ,translated-input=20,@rest)))))=0A+=20=20=20= (package-transitive-dependencies=20native-inputs)))=0A+=0A=20(define*=20= (lower=20name=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20#:key=20= source=20inputs=20native-inputs=20outputs=20system=20target=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(rust=20(default-rust))=0A@@=20= -139,13=20+240,13=20@@=20to=20NAME=20and=20VERSION."=0A=20=20=20=20=20=20= =20=20=20=20(host-inputs=20`(,@(if=20source=0A=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= `(("source"=20,source))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'())=0A-=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20,@inputs=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= ,@(expand-inputs=20inputs)=0A=20=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20;;=20Keep=20the=20standard=20inputs=20= of=20'gnu-build-system'=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20,@(standard-packages)))=0A=20=20=20=20=20=20=20= =20=20=20(build-inputs=20`(("cargo"=20,rust=20"cargo")=0A=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20("rustc"=20= ,rust)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20,@native-inputs))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20,@(expand-native-inputs=20= native-inputs)))=0A=20=20=20=20=20=20=20=20=20=20(outputs=20outputs)=0A=20= =20=20=20=20=20=20=20=20=20(build=20cargo-build)=0A=20=20=20=20=20=20=20=20= =20=20(arguments=20(strip-keyword-arguments=20private-keywords=20= arguments)))))=0A--=20=0A2.21.0=0A=0A= --Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7 Content-Disposition: attachment; filename=0002-gnu-crate-add-unicode-xid.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0002-gnu-crate-add-unicode-xid.patch" Content-Transfer-Encoding: quoted-printable =46rom=20ec8509623a3b59a25a4ae995dca0f18cd5b1ce48=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Ivan=20Petkov=20=0A= Date:=20Tue,=2016=20Apr=202019=2003:40:14=20-0700=0ASubject:=20[PATCH=20= 2/3]=20gnu:=20crate:=20add=20unicode-xid=0A=0Agnu/local.mk:=20= (GNU_SYSTEM_MODULES):=20Add=20new=20file.=0Agnu/packages/crates-io.scm:=20= (rust-unicode-xid):=20New=20variable.=0A---=0A=20gnu/local.mk=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20|=20=201=20+=0A=20= gnu/packages/crates-io.scm=20|=2045=20= ++++++++++++++++++++++++++++++++++++++=0A=202=20files=20changed,=2046=20= insertions(+)=0A=20create=20mode=20100644=20gnu/packages/crates-io.scm=0A= =0Adiff=20--git=20a/gnu/local.mk=20b/gnu/local.mk=0Aindex=20= 3f97397c4a..f92db5821c=20100644=0A---=20a/gnu/local.mk=0A+++=20= b/gnu/local.mk=0A@@=20-121,6=20+121,7=20@@=20GNU_SYSTEM_MODULES=20=3D=09=09= =09=09\=0A=20=20=20%D%/packages/cpp.scm=20=09=09=09=09\=0A=20=20=20= %D%/packages/cppi.scm=09=09=09=09\=0A=20=20=20%D%/packages/cran.scm=09=09= =09=09\=0A+=20=20%D%/packages/crates-io.scm=09=09=09\=0A=20=20=20= %D%/packages/cross-base.scm=09=09=09\=0A=20=20=20%D%/packages/crypto.scm=09= =09=09\=0A=20=20=20%D%/packages/cryptsetup.scm=09=09=09\=0Adiff=20--git=20= a/gnu/packages/crates-io.scm=20b/gnu/packages/crates-io.scm=0Anew=20file=20= mode=20100644=0Aindex=200000000000..533fe0d21e=0A---=20/dev/null=0A+++=20= b/gnu/packages/crates-io.scm=0A@@=20-0,0=20+1,45=20@@=0A+;;;=20GNU=20= Guix=20---=20Functional=20package=20management=20for=20GNU=0A+;;;=20= Copyright=20=C2=A9=202019=20Ivan=20Petkov=20=0A= +;;;=0A+;;;=20This=20file=20is=20part=20of=20GNU=20Guix.=0A+;;;=0A+;;;=20= GNU=20Guix=20is=20free=20software;=20you=20can=20redistribute=20it=20= and/or=20modify=20it=0A+;;;=20under=20the=20terms=20of=20the=20GNU=20= General=20Public=20License=20as=20published=20by=0A+;;;=20the=20Free=20= Software=20Foundation;=20either=20version=203=20of=20the=20License,=20or=20= (at=0A+;;;=20your=20option)=20any=20later=20version.=0A+;;;=0A+;;;=20GNU=20= Guix=20is=20distributed=20in=20the=20hope=20that=20it=20will=20be=20= useful,=20but=0A+;;;=20WITHOUT=20ANY=20WARRANTY;=20without=20even=20the=20= implied=20warranty=20of=0A+;;;=20MERCHANTABILITY=20or=20FITNESS=20FOR=20= A=20PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;;=20GNU=20General=20Public=20= License=20for=20more=20details.=0A+;;;=0A+;;;=20You=20should=20have=20= received=20a=20copy=20of=20the=20GNU=20General=20Public=20License=0A+;;;=20= along=20with=20GNU=20Guix.=20=20If=20not,=20see=20= .=0A+=0A+(define-module=20(gnu=20packages=20= crates-io)=0A+=20=20#:use-module=20(guix=20build-system=20cargo)=0A+=20=20= #:use-module=20(guix=20download)=0A+=20=20#:use-module=20((guix=20= licenses)=20#:prefix=20license:)=0A+=20=20#:use-module=20(guix=20= packages))=0A+=0A+(define-public=20rust-unicode-xid=0A+=20=20(package=0A= +=20=20=20=20(name=20"rust-unicode-xid")=0A+=20=20=20=20(version=20= "0.1.0")=0A+=20=20=20=20(source=0A+=20=20=20=20=20=20(origin=0A+=20=20=20= =20=20=20=20=20(method=20url-fetch)=0A+=20=20=20=20=20=20=20=20(uri=20= (crate-uri=20"unicode-xid"=20version))=0A+=20=20=20=20=20=20=20=20= (file-name=0A+=20=20=20=20=20=20=20=20=20=20(string-append=20name=20"-"=20= version=20".tar.gz"))=0A+=20=20=20=20=20=20=20=20(sha256=0A+=20=20=20=20=20= =20=20=20=20=20(base32=0A+=20=20=20=20=20=20=20=20=20=20=20=20= "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"))))=0A+=20=20=20=20= (build-system=20cargo-build-system)=0A+=20=20=20=20(home-page=0A+=20=20=20= =20=20=20"https://github.com/unicode-rs/unicode-xid")=0A+=20=20=20=20= (synopsis=20"Determine=20Unicode=20XID=20related=20properties")=0A+=20=20= =20=20(description=20"Determine=20whether=20characters=20have=20the=20= XID_Start=0A+or=20XID_Continue=20properties=20according=20to=20Unicode=20= Standard=20Annex=20#31.")=0A+=20=20=20=20;;=20Dual=20licensed.=0A+=20=20=20= =20(license=20(list=20license:asl2.0=20license:expat))))=0A--=20=0A= 2.21.0=0A=0A= --Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7 Content-Disposition: attachment; filename=0003-gnu-crate-Add-proc-macro2-and-quote.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0003-gnu-crate-Add-proc-macro2-and-quote.patch" Content-Transfer-Encoding: quoted-printable =46rom=201cff79e586664fd76bb7eb97fe5228986b32d8b4=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Ivan=20Petkov=20=0A= Date:=20Tue,=2016=20Apr=202019=2003:42:27=20-0700=0ASubject:=20[PATCH=20= 3/3]=20gnu:=20crate:=20Add=20proc-macro2=20and=20quote=0A=0A*=20= gnu/packages/crates-io.scm:=20(rust-proc-macro2):=20New=20variable.=0A= (rust-quote):=20New=20variable.=0A---=0A=20gnu/packages/crates-io.scm=20= |=2048=20++++++++++++++++++++++++++++++++++++++=0A=201=20file=20changed,=20= 48=20insertions(+)=0A=0Adiff=20--git=20a/gnu/packages/crates-io.scm=20= b/gnu/packages/crates-io.scm=0Aindex=20533fe0d21e..90e08731ea=20100644=0A= ---=20a/gnu/packages/crates-io.scm=0A+++=20b/gnu/packages/crates-io.scm=0A= @@=20-43,3=20+43,51=20@@=0A=20or=20XID_Continue=20properties=20according=20= to=20Unicode=20Standard=20Annex=20#31.")=0A=20=20=20=20=20;;=20Dual=20= licensed.=0A=20=20=20=20=20(license=20(list=20license:asl2.0=20= license:expat))))=0A+=0A+(define-public=20rust-proc-macro2=0A+=20=20= (package=0A+=20=20=20=20(name=20"rust-proc-macro2")=0A+=20=20=20=20= (version=20"0.4.27")=0A+=20=20=20=20(source=0A+=20=20=20=20=20=20(origin=0A= +=20=20=20=20=20=20=20=20(method=20url-fetch)=0A+=20=20=20=20=20=20=20=20= (uri=20(crate-uri=20"proc-macro2"=20version))=0A+=20=20=20=20=20=20=20=20= (file-name=0A+=20=20=20=20=20=20=20=20=20=20(string-append=20name=20"-"=20= version=20".tar.gz"))=0A+=20=20=20=20=20=20=20=20(sha256=0A+=20=20=20=20=20= =20=20=20=20=20(base32=0A+=20=20=20=20=20=20=20=20=20=20=20=20= "05c92v787snyaq4ss16vxc9mdv6zndfgsdq8k3hnnyffmsf7ycad"))))=0A+=20=20=20=20= (build-system=20cargo-build-system)=0A+=20=20=20=20(native-inputs=0A+=20=20= =20=20=20=20`(("rust-quote"=20,rust-quote=20"src")))=0A+=20=20=20=20= (inputs=0A+=20=20=20=20=20=20`(("rust-unicode-xid"=20,rust-unicode-xid=20= "src")))=0A+=20=20=20=20(home-page=20= "https://github.com/alexcrichton/proc-macro2")=0A+=20=20=20=20(synopsis=20= "Stable=20implementation=20of=20the=20upcoming=20new=20`proc_macro`=20= API")=0A+=20=20=20=20(description=20"This=20package=20provides=20a=20= stable=20implementation=20of=20the=20upcoming=20new=0A+`proc_macro`=20= API.=20=20Comes=20with=20an=20option,=20off=20by=20default,=20to=20also=20= reimplement=20itself=0A+in=20terms=20of=20the=20upstream=20unstable=20= API.")=0A+=20=20=20=20;;=20Dual=20licensed.=0A+=20=20=20=20(license=20= (list=20license:asl2.0=20license:expat))))=0A+=0A+(define-public=20= rust-quote=0A+=20=20(package=0A+=20=20=20=20(name=20"rust-quote")=0A+=20=20= =20=20(version=20"0.6.12")=0A+=20=20=20=20(source=0A+=20=20=20=20=20=20= (origin=0A+=20=20=20=20=20=20=20=20(method=20url-fetch)=0A+=20=20=20=20=20= =20=20=20(uri=20(crate-uri=20"quote"=20version))=0A+=20=20=20=20=20=20=20= =20(file-name=0A+=20=20=20=20=20=20=20=20=20=20(string-append=20name=20= "-"=20version=20".tar.gz"))=0A+=20=20=20=20=20=20=20=20(sha256=0A+=20=20=20= =20=20=20=20=20=20=20(base32=0A+=20=20=20=20=20=20=20=20=20=20=20=20= "1nw0klza45hf127kfyrpxsxd5jw2l6h21qxalil3hkr7bnf7kx7s"))))=0A+=20=20=20=20= (build-system=20cargo-build-system)=0A+=20=20=20=20(inputs=0A+=20=20=20=20= =20=20`(("rust-proc-macro2"=20,rust-proc-macro2=20"src")))=0A+=20=20=20=20= (home-page=20"https://github.com/dtolnay/quote")=0A+=20=20=20=20= (synopsis=20"Quasi-quoting=20macro=20quote!(...)")=0A+=20=20=20=20= (description=20"Quasi-quoting=20macro=20quote!(...)")=0A+=20=20=20=20;;=20= Dual=20licensed.=0A+=20=20=20=20(license=20(list=20license:asl2.0=20= license:expat))))=0A--=20=0A2.21.0=0A=0A= --Apple-Mail=_2C46378E-E9AF-4521-97B6-762564BE25C7--