GNU bug report logs - #30831
[PATCH] gnu: rust: Update rust from 1.22.1 release to 1.24.1

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Nikolai Merinov <nikolai.merinov@HIDDEN>; Keywords: patch; dated Thu, 15 Mar 2018 21:25:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.
Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs@HIDDEN> to internal_control <at> debbugs.gnu.org. Full text available.

Message received at 30831-done <at> debbugs.gnu.org:


Received: (at 30831-done) by debbugs.gnu.org; 30 Mar 2018 13:48:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 30 09:48:24 2018
Received: from localhost ([127.0.0.1]:59571 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f1uOG-0005vI-MK
	for submit <at> debbugs.gnu.org; Fri, 30 Mar 2018 09:48:24 -0400
Received: from dd26836.kasserver.com ([85.13.145.193]:50842)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1f1uOB-0005v4-G3
 for 30831-done <at> debbugs.gnu.org; Fri, 30 Mar 2018 09:48:19 -0400
Received: from localhost (77.118.172.128.wireless.dyn.drei.com
 [77.118.172.128])
 by dd26836.kasserver.com (Postfix) with ESMTPSA id BA7143360B67;
 Fri, 30 Mar 2018 15:48:17 +0200 (CEST)
Date: Fri, 30 Mar 2018 15:48:11 +0200
From: Danny Milosavljevic <dannym@HIDDEN>
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release
 to 1.24.1
Message-ID: <20180330154811.491eea49@HIDDEN>
In-Reply-To: <87vadhhdrx.fsf@HIDDEN>
References: <874llhdocu.fsf@HIDDEN>
 <20180318195811.70c2b820@HIDDEN>
 <87a7v12qw9.fsf@HIDDEN>
 <20180324172601.070cb69d@HIDDEN>
 <87vadhhdrx.fsf@HIDDEN>
X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 boundary="Sig_/L3D7Qu8d40Boy93G5ml8S9="; protocol="application/pgp-signature"
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 30831-done
Cc: 30831-done <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--Sig_/L3D7Qu8d40Boy93G5ml8S9=
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi Nikolai,

On Tue, 27 Mar 2018 18:02:58 +0500
Nikolai Merinov <nikolai.merinov@HIDDEN> wrote:

> I checked last version of my patch over
> d591989b42088a358f33d6cf68f12efc2ad4403c (master as on March 24) and
> looks that build is reproducable. It will be helpful if you'll be able
> to check this patch also:
> https://debbugs.gnu.org/cgi/bugreport.cgi?att=3D1;msg=3D38;bug=3D30831;fi=
lename=3D0001-gnu-rust-Update-rust-to-1.24.1-froze-bootstrap-on-1..patch=20

I did now - it works for me and is reproducible.

I've thus fixed up the commit message a little and pushed this patch to mas=
ter.

Thanks!

--Sig_/L3D7Qu8d40Boy93G5ml8S9=
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlq+QBsACgkQ5xo1VCww
uqU94Qf+LbsgT3GxOJhVbPuJkeMEQ8TrgSoLA/ID0SIw/0clpAY952oWfH+o1m00
ZXki+FUkOtuA++hHheLJ6z/RMHXCZ/QDT5XLikfPfzenu918U6uCpAHUYx00pYN5
mvRu+wvkC43YAss/d7UlZxKSaCDaqH1oJQjCFkiXvVo0mP3USf/U9PI3smiwStsH
kx9uGDeC3x9rkYEHvtuJCXophiAWcRKXtR9JZPU1qU/cCreIsKz6OnHIqH9D2s9+
qCiOBy52v2hc/5H/f53IB7+BKUuHba3meaEcEkIJywU2m//UH2kE2mTl4GG4VzBh
phmQ4ndKkyQcM1V2EqHD6BW5iwejSA==
=JH+D
-----END PGP SIGNATURE-----

--Sig_/L3D7Qu8d40Boy93G5ml8S9=--




Notification sent to Nikolai Merinov <nikolai.merinov@HIDDEN>:
bug acknowledged by developer. Full text available.
Reply sent to Danny Milosavljevic <dannym@HIDDEN>:
You have taken responsibility. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 19:56:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 15:56:58 2018
Received: from localhost ([127.0.0.1]:56271 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0uiG-0000jO-AQ
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 15:56:56 -0400
Received: from sender-of-o51.zoho.com ([135.84.80.216]:21115)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rekado@HIDDEN>) id 1f0uiE-0000jF-8G
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 15:56:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1522180576; 
 s=zoho; d=elephly.net; i=rekado@HIDDEN;
 h=References:From:To:Cc:Subject:In-reply-to:Date:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID;
 l=907; bh=/0zDZZXE236iK466QaWqXvBVQbixBDsPRwGCYGfeb/E=;
 b=ITAL8O/ZudLpQ/zRqRvgNp2dDec26JMUgRO+wupYU3GZDdb/YjSLGECaOnb3KhQj
 vDcDAs7tqdekPjF5N9u/Yatx4yHu4uB5ZTUNT53B0VB0GHClwQs1YZtS42Fp/0PQHbJ
 Mp3tXBK6zasfFTMEwLZWC+ifWMTWNO3qJn8ed9Co=
Received: from localhost (port-92-200-31-51.dynamic.qsc.de [92.200.31.51]) by
 mx.zohomail.com with SMTPS id 1522180576164496.08074420992557;
 Tue, 27 Mar 2018 12:56:16 -0700 (PDT)
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
 <87in9iynhq.fsf@HIDDEN> <87zi2the25.fsf@HIDDEN>
 <20180327151942.1458e82c@HIDDEN> <87h8p1gzni.fsf@HIDDEN>
User-agent: mu4e 1.0; emacs 25.3.1
From: Ricardo Wurmus <rekado@HIDDEN>
To: Marius Bakke <mbakke@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
In-reply-to: <87h8p1gzni.fsf@HIDDEN>
X-URL: https://elephly.net
X-PGP-Key: https://elephly.net/rekado.pubkey
X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
Date: Tue, 27 Mar 2018 21:56:12 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-ID: <87k1txfg2r.fsf@HIDDEN>
X-ZohoMailClient: External
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 30831
Cc: Nikolai Merinov <nikolai.merinov@HIDDEN>,
 Danny Milosavljevic <dannym@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


Marius Bakke <mbakke@HIDDEN> writes:

>> (What Mozilla recommends is we compile Rust1, use Rust2 to compile Rust3=
, use
>> Rust3 to compile Rust4, likewise for each new release)
>
> I think we should heed upstreams advice in that case.  A long bootstrap
> chain is really only a problem during 'core-updates', no?

It=E2=80=99s a problem for people building from source and it makes for a
brittle bootstrap because any of the packages could break.  Having a
long bootstrap chain to debug on core-updates is no fun =E2=80=94 I=E2=80=
=99m saying
this as someone who has just fixed problems in the relatively simple
bootstrap chain for Java.

> IIUC mrustc only targets x86_64 currently, so I don't expect it to
> become viable for Guix in a good while.

This is a problem, but I do hope that eventually we will be able to use
mrust to bypass an ever-growing chain.

--
Ricardo






Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 18:08:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 14:08:05 2018
Received: from localhost ([127.0.0.1]:56210 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0t0v-0006Wj-Mq
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 14:08:05 -0400
Received: from out5-smtp.messagingengine.com ([66.111.4.29]:54653)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mbakke@HIDDEN>) id 1f0t0u-0006Wb-9e
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 14:08:04 -0400
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id C6CBB20EC6;
 Tue, 27 Mar 2018 14:08:03 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Tue, 27 Mar 2018 14:08:03 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h=
 cc:content-type:date:from:in-reply-to:message-id:mime-version
 :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; bh=yvqkNXfgC0tvnRLN0It+42MQ/K/VXM780bwgAboHUAQ=; b=NZm1Umoj
 E0W1Ne97plmFY1xAkHObcN/bucO/4N1/CGNjTza+bvUXMDwg07DEIuFW3rLvs4CY
 3cj8F6qnmGRPv/DOeIzWtsFMISqhcNAOJlGbyT3llZjgFnjKecVxxzGgFF8is6Pr
 qeNI92CgKOKcK/x7hslU3CRvNUqLRSYrx2wgB1v+y/q9AyQ9GcnOctkfvI9/gjk5
 Qkg800yoyeHmQrBK0oDW59vAwgrMlp8FWFmfq56DeklWPUQ7aJ+m4iyeABRSbwb3
 xaVAHgasfUss18ftLjDRy6gEmupFeS7265qL9hg8cKCAdijinB0Zov/Q0tFYiM5w
 gol8efPrWJLUIw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:date:from:in-reply-to
 :message-id:mime-version:references:subject:to:x-me-sender
 :x-me-sender:x-sasl-enc; s=fm2; bh=yvqkNXfgC0tvnRLN0It+42MQ/K/VX
 M780bwgAboHUAQ=; b=GybLk/xPh8IH3cplw06+BCmQsIf38nW1lnkkSMfPDR2uo
 8Tu4E8cm2EfjKbPYIxIviy/jzq02Y0aajWy8vR5418Lyp/2I0l/FNrCdHkza+EZW
 Y82i3e2O72Z5lxREwe+SwnjTMXTcC+kslHrjSfBN01GEAPXhEu8iFm7p4DvjCRrs
 RMZ2nLBQT583sWwY6aQd9OpEHr38VicLXhHAXw9VUMh+Pjaov9f0AqAOMT1dtdYl
 pZwNfji6s7AkOO1s4t/ilWmVVXF7Dd02NujofuVIlJKRWiB/R04YD1ofGToJUAcq
 L16sXXZqUDUc2dQfviXSJ7/0+Gsf/+RMh9aXHY9fQ==
X-ME-Sender: <xms:g4i6Wl7-ijQieMwvMcdXbGrFsFy_1xq9JKGtmVgwi1-rAPe64fqF_w>
Received: from localhost (ti0089a400-2222.bb.online.no [88.89.166.190])
 by mail.messagingengine.com (Postfix) with ESMTPA id 32D9E10253;
 Tue, 27 Mar 2018 14:08:03 -0400 (EDT)
From: Marius Bakke <mbakke@HIDDEN>
To: Danny Milosavljevic <dannym@HIDDEN>,
 Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
In-Reply-To: <20180327151942.1458e82c@HIDDEN>
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
 <87in9iynhq.fsf@HIDDEN> <87zi2the25.fsf@HIDDEN>
 <20180327151942.1458e82c@HIDDEN>
User-Agent: Notmuch/0.26 (https://notmuchmail.org) Emacs/25.3.1
 (x86_64-pc-linux-gnu)
Date: Tue, 27 Mar 2018 20:08:01 +0200
Message-ID: <87h8p1gzni.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha512; protocol="application/pgp-signature"
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 30831
Cc: Ricardo Wurmus <rekado@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

Danny Milosavljevic <dannym@HIDDEN> writes:

> Hi Nikolai,
>
> I think the incremental (first) version is the best one since you can see
> which bugs are worked around by us and which are fixed per release at a glance.
>
> But really it doesn't matter much which.
>
>> Second solution looks too verbose for me, but with first solution on
>> long chain of versions it will be very hard to manage which changes we
>> have in newest package.
>
> I hope we won't have a long chain of cumulative Rust versions in Guix.  I know
> that Rust upstream likes to do this chain of Rust1 -> Rust2 -> Rust3 -> Rust4
> but that's not really scalable - especially since even one Rust takes a day
> to compile.  We should try to get mrust [1] to work and use it to compile just
> the newest Rust.  If it doesn't work we can still fall back to one of the
> other ways later.
>
> (What Mozilla recommends is we compile Rust1, use Rust2 to compile Rust3, use
> Rust3 to compile Rust4, likewise for each new release)

I think we should heed upstreams advice in that case.  A long bootstrap
chain is really only a problem during 'core-updates', no?

IIUC mrustc only targets x86_64 currently, so I don't expect it to
become viable for Guix in a good while.

> [1] https://github.com/thepowersgang/mrustc

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlq6iIEACgkQoqBt8qM6
VPoutggAsBdPlVz5Dhu03PmZapdPp/qjLP7WAn2pf96OgcKJrxCZC+u605mNjM6j
aIO2sp/nY5rtlmcHxCrYuLyDNVdRg4zlrmbOedsnMX+IGLfTSzG5oNhAR9o2xVhc
3HSekMrbrzF0X9LRQelwz/2AnEQuITzn7zb1xqEZLaa/RksyovEBiGvz64yoRn+p
Fwf8maAf5Ukcbo98RcfDhY/6rB3Qbxar2DISSwcTIiEfT9RNlbR6Sq13bi09li3N
SQIB5IWkUI382+Q4SLa2UauvhxOfIMKOSHBcLjg6FMeL8el2+X5vihPwODyf9uEV
2KEGHGFHBsrbTFo2YBF4CtVvr88C5A==
=YLqZ
-----END PGP SIGNATURE-----
--=-=-=--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 13:19:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 09:19:48 2018
Received: from localhost ([127.0.0.1]:55322 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0oVw-00068o-I1
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:19:48 -0400
Received: from dd26836.kasserver.com ([85.13.145.193]:41994)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1f0oVu-00068g-CQ
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:19:46 -0400
Received: from localhost (77.118.203.193.wireless.dyn.drei.com
 [77.118.203.193])
 by dd26836.kasserver.com (Postfix) with ESMTPSA id F20D93360AC8;
 Tue, 27 Mar 2018 15:19:44 +0200 (CEST)
Date: Tue, 27 Mar 2018 15:19:42 +0200
From: Danny Milosavljevic <dannym@HIDDEN>
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release
 to 1.24.1
Message-ID: <20180327151942.1458e82c@HIDDEN>
In-Reply-To: <87zi2the25.fsf@HIDDEN>
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
 <87in9iynhq.fsf@HIDDEN> <87zi2the25.fsf@HIDDEN>
X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 boundary="Sig_/rsfc9yfJEYkeE74Nv5I6oyJ"; protocol="application/pgp-signature"
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 30831
Cc: Ricardo Wurmus <rekado@HIDDEN>, 30831 <at> debbugs.gnu.org,
 Ludovic =?ISO-8859-1?Q?Court=E8s?= <ludo@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--Sig_/rsfc9yfJEYkeE74Nv5I6oyJ
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi Nikolai,

I think the incremental (first) version is the best one since you can see
which bugs are worked around by us and which are fixed per release at a gla=
nce.

But really it doesn't matter much which.

> Second solution looks too verbose for me, but with first solution on
> long chain of versions it will be very hard to manage which changes we
> have in newest package.

I hope we won't have a long chain of cumulative Rust versions in Guix.  I k=
now
that Rust upstream likes to do this chain of Rust1 -> Rust2 -> Rust3 -> Rus=
t4
but that's not really scalable - especially since even one Rust takes a day
to compile.  We should try to get mrust [1] to work and use it to compile j=
ust
the newest Rust.  If it doesn't work we can still fall back to one of the
other ways later.

(What Mozilla recommends is we compile Rust1, use Rust2 to compile Rust3, u=
se
Rust3 to compile Rust4, likewise for each new release)

[1] https://github.com/thepowersgang/mrustc

--Sig_/rsfc9yfJEYkeE74Nv5I6oyJ
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlq6RO4ACgkQ5xo1VCww
uqVCfAf9FqgJxnJQF6QOHw85G7kwDVFXnMhg1CiUgYRe1O5PNcMjCt649kBsuqM0
cV77yVX1TLd2I77PAAxMWpLGtddQQuRZBsmatGitECqExX0kMIdMJWHClGWIhq6P
wIuCZISh/Vm4U+HG3hGvE0/9ovTh5B40cQwG+2pAS4Gpu++PqqA0V+YxwOAcWoJe
O0il4nM/cv8ufipbkp11orWQGHZkkxAIDdgHKo/RR/SIsG5h7DrdM8Fdym5/vocJ
jL5h0/5mpbhXY3Nb7xxJnMoUo6J6h5JzYQeIPE6mkkgNrk3aWwzGMeEj5vczHzqA
vmsAkez/1hY0RTKVESPqJSNVFOmrqw==
=irAV
-----END PGP SIGNATURE-----

--Sig_/rsfc9yfJEYkeE74Nv5I6oyJ--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 13:10:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 09:10:03 2018
Received: from localhost ([127.0.0.1]:55314 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0oMV-0005vH-JI
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:10:03 -0400
Received: from dd26836.kasserver.com ([85.13.145.193]:40770)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1f0oMT-0005um-HH
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:10:02 -0400
Received: from localhost (77.118.203.193.wireless.dyn.drei.com
 [77.118.203.193])
 by dd26836.kasserver.com (Postfix) with ESMTPSA id 6E92D3360360;
 Tue, 27 Mar 2018 15:09:59 +0200 (CEST)
Date: Tue, 27 Mar 2018 15:09:51 +0200
From: Danny Milosavljevic <dannym@HIDDEN>
To: ludo@HIDDEN (Ludovic =?ISO-8859-1?Q?Court=E8s?=)
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release
 to 1.24.1
Message-ID: <20180327150951.27a56cef@HIDDEN>
In-Reply-To: <87in9iynhq.fsf@HIDDEN>
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
 <87in9iynhq.fsf@HIDDEN>
X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 boundary="Sig_/CwfwC.Kp0SWI37nUCZJQycj"; protocol="application/pgp-signature"
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 30831
Cc: Nikolai Merinov <nikolai.merinov@HIDDEN>,
 Ricardo Wurmus <rekado@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--Sig_/CwfwC.Kp0SWI37nUCZJQycj
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

> Would it be an option to stick to 1.21?  Or is it already too difficult?
> (Apologies if this was already answered previously.)  I=E2=80=99m asking =
because
> I wonder how big the temptation will be to upgrade =E2=80=98rust-bootstra=
p=E2=80=99
> again next time.

Note: I hope that mrust (A Rust compiler written in C++) is released soon
so we won't have these bootstrap binaries any longer.

--Sig_/CwfwC.Kp0SWI37nUCZJQycj
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlq6Qp8ACgkQ5xo1VCww
uqW+fQf/YIUVpPDckNglp00777L8FaY4UQ/qQAoR6DJUr9SOkLzMl828h2t6JX+M
w9IKf3PbttS8KNjf3QqczTeN0E3a1ldWCBu6ZDhSbZpxlkYlnzfmYqztiUV4rX0X
MFSl/8upmGHdX7lnH06hxUTd+qglZd+MdNCrax8nXnggVru8HuPbaiy85o3LvD3e
sA/KlJTZW8/gGxQkWz5D1odlP+CP5a23JfjRiJQXuvje/zpTJYF+v99w+zfOuTLr
9s/E6IAg1a+/AyVrGycbdFE++gjUc9Zbf4hHrYs5veaNp2t3w60N1De62/Nhv9R9
jS5+bBB+pZF7JlLoL3d2l5aDs5g0cg==
=Tn8B
-----END PGP SIGNATURE-----

--Sig_/CwfwC.Kp0SWI37nUCZJQycj--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 13:03:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 09:03:09 2018
Received: from localhost ([127.0.0.1]:55302 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0oFp-0005lR-0F
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:03:09 -0400
Received: from mail-lf0-f43.google.com ([209.85.215.43]:33985)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1f0oFn-0005kz-6W
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 09:03:07 -0400
Received: by mail-lf0-f43.google.com with SMTP id c78-v6so28525710lfh.1
 for <30831 <at> debbugs.gnu.org>; Tue, 27 Mar 2018 06:03:07 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=nha4BfJFuXA4w27SA4KViPCFmDX/JEzCEAEewFEriLc=;
 b=K1uo5fYj3m3LfZnxtlCTsX+E1g4PmrZ1+aRvZb9W+6JE4HUjmftw8JV2EZJR1v5o/V
 YsUOqwu3GJdqy7ug8OrMSjEyeCMOdNhahnEEnawAKyMsVCl9ydP2PS2rYk159Ie+19pX
 s6jT+72WhWRzGOLpyPAXD0ucRxHs8Uawe6IpUyoNDJYXcAh873AaF84+6nuNAMok56EO
 HVDZiYKAjMlByX7HiYGiuzAE7XfRLGUQsCfRbQkfS5wjgUqV7xsqxuNwr3MO2HFXmHAv
 U/QkNA9ETp//WE1G4jI8aSsjQhqZV5AXX+PIYfcO/6MFSkIitXFF2n1Z3QRZUjUNtSlT
 BMjA==
X-Gm-Message-State: AElRT7FIvtoJVMORcLXWvcY1XHtyHu8NVciQpU5Sf0YKbpG8aEKS2T4n
 v7zSNRiBNfEsqgFPhLGyQqsV7Q==
X-Google-Smtp-Source: AG47ELsNDolMxN6XNW6tluDrZzQuokDYQpUHpNYExyStlMeVtdQc1j3tWXHXcmKmbG6t3cQTsv/EwQ==
X-Received: by 10.46.5.200 with SMTP id 191mr22084710ljf.30.1522155780937;
 Tue, 27 Mar 2018 06:03:00 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id d24sm217795ljc.24.2018.03.27.06.02.59
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 27 Mar 2018 06:03:00 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: Danny Milosavljevic <dannym@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN>
 <20180318195811.70c2b820@HIDDEN>
 <87a7v12qw9.fsf@HIDDEN>
 <20180324172601.070cb69d@HIDDEN>
Date: Tue, 27 Mar 2018 18:02:58 +0500
In-Reply-To: <20180324172601.070cb69d@HIDDEN> (Danny Milosavljevic's
 message of "Sat, 24 Mar 2018 17:26:01 +0100")
Message-ID: <87vadhhdrx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

Hi Danny,

I checked last version of my patch over
d591989b42088a358f33d6cf68f12efc2ad4403c (master as on March 24) and
looks that build is reproducable. It will be helpful if you'll be able
to check this patch also:
https://debbugs.gnu.org/cgi/bugreport.cgi?att=1;msg=38;bug=30831;filename=0001-gnu-rust-Update-rust-to-1.24.1-froze-bootstrap-on-1..patch 

Regards,
Nikolai

Danny Milosavljevic <dannym@HIDDEN> writes:

> Hi Nikolai,
>
> On Thu, 22 Mar 2018 00:02:46 +0500
> Nikolai Merinov <nikolai.merinov@HIDDEN> wrote:
>
>> I checked several times with "guix build --no-grafts --rounds=2 rust@HIDDEN"
>> with "guix gc" between tries, but it worked correctly. I tried on x86-64
>> architecture with my patch over 79f450a120068ac1d2fc4e5b4b33ae938b604f95
>> guix commit. 
>
> Weird, works fine for me with 79f450a120068ac1d2fc4e5b4b33ae938b604f95.
>
> But with the current master, 2cac8891510533338f6214fbd5ab9c2f6204e856, it fails
> as describes (I tried again, fails).




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 12:57:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 08:57:21 2018
Received: from localhost ([127.0.0.1]:55295 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0oA3-0005bk-H6
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 08:57:21 -0400
Received: from mail-lf0-f53.google.com ([209.85.215.53]:39861)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1f0o9t-0005b8-6z
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 08:57:09 -0400
Received: by mail-lf0-f53.google.com with SMTP id p142-v6so33155026lfd.6
 for <30831 <at> debbugs.gnu.org>; Tue, 27 Mar 2018 05:57:01 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=3TZcA8FkOwEHE/reLTEEgOKl2jpWRAwAINM0nkT4gEo=;
 b=SSLXMuxJ2DMzXf0FB+DutwYASRYewAIc3hWAw3dT9jM3JW1dhw5mLPEOt3NU/uM5Oe
 EgDldQ0sEoVVqAm8TErhd/EayafOs4Icljacw+sJrwVq9tp9nB1plwu5fWTRmLRXNghk
 V3jxKJvYM5/NJGSGYIB2ML3XGlPdLU/Pq7TGUAznN9yRBGDS4I7CgkHdkvPrSP2/W35f
 RkFVHGT1WbxadKIIfucXxA4tPwyab4VorWNmnfZhXREkhyHz2j1Ky4MtXdHhlzU0HA3p
 h4Vuit3I2/Zo9/N5ame7O8YF1YPWrgK4ioQq7JqPOrr7Dq7Z+Cz8GeinBJRfUF0fgS8l
 ZCUw==
X-Gm-Message-State: AElRT7GxtBWOZFcyjyN5xK7DlM2/ecr+gaYGSbj/fXE6fyTkhXV7DVd6
 VTdyO1XlSIV8SCU1PnsrsNQWIg==
X-Google-Smtp-Source: AG47ELubH0NI/60B4y4Bzi5NlV54udKfpnQGjm0Z+kDfeaEKoJIof8JjNXwF3622L6C5oDtioAwLpw==
X-Received: by 10.46.41.156 with SMTP id p28mr22842412ljp.32.1522155414536;
 Tue, 27 Mar 2018 05:56:54 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id q24-v6sm229410lff.32.2018.03.27.05.56.52
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 27 Mar 2018 05:56:53 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=)
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
 <87in9iynhq.fsf@HIDDEN>
Date: Tue, 27 Mar 2018 17:56:50 +0500
In-Reply-To: <87in9iynhq.fsf@HIDDEN> ("Ludovic
 \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\=
 \=\?utf-8\?Q\?s\?\= message of "Tue, 27 Mar 2018 09:41:05 +0200")
Message-ID: <87zi2the25.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 30831
Cc: Ricardo Wurmus <rekado@HIDDEN>,
 Danny Milosavljevic <dannym@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Ludovic,

In attachement you can find updated patch with rust-bootstrap 1.22.1 and
rust packages of 1.23.0 and 1.24.1 releases. I made small changes like
replacement (zero? (system* ...)) with (invoke ...) and checked
reproducability.

Please find my comments below.

Regards,
Nikolai

ludo@HIDDEN (Ludovic Court=C3=A8s) writes:

> Hello Nikolai,
>
> Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:
>
>> Ricardo Wurmus <rekado@HIDDEN> writes:
>>
>>> Ludovic Court=C3=A8s <ludo@HIDDEN> writes:
>>>
>>>> Hello,
>>>>
>>>> Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:
>>>>
>>>>> Actually there is two ways to achieve this:
>>>>> 1. Constantly update bootsrap binaries version.
>>>>> 2. For each new release create new package. As result we'll be able to
>>>>> use old rust release to build each new rust release. E.g. we can use
>>>>> 1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
>>>>> 1.23.0 rust and then use it to build 1.24.1 rust.
>>>>>
>>>>> Which way is preferable?=20
>>>>
>>>> Like I wrote, I would prefer option #2, so as to increase =E2=80=9Cbin=
ary
>>>> diversity=E2=80=9D and not rely on builds made by upstream.
>>>>
>>>> This obviously relates to <http://bootstrappable.org/>.  Ricardo, what=
=E2=80=99s
>>>> your take on this?
>>>
>>> I agree.  In the long run, however, I=E2=80=99d prefer for Rust to be
>>> bootstrapped through one of the alternative implementations.  Then we
>>> don=E2=80=99t need to keep a long chain of older versions.
>>>
>>> Currently, however, I don=E2=80=99t see a way around it.
>>
>> Hi, I prepared proof-of-concept solution with rust-bootstrap frozed on
>> 1.22.1 release.
>
> Would it be an option to stick to 1.21?  Or is it already too difficult?
> (Apologies if this was already answered previously.)  I=E2=80=99m asking =
because
> I wonder how big the temptation will be to upgrade =E2=80=98rust-bootstra=
p=E2=80=99
> again next time.
>

It should be easy enough to stick with 1.21 bootstrap (still we already
have package for 1.22), but:
1. We still should change code for bootstrap package to match design
where "rustc" and "cargo" installed from one package.
2. Rust 1.23 and 1.24 can use same "config.toml", while rust 1.22 have
different "config.toml". I do not know how to make it to look pretty in
first time. For additional information look below about package code
design.
3. My machine is pretty slow and testing reproducablity for three
versions in a row will take two days :-)


>> Do you think suggested code with "split all code to small steps and
>> remove fixed issues in new releases" is correct way to provide series
>> of releases? Or it will be better to copy builder code to state it
>> directly that this specific modification is tested on each rust
>> release?
>
> I=E2=80=99m not sure what you mean.

I talking about how to write code for packages. e.g. if we have:

  (package
    (name "rust")
    (version "1.23.0")
    ...
    (arguments
      ...
       #:phases (modify-phases %standard-phases
                  ...
                  (add-after ... 'disable-test-1)
                  (add-after ... 'disable-test-2)
                  (add-after ... 'fix-source-bug-1)
                  (add-after ... 'fix-source-bug-2)
                  (add-after ... 'fix-source-bug-3)
                  (replace 'configure ...)
                  (replace 'check ...)
                  ...)))

Then how should look package for 1.24 release?

It can be inherited from previous one and replace some of old steps

  (let ((base-rust rust-1.23))
    (package
      (inherit base-rust)
      (version "1.24.1")
      ...
      (native-inputs
       (alist-replace "cargo-bootstrap" (list base-rust "cargo")
                      (alist-replace "rustc-bootstrap" (list base-rust)
                                     (package-native-inputs base-rust))))
      (arguments (substitute-keyword-arguments (package-arguments base-rust)
                   ((#:phases phases)
                    `(modify-phases ,phases
                       (delete 'fix-source-bug-1)
                       (add-after ... 'disable-test-3)
                       (replace 'fix-source-bug-2
                         (lambda* ....))))))))

Or we should copy all steps required for each new release:

  (package
    (name "rust")
    (version "1.24.0")
    ...
    (arguments
      ...
       #:phases (modify-phases %standard-phases
                  ...
                  (add-after ... 'disable-test-1)
                  (add-after ... 'disable-test-2)
                  (add-after ... 'disable-test-3)
                  (add-after ... 'fix-source-bug-1)
                  (add-after ... 'fix-source-bug-3)
                  (replace 'configure ...)
                  (replace 'check ...)
                  ...)))

Second solution looks too verbose for me, but with first solution on
long chain of versions it will be very hard to manage which changes we
have in newest package.

>
> Danny, you probably have more experience than I do with Rust.  :-)
> Thoughts?
>
> Thanks,
> Ludo=E2=80=99.


--=-=-=
Content-Type: text/x-patch; charset=utf-8
Content-Disposition: inline;
 filename=0001-gnu-rust-Update-rust-to-1.24.1-froze-bootstrap-on-1..patch
Content-Transfer-Encoding: quoted-printable

From 7765a42a3696027692282d36b74b68a7bff5678e Mon Sep 17 00:00:00 2001
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
Date: Wed, 14 Mar 2018 00:06:53 +0500
Subject: [PATCH] gnu: rust: Update rust to 1.24.1, froze bootstrap on 1.22.1
 release
To: guix-patches@HIDDEN

* gnu/packages/rust.scm (rust-bootstrap): Froze bootstrap version on 1.22.1
rust release. Reorganize bootstrap binaries to match new "rust" package
structure with two ouputs "out" with rust compiler and "cargo" with cargo
package manager. Replace all "system*" with "invoke".
(rust-1.23): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo
related dependencies. Install "cargo" as separate "rust" output. Remove
substitutes for parts that was fixed in "rustc" source code. Install
documentation to separate "doc" output. Update configuration according to
changes in "rustc" source code. Replace all "system*" with "invoke".
(rust): Create package for 1.24.1 rust release based on rust-1.23 release.
* guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and
"default-rustc" functions with "default-rust" function.
(cargo-build-system): Take only one package as "rust" source. Use "rustc" f=
rom
default output of "rust" package, use "cargo" as "cargo" output of "rust"
package.

Cargo was moved from separate package to "rust" output because starting from
0.25.0 release cargo have no "Cargo.lock" anymore. According to
https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286f5=
f154692
commit message "cargo" used as "rust" dependency and stable version for
"cargo" provided through "Cargo.lock" file from "rust-lang/rust"
repository. As result only way to get stable version of cargo is build it f=
rom
"rust" sources.
---
 gnu/packages/rust.scm       | 1374 ++++-----------------------------------=
----
 guix/build-system/cargo.scm |   21 +-
 2 files changed, 127 insertions(+), 1268 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 7d0eb7087..70140579b 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -3,7 +3,7 @@
 ;;; Copyright =C2=A9 2016 Eric Le Bihan <eric.le.bihan.dev@HIDDEN>
 ;;; Copyright =C2=A9 2016 Nils Gillmann <ng0@HIDDEN>
 ;;; Copyright =C2=A9 2017 Ben Woodcroft <donttrustben@HIDDEN>
-;;; Copyright =C2=A9 2017 Nikolai Merinov <nikolai.merinov@HIDDEN>
+;;; Copyright =C2=A9 2017, 2018 Nikolai Merinov <nikolai.merinov@HIDDEN=
f.org>
 ;;; Copyright =C2=A9 2017 Efraim Flashner <efraim@HIDDEN>
 ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice <me@HIDDEN>
 ;;;
@@ -46,71 +46,48 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
-  #:use-module (guix base16)      ;for generated "cargo" native-inputs
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module (guix utils)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26))
=20
-;; Should be one less than the current released version.
-(define %rust-bootstrap-binaries-version "1.21.0")
-
-(define %rust-bootstrap-binaries
-  (origin
-    (method url-fetch)
-    (uri (string-append
-          "https://static.rust-lang.org/dist/"
-          "rust-" %rust-bootstrap-binaries-version
-          "-" %host-type ".tar.gz"))
-    (sha256
-     (base32
-      (match %host-type
-        ("i686-unknown-linux-gnu"
-         "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
-        ("x86_64-unknown-linux-gnu"
-         "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
-        ("armv7-unknown-linux-gnueabihf"
-         "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
-        ("aarch64-unknown-linux-gnu"
-         "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
-        ("mips64el-unknown-linux-gnuabi64"
-         "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
-        (_ "")))))) ; Catch-all for other systems.
-
 (define %cargo-reference-project-file "/dev/null")
 (define %cargo-reference-hash
   "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
=20
-(define (increment-rust-version rust-version major patch)
-  (match (string-split rust-version #\.)
-    (("1" minor _)
-     (string-append (number->string major) "."
-                    (number->string (+ (string->number minor) 1)) "."
-                    (number->string patch)))))
-
-(define* (cargo-version rustc-version #:optional (patch 0))
-  ;; Computes the cargo version that matches the rustc version.
-  ;; This has so far continued to follow a predictable pattern:
-  ;; https://github.com/rust-lang/cargo/blob/50a46f47/README.md#releases
-  (increment-rust-version rustc-version 0 patch))
-
-(define* (rustc-version bootstrap-version #:optional (patch 0))
-  ;; Computes the rustc version that can be compiled from a given
-  ;; other rustc version. The patch argument is for selecting
-  ;; a stability or security fix. 1.11.0 -> 1.12.1 -> 1.13.0
-  (increment-rust-version bootstrap-version 1 patch))
-
-(define rustc-bootstrap
+(define rust-bootstrap
   (package
-    (name "rustc-bootstrap")
-    (version %rust-bootstrap-binaries-version)
-    (source %rust-bootstrap-binaries)
+    (name "rust-bootstrap")
+    (version "1.22.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://static.rust-lang.org/dist/"
+                    "rust-" version "-" %host-type ".tar.gz"))
+              (sha256
+               (base32
+                (match %host-type
+                  ("i686-unknown-linux-gnu"
+                   "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr")
+                  ("x86_64-unknown-linux-gnu"
+                   "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c")
+                  ("armv7-unknown-linux-gnueabihf"
+                   "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5")
+                  ("aarch64-unknown-linux-gnu"
+                   "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8")
+                  ("mips64el-unknown-linux-gnuabi64"
+                   "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2")
+                  (_ ""))))))
     (build-system gnu-build-system)
     (native-inputs
      `(("patchelf" ,patchelf)))
     (inputs
-     `(("gcc:lib" ,(canonical-package gcc) "lib")
+     `(("gcc" ,(canonical-package gcc))
+       ("gcc:lib" ,(canonical-package gcc) "lib")
        ("zlib" ,zlib)))
+    (outputs '("out" "cargo"))
     (arguments
      `(#:tests? #f
        #:strip-binaries? #f
@@ -121,115 +98,63 @@
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (cargo-out (assoc-ref outputs "cargo"))
                     (gcc:lib (assoc-ref inputs "gcc:lib"))
                     (libc (assoc-ref inputs "libc"))
                     (zlib (assoc-ref inputs "zlib"))
                     (ld-so (string-append libc ,(glibc-dynamic-linker)))
                     (rpath (string-append out "/lib:" zlib "/lib:"
                                           libc "/lib:" gcc:lib "/lib"))
+                    (cargo-rpath (string-append cargo-out "/lib:" libc "/l=
ib:"
+                                                gcc:lib "/lib"))
                     (rustc (string-append out "/bin/rustc"))
-                    (rustdoc (string-append out "/bin/rustdoc")))
-               (system* "bash" "install.sh"
+                    (rustdoc (string-append out "/bin/rustdoc"))
+                    (cargo (string-append cargo-out "/bin/cargo"))
+                    (gcc (assoc-ref inputs "gcc")))
+               ;; Install rustc/rustdoc
+               (invoke "bash" "install.sh"
                         (string-append "--prefix=3D" out)
                         (string-append "--components=3Drustc,"
                                        "rust-std-" %host-type))
+               ;; Instal cargo
+               (invoke "bash" "install.sh"
+                        (string-append "--prefix=3D" cargo-out)
+                        (string-append "--components=3Dcargo"))
                (for-each (lambda (file)
-                           (system* "patchelf" "--set-rpath" rpath file))
+                           (invoke "patchelf" "--set-rpath" rpath file))
                          (cons* rustc rustdoc (find-files out "\\.so$")))
+               (invoke "patchelf" "--set-rpath" cargo-rpath cargo)
                (for-each (lambda (file)
-                           (system* "patchelf" "--set-interpreter" ld-so f=
ile))
-                         (list rustc rustdoc))))))))
-    (home-page "https://www.rust-lang.org")
-    (synopsis "Prebuilt rust compiler")
-    (description "This package provides a pre-built @command{rustc} compil=
er,
-which can in turn be used to build the final Rust compiler.")
-    (license license:asl2.0)))
-
-(define cargo-bootstrap
-  (package
-    (name "cargo-bootstrap")
-    (version (cargo-version %rust-bootstrap-binaries-version 1))
-    (source %rust-bootstrap-binaries)
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("patchelf" ,patchelf)))
-    (inputs
-     `(("gcc:lib" ,(canonical-package gcc) "lib")))
-    (arguments
-     `(#:tests? #f
-       #:strip-binaries? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (gcc:lib (assoc-ref inputs "gcc:lib"))
-                    (libc (assoc-ref inputs "libc"))
-                    (ld-so (string-append libc ,(glibc-dynamic-linker)))
-                    (rpath (string-append out "/lib:" libc "/lib:"
-                                          gcc:lib "/lib"))
-                    (cargo (string-append out "/bin/cargo")))
-               (system* "bash" "install.sh"
-                        (string-append "--prefix=3D" out)
-                        "--components=3Dcargo")
-               (system* "patchelf"
-                        "--set-interpreter" ld-so
-                        "--set-rpath" rpath
-                        cargo)))))))
+                           (invoke "patchelf" "--set-interpreter" ld-so fi=
le))
+                         (list rustc rustdoc cargo))
+               ;; Rust requires a C toolchain for linking. The prebuilt
+               ;; binaries expect a compiler called cc. Thus symlink gcc
+               ;; to cc.
+               (symlink (string-append gcc "/bin/gcc")
+                        (string-append out "/bin/cc"))
+               #t))))))
     (home-page "https://www.rust-lang.org")
-    (synopsis "Prebuilt cargo package manager")
-    (description "This package provides a pre-built @command{cargo} package
-manager, which is required to build itself.")
+    (synopsis "Prebuilt rust compiler and cargo package manager")
+    (description "This package provides a pre-built @command{rustc} compil=
er
+and a pre-built @command{cargo} package manaer, which can
+in turn be used to build the final Rust.")
     (license license:asl2.0)))
=20
-(define rust-bootstrap
-  (package
-    (name "rust-bootstrap")
-    (version %rust-bootstrap-binaries-version)
-    (source #f)
-    (build-system trivial-build-system)
-    (propagated-inputs
-     `(("rustc-bootstrap" ,rustc-bootstrap)
-       ("cargo-bootstrap" ,cargo-bootstrap)
-       ("gcc" ,(canonical-package gcc))))
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((out (assoc-ref %outputs "out"))
-               (gcc (assoc-ref %build-inputs "gcc")))
-           (mkdir-p (string-append out "/bin"))
-           ;; Rust requires a C toolchain for linking. The prebuilt
-           ;; binaries expect a compiler called cc. Thus symlink gcc
-           ;; to cc.
-           (symlink (string-append gcc "/bin/gcc")
-                    (string-append out "/bin/cc"))))))
-    (home-page "https://www.rust-lang.org")
-    (synopsis "Rust bootstrapping meta package")
-    (description "Meta package for a rust environment. Provides pre-compil=
ed
-rustc-bootstrap and cargo-bootstrap packages.")
-    (license license:asl2.0)))
 
-(define-public rustc
+(define (rust-source version hash)
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://static.rust-lang.org/dist/"
+                        "rustc-" version "-src.tar.gz"))
+    (sha256 (base32 hash))
+    (modules '((guix build utils)))
+    (snippet '(begin (delete-file-recursively "src/llvm") #t))))
+
+(define-public rust-1.23
   (package
-    (name "rustc")
-    (version (rustc-version %rust-bootstrap-binaries-version 1))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://static.rust-lang.org/dist/"
-                    "rustc-" version "-src.tar.gz"))
-              (sha256
-               (base32
-                "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
-              (modules '((guix build utils)))
-              (snippet
-               `(begin
-                  (delete-file-recursively "src/llvm")
-                  #t))))
+    (name "rust")
+    (version "1.23.0")
+    (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5g=
mzfwf4w9ar3l"))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison) ; For the tests
@@ -239,11 +164,16 @@ rustc-bootstrap and cargo-bootstrap packages.")
        ("git" ,git)
        ("procps" ,procps) ; For the tests
        ("python-2" ,python-2)
-       ("rust-bootstrap" ,rust-bootstrap)
+       ("rustc-bootstrap" ,rust-bootstrap)
+       ("cargo-bootstrap" ,rust-bootstrap "cargo")
+       ("pkg-config" ,pkg-config) ; For "cargo"
        ("which" ,which)))
     (inputs
      `(("jemalloc" ,jemalloc-4.5.0)
-       ("llvm" ,llvm-3.9.1)))
+       ("llvm" ,llvm-3.9.1)
+       ("openssl" ,openssl)
+       ("libcurl" ,curl))) ; For "cargo"
+    (outputs '("out" "doc" "cargo"))
     (arguments
      `(#:imported-modules ,%cargo-build-system-modules ;for `generate-chec=
ksums'
        #:phases
@@ -258,9 +188,6 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (add-after 'unpack 'patch-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((bash (assoc-ref inputs "bash")))
-               (substitute* "src/build_helper/lib.rs"
-                 ;; In same folder as gcc there is only "gcc-ar" utility
-                 (("file\\.push_str\\(\"ar\"\\);") "file.push_str(\"gcc-ar=
\");"))
                (substitute* "src/libstd/process.rs"
                  ;; The newline is intentional.
                  ;; There's a line length "tidy" check in Rust which would
@@ -276,15 +203,18 @@ rustc-bootstrap and cargo-bootstrap packages.")
                ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_=
PATH.
                ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/m=
sg00193.html>
                (delete-file-recursively "src/test/run-make/linker-output-n=
on-utf8")
-               (substitute* "src/build_helper/lib.rs"
-                 ;; Bug in Rust code.
-                 ;; Current implementation assume that if dst not exist th=
en it's mtime
-                 ;; is 0, but in same time "src" have 0 mtime in guix buil=
d!
-                 (("let threshold =3D mtime\\(dst\\);")
-                  "if !dst.exists() {\nreturn false\n}\n let threshold =3D=
 mtime(dst);"))
                #t)))
+         (add-after 'patch-tests 'fix-mtime-bug
+           (lambda* _
+             (substitute* "src/build_helper/lib.rs"
+               ;; Bug in Rust code.
+               ;; Current implementation assume that if dst not exist then=
 it's mtime
+               ;; is 0, but in same time "src" have 0 mtime in guix build!
+               (("let threshold =3D mtime\\(dst\\);")
+                "if !dst.exists() {\nreturn false\n}\n let threshold =3D m=
time(dst);"))
+             #t))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* _
              (substitute* "src/Cargo.lock"
                (("(\"checksum .* =3D )\".*\"" all name)
                 (string-append name "\"" ,%cargo-reference-hash "\"")))
@@ -302,6 +232,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
                     (gcc (assoc-ref inputs "gcc"))
                     (gdb (assoc-ref inputs "gdb"))
                     (binutils (assoc-ref inputs "binutils"))
@@ -317,15 +248,18 @@ rustc-bootstrap and cargo-bootstrap packages.")
 [build]
 cargo =3D \"" cargo "/bin/cargo" "\"
 rustc =3D \"" rustc "/bin/rustc" "\"
+docs =3D true
 python =3D \"" python "/bin/python2" "\"
 gdb =3D \"" gdb "/bin/gdb" "\"
 vendor =3D true
 submodules =3D false
 [install]
 prefix =3D \"" out "\"
+docdir =3D \"" doc "/share/doc/rust" "\"
+sysconfdir =3D \"etc\"
+localstatedir =3D \"var/lib\"
 [rust]
 default-linker =3D \"" gcc "/bin/gcc" "\"
-default-ar =3D \"" binutils "/bin/ar" "\"
 channel =3D \"stable\"
 rpath =3D true
 # There is 2 failed codegen tests:
@@ -336,12 +270,13 @@ codegen-tests =3D false
 llvm-config =3D \"" llvm "/bin/llvm-config" "\"
 cc =3D \"" gcc "/bin/gcc" "\"
 cxx =3D \"" gcc "/bin/g++" "\"
+ar =3D \"" binutils "/bin/ar" "\"
 jemalloc =3D \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 [dist]
 ") port)))
                #t)))
          (add-before 'build 'reset-timestamps-after-changes
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* _
              (define ref (stat "README.md"))
              (for-each
               (lambda (filename)
@@ -349,14 +284,21 @@ jemalloc =3D \"" jemalloc "/lib/libjemalloc_pic.a" "\"
               (find-files "." #:directories? #t))
              #t))
          (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "build"))))
+           (lambda* _
+             (invoke "./x.py" "build")
+             (invoke "./x.py" "build" "src/tools/cargo")))
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "test"))))
+           (lambda* _
+             (invoke "./x.py" "test")))
          (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "install"))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "./x.py" "install")
+             (substitute* "config.toml"
+               ;; replace prefix to specific output
+               (("prefix =3D \"[^\"]*\"")
+                (string-append "prefix =3D \"" (assoc-ref outputs "cargo")=
 "\"")))
+             (invoke "./x.py" "install" "cargo")
+             #t))
          (add-after 'install 'wrap-rustc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -376,1095 +318,19 @@ safety and thread safety guarantees.")
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
=20
-;; This tries very hard not to get into a cyclic dependency like this:
-;;   cargo <- cargo-build-system <- cargo.
-(define-public cargo
-  (package
-    (name "cargo")
-    (version (cargo-version (rustc-version %rust-bootstrap-binaries-versio=
n) 0))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rust-lang/cargo/arch=
ive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0kr7rml7v2bm7zl8jcb3056h63zpyy9m08s212i8vfwxf6lf5fzl"))))
-    (build-system cargo-build-system)
-    (propagated-inputs
-     `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("curl" ,curl)
-       ("libgit2" ,libgit2)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("python-2" ,python-2)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("git" ,git) ; required for tests
-       ;; Next dependencies generated with next command:
-       ;; cat Cargo.lock | awk '
-       ;;   /^"checksum/
-       ;;   { oname=3Dname=3D$2; vers=3D$3; hash=3D$6;
-       ;;     if (ns[name] !=3D 1) { ns[name]=3D1; } else { name =3D name =
"-" vers; }
-       ;;     print "       (\"rust-" name "\"";
-       ;;     print "        ,(origin";
-       ;;     print "           (method url-fetch)";
-       ;;     print "           (uri (crate-uri \"" oname "\" \"" vers "\"=
))";
-       ;;     print "           (file-name \"rust-" oname "\-\" vers "\")
-       ;;     print "           (sha256";
-       ;;     print "            (base16-string->bytevector";
-       ;;     print "             " hash "))))"
-       ;;   }'
-       ("rust-advapi32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "advapi32-sys" "0.2.0"))
-           (file-name "rust-advapi32-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb=
8a9a"))))
-       ("rust-aho-corasick"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.5.3"))
-           (file-name "rust-aho-corasick-0.5.3")
-           (sha256
-            (base16-string->bytevector
-             "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686d=
db66"))))
-       ("rust-aho-corasick-0.6.3"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.6.3"))
-           (file-name "rust-aho-corasick-0.6.3")
-           (sha256
-            (base16-string->bytevector
-             "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b88=
9699"))))
-       ("rust-atty"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "atty" "0.2.3"))
-           (file-name "rust-atty-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b7=
8860"))))
-       ("rust-backtrace"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace" "0.3.3"))
-           (file-name "rust-backtrace-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "99f2ce94e22b8e664d95c57fff45b98a966c2252b60691d0b7aeeccd88d7=
0983"))))
-       ("rust-backtrace-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace-sys" "0.1.14"))
-           (file-name "rust-backtrace-sys-0.1.14")
-           (sha256
-            (base16-string->bytevector
-             "c63ea141ef8fdb10409d0f5daf30ac51f84ef43bff66f16627773d2a292c=
d189"))))
-       ("rust-bitflags"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.7.0"))
-           (file-name "rust-bitflags-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881=
106d"))))
-       ("rust-bitflags-0.9.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.9.1"))
-           (file-name "rust-bitflags-0.9.1")
-           (sha256
-            (base16-string->bytevector
-             "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1a=
b3a5"))))
-       ("rust-bufstream"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bufstream" "0.1.3"))
-           (file-name "rust-bufstream-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d0946=
8e32"))))
-       ("rust-cc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cc" "1.0.0"))
-           (file-name "rust-cc-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a=
76b1"))))
-       ("rust-cfg-if"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cfg-if" "0.1.2"))
-           (file-name "rust-cfg-if-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed31=
40de"))))
-       ("rust-cmake"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cmake" "0.1.26"))
-           (file-name "rust-cmake-0.1.26")
-           (sha256
-            (base16-string->bytevector
-             "357c07e7a1fc95732793c1edb5901e1a1f305cfcf63a90eb12dbd22bdb6b=
789d"))))
-       ("rust-commoncrypto"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto" "0.2.0"))
-           (file-name "rust-commoncrypto-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b6=
9007"))))
-       ("rust-commoncrypto-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto-sys" "0.2.0"))
-           (file-name "rust-commoncrypto-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f40=
83e2"))))
-       ("rust-conv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "conv" "0.3.3"))
-           (file-name "rust-conv-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d=
1299"))))
-       ("rust-core-foundation"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation" "0.4.4"))
-           (file-name "rust-core-foundation-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "5909502e547762013619f4c4e01cc7393c20fe2d52d7fa471c1210adb232=
0dc7"))))
-       ("rust-core-foundation-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation-sys" "0.4.4"))
-           (file-name "rust-core-foundation-sys-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "bc9fb3d6cb663e6fd7cf1c63f9b144ee2b1e4a78595a0451dd34bff85b9a=
3387"))))
-       ("rust-crossbeam"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.2.10"))
-           (file-name "rust-crossbeam-0.2.10")
-           (sha256
-            (base16-string->bytevector
-             "0c5ea215664ca264da8a9d9c3be80d2eaf30923c259d03e870388eb92750=
8f97"))))
-       ("rust-crossbeam-0.3.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.3.0"))
-           (file-name "rust-crossbeam-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "8837ab96533202c5b610ed44bc7f4183e7957c1c8f56e8cc78bb098593c8=
ba0a"))))
-       ("rust-crypto-hash"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crypto-hash" "0.3.0"))
-           (file-name "rust-crypto-hash-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "34903878eec1694faf53cae8473a088df333181de421d4d3d48061d6559f=
e602"))))
-       ("rust-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl" "0.4.8"))
-           (file-name "rust-curl-0.4.8")
-           (sha256
-            (base16-string->bytevector
-             "7034c534a1d7d22f7971d6088aa9d281d219ef724026c3428092500f41ae=
9c2c"))))
-       ("rust-curl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl-sys" "0.3.15"))
-           (file-name "rust-curl-sys-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "4bee31aa3a079d5f3ff9579ea4dcfb1b1a17a40886f5f467436d383e7813=
4b55"))))
-       ("rust-custom_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "custom_derive" "0.1.7"))
-           (file-name "rust-custom_derive-0.1.7")
-           (sha256
-            (base16-string->bytevector
-             "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a=
01b9"))))
-       ("rust-dbghelp-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dbghelp-sys" "0.2.0"))
-           (file-name "rust-dbghelp-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5=
b850"))))
-       ("rust-docopt"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "docopt" "0.8.1"))
-           (file-name "rust-docopt-0.8.1")
-           (sha256
-            (base16-string->bytevector
-             "3b5b93718f8b3e5544fcc914c43de828ca6c6ace23e0332c6080a2977b49=
787a"))))
-       ("rust-dtoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dtoa" "0.4.2"))
-           (file-name "rust-dtoa-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e=
50ab"))))
-       ("rust-env_logger"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "env_logger" "0.4.3"))
-           (file-name "rust-env_logger-0.4.3")
-           (sha256
-            (base16-string->bytevector
-             "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8=
cd5b"))))
-       ("rust-error-chain"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "error-chain" "0.11.0"))
-           (file-name "rust-error-chain-0.11.0")
-           (sha256
-            (base16-string->bytevector
-             "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419e=
d3f3"))))
-       ("rust-filetime"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "filetime" "0.1.12"))
-           (file-name "rust-filetime-0.1.12")
-           (sha256
-            (base16-string->bytevector
-             "6ab199bf38537c6f38792669e081e0bb278b9b7405bba2642e4e5d15bf73=
2c0e"))))
-       ("rust-flate2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "flate2" "0.2.20"))
-           (file-name "rust-flate2-0.2.20")
-           (sha256
-            (base16-string->bytevector
-             "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81=
e423"))))
-       ("rust-fnv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fnv" "1.0.5"))
-           (file-name "rust-fnv-1.0.5")
-           (sha256
-            (base16-string->bytevector
-             "6cc484842f1e2884faf56f529f960cc12ad8c71ce96cc7abba0a067c98fe=
e344"))))
-       ("rust-foreign-types"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "foreign-types" "0.2.0"))
-           (file-name "rust-foreign-types-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "3e4056b9bd47f8ac5ba12be771f77a0dae796d1bbaaf5fd0b9c2d38b69b8=
a29d"))))
-       ("rust-fs2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fs2" "0.4.2"))
-           (file-name "rust-fs2-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c=
2866"))))
-       ("rust-git2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2" "0.6.8"))
-           (file-name "rust-git2-0.6.8")
-           (sha256
-            (base16-string->bytevector
-             "0c1c0203d653f4140241da0c1375a404f0a397249ec818cd2076c6280c50=
f6fa"))))
-       ("rust-git2-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2-curl" "0.7.0"))
-           (file-name "rust-git2-curl-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5=
bf8e"))))
-       ("rust-glob"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "glob" "0.2.11"))
-           (file-name "rust-glob-0.2.11")
-           (sha256
-            (base16-string->bytevector
-             "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac589=
5bfb"))))
-       ("rust-globset"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "globset" "0.2.0"))
-           (file-name "rust-globset-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "feeb1b6840809ef5efcf7a4a990bc4e1b7ee3df8cf9e2379a75aeb2ba42a=
c9c3"))))
-       ("rust-hamcrest"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hamcrest" "0.1.1"))
-           (file-name "rust-hamcrest-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "bf088f042a467089e9baa4972f57f9247e42a0cc549ba264c7a04fbb8ecb=
89d4"))))
-       ("rust-hex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hex" "0.2.0"))
-           (file-name "rust-hex-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e1=
53aa"))))
-       ("rust-home"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "home" "0.3.0"))
-           (file-name "rust-home-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "9f25ae61099d8f3fee8b483df0bd4ecccf4b2731897aad40d50eca1b641f=
e6db"))))
-       ("rust-idna"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "idna" "0.1.4"))
-           (file-name "rust-idna-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951e=
af7d"))))
-       ("rust-ignore"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ignore" "0.2.2"))
-           (file-name "rust-ignore-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c=
99f5"))))
-       ("rust-itoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "itoa" "0.3.4"))
-           (file-name "rust-itoa-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4=
db8c"))))
-       ("rust-jobserver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "jobserver" "0.1.6"))
-           (file-name "rust-jobserver-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "443ae8bc0af6c106e6e8b77e04684faecc1a5ce94e058f4c2b0a037b0ea1=
b133"))))
-       ("rust-kernel32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "kernel32-sys" "0.2.2"))
-           (file-name "rust-kernel32-sys-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056=
098d"))))
-       ("rust-lazy_static"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "lazy_static" "0.2.9"))
-           (file-name "rust-lazy_static-0.2.9")
-           (sha256
-            (base16-string->bytevector
-             "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375=
f8d5"))))
-       ("rust-libc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libc" "0.2.31"))
-           (file-name "rust-libc-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "d1419b2939a0bc44b77feb34661583c7546b532b192feab36249ab584b86=
856c"))))
-       ("rust-libgit2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libgit2-sys" "0.6.16"))
-           (file-name "rust-libgit2-sys-0.6.16")
-           (sha256
-            (base16-string->bytevector
-             "6f74b4959cef96898f5123148724fc7dee043b9a6b99f219d948851bfbe5=
3cb2"))))
-       ("rust-libssh2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libssh2-sys" "0.2.6"))
-           (file-name "rust-libssh2-sys-0.2.6")
-           (sha256
-            (base16-string->bytevector
-             "0db4ec23611747ef772db1c4d650f8bd762f07b461727ec998f953c61402=
4b75"))))
-       ("rust-libz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libz-sys" "1.0.17"))
-           (file-name "rust-libz-sys-1.0.17")
-           (sha256
-            (base16-string->bytevector
-             "44ebbc760fd2d2f4d93de09a0e13d97e057612052e871da9985cedcb451e=
6bd5"))))
-       ("rust-log"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "log" "0.3.8"))
-           (file-name "rust-log-0.3.8")
-           (sha256
-            (base16-string->bytevector
-             "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512=
565b"))))
-       ("rust-magenta"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta" "0.1.1"))
-           (file-name "rust-magenta-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3a=
c527"))))
-       ("rust-magenta-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta-sys" "0.1.1"))
-           (file-name "rust-magenta-sys-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f=
4699"))))
-       ("rust-matches"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "matches" "0.1.6"))
-           (file-name "rust-matches-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f19=
3376"))))
-       ("rust-memchr"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "0.1.11"))
-           (file-name "rust-memchr-0.1.11")
-           (sha256
-            (base16-string->bytevector
-             "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d28276141=
8d20"))))
-       ("rust-memchr-1.0.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "1.0.1"))
-           (file-name "rust-memchr-1.0.1")
-           (sha256
-            (base16-string->bytevector
-             "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a=
47b4"))))
-       ("rust-miniz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miniz-sys" "0.1.10"))
-           (file-name "rust-miniz-sys-0.1.10")
-           (sha256
-            (base16-string->bytevector
-             "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7=
e2b4"))))
-       ("rust-miow"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miow" "0.2.1"))
-           (file-name "rust-miow-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355a=
e919"))))
-       ("rust-net2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "net2" "0.2.31"))
-           (file-name "rust-net2-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b71=
6c09"))))
-       ("rust-num"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num" "0.1.40"))
-           (file-name "rust-num-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f92=
3525"))))
-       ("rust-num-bigint"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-bigint" "0.1.40"))
-           (file-name "rust-num-bigint-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "8fd0f8dbb4c0960998958a796281d88c16fbe68d87b1baa6f31e2979e81f=
d0bd"))))
-       ("rust-num-complex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-complex" "0.1.40"))
-           (file-name "rust-num-complex-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "503e668405c5492d67cf662a81e05be40efe2e6bcf10f7794a07bd9865e7=
04e6"))))
-       ("rust-num-integer"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-integer" "0.1.35"))
-           (file-name "rust-num-integer-0.1.35")
-           (sha256
-            (base16-string->bytevector
-             "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d=
0fba"))))
-       ("rust-num-iter"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-iter" "0.1.34"))
-           (file-name "rust-num-iter-0.1.34")
-           (sha256
-            (base16-string->bytevector
-             "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13df=
fe01"))))
-       ("rust-num-rational"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-rational" "0.1.39"))
-           (file-name "rust-num-rational-0.1.39")
-           (sha256
-            (base16-string->bytevector
-             "288629c76fac4b33556f4b7ab57ba21ae202da65ba8b77466e6d598e3199=
0790"))))
-       ("rust-num-traits"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-traits" "0.1.40"))
-           (file-name "rust-num-traits-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721=
b9b0"))))
-       ("rust-num_cpus"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num_cpus" "1.7.0"))
-           (file-name "rust-num_cpus-1.7.0")
-           (sha256
-            (base16-string->bytevector
-             "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453=
b20d"))))
-       ("rust-openssl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl" "0.9.19"))
-           (file-name "rust-openssl-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "816914b22eb15671d62c73442a51978f311e911d6a6f6cbdafa6abce1b50=
38fc"))))
-       ("rust-openssl-probe"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-probe" "0.1.1"))
-           (file-name "rust-openssl-probe-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "d98df0270d404ccd3c050a41d579c52d1db15375168bb3471e04ec0f5f37=
8daf"))))
-       ("rust-openssl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-sys" "0.9.19"))
-           (file-name "rust-openssl-sys-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "1e4c63a7d559c1e5afa6d6a9e6fa34bbc5f800ffc9ae08b72c605420b0c4=
f5e8"))))
-       ("rust-percent-encoding"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "percent-encoding" "1.0.0"))
-           (file-name "rust-precent-encoding-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6a=
e356"))))
-       ("rust-pkg-config"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "pkg-config" "0.3.9"))
-           (file-name "rust-pkg-config-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edb=
a903"))))
-       ("rust-psapi-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "psapi-sys" "0.1.0"))
-           (file-name "rust-psapi-sys-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "abcd5d1a07d360e29727f757a9decb3ce8bc6e0efa8969cfaad669a8317a=
2478"))))
-       ("rust-quote"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "quote" "0.3.15"))
-           (file-name "rust-quote-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4=
167a"))))
-       ("rust-rand"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rand" "0.3.16"))
-           (file-name "rust-rand-0.3.16")
-           (sha256
-            (base16-string->bytevector
-             "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fec=
bcdf"))))
-       ("rust-redox_syscall"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_syscall" "0.1.31"))
-           (file-name "rust-redox_syscall-0.1.31")
-           (sha256
-            (base16-string->bytevector
-             "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb0=
4509"))))
-       ("rust-redox_termios"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_termios" "0.1.1"))
-           (file-name "rust-redox_termios-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db=
0f76"))))
-       ("rust-regex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.1.80"))
-           (file-name "rust-regex-0.1.80")
-           (sha256
-            (base16-string->bytevector
-             "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019=
402f"))))
-       ("rust-regex-0.2.2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.2.2"))
-           (file-name "rust-regex-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b=
2d1b"))))
-       ("rust-regex-syntax"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.3.9"))
-           (file-name "rust-regex-syntax-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db83=
4957"))))
-       ("rust-regex-syntax-0.4.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.4.1"))
-           (file-name "rust-regex-syntax-0.4.1")
-           (sha256
-            (base16-string->bytevector
-             "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f=
62db"))))
-       ("rust-rustc-demangle"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-demangle" "0.1.5"))
-           (file-name "rust-rustc-demangle-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e=
817e"))))
-       ("rust-rustc-serialize"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-serialize" "0.3.24"))
-           (file-name "rust-rustc-serialize-0.3.24")
-           (sha256
-            (base16-string->bytevector
-             "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e=
6fda"))))
-       ("rust-same-file"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "same-file" "0.1.3"))
-           (file-name "rust-same-file-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a1=
17a7"))))
-       ("rust-scoped-tls"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scoped-tls" "0.1.0"))
-           (file-name "rust-scoped-tls-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f=
147d"))))
-       ("rust-scopeguard"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scopeguard" "0.1.2"))
-           (file-name "rust-scopeguard-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a=
6c57"))))
-       ("rust-semver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver" "0.8.0"))
-           (file-name "rust-semver-0.8.0")
-           (sha256
-            (base16-string->bytevector
-             "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6=
454b"))))
-       ("rust-semver-parser"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver-parser" "0.7.0"))
-           (file-name "rust-semver-parser-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f5=
70a3"))))
-       ("rust-serde"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde" "1.0.15"))
-           (file-name "rust-serde-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "6a7046c9d4c6c522d10b2d098f9bebe2bef227e0e74044d8c1bfcf6b476a=
f799"))))
-       ("rust-serde_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive" "1.0.15"))
-           (file-name "rust-serde_derive-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "1afcaae083fd1c46952a315062326bc9957f182358eb7da03b57ef1c688f=
7aa9"))))
-       ("rust-serde_derive_internals"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive_internals" "0.16.0"))
-           (file-name "rust-serde_derive_internals-0.16.0")
-           (sha256
-            (base16-string->bytevector
-             "bd381f6d01a6616cdba8530492d453b7761b456ba974e98768a18cad2cd7=
6f58"))))
-       ("rust-serde_ignored"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_ignored" "0.0.4"))
-           (file-name "rust-serde_ignored-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01f=
b142"))))
-       ("rust-serde_json"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_json" "1.0.3"))
-           (file-name "rust-serde_json-1.0.3")
-           (sha256
-            (base16-string->bytevector
-             "d243424e06f9f9c39e3cd36147470fd340db785825e367625f79298a6ac6=
b7ac"))))
-       ("rust-shell-escape"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "shell-escape" "0.1.3"))
-           (file-name "rust-shell-escape-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "dd5cc96481d54583947bfe88bf30c23d53f883c6cd0145368b69989d97b8=
4ef8"))))
-       ("rust-socket2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "socket2" "0.2.3"))
-           (file-name "rust-socket2-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "9e76b159741052c7deaa9fd0b5ca6b5f79cecf525ed665abfe5002086c6b=
2791"))))
-       ("rust-strsim"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "strsim" "0.6.0"))
-           (file-name "rust-strsim-0.6.0")
-           (sha256
-            (base16-string->bytevector
-             "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c=
3694"))))
-       ("rust-syn"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "syn" "0.11.11"))
-           (file-name "rust-syn-0.11.11")
-           (sha256
-            (base16-string->bytevector
-             "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b44=
1dad"))))
-       ("rust-synom"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "synom" "0.11.3"))
-           (file-name "rust-synom-0.11.3")
-           (sha256
-            (base16-string->bytevector
-             "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b519=
45b6"))))
-       ("rust-tar"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tar" "0.4.13"))
-           (file-name "rust-tar-0.4.13")
-           (sha256
-            (base16-string->bytevector
-             "281285b717926caa919ad905ef89c63d75805c7d89437fb873100925a53f=
2b1b"))))
-       ("rust-tempdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tempdir" "0.3.5"))
-           (file-name "rust-tempdir-0.3.5")
-           (sha256
-            (base16-string->bytevector
-             "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff6621=
32d6"))))
-       ("rust-termcolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termcolor" "0.3.3"))
-           (file-name "rust-termcolor-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b24=
2c75"))))
-       ("rust-termion"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termion" "1.5.1"))
-           (file-name "rust-termion-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e9=
2096"))))
-       ("rust-thread-id"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread-id" "2.0.0"))
-           (file-name "rust-thread-id-2.0.0")
-           (sha256
-            (base16-string->bytevector
-             "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0=
ff03"))))
-       ("rust-thread_local"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.2.7"))
-           (file-name "rust-thread_local-0.2.7")
-           (sha256
-            (base16-string->bytevector
-             "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18c=
fdd5"))))
-       ("rust-thread_local-0.3.4"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.3.4"))
-           (file-name "rust-thread_local-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90=
bb14"))))
-       ("rust-toml"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "toml" "0.4.5"))
-           (file-name "rust-toml-0.4.5")
-           (sha256
-            (base16-string->bytevector
-             "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b=
6e7e"))))
-       ("rust-unicode-bidi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-bidi" "0.3.4"))
-           (file-name "rust-unicode-bidi-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea=
54d5"))))
-       ("rust-unicode-normalization"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-normalization" "0.1.5"))
-           (file-name "rust-unicode-normalization-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625=
920f"))))
-       ("rust-unicode-xid"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-xid" "0.0.4"))
-           (file-name "rust-unicode-xid-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074c=
b4dc"))))
-       ("rust-unreachable"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unreachable" "1.0.0"))
-           (file-name "rust-unreachable-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814=
fa56"))))
-       ("rust-url"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "url" "1.5.1"))
-           (file-name "rust-url-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "eeb819346883532a271eb626deb43c4a1bb4c4dd47c519bd78137c3e72a4=
fe27"))))
-       ("rust-userenv-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "userenv-sys" "0.2.0"))
-           (file-name "rust-userenv-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "71d28ea36bbd9192d75bd9fa9b39f96ddb986eaee824adae5d53b6e51919=
b2f3"))))
-       ("rust-utf8-ranges"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "0.1.3"))
-           (file-name "rust-utf8-ranges-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830=
ae0f"))))
-       ("rust-utf8-ranges-1.0.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "1.0.0"))
-           (file-name "rust-utf8-ranges-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e5512=
4122"))))
-       ("rust-vcpkg"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "vcpkg" "0.2.2"))
-           (file-name "rust-vcpkg-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd548=
7d0b"))))
-       ("rust-void"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "void" "1.0.2"))
-           (file-name "rust-void-1.0.2")
-           (sha256
-            (base16-string->bytevector
-             "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770=
887d"))))
-       ("rust-walkdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "walkdir" "1.0.7"))
-           (file-name "rust-walkdir-1.0.7")
-           (sha256
-            (base16-string->bytevector
-             "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd2=
88ff"))))
-       ("rust-winapi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi" "0.2.8"))
-           (file-name "rust-winapi-0.2.8")
-           (sha256
-            (base16-string->bytevector
-             "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909=
087a"))))
-       ("rust-winapi-build"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi-build" "0.1.1"))
-           (file-name "rust-winapi-build-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc6=
99bc"))))
-       ("rust-wincolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "wincolor" "0.1.4"))
-           (file-name "rust-wincolor-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58=
b8b0"))))
-       ("rust-ws2_32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ws2_32-sys" "0.2.1"))
-           (file-name "rust-ws2_32-sys-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63=
fa5e"))))))
-    (arguments
-     `(#:cargo ,cargo-bootstrap
-       #:rustc ,rustc ; Force to use rustc from current file
-       #:modules
-       ((ice-9 match)
-        (srfi srfi-1) ; 'every
-        (guix build utils)
-        (guix build cargo-build-system))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unpack-dependencies
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (define (unpack source target)
-               (mkdir-p target)
-               (with-directory-excursion target
-                 (zero? (system* "tar" "xf"
-                                 source
-                                 "--strip-components=3D1"))))
-             (define (touch file-name)
-               (call-with-output-file file-name (const #t)))
-             (define (install-rust-library entry)
-               (match entry
-                 ((name . src)
-                  (if (string-prefix? "rust-" name)
-                      (let* ((rust-length (string-length "rust-"))
-                             (rust-name (string-drop name rust-length))
-                             (rsrc (string-append "vendor/" rust-name))
-                             (unpack-status (unpack src rsrc)))
-                        (touch (string-append rsrc "/.cargo-ok"))
-                        (generate-checksums rsrc src)
-                        unpack-status)))
-                 (_ #t)))
-             (mkdir "vendor")
-             (every install-rust-library inputs)))
-         (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Cargo.lock"
-               (("(\"checksum .* =3D )\".*\"" all name)
-                (string-append name "\"" ,%cargo-reference-hash "\"")))
-             (for-each
-              (lambda (filename)
-                (use-modules (guix build cargo-build-system))
-                (delete-file filename)
-                (let* ((dir (dirname filename)))
-                  (display (string-append
-                            "patch-cargo-checksums: generate-checksums for=
 "
-                            dir "\n"))
-                  (generate-checksums dir ,%cargo-reference-project-file)))
-              (find-files "vendor" ".cargo-checksum.json"))
-             #t))
-         (replace 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "tests/build.rs"
-               (("/usr/bin/env") (which "env"))
-               ;; Guix llvm compiled without asmjs-unknown-emscripten at a=
ll
-               (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_ou=
tputs"))
-             (substitute* "tests/death.rs"
-               ;; Stuck when built in container
-               (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_e=
veryone"))
-             (mkdir ".cargo")
-             (call-with-output-file ".cargo/config"
-               (lambda (port)
-                 (display "
-[source.crates-io]
-registry =3D 'https://github.com/rust-lang/crates.io-index'
-replace-with =3D 'vendored-sources'
-
-[source.vendored-sources]
-directory =3D 'vendor'
-" port)))
-             ;; Disable test for cross compilation support
-             (setenv "CFG_DISABLE_CROSS_TESTS" "1")
-             (setenv "SHELL" (which "sh"))
-             (setenv "CONFIG_SHELL" (which "sh"))
-             (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gc=
c"))
-             #t)))))
-    (home-page "https://github.com/rust-lang/cargo")
-    (synopsis "Build tool and package manager for Rust")
-    (description "Cargo is a tool that allows Rust projects to declare the=
ir
-dependencies and ensures a reproducible build.")
-    ;; Cargo is dual licensed Apache and MIT. Also contains
-    ;; code from openssl which is GPL2 with linking exception.
-    (license (list license:asl2.0 license:expat license:gpl2))))
+(define-public rust
+  (let ((base-rust rust-1.23))
+    (package
+      (inherit base-rust)
+      (version "1.24.1")
+      (source
+       (rust-source version
+                    "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"=
))
+      (native-inputs
+       (alist-replace "cargo-bootstrap" (list base-rust "cargo")
+                      (alist-replace "rustc-bootstrap" (list base-rust)
+                                     (package-native-inputs base-rust))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases) `(modify-phases ,phases
+                               (delete 'fix-mtime-bug))))))))
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index c637fbb16..4a1eb0cfa 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -43,17 +43,11 @@
 to NAME and VERSION."
   (string-append crate-url name "/" version "/download"))
=20
-(define (default-cargo)
-  "Return the default Cargo package."
+(define (default-rust)
+  "Return the default Rust package."
   ;; Lazily resolve the binding to avoid a circular dependency.
   (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'cargo)))
-
-(define (default-rustc)
-  "Return the default Rustc package."
-  ;; Lazily resolve the binding to avoid a circular dependency.
-  (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'rustc)))
+    (module-ref rust 'rust)))
=20
 (define %cargo-build-system-modules
   ;; Build-side modules imported by default.
@@ -115,14 +109,13 @@ to NAME and VERSION."
=20
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
-                (cargo (default-cargo))
-                (rustc (default-rustc))
+                (rust (default-rust))
                 #:allow-other-keys
                 #:rest arguments)
   "Return a bag for NAME."
=20
   (define private-keywords
-    '(#:source #:target #:cargo #:rustc #:inputs #:native-inputs #:outputs=
))
+    '(#:source #:target #:rust #:inputs #:native-inputs #:outputs))
=20
   (and (not target) ;; TODO: support cross-compilation
        (bag
@@ -136,8 +129,8 @@ to NAME and VERSION."
=20
                         ;; Keep the standard inputs of 'gnu-build-system'
                         ,@(standard-packages)))
-         (build-inputs `(("cargo" ,cargo)
-                         ("rustc" ,rustc)
+         (build-inputs `(("cargo" ,rust "cargo")
+                         ("rustc" ,rust)
                          ,@native-inputs))
          (outputs outputs)
          (build cargo-build)
--=20
2.16.2


--=-=-=--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 27 Mar 2018 07:41:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 27 03:41:09 2018
Received: from localhost ([127.0.0.1]:55095 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1f0jED-0000ki-30
	for submit <at> debbugs.gnu.org; Tue, 27 Mar 2018 03:41:09 -0400
Received: from hera.aquilenet.fr ([185.233.100.1]:48328)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1f0jEC-0000ka-2T
 for 30831 <at> debbugs.gnu.org; Tue, 27 Mar 2018 03:41:08 -0400
Received: from localhost (localhost [127.0.0.1])
 by hera.aquilenet.fr (Postfix) with ESMTP id 6D94412509;
 Tue, 27 Mar 2018 09:41:07 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at aquilenet.fr
Received: from hera.aquilenet.fr ([127.0.0.1])
 by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id i6yA2MBJKv5S; Tue, 27 Mar 2018 09:41:06 +0200 (CEST)
Received: from ribbon (vpn-0-27.aquilenet.fr [IPv6:2a0c:e300:4:27::])
 by hera.aquilenet.fr (Postfix) with ESMTPSA id 56CEA12506;
 Tue, 27 Mar 2018 09:41:06 +0200 (CEST)
From: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=)
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN> <87y3ij25bf.fsf@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: 7 Germinal an 226 de la =?utf-8?Q?R=C3=A9volution?=
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Tue, 27 Mar 2018 09:41:05 +0200
In-Reply-To: <87y3ij25bf.fsf@HIDDEN> (Nikolai Merinov's message of
 "Fri, 23 Mar 2018 02:01:08 +0500")
Message-ID: <87in9iynhq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 30831
Cc: Ricardo Wurmus <rekado@HIDDEN>,
 Danny Milosavljevic <dannym@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

Hello Nikolai,

Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:

> Ricardo Wurmus <rekado@HIDDEN> writes:
>
>> Ludovic Court=C3=A8s <ludo@HIDDEN> writes:
>>
>>> Hello,
>>>
>>> Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:
>>>
>>>> Actually there is two ways to achieve this:
>>>> 1. Constantly update bootsrap binaries version.
>>>> 2. For each new release create new package. As result we'll be able to
>>>> use old rust release to build each new rust release. E.g. we can use
>>>> 1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
>>>> 1.23.0 rust and then use it to build 1.24.1 rust.
>>>>
>>>> Which way is preferable?=20
>>>
>>> Like I wrote, I would prefer option #2, so as to increase =E2=80=9Cbina=
ry
>>> diversity=E2=80=9D and not rely on builds made by upstream.
>>>
>>> This obviously relates to <http://bootstrappable.org/>.  Ricardo, what=
=E2=80=99s
>>> your take on this?
>>
>> I agree.  In the long run, however, I=E2=80=99d prefer for Rust to be
>> bootstrapped through one of the alternative implementations.  Then we
>> don=E2=80=99t need to keep a long chain of older versions.
>>
>> Currently, however, I don=E2=80=99t see a way around it.
>
> Hi, I prepared proof-of-concept solution with rust-bootstrap frozed on
> 1.22.1 release.

Would it be an option to stick to 1.21?  Or is it already too difficult?
(Apologies if this was already answered previously.)  I=E2=80=99m asking be=
cause
I wonder how big the temptation will be to upgrade =E2=80=98rust-bootstrap=
=E2=80=99
again next time.

> Do you think suggested code with "split all code to small steps and
> remove fixed issues in new releases" is correct way to provide series
> of releases? Or it will be better to copy builder code to state it
> directly that this specific modification is tested on each rust
> release?

I=E2=80=99m not sure what you mean.

Danny, you probably have more experience than I do with Rust.  :-)
Thoughts?

Thanks,
Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 24 Mar 2018 16:26:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 24 12:26:17 2018
Received: from localhost ([127.0.0.1]:51642 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ezlzl-00038D-Je
	for submit <at> debbugs.gnu.org; Sat, 24 Mar 2018 12:26:17 -0400
Received: from dd26836.kasserver.com ([85.13.145.193]:52142)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1ezlzk-000385-G7
 for 30831 <at> debbugs.gnu.org; Sat, 24 Mar 2018 12:26:17 -0400
Received: from localhost (77.118.213.79.wireless.dyn.drei.com [77.118.213.79])
 by dd26836.kasserver.com (Postfix) with ESMTPSA id A9C7A33603BA;
 Sat, 24 Mar 2018 17:26:14 +0100 (CET)
Date: Sat, 24 Mar 2018 17:26:01 +0100
From: Danny Milosavljevic <dannym@HIDDEN>
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release
 to 1.24.1
Message-ID: <20180324172601.070cb69d@HIDDEN>
In-Reply-To: <87a7v12qw9.fsf@HIDDEN>
References: <874llhdocu.fsf@HIDDEN>
 <20180318195811.70c2b820@HIDDEN>
 <87a7v12qw9.fsf@HIDDEN>
X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 boundary="Sig_/v/MIeTPSt3=KOQGuC.xECtt"; protocol="application/pgp-signature"
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--Sig_/v/MIeTPSt3=KOQGuC.xECtt
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi Nikolai,

On Thu, 22 Mar 2018 00:02:46 +0500
Nikolai Merinov <nikolai.merinov@HIDDEN> wrote:

> I checked several times with "guix build --no-grafts --rounds=3D2 rust@1.=
24.1"
> with "guix gc" between tries, but it worked correctly. I tried on x86-64
> architecture with my patch over 79f450a120068ac1d2fc4e5b4b33ae938b604f95
> guix commit.=20

Weird, works fine for me with 79f450a120068ac1d2fc4e5b4b33ae938b604f95.

But with the current master, 2cac8891510533338f6214fbd5ab9c2f6204e856, it f=
ails
as describes (I tried again, fails).

--Sig_/v/MIeTPSt3=KOQGuC.xECtt
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlq2fBkACgkQ5xo1VCww
uqVHGAgAl2a+9fhs95eFq0roFTmYj7RUXC9e7wx+azAWBym6XdjwuEmCCtfib2fy
JjgaA+iKRQwy+a05xuyXieDd6Yyf/Tg1JLpB3PiP9eFPJtkw1dikYIb8Ai02mqpR
ci3P3dh3eK43vdMq+Bo/DW7o+BLg/yfLLmGxedyaf0ztVZj5OWTCAuAQ6w1dil1U
CCTeT1JbfdpLIlW77bkwxb1KbA+XwVvoNFcGTgdX2A5TYfWhBR1Bfbj8K/uX33jI
3WLCdxmEuFheOzeg6Wsj+9Uc006vP72tTie9h6LV3IR4QE/FJlHiBaCSLy9CsP2z
3MVpfEC+Tw6wBraZTjkmEbutQCTwcQ==
=RhPG
-----END PGP SIGNATURE-----

--Sig_/v/MIeTPSt3=KOQGuC.xECtt--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 22 Mar 2018 21:01:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 22 17:01:39 2018
Received: from localhost ([127.0.0.1]:48174 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ez7Ky-0005mX-W9
	for submit <at> debbugs.gnu.org; Thu, 22 Mar 2018 17:01:39 -0400
Received: from mail-lf0-f43.google.com ([209.85.215.43]:43040)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1ez7Kq-0005mD-Cw
 for 30831 <at> debbugs.gnu.org; Thu, 22 Mar 2018 17:01:28 -0400
Received: by mail-lf0-f43.google.com with SMTP id v207-v6so15249405lfa.10
 for <30831 <at> debbugs.gnu.org>; Thu, 22 Mar 2018 14:01:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=7Y8jBzyJjwiYBUYZuUFaBjwalVsue+OQacl1o4ghZVk=;
 b=onVvUUwYkmOMayp+FclvnxWC9/CXj+SYsv1GI6qK2w7yBS7Jm9d5y89S4UYil3zIau
 2PQQ0+S5Y7DbBfXlIO6SFHUk84aANesYRwCShB2bfDE/56BchvSNCNvByT7cwpTrBRKW
 DQi0pvI7/hRmpwSPzEEulSJHnd9Rs4Ym86ZG3w4+GQXnSEWI5yfZ4fefgpNvq10a2itP
 0Z+EaShQqYe1tnCOHTuHGyxYCu0YsUVaeFLJpjeTEychEysC9QESkFpF71HNcvN5XZDh
 J8DCtRdUJGJkixmZCsgn6CA+U7U1EHQnULEMGx6QqwT0NbKphFVPP7XZK0bVUQ3+UUF2
 6TtA==
X-Gm-Message-State: AElRT7HQd5Byedqkf1GgGoTSPc6o7jaDNIrceVpjAoLUW27b4one08Jw
 YlM8FJdZD4nJiRTL/vJscV4FKcAO
X-Google-Smtp-Source: AG47ELuI4U4T6lcthrHcLGwyMm5nUKS5i/tsnFg1GetKrhFMu0xJU0jVGCpGTvw2Gu92fEJ8hVBfKg==
X-Received: by 10.46.128.132 with SMTP id i4mr11593509ljg.51.1521752472864;
 Thu, 22 Mar 2018 14:01:12 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id q24-v6sm1801216lff.32.2018.03.22.14.01.10
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Thu, 22 Mar 2018 14:01:11 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: Ricardo Wurmus <rekado@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
 <87o9jjc8xg.fsf@HIDDEN>
Date: Fri, 23 Mar 2018 02:01:08 +0500
In-Reply-To: <87o9jjc8xg.fsf@HIDDEN> (Ricardo Wurmus's message of "Tue,
 20 Mar 2018 11:56:11 +0100")
Message-ID: <87y3ij25bf.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org, Danny Milosavljevic <dannym@HIDDEN>,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Ricardo Wurmus <rekado@HIDDEN> writes:

> Ludovic Court=C3=A8s <ludo@HIDDEN> writes:
>
>> Hello,
>>
>> Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:
>>
>>> Actually there is two ways to achieve this:
>>> 1. Constantly update bootsrap binaries version.
>>> 2. For each new release create new package. As result we'll be able to
>>> use old rust release to build each new rust release. E.g. we can use
>>> 1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
>>> 1.23.0 rust and then use it to build 1.24.1 rust.
>>>
>>> Which way is preferable?=20
>>
>> Like I wrote, I would prefer option #2, so as to increase =E2=80=9Cbinary
>> diversity=E2=80=9D and not rely on builds made by upstream.
>>
>> This obviously relates to <http://bootstrappable.org/>.  Ricardo, what=
=E2=80=99s
>> your take on this?
>
> I agree.  In the long run, however, I=E2=80=99d prefer for Rust to be
> bootstrapped through one of the alternative implementations.  Then we
> don=E2=80=99t need to keep a long chain of older versions.
>
> Currently, however, I don=E2=80=99t see a way around it.

Hi, I prepared proof-of-concept solution with rust-bootstrap frozed on
1.22.1 release. Do you think suggested code with "split all code to
small steps and remove fixed issues in new releases" is correct way to
provide series of releases? Or it will be better to copy builder code to
state it directly that this specific modification is tested on each rust
release?

Regards,
Nikolai


--=-=-=
Content-Type: text/x-patch; charset=utf-8
Content-Disposition: inline;
 filename=0001-gnu-rust-Update-rust-to-1.24.1-froze-bootstrap-on-1..patch
Content-Transfer-Encoding: quoted-printable

From 1065cf1e2f900f2d7da5512df60278396063fe73 Mon Sep 17 00:00:00 2001
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
Date: Wed, 14 Mar 2018 00:06:53 +0500
Subject: [PATCH] gnu: rust: Update rust to 1.24.1, froze bootstrap on 1.22.1
 release
To: guix-patches@HIDDEN

* gnu/packages/rust.scm (rust-bootstrap): Froze bootstrap version on 1.22.1
rust release. Reorganize bootstrap binaries to match new "rust" package
structure with two ouputs "out" with rust compiler and "cargo" with cargo
package manager.
(rust-1.23): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo
related dependencies. Install "cargo" as separate "rust" output. Remove
substitutes for parts that was fixed in "rustc" source code. Install
documentation to separate "doc" output. Update configuration according to
changes in "rustc" source code.
(rust): Create package for 1.24.1 rust release based on rust-1.23 release.
* guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and
"default-rustc" functions with "default-rust" function.
(cargo-build-system): Take only one package as "rust" source. Use "rustc" f=
rom
default output of "rust" package, use "cargo" as "cargo" output of "rust"
package.

Cargo was moved from separate package to "rust" output because starting from
0.25.0 release cargo have no "Cargo.lock" anymore. According to
https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286f5=
f154692
commit message "cargo" used as "rust" dependency and stable version for
"cargo" provided through "Cargo.lock" file from "rust-lang/rust"
repository. As result only way to get stable version of cargo is build it f=
rom
"rust" sources.
---
 gnu/packages/rust.scm       | 1348 ++++-----------------------------------=
----
 guix/build-system/cargo.scm |   21 +-
 2 files changed, 113 insertions(+), 1256 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 1ba857d36..003f6812d 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -3,7 +3,7 @@
 ;;; Copyright =C2=A9 2016 Eric Le Bihan <eric.le.bihan.dev@HIDDEN>
 ;;; Copyright =C2=A9 2016 ng0 <ng0@HIDDEN>
 ;;; Copyright =C2=A9 2017 Ben Woodcroft <donttrustben@HIDDEN>
-;;; Copyright =C2=A9 2017 Nikolai Merinov <nikolai.merinov@HIDDEN>
+;;; Copyright =C2=A9 2017, 2018 Nikolai Merinov <nikolai.merinov@HIDDEN=
f.org>
 ;;; Copyright =C2=A9 2017 Efraim Flashner <efraim@HIDDEN>
 ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice <me@HIDDEN>
 ;;;
@@ -46,71 +46,48 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
-  #:use-module (guix base16)      ;for generated "cargo" native-inputs
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module (guix utils)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26))
=20
-;; Should be one less than the current released version.
-(define %rust-bootstrap-binaries-version "1.21.0")
-
-(define %rust-bootstrap-binaries
-  (origin
-    (method url-fetch)
-    (uri (string-append
-          "https://static.rust-lang.org/dist/"
-          "rust-" %rust-bootstrap-binaries-version
-          "-" %host-type ".tar.gz"))
-    (sha256
-     (base32
-      (match %host-type
-        ("i686-unknown-linux-gnu"
-         "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
-        ("x86_64-unknown-linux-gnu"
-         "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
-        ("armv7-unknown-linux-gnueabihf"
-         "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
-        ("aarch64-unknown-linux-gnu"
-         "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
-        ("mips64el-unknown-linux-gnuabi64"
-         "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
-        (_ "")))))) ; Catch-all for other systems.
-
 (define %cargo-reference-project-file "/dev/null")
 (define %cargo-reference-hash
   "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
=20
-(define (increment-rust-version rust-version major patch)
-  (match (string-split rust-version #\.)
-    (("1" minor _)
-     (string-append (number->string major) "."
-                    (number->string (+ (string->number minor) 1)) "."
-                    (number->string patch)))))
-
-(define* (cargo-version rustc-version #:optional (patch 0))
-  ;; Computes the cargo version that matches the rustc version.
-  ;; This has so far continued to follow a predictable pattern:
-  ;; https://github.com/rust-lang/cargo/blob/50a46f47/README.md#releases
-  (increment-rust-version rustc-version 0 patch))
-
-(define* (rustc-version bootstrap-version #:optional (patch 0))
-  ;; Computes the rustc version that can be compiled from a given
-  ;; other rustc version. The patch argument is for selecting
-  ;; a stability or security fix. 1.11.0 -> 1.12.1 -> 1.13.0
-  (increment-rust-version bootstrap-version 1 patch))
-
-(define rustc-bootstrap
+(define rust-bootstrap
   (package
-    (name "rustc-bootstrap")
-    (version %rust-bootstrap-binaries-version)
-    (source %rust-bootstrap-binaries)
+    (name "rust-bootstrap")
+    (version "1.22.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+ "https://static.rust-lang.org/dist/"
+                    "rust-" version "-" %host-type ".tar.gz"))
+              (sha256
+               (base32
+                (match %host-type
+                  ("i686-unknown-linux-gnu"
+                   "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr")
+                  ("x86_64-unknown-linux-gnu"
+                   "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c")
+                  ("armv7-unknown-linux-gnueabihf"
+                   "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5")
+                  ("aarch64-unknown-linux-gnu"
+                   "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8")
+                  ("mips64el-unknown-linux-gnuabi64"
+                   "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2")
+                  (_ ""))))))
     (build-system gnu-build-system)
     (native-inputs
      `(("patchelf" ,patchelf)))
     (inputs
-     `(("gcc:lib" ,(canonical-package gcc) "lib")
+     `(("gcc" ,(canonical-package gcc))
+       ("gcc:lib" ,(canonical-package gcc) "lib")
        ("zlib" ,zlib)))
+    (outputs '("out" "cargo"))
     (arguments
      `(#:tests? #f
        #:strip-binaries? #f
@@ -121,115 +98,62 @@
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (cargo-out (assoc-ref outputs "cargo"))
                     (gcc:lib (assoc-ref inputs "gcc:lib"))
                     (libc (assoc-ref inputs "libc"))
                     (zlib (assoc-ref inputs "zlib"))
                     (ld-so (string-append libc ,(glibc-dynamic-linker)))
                     (rpath (string-append out "/lib:" zlib "/lib:"
                                           libc "/lib:" gcc:lib "/lib"))
+                    (cargo-rpath (string-append cargo-out "/lib:" libc "/l=
ib:"
+                                                gcc:lib "/lib"))
                     (rustc (string-append out "/bin/rustc"))
-                    (rustdoc (string-append out "/bin/rustdoc")))
+                    (rustdoc (string-append out "/bin/rustdoc"))
+                    (cargo (string-append cargo-out "/bin/cargo"))
+                    (gcc (assoc-ref inputs "gcc")))
+               ;; Install rustc/rustdoc
                (system* "bash" "install.sh"
                         (string-append "--prefix=3D" out)
                         (string-append "--components=3Drustc,"
                                        "rust-std-" %host-type))
+               ;; Instal cargo
+               (system* "bash" "install.sh"
+                        (string-append "--prefix=3D" cargo-out)
+                        (string-append "--components=3Dcargo"))
                (for-each (lambda (file)
                            (system* "patchelf" "--set-rpath" rpath file))
                          (cons* rustc rustdoc (find-files out "\\.so$")))
+               (system* "patchelf" "--set-rpath" cargo-rpath cargo)
                (for-each (lambda (file)
                            (system* "patchelf" "--set-interpreter" ld-so f=
ile))
-                         (list rustc rustdoc))))))))
+                         (list rustc rustdoc cargo))
+               ;; Rust requires a C toolchain for linking. The prebuilt
+               ;; binaries expect a compiler called cc. Thus symlink gcc
+               ;; to cc.
+               (symlink (string-append gcc "/bin/gcc")
+                        (string-append out "/bin/cc"))))))))
     (home-page "https://www.rust-lang.org")
-    (synopsis "Prebuilt rust compiler")
-    (description "This package provides a pre-built @command{rustc} compil=
er,
-which can in turn be used to build the final Rust compiler.")
+    (synopsis "Prebuilt rust compiler and cargo package manager")
+    (description "This package provides a pre-built @command{rustc} compil=
er
+and a pre-built @command{cargo} package manaer, which can
+in turn be used to build the final Rust.")
     (license license:asl2.0)))
=20
-(define cargo-bootstrap
-  (package
-    (name "cargo-bootstrap")
-    (version (cargo-version %rust-bootstrap-binaries-version 1))
-    (source %rust-bootstrap-binaries)
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("patchelf" ,patchelf)))
-    (inputs
-     `(("gcc:lib" ,(canonical-package gcc) "lib")))
-    (arguments
-     `(#:tests? #f
-       #:strip-binaries? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (gcc:lib (assoc-ref inputs "gcc:lib"))
-                    (libc (assoc-ref inputs "libc"))
-                    (ld-so (string-append libc ,(glibc-dynamic-linker)))
-                    (rpath (string-append out "/lib:" libc "/lib:"
-                                          gcc:lib "/lib"))
-                    (cargo (string-append out "/bin/cargo")))
-               (system* "bash" "install.sh"
-                        (string-append "--prefix=3D" out)
-                        "--components=3Dcargo")
-               (system* "patchelf"
-                        "--set-interpreter" ld-so
-                        "--set-rpath" rpath
-                        cargo)))))))
-    (home-page "https://www.rust-lang.org")
-    (synopsis "Prebuilt cargo package manager")
-    (description "This package provides a pre-built @command{cargo} package
-manager, which is required to build itself.")
-    (license license:asl2.0)))
-
-(define rust-bootstrap
-  (package
-    (name "rust-bootstrap")
-    (version %rust-bootstrap-binaries-version)
-    (source #f)
-    (build-system trivial-build-system)
-    (propagated-inputs
-     `(("rustc-bootstrap" ,rustc-bootstrap)
-       ("cargo-bootstrap" ,cargo-bootstrap)
-       ("gcc" ,(canonical-package gcc))))
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((out (assoc-ref %outputs "out"))
-               (gcc (assoc-ref %build-inputs "gcc")))
-           (mkdir-p (string-append out "/bin"))
-           ;; Rust requires a C toolchain for linking. The prebuilt
-           ;; binaries expect a compiler called cc. Thus symlink gcc
-           ;; to cc.
-           (symlink (string-append gcc "/bin/gcc")
-                    (string-append out "/bin/cc"))))))
-    (home-page "https://www.rust-lang.org")
-    (synopsis "Rust bootstrapping meta package")
-    (description "Meta package for a rust environment. Provides pre-compil=
ed
-rustc-bootstrap and cargo-bootstrap packages.")
-    (license license:asl2.0)))
 
-(define-public rustc
+(define (rust-source version hash)
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://static.rust-lang.org/dist/"
+                        "rustc-" version "-src.tar.gz"))
+    (sha256 (base32 hash))
+    (modules '((guix build utils)))
+    (snippet '(begin (delete-file-recursively "src/llvm") #t))))
+
+(define-public rust-1.23
   (package
-    (name "rustc")
-    (version (rustc-version %rust-bootstrap-binaries-version 1))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://static.rust-lang.org/dist/"
-                    "rustc-" version "-src.tar.gz"))
-              (sha256
-               (base32
-                "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
-              (modules '((guix build utils)))
-              (snippet
-               `(begin
-                  (delete-file-recursively "src/llvm")
-                  #t))))
+    (name "rust")
+    (version "1.23.0")
+    (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5g=
mzfwf4w9ar3l"))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison) ; For the tests
@@ -239,11 +163,16 @@ rustc-bootstrap and cargo-bootstrap packages.")
        ("git" ,git)
        ("procps" ,procps) ; For the tests
        ("python-2" ,python-2)
-       ("rust-bootstrap" ,rust-bootstrap)
+       ("rustc-bootstrap" ,rust-bootstrap)
+       ("cargo-bootstrap" ,rust-bootstrap "cargo")
+       ("pkg-config" ,pkg-config) ; For "cargo"
        ("which" ,which)))
     (inputs
      `(("jemalloc" ,jemalloc-4.5.0)
-       ("llvm" ,llvm-3.9.1)))
+       ("llvm" ,llvm-3.9.1)
+       ("openssl" ,openssl)
+       ("libcurl" ,curl))) ; For "cargo"
+    (outputs '("out" "doc" "cargo"))
     (arguments
      `(#:imported-modules ,%cargo-build-system-modules ;for `generate-chec=
ksums'
        #:phases
@@ -258,9 +187,6 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (add-after 'unpack 'patch-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((bash (assoc-ref inputs "bash")))
-               (substitute* "src/build_helper/lib.rs"
-                 ;; In same folder as gcc there is only "gcc-ar" utility
-                 (("file\\.push_str\\(\"ar\"\\);") "file.push_str(\"gcc-ar=
\");"))
                (substitute* "src/libstd/process.rs"
                  ;; The newline is intentional.
                  ;; There's a line length "tidy" check in Rust which would
@@ -276,13 +202,15 @@ rustc-bootstrap and cargo-bootstrap packages.")
                ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_=
PATH.
                ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/m=
sg00193.html>
                (delete-file-recursively "src/test/run-make/linker-output-n=
on-utf8")
-               (substitute* "src/build_helper/lib.rs"
-                 ;; Bug in Rust code.
-                 ;; Current implementation assume that if dst not exist th=
en it's mtime
-                 ;; is 0, but in same time "src" have 0 mtime in guix buil=
d!
-                 (("let threshold =3D mtime\\(dst\\);")
-                  "if !dst.exists() {\nreturn false\n}\n let threshold =3D=
 mtime(dst);"))
                #t)))
+         (add-after 'patch-tests 'fix-mtime-bug
+           (lambda* (#:key #:allow-other-keys)
+             (substitute* "src/build_helper/lib.rs"
+               ;; Bug in Rust code.
+               ;; Current implementation assume that if dst not exist then=
 it's mtime
+               ;; is 0, but in same time "src" have 0 mtime in guix build!
+               (("let threshold =3D mtime\\(dst\\);")
+                "if !dst.exists() {\nreturn false\n}\n let threshold =3D m=
time(dst);"))))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/Cargo.lock"
@@ -302,6 +230,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
                     (gcc (assoc-ref inputs "gcc"))
                     (gdb (assoc-ref inputs "gdb"))
                     (binutils (assoc-ref inputs "binutils"))
@@ -317,15 +246,18 @@ rustc-bootstrap and cargo-bootstrap packages.")
 [build]
 cargo =3D \"" cargo "/bin/cargo" "\"
 rustc =3D \"" rustc "/bin/rustc" "\"
+docs =3D true
 python =3D \"" python "/bin/python2" "\"
 gdb =3D \"" gdb "/bin/gdb" "\"
 vendor =3D true
 submodules =3D false
 [install]
 prefix =3D \"" out "\"
+docdir =3D \"" doc "/share/doc/rust" "\"
+sysconfdir =3D \"etc\"
+localstatedir =3D \"var/lib\"
 [rust]
 default-linker =3D \"" gcc "/bin/gcc" "\"
-default-ar =3D \"" binutils "/bin/ar" "\"
 channel =3D \"stable\"
 rpath =3D true
 # There is 2 failed codegen tests:
@@ -336,6 +268,7 @@ codegen-tests =3D false
 llvm-config =3D \"" llvm "/bin/llvm-config" "\"
 cc =3D \"" gcc "/bin/gcc" "\"
 cxx =3D \"" gcc "/bin/g++" "\"
+ar =3D \"" binutils "/bin/ar" "\"
 jemalloc =3D \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 [dist]
 ") port)))
@@ -350,13 +283,21 @@ jemalloc =3D \"" jemalloc "/lib/libjemalloc_pic.a" "\"
              #t))
          (replace 'build
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "build"))))
+             (and (zero? (system* "./x.py" "build"))
+                  (zero? (system* "./x.py" "build" "src/tools/cargo")))))
          (replace 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (zero? (system* "./x.py" "test"))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "install"))))
+             (and (zero? (system* "./x.py" "install"))
+                  (begin
+                   (substitute* "config.toml"
+                     ;; replace prefix to specific output
+                     (("prefix =3D \"[^\"]*\"")
+                      (string-append "prefix =3D \"" (assoc-ref outputs "c=
argo") "\"")))
+                   (set-file-time "config.toml" (stat "README.md"))
+                   (zero? (system* "./x.py" "install" "cargo"))))))
          (add-after 'install 'wrap-rustc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -376,1095 +317,18 @@ safety and thread safety guarantees.")
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
=20
-;; This tries very hard not to get into a cyclic dependency like this:
-;;   cargo <- cargo-build-system <- cargo.
-(define-public cargo
+(define-public rust
   (package
-    (name "cargo")
-    (version (cargo-version (rustc-version %rust-bootstrap-binaries-versio=
n) 0))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rust-lang/cargo/arch=
ive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0kr7rml7v2bm7zl8jcb3056h63zpyy9m08s212i8vfwxf6lf5fzl"))))
-    (build-system cargo-build-system)
-    (propagated-inputs
-     `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("curl" ,curl)
-       ("libgit2" ,libgit2)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("python-2" ,python-2)
-       ("zlib" ,zlib)))
+    (inherit rust-1.23)
+    (version "1.24.1")
+    (source
+     (rust-source version
+                  "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))
     (native-inputs
-     `(("git" ,git) ; required for tests
-       ;; Next dependencies generated with next command:
-       ;; cat Cargo.lock | awk '
-       ;;   /^"checksum/
-       ;;   { oname=3Dname=3D$2; vers=3D$3; hash=3D$6;
-       ;;     if (ns[name] !=3D 1) { ns[name]=3D1; } else { name =3D name =
"-" vers; }
-       ;;     print "       (\"rust-" name "\"";
-       ;;     print "        ,(origin";
-       ;;     print "           (method url-fetch)";
-       ;;     print "           (uri (crate-uri \"" oname "\" \"" vers "\"=
))";
-       ;;     print "           (file-name \"rust-" oname "\-\" vers "\")
-       ;;     print "           (sha256";
-       ;;     print "            (base16-string->bytevector";
-       ;;     print "             " hash "))))"
-       ;;   }'
-       ("rust-advapi32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "advapi32-sys" "0.2.0"))
-           (file-name "rust-advapi32-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb=
8a9a"))))
-       ("rust-aho-corasick"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.5.3"))
-           (file-name "rust-aho-corasick-0.5.3")
-           (sha256
-            (base16-string->bytevector
-             "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686d=
db66"))))
-       ("rust-aho-corasick-0.6.3"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.6.3"))
-           (file-name "rust-aho-corasick-0.6.3")
-           (sha256
-            (base16-string->bytevector
-             "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b88=
9699"))))
-       ("rust-atty"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "atty" "0.2.3"))
-           (file-name "rust-atty-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b7=
8860"))))
-       ("rust-backtrace"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace" "0.3.3"))
-           (file-name "rust-backtrace-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "99f2ce94e22b8e664d95c57fff45b98a966c2252b60691d0b7aeeccd88d7=
0983"))))
-       ("rust-backtrace-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace-sys" "0.1.14"))
-           (file-name "rust-backtrace-sys-0.1.14")
-           (sha256
-            (base16-string->bytevector
-             "c63ea141ef8fdb10409d0f5daf30ac51f84ef43bff66f16627773d2a292c=
d189"))))
-       ("rust-bitflags"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.7.0"))
-           (file-name "rust-bitflags-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881=
106d"))))
-       ("rust-bitflags-0.9.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.9.1"))
-           (file-name "rust-bitflags-0.9.1")
-           (sha256
-            (base16-string->bytevector
-             "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1a=
b3a5"))))
-       ("rust-bufstream"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bufstream" "0.1.3"))
-           (file-name "rust-bufstream-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d0946=
8e32"))))
-       ("rust-cc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cc" "1.0.0"))
-           (file-name "rust-cc-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a=
76b1"))))
-       ("rust-cfg-if"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cfg-if" "0.1.2"))
-           (file-name "rust-cfg-if-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed31=
40de"))))
-       ("rust-cmake"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cmake" "0.1.26"))
-           (file-name "rust-cmake-0.1.26")
-           (sha256
-            (base16-string->bytevector
-             "357c07e7a1fc95732793c1edb5901e1a1f305cfcf63a90eb12dbd22bdb6b=
789d"))))
-       ("rust-commoncrypto"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto" "0.2.0"))
-           (file-name "rust-commoncrypto-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b6=
9007"))))
-       ("rust-commoncrypto-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto-sys" "0.2.0"))
-           (file-name "rust-commoncrypto-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f40=
83e2"))))
-       ("rust-conv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "conv" "0.3.3"))
-           (file-name "rust-conv-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d=
1299"))))
-       ("rust-core-foundation"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation" "0.4.4"))
-           (file-name "rust-core-foundation-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "5909502e547762013619f4c4e01cc7393c20fe2d52d7fa471c1210adb232=
0dc7"))))
-       ("rust-core-foundation-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation-sys" "0.4.4"))
-           (file-name "rust-core-foundation-sys-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "bc9fb3d6cb663e6fd7cf1c63f9b144ee2b1e4a78595a0451dd34bff85b9a=
3387"))))
-       ("rust-crossbeam"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.2.10"))
-           (file-name "rust-crossbeam-0.2.10")
-           (sha256
-            (base16-string->bytevector
-             "0c5ea215664ca264da8a9d9c3be80d2eaf30923c259d03e870388eb92750=
8f97"))))
-       ("rust-crossbeam-0.3.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.3.0"))
-           (file-name "rust-crossbeam-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "8837ab96533202c5b610ed44bc7f4183e7957c1c8f56e8cc78bb098593c8=
ba0a"))))
-       ("rust-crypto-hash"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crypto-hash" "0.3.0"))
-           (file-name "rust-crypto-hash-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "34903878eec1694faf53cae8473a088df333181de421d4d3d48061d6559f=
e602"))))
-       ("rust-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl" "0.4.8"))
-           (file-name "rust-curl-0.4.8")
-           (sha256
-            (base16-string->bytevector
-             "7034c534a1d7d22f7971d6088aa9d281d219ef724026c3428092500f41ae=
9c2c"))))
-       ("rust-curl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl-sys" "0.3.15"))
-           (file-name "rust-curl-sys-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "4bee31aa3a079d5f3ff9579ea4dcfb1b1a17a40886f5f467436d383e7813=
4b55"))))
-       ("rust-custom_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "custom_derive" "0.1.7"))
-           (file-name "rust-custom_derive-0.1.7")
-           (sha256
-            (base16-string->bytevector
-             "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a=
01b9"))))
-       ("rust-dbghelp-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dbghelp-sys" "0.2.0"))
-           (file-name "rust-dbghelp-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5=
b850"))))
-       ("rust-docopt"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "docopt" "0.8.1"))
-           (file-name "rust-docopt-0.8.1")
-           (sha256
-            (base16-string->bytevector
-             "3b5b93718f8b3e5544fcc914c43de828ca6c6ace23e0332c6080a2977b49=
787a"))))
-       ("rust-dtoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dtoa" "0.4.2"))
-           (file-name "rust-dtoa-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e=
50ab"))))
-       ("rust-env_logger"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "env_logger" "0.4.3"))
-           (file-name "rust-env_logger-0.4.3")
-           (sha256
-            (base16-string->bytevector
-             "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8=
cd5b"))))
-       ("rust-error-chain"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "error-chain" "0.11.0"))
-           (file-name "rust-error-chain-0.11.0")
-           (sha256
-            (base16-string->bytevector
-             "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419e=
d3f3"))))
-       ("rust-filetime"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "filetime" "0.1.12"))
-           (file-name "rust-filetime-0.1.12")
-           (sha256
-            (base16-string->bytevector
-             "6ab199bf38537c6f38792669e081e0bb278b9b7405bba2642e4e5d15bf73=
2c0e"))))
-       ("rust-flate2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "flate2" "0.2.20"))
-           (file-name "rust-flate2-0.2.20")
-           (sha256
-            (base16-string->bytevector
-             "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81=
e423"))))
-       ("rust-fnv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fnv" "1.0.5"))
-           (file-name "rust-fnv-1.0.5")
-           (sha256
-            (base16-string->bytevector
-             "6cc484842f1e2884faf56f529f960cc12ad8c71ce96cc7abba0a067c98fe=
e344"))))
-       ("rust-foreign-types"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "foreign-types" "0.2.0"))
-           (file-name "rust-foreign-types-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "3e4056b9bd47f8ac5ba12be771f77a0dae796d1bbaaf5fd0b9c2d38b69b8=
a29d"))))
-       ("rust-fs2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fs2" "0.4.2"))
-           (file-name "rust-fs2-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c=
2866"))))
-       ("rust-git2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2" "0.6.8"))
-           (file-name "rust-git2-0.6.8")
-           (sha256
-            (base16-string->bytevector
-             "0c1c0203d653f4140241da0c1375a404f0a397249ec818cd2076c6280c50=
f6fa"))))
-       ("rust-git2-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2-curl" "0.7.0"))
-           (file-name "rust-git2-curl-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5=
bf8e"))))
-       ("rust-glob"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "glob" "0.2.11"))
-           (file-name "rust-glob-0.2.11")
-           (sha256
-            (base16-string->bytevector
-             "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac589=
5bfb"))))
-       ("rust-globset"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "globset" "0.2.0"))
-           (file-name "rust-globset-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "feeb1b6840809ef5efcf7a4a990bc4e1b7ee3df8cf9e2379a75aeb2ba42a=
c9c3"))))
-       ("rust-hamcrest"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hamcrest" "0.1.1"))
-           (file-name "rust-hamcrest-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "bf088f042a467089e9baa4972f57f9247e42a0cc549ba264c7a04fbb8ecb=
89d4"))))
-       ("rust-hex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hex" "0.2.0"))
-           (file-name "rust-hex-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e1=
53aa"))))
-       ("rust-home"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "home" "0.3.0"))
-           (file-name "rust-home-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "9f25ae61099d8f3fee8b483df0bd4ecccf4b2731897aad40d50eca1b641f=
e6db"))))
-       ("rust-idna"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "idna" "0.1.4"))
-           (file-name "rust-idna-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951e=
af7d"))))
-       ("rust-ignore"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ignore" "0.2.2"))
-           (file-name "rust-ignore-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c=
99f5"))))
-       ("rust-itoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "itoa" "0.3.4"))
-           (file-name "rust-itoa-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4=
db8c"))))
-       ("rust-jobserver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "jobserver" "0.1.6"))
-           (file-name "rust-jobserver-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "443ae8bc0af6c106e6e8b77e04684faecc1a5ce94e058f4c2b0a037b0ea1=
b133"))))
-       ("rust-kernel32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "kernel32-sys" "0.2.2"))
-           (file-name "rust-kernel32-sys-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056=
098d"))))
-       ("rust-lazy_static"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "lazy_static" "0.2.9"))
-           (file-name "rust-lazy_static-0.2.9")
-           (sha256
-            (base16-string->bytevector
-             "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375=
f8d5"))))
-       ("rust-libc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libc" "0.2.31"))
-           (file-name "rust-libc-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "d1419b2939a0bc44b77feb34661583c7546b532b192feab36249ab584b86=
856c"))))
-       ("rust-libgit2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libgit2-sys" "0.6.16"))
-           (file-name "rust-libgit2-sys-0.6.16")
-           (sha256
-            (base16-string->bytevector
-             "6f74b4959cef96898f5123148724fc7dee043b9a6b99f219d948851bfbe5=
3cb2"))))
-       ("rust-libssh2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libssh2-sys" "0.2.6"))
-           (file-name "rust-libssh2-sys-0.2.6")
-           (sha256
-            (base16-string->bytevector
-             "0db4ec23611747ef772db1c4d650f8bd762f07b461727ec998f953c61402=
4b75"))))
-       ("rust-libz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libz-sys" "1.0.17"))
-           (file-name "rust-libz-sys-1.0.17")
-           (sha256
-            (base16-string->bytevector
-             "44ebbc760fd2d2f4d93de09a0e13d97e057612052e871da9985cedcb451e=
6bd5"))))
-       ("rust-log"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "log" "0.3.8"))
-           (file-name "rust-log-0.3.8")
-           (sha256
-            (base16-string->bytevector
-             "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512=
565b"))))
-       ("rust-magenta"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta" "0.1.1"))
-           (file-name "rust-magenta-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3a=
c527"))))
-       ("rust-magenta-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta-sys" "0.1.1"))
-           (file-name "rust-magenta-sys-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f=
4699"))))
-       ("rust-matches"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "matches" "0.1.6"))
-           (file-name "rust-matches-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f19=
3376"))))
-       ("rust-memchr"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "0.1.11"))
-           (file-name "rust-memchr-0.1.11")
-           (sha256
-            (base16-string->bytevector
-             "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d28276141=
8d20"))))
-       ("rust-memchr-1.0.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "1.0.1"))
-           (file-name "rust-memchr-1.0.1")
-           (sha256
-            (base16-string->bytevector
-             "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a=
47b4"))))
-       ("rust-miniz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miniz-sys" "0.1.10"))
-           (file-name "rust-miniz-sys-0.1.10")
-           (sha256
-            (base16-string->bytevector
-             "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7=
e2b4"))))
-       ("rust-miow"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miow" "0.2.1"))
-           (file-name "rust-miow-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355a=
e919"))))
-       ("rust-net2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "net2" "0.2.31"))
-           (file-name "rust-net2-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b71=
6c09"))))
-       ("rust-num"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num" "0.1.40"))
-           (file-name "rust-num-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f92=
3525"))))
-       ("rust-num-bigint"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-bigint" "0.1.40"))
-           (file-name "rust-num-bigint-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "8fd0f8dbb4c0960998958a796281d88c16fbe68d87b1baa6f31e2979e81f=
d0bd"))))
-       ("rust-num-complex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-complex" "0.1.40"))
-           (file-name "rust-num-complex-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "503e668405c5492d67cf662a81e05be40efe2e6bcf10f7794a07bd9865e7=
04e6"))))
-       ("rust-num-integer"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-integer" "0.1.35"))
-           (file-name "rust-num-integer-0.1.35")
-           (sha256
-            (base16-string->bytevector
-             "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d=
0fba"))))
-       ("rust-num-iter"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-iter" "0.1.34"))
-           (file-name "rust-num-iter-0.1.34")
-           (sha256
-            (base16-string->bytevector
-             "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13df=
fe01"))))
-       ("rust-num-rational"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-rational" "0.1.39"))
-           (file-name "rust-num-rational-0.1.39")
-           (sha256
-            (base16-string->bytevector
-             "288629c76fac4b33556f4b7ab57ba21ae202da65ba8b77466e6d598e3199=
0790"))))
-       ("rust-num-traits"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-traits" "0.1.40"))
-           (file-name "rust-num-traits-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721=
b9b0"))))
-       ("rust-num_cpus"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num_cpus" "1.7.0"))
-           (file-name "rust-num_cpus-1.7.0")
-           (sha256
-            (base16-string->bytevector
-             "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453=
b20d"))))
-       ("rust-openssl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl" "0.9.19"))
-           (file-name "rust-openssl-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "816914b22eb15671d62c73442a51978f311e911d6a6f6cbdafa6abce1b50=
38fc"))))
-       ("rust-openssl-probe"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-probe" "0.1.1"))
-           (file-name "rust-openssl-probe-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "d98df0270d404ccd3c050a41d579c52d1db15375168bb3471e04ec0f5f37=
8daf"))))
-       ("rust-openssl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-sys" "0.9.19"))
-           (file-name "rust-openssl-sys-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "1e4c63a7d559c1e5afa6d6a9e6fa34bbc5f800ffc9ae08b72c605420b0c4=
f5e8"))))
-       ("rust-percent-encoding"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "percent-encoding" "1.0.0"))
-           (file-name "rust-precent-encoding-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6a=
e356"))))
-       ("rust-pkg-config"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "pkg-config" "0.3.9"))
-           (file-name "rust-pkg-config-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edb=
a903"))))
-       ("rust-psapi-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "psapi-sys" "0.1.0"))
-           (file-name "rust-psapi-sys-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "abcd5d1a07d360e29727f757a9decb3ce8bc6e0efa8969cfaad669a8317a=
2478"))))
-       ("rust-quote"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "quote" "0.3.15"))
-           (file-name "rust-quote-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4=
167a"))))
-       ("rust-rand"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rand" "0.3.16"))
-           (file-name "rust-rand-0.3.16")
-           (sha256
-            (base16-string->bytevector
-             "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fec=
bcdf"))))
-       ("rust-redox_syscall"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_syscall" "0.1.31"))
-           (file-name "rust-redox_syscall-0.1.31")
-           (sha256
-            (base16-string->bytevector
-             "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb0=
4509"))))
-       ("rust-redox_termios"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_termios" "0.1.1"))
-           (file-name "rust-redox_termios-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db=
0f76"))))
-       ("rust-regex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.1.80"))
-           (file-name "rust-regex-0.1.80")
-           (sha256
-            (base16-string->bytevector
-             "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019=
402f"))))
-       ("rust-regex-0.2.2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.2.2"))
-           (file-name "rust-regex-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b=
2d1b"))))
-       ("rust-regex-syntax"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.3.9"))
-           (file-name "rust-regex-syntax-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db83=
4957"))))
-       ("rust-regex-syntax-0.4.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.4.1"))
-           (file-name "rust-regex-syntax-0.4.1")
-           (sha256
-            (base16-string->bytevector
-             "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f=
62db"))))
-       ("rust-rustc-demangle"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-demangle" "0.1.5"))
-           (file-name "rust-rustc-demangle-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e=
817e"))))
-       ("rust-rustc-serialize"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-serialize" "0.3.24"))
-           (file-name "rust-rustc-serialize-0.3.24")
-           (sha256
-            (base16-string->bytevector
-             "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e=
6fda"))))
-       ("rust-same-file"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "same-file" "0.1.3"))
-           (file-name "rust-same-file-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a1=
17a7"))))
-       ("rust-scoped-tls"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scoped-tls" "0.1.0"))
-           (file-name "rust-scoped-tls-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f=
147d"))))
-       ("rust-scopeguard"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scopeguard" "0.1.2"))
-           (file-name "rust-scopeguard-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a=
6c57"))))
-       ("rust-semver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver" "0.8.0"))
-           (file-name "rust-semver-0.8.0")
-           (sha256
-            (base16-string->bytevector
-             "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6=
454b"))))
-       ("rust-semver-parser"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver-parser" "0.7.0"))
-           (file-name "rust-semver-parser-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f5=
70a3"))))
-       ("rust-serde"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde" "1.0.15"))
-           (file-name "rust-serde-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "6a7046c9d4c6c522d10b2d098f9bebe2bef227e0e74044d8c1bfcf6b476a=
f799"))))
-       ("rust-serde_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive" "1.0.15"))
-           (file-name "rust-serde_derive-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "1afcaae083fd1c46952a315062326bc9957f182358eb7da03b57ef1c688f=
7aa9"))))
-       ("rust-serde_derive_internals"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive_internals" "0.16.0"))
-           (file-name "rust-serde_derive_internals-0.16.0")
-           (sha256
-            (base16-string->bytevector
-             "bd381f6d01a6616cdba8530492d453b7761b456ba974e98768a18cad2cd7=
6f58"))))
-       ("rust-serde_ignored"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_ignored" "0.0.4"))
-           (file-name "rust-serde_ignored-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01f=
b142"))))
-       ("rust-serde_json"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_json" "1.0.3"))
-           (file-name "rust-serde_json-1.0.3")
-           (sha256
-            (base16-string->bytevector
-             "d243424e06f9f9c39e3cd36147470fd340db785825e367625f79298a6ac6=
b7ac"))))
-       ("rust-shell-escape"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "shell-escape" "0.1.3"))
-           (file-name "rust-shell-escape-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "dd5cc96481d54583947bfe88bf30c23d53f883c6cd0145368b69989d97b8=
4ef8"))))
-       ("rust-socket2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "socket2" "0.2.3"))
-           (file-name "rust-socket2-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "9e76b159741052c7deaa9fd0b5ca6b5f79cecf525ed665abfe5002086c6b=
2791"))))
-       ("rust-strsim"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "strsim" "0.6.0"))
-           (file-name "rust-strsim-0.6.0")
-           (sha256
-            (base16-string->bytevector
-             "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c=
3694"))))
-       ("rust-syn"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "syn" "0.11.11"))
-           (file-name "rust-syn-0.11.11")
-           (sha256
-            (base16-string->bytevector
-             "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b44=
1dad"))))
-       ("rust-synom"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "synom" "0.11.3"))
-           (file-name "rust-synom-0.11.3")
-           (sha256
-            (base16-string->bytevector
-             "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b519=
45b6"))))
-       ("rust-tar"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tar" "0.4.13"))
-           (file-name "rust-tar-0.4.13")
-           (sha256
-            (base16-string->bytevector
-             "281285b717926caa919ad905ef89c63d75805c7d89437fb873100925a53f=
2b1b"))))
-       ("rust-tempdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tempdir" "0.3.5"))
-           (file-name "rust-tempdir-0.3.5")
-           (sha256
-            (base16-string->bytevector
-             "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff6621=
32d6"))))
-       ("rust-termcolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termcolor" "0.3.3"))
-           (file-name "rust-termcolor-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b24=
2c75"))))
-       ("rust-termion"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termion" "1.5.1"))
-           (file-name "rust-termion-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e9=
2096"))))
-       ("rust-thread-id"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread-id" "2.0.0"))
-           (file-name "rust-thread-id-2.0.0")
-           (sha256
-            (base16-string->bytevector
-             "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0=
ff03"))))
-       ("rust-thread_local"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.2.7"))
-           (file-name "rust-thread_local-0.2.7")
-           (sha256
-            (base16-string->bytevector
-             "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18c=
fdd5"))))
-       ("rust-thread_local-0.3.4"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.3.4"))
-           (file-name "rust-thread_local-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90=
bb14"))))
-       ("rust-toml"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "toml" "0.4.5"))
-           (file-name "rust-toml-0.4.5")
-           (sha256
-            (base16-string->bytevector
-             "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b=
6e7e"))))
-       ("rust-unicode-bidi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-bidi" "0.3.4"))
-           (file-name "rust-unicode-bidi-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea=
54d5"))))
-       ("rust-unicode-normalization"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-normalization" "0.1.5"))
-           (file-name "rust-unicode-normalization-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625=
920f"))))
-       ("rust-unicode-xid"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-xid" "0.0.4"))
-           (file-name "rust-unicode-xid-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074c=
b4dc"))))
-       ("rust-unreachable"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unreachable" "1.0.0"))
-           (file-name "rust-unreachable-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814=
fa56"))))
-       ("rust-url"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "url" "1.5.1"))
-           (file-name "rust-url-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "eeb819346883532a271eb626deb43c4a1bb4c4dd47c519bd78137c3e72a4=
fe27"))))
-       ("rust-userenv-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "userenv-sys" "0.2.0"))
-           (file-name "rust-userenv-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "71d28ea36bbd9192d75bd9fa9b39f96ddb986eaee824adae5d53b6e51919=
b2f3"))))
-       ("rust-utf8-ranges"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "0.1.3"))
-           (file-name "rust-utf8-ranges-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830=
ae0f"))))
-       ("rust-utf8-ranges-1.0.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "1.0.0"))
-           (file-name "rust-utf8-ranges-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e5512=
4122"))))
-       ("rust-vcpkg"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "vcpkg" "0.2.2"))
-           (file-name "rust-vcpkg-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd548=
7d0b"))))
-       ("rust-void"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "void" "1.0.2"))
-           (file-name "rust-void-1.0.2")
-           (sha256
-            (base16-string->bytevector
-             "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770=
887d"))))
-       ("rust-walkdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "walkdir" "1.0.7"))
-           (file-name "rust-walkdir-1.0.7")
-           (sha256
-            (base16-string->bytevector
-             "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd2=
88ff"))))
-       ("rust-winapi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi" "0.2.8"))
-           (file-name "rust-winapi-0.2.8")
-           (sha256
-            (base16-string->bytevector
-             "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909=
087a"))))
-       ("rust-winapi-build"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi-build" "0.1.1"))
-           (file-name "rust-winapi-build-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc6=
99bc"))))
-       ("rust-wincolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "wincolor" "0.1.4"))
-           (file-name "rust-wincolor-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58=
b8b0"))))
-       ("rust-ws2_32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ws2_32-sys" "0.2.1"))
-           (file-name "rust-ws2_32-sys-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63=
fa5e"))))))
+     (alist-replace "cargo-bootstrap" (list rust-1.23 "cargo")
+                    (alist-replace "rustc-bootstrap" (list rust-1.23)
+                                   (package-native-inputs rust-1.23))))
     (arguments
-     `(#:cargo ,cargo-bootstrap
-       #:rustc ,rustc ; Force to use rustc from current file
-       #:modules
-       ((ice-9 match)
-        (srfi srfi-1) ; 'every
-        (guix build utils)
-        (guix build cargo-build-system))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unpack-dependencies
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (define (unpack source target)
-               (mkdir-p target)
-               (with-directory-excursion target
-                 (zero? (system* "tar" "xf"
-                                 source
-                                 "--strip-components=3D1"))))
-             (define (touch file-name)
-               (call-with-output-file file-name (const #t)))
-             (define (install-rust-library entry)
-               (match entry
-                 ((name . src)
-                  (if (string-prefix? "rust-" name)
-                      (let* ((rust-length (string-length "rust-"))
-                             (rust-name (string-drop name rust-length))
-                             (rsrc (string-append "vendor/" rust-name))
-                             (unpack-status (unpack src rsrc)))
-                        (touch (string-append rsrc "/.cargo-ok"))
-                        (generate-checksums rsrc src)
-                        unpack-status)))
-                 (_ #t)))
-             (mkdir "vendor")
-             (every install-rust-library inputs)))
-         (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Cargo.lock"
-               (("(\"checksum .* =3D )\".*\"" all name)
-                (string-append name "\"" ,%cargo-reference-hash "\"")))
-             (for-each
-              (lambda (filename)
-                (use-modules (guix build cargo-build-system))
-                (delete-file filename)
-                (let* ((dir (dirname filename)))
-                  (display (string-append
-                            "patch-cargo-checksums: generate-checksums for=
 "
-                            dir "\n"))
-                  (generate-checksums dir ,%cargo-reference-project-file)))
-              (find-files "vendor" ".cargo-checksum.json"))
-             #t))
-         (replace 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "tests/build.rs"
-               (("/usr/bin/env") (which "env"))
-               ;; Guix llvm compiled without asmjs-unknown-emscripten at a=
ll
-               (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_ou=
tputs"))
-             (substitute* "tests/death.rs"
-               ;; Stuck when built in container
-               (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_e=
veryone"))
-             (mkdir ".cargo")
-             (call-with-output-file ".cargo/config"
-               (lambda (port)
-                 (display "
-[source.crates-io]
-registry =3D 'https://github.com/rust-lang/crates.io-index'
-replace-with =3D 'vendored-sources'
-
-[source.vendored-sources]
-directory =3D 'vendor'
-" port)))
-             ;; Disable test for cross compilation support
-             (setenv "CFG_DISABLE_CROSS_TESTS" "1")
-             (setenv "SHELL" (which "sh"))
-             (setenv "CONFIG_SHELL" (which "sh"))
-             (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gc=
c"))
-             #t)))))
-    (home-page "https://github.com/rust-lang/cargo")
-    (synopsis "Build tool and package manager for Rust")
-    (description "Cargo is a tool that allows Rust projects to declare the=
ir
-dependencies and ensures a reproducible build.")
-    ;; Cargo is dual licensed Apache and MIT. Also contains
-    ;; code from openssl which is GPL2 with linking exception.
-    (license (list license:asl2.0 license:expat license:gpl2))))
+     (substitute-keyword-arguments (package-arguments rust-1.23)
+       ((#:phases phases) `(modify-phases ,phases
+                             (delete 'fix-mtime-bug)))))))
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index c637fbb16..4a1eb0cfa 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -43,17 +43,11 @@
 to NAME and VERSION."
   (string-append crate-url name "/" version "/download"))
=20
-(define (default-cargo)
-  "Return the default Cargo package."
+(define (default-rust)
+  "Return the default Rust package."
   ;; Lazily resolve the binding to avoid a circular dependency.
   (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'cargo)))
-
-(define (default-rustc)
-  "Return the default Rustc package."
-  ;; Lazily resolve the binding to avoid a circular dependency.
-  (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'rustc)))
+    (module-ref rust 'rust)))
=20
 (define %cargo-build-system-modules
   ;; Build-side modules imported by default.
@@ -115,14 +109,13 @@ to NAME and VERSION."
=20
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
-                (cargo (default-cargo))
-                (rustc (default-rustc))
+                (rust (default-rust))
                 #:allow-other-keys
                 #:rest arguments)
   "Return a bag for NAME."
=20
   (define private-keywords
-    '(#:source #:target #:cargo #:rustc #:inputs #:native-inputs #:outputs=
))
+    '(#:source #:target #:rust #:inputs #:native-inputs #:outputs))
=20
   (and (not target) ;; TODO: support cross-compilation
        (bag
@@ -136,8 +129,8 @@ to NAME and VERSION."
=20
                         ;; Keep the standard inputs of 'gnu-build-system'
                         ,@(standard-packages)))
-         (build-inputs `(("cargo" ,cargo)
-                         ("rustc" ,rustc)
+         (build-inputs `(("cargo" ,rust "cargo")
+                         ("rustc" ,rust)
                          ,@native-inputs))
          (outputs outputs)
          (build cargo-build)
--=20
2.16.2


--=-=-=--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 22 Mar 2018 07:20:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 22 03:20:21 2018
Received: from localhost ([127.0.0.1]:46656 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eyuWL-0005RL-Cm
	for submit <at> debbugs.gnu.org; Thu, 22 Mar 2018 03:20:21 -0400
Received: from flashner.co.il ([178.62.234.194]:60004)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <efraim@HIDDEN>) id 1eyuWJ-0005R8-2D
 for 30831 <at> debbugs.gnu.org; Thu, 22 Mar 2018 03:20:19 -0400
Received: from localhost (46-117-130-5.bb.netvision.net.il [46.117.130.5])
 by flashner.co.il (Postfix) with ESMTPSA id 0667D40047
 for <30831 <at> debbugs.gnu.org>; Thu, 22 Mar 2018 07:20:12 +0000 (UTC)
Date: Thu, 22 Mar 2018 09:20:12 +0200
From: Efraim Flashner <efraim@HIDDEN>
To: 30831 <at> debbugs.gnu.org
Subject: building rust on aarch64
Message-ID: <20180322072012.GD20703@macbook41>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="vv4Sf/kQfcwinyKX"
Content-Disposition: inline
User-Agent: Mutt/1.9.3 (2018-01-21)
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 30831
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


--vv4Sf/kQfcwinyKX
Content-Type: multipart/mixed; boundary="AkbCVLjbJ9qUtAXD"
Content-Disposition: inline


--AkbCVLjbJ9qUtAXD
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

I tested the patch on my aarch64 box and with the following patch I was
able to start the building process. Currently rust fails its test stage
with the error:

test result: ok. 193 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

        finished in 267.991
Testing libstd stage1 (aarch64-unknown-linux-gnu -> aarch64-unknown-linux-g=
nu)
   Compiling libc v0.2.34
   Compiling core v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.=
24.1-src/src/libcore)
   Compiling std_unicode v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/r=
ustc-1.24.1-src/src/libstd_unicode)
   Compiling rand v0.3.19
   Compiling std v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.2=
4.1-src/src/libstd)
   Compiling alloc v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1=
=2E24.1-src/src/liballoc)
error: unused attribute
   --> src/libstd/sys/unix/process/process_common.rs:449:5
    |
449 |     #[ignore]
    |     ^^^^^^^^^
    |
note: lint level defined here
   --> src/libstd/lib.rs:232:9
    |
232 | #![deny(warnings)]
    |         ^^^^^^^^
    =3D note: #[deny(unused_attributes)] implied by #[deny(warnings)]

error: aborting due to previous error

error: Could not compile `std`.
warning: build failed, waiting for other jobs to finish...
error: build failed


command did not execute successfully: "/gnu/store/3vvhw5xpbcym5l3xk2pszzzyx=
4m7k8l6-cargo-bootstrap-0.24.0/bin/cargo" "test" "--target" "aarch64-unknow=
n-linux-gnu" "-j" "6" "--release" "--frozen" "--features" "panic-unwind jem=
alloc backtrace" "--manifest-p
ath" "/tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/libstd/Cargo.t=
oml" "-p" "std:0.0.0" "-p" "libc:0.0.0" "-p" "alloc_system:0.0.0" "-p" "pan=
ic_abort:0.0.0" "-p" "compiler_builtins:0.0.0" "-p" "alloc:0.0.0" "-p" "std=
_unicode:0.0.0" "-p" "unwind:0
=2E0.0" "-p" "core:0.0.0" "--"
expected success, got: exit code: 101


failed to run: /tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/build/boo=
tstrap/debug/bootstrap test
Build completed unsuccessfully in 1:53:33
phase `check' failed after 6813.3 seconds


This is ultimately no different from master, where rust currently fails
somewhere during the test stage.

--=20
Efraim Flashner   <efraim@HIDDEN>   =D7=90=D7=A4=D7=A8=D7=99=D7=9D =
=D7=A4=D7=9C=D7=A9=D7=A0=D7=A8
GPG key =3D A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

--AkbCVLjbJ9qUtAXD
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="0001-don-t-build-native-on-arm.patch"
Content-Transfer-Encoding: quoted-printable

=46rom d3f6c14535163be65aedfc761b747c4386387537 Mon Sep 17 00:00:00 2001
=46rom: Efraim Flashner <efraim@HIDDEN>
Date: Thu, 22 Mar 2018 09:14:53 +0200
Subject: [PATCH] don't build native on arm*

---
 gnu/packages/rust.scm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index ae81ff8e0..5c5a61594 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -259,6 +259,11 @@ rustc-bootstrap and cargo-bootstrap packages.")
              ;; guix llvm-3.9.1 package installs only shared libraries
              (setenv "LLVM_LINK_SHARED" "1")
              #t))
+         (add-after 'unpack 'dont-build-native
+           (lambda _
+             (substitute* "src/binaryen/CMakeLists.txt"
+               (("ADD_COMPILE_FLAG\\(\\\"-march=3Dnative\\\"\\)") ""))
+             #t))
          (add-after 'unpack 'patch-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((bash (assoc-ref inputs "bash")))
--=20
2.16.2


--AkbCVLjbJ9qUtAXD--

--vv4Sf/kQfcwinyKX
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlqzWScACgkQQarn3Mo9
g1ESiQ//fjuOqhdXx9HdL0ArVX8ncOJ8y+7T4Ys9tGGKXg7U1DRUz+BKTyCse/jT
8uKiiACU3TZXroqYhSDSK9ZmOh3xggEURaRJotDrRpv/eeAIMxPP9wau1X5rPZrp
mPCdS6eKiWgabzhYIQS36/Yr8bpK7PIWIojelmT3wlQuT5n69j67bmpTJ+OeUFNl
KK17wulHmCgqLvItG9XsoeBkf+2ApoEqnJM1q/jVaiLMZZ1MkJAcdNT9Qjs5MmnE
Mtf3WAM9l7sNghgdkATsIpcVXzTPrkrzcjAOoSfBWV1px2LHMJ9lfBMldpz2ks6q
ShrPLtESLtBWjjp/FFNZYbCzji/p29myc5l+U5xHEkvxrFQrCiPEsvFjTrXDKp+u
MdJWojjlRTlaApJaxjkATNnqphAXKOCqsSV9hv181sH6b2+RBWG6xjmADDQhnzvG
awejmzkO0Fr7f23ewwOejE4w0bCLa/USyPbVutSniRA8GoRevrbNVF5RgPD92SYh
76+f34y+K4rWIxnOm8tGDWR+28xRgkRteRV1qGoHBYw6pZfbPNo3kn3OaLN5ZY7n
Y6eRXzCq1BQSAqfG2xRp0WLJePltdDPSBVPZdmBGdQqZs9M/01BiL8a5xXBqrUyC
3Js63/JQtgETqZ7sIPiTdEFkm6vddEXKQQKJ/qNU74H0kCPrmUc=
=GVvj
-----END PGP SIGNATURE-----

--vv4Sf/kQfcwinyKX--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 21 Mar 2018 19:02:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 21 15:02:59 2018
Received: from localhost ([127.0.0.1]:46236 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eyj0l-0007IN-0b
	for submit <at> debbugs.gnu.org; Wed, 21 Mar 2018 15:02:59 -0400
Received: from mail-lf0-f49.google.com ([209.85.215.49]:32849)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1eyj0i-0007I6-Ar
 for 30831 <at> debbugs.gnu.org; Wed, 21 Mar 2018 15:02:57 -0400
Received: by mail-lf0-f49.google.com with SMTP id x205-v6so9484855lfa.0
 for <30831 <at> debbugs.gnu.org>; Wed, 21 Mar 2018 12:02:56 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version:content-transfer-encoding;
 bh=ai2ht5hqlcvpwCktiG9oRfj1NdN1wzgX2VkRaJDW/m4=;
 b=sm20nVfbziDoo2Pc9uxQQGxRnVE13AV9zyeCu5QbMEeNZIdkpRsQWYRPYJOc11jpUe
 n+ODIQusmYuxCGGK2S1kqcHcHJrl5uZ0X7lczxPw0Lx0paKOGZkMeTWhMbkeEyuxp1JR
 ZC1hF/kvBchVtPJLQCrjx5ZOaj67d0wyvTIaGd+A4GJckbzp1yPm9w748XB1QfVzy4x2
 V8Xy4vJkgaqWco+m4yt8RlZfVEWCULpgtAIArA4k3WImWppHzplHrQ189+Ykx4z1qL+j
 TA0QEHHE783aQ9ruL/2PXKwTmkA5e/aKYUasMsh1whutWygPFAa70Z4zpTPU1ylTd9UD
 dwyQ==
X-Gm-Message-State: AElRT7GSevs6yw6JuRj/6W3OemqBt9jbaeEgWGYYbHPrluN98L+Ld7cQ
 Yv0sQ1PQJRD6ueCnSXJibQnGNA==
X-Google-Smtp-Source: AG47ELsZLJDUc3XEIUryxKmAWsR/cj9oP4IZCy2Nw0Es5E5dR0PabGK81nqUrb1DdA2M77GgZAIYJg==
X-Received: by 2002:a19:1b81:: with SMTP id
 b123-v6mr12843114lfb.64.1521658969949; 
 Wed, 21 Mar 2018 12:02:49 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id e28-v6sm1201983lfb.52.2018.03.21.12.02.47
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Wed, 21 Mar 2018 12:02:48 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: Danny Milosavljevic <dannym@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN>
 <20180318195811.70c2b820@HIDDEN>
Date: Thu, 22 Mar 2018 00:02:46 +0500
In-Reply-To: <20180318195811.70c2b820@HIDDEN> (Danny Milosavljevic's
 message of "Sun, 18 Mar 2018 19:58:11 +0100")
Message-ID: <87a7v12qw9.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.8 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Hi Danny,
 I checked several times with "guix build --no-grafts
 --rounds=2 rust@HIDDEN" with "guix gc" between tries, but it worked correctly.
 I tried on x86-64 architecture with my patch over
 79f450a120068ac1d2fc4e5b4b33ae938b604f95 guix commit. [...] 
 Content analysis details:   (1.8 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
 (nikolay.d.merinov[at]gmail.com)
 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail
 domains are different
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
 trust [209.85.215.49 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [209.85.215.49 listed in wl.mailspike.net]
 1.3 URI_HEX                URI: URI hostname has long hexadecimal sequence
 -0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom
 freemail headers are different
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.8 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  Hi Danny, I checked several times with "guix build --no-grafts
    --rounds=2 rust@HIDDEN" with "guix gc" between tries, but it worked correctly.
    I tried on x86-64 architecture with my patch over 79f450a120068ac1d2fc4e5b4b33ae938b604f95
    guix commit. [...] 
 
 Content analysis details:   (1.8 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
                             trust
                             [209.85.215.49 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [209.85.215.49 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail provider
                             (nikolay.d.merinov[at]gmail.com)
  0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail
                             domains are different
  1.3 URI_HEX                URI: URI hostname has long hexadecimal sequence
 -0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
  0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom
                              freemail headers are different

Hi Danny,

I checked several times with "guix build --no-grafts --rounds=3D2 rust@HIDDEN=
.1"
with "guix gc" between tries, but it worked correctly. I tried on x86-64
architecture with my patch over 79f450a120068ac1d2fc4e5b4b33ae938b604f95
guix commit.=20

Do you know how I can get same result as in your build?

Regards,
Nikolai

Danny Milosavljevic <dannym@HIDDEN> writes:

> Hi,
>
> Rust after this patch is not reproducible.
>
> Binary files
> /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1/lib/librustc-7b5e=
a53516e6ab59.so
> and
> /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1-check/lib/librust=
c-7b5ea53516e6ab59.so
> differ
> Binary files
> /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1/lib/rustlib/x86_6=
4-unknown-linux-gnu/lib/librustc-7b5ea53516e6ab59.so
> and
> /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1-check/lib/rustlib=
/x86_64-unknown-linux-gnu/lib/librustc-7b5ea53516e6ab59.so
> differ
>
> diffoscope says:
>
> =E2=94=82 =E2=94=82 =E2=94=82 -  [26] .rustc            PROGBITS        0=
000000000000000 be3030 6e5dd5 00      0   0 16
> =E2=94=82 =E2=94=82 =E2=94=82 -  [27] .symtab           SYMTAB          0=
000000000000000 12c8e08 158340 18     28 54351  8
> =E2=94=82 =E2=94=82 =E2=94=82 -  [28] .strtab           STRTAB          0=
000000000000000 1421148 3b00e3 00      0   0  1
> =E2=94=82 =E2=94=82 =E2=94=82 -  [29] .shstrtab         STRTAB          0=
000000000000000 17d122b 0000fe 00      0   0  1
> =E2=94=82 =E2=94=82 =E2=94=82 +  [26] .rustc            PROGBITS        0=
000000000000000 be3030 6e6b05 00      0   0 16
> =E2=94=82 =E2=94=82 =E2=94=82 +  [27] .symtab           SYMTAB          0=
000000000000000 12c9b38 158340 18     28 54351  8
> =E2=94=82 =E2=94=82 =E2=94=82 +  [28] .strtab           STRTAB          0=
000000000000000 1421e78 3b00e3 00      0   0  1
> =E2=94=82 =E2=94=82 =E2=94=82 +  [29] .shstrtab         STRTAB          0=
000000000000000 17d1f5b 0000fe 00      0   0  1
> =E2=94=82 =E2=94=82 =E2=94=82  Key to Flags:
> [...]
> =E2=94=82 =E2=94=82 =E2=94=82 - 1603: 0000000000000000 0x6e5dd5 OBJECT GL=
OBAL DEFAULT 26
> rust_metadata_rustc_d87c35d223a98218627136b41e7e5b87
> =E2=94=82 =E2=94=82 =E2=94=82 + 1603: 0000000000000000 0x6e6b05 OBJECT GL=
OBAL DEFAULT 26
> rust_metadata_rustc_d87c35d223a98218627136b41e7e5b87
>
> And a metadata body part is missing in the second round.




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 20 Mar 2018 10:57:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 20 06:57:07 2018
Received: from localhost ([127.0.0.1]:42770 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eyEx1-0004Ww-I9
	for submit <at> debbugs.gnu.org; Tue, 20 Mar 2018 06:57:07 -0400
Received: from sender-of-o51.zoho.com ([135.84.80.216]:21006)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rekado@HIDDEN>) id 1eyEwz-0004Wn-PE
 for 30831 <at> debbugs.gnu.org; Tue, 20 Mar 2018 06:57:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1521543374; 
 s=zoho; d=elephly.net; i=rekado@HIDDEN;
 h=References:From:To:Cc:Subject:In-reply-to:Date:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID;
 l=1151; bh=gKyXYKP5dPX8Qv+REnVZqwnUIgJ05G3+cunLnodghsg=;
 b=Cfk3PGlu9gI//QzlFxyMiQ+rvWVNCvA9dmb7VvNg3L4/Ria2GCohvCnQYp9CJjer
 4ljqmibXBDDgVV/Xu/cCCCWfqefMRI+l6nwBGjkCPNuJ3Bf6o+4BZNl9OvyW+E9wRIu
 wpK1x1Jj5Zl3zyclMpH4E2CZhWOwxhLjWRBz2CUs=
Received: from localhost (port-92-200-95-58.dynamic.qsc.de [92.200.95.58]) by
 mx.zohomail.com with SMTPS id 1521543374577593.1531402348725;
 Tue, 20 Mar 2018 03:56:14 -0700 (PDT)
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN> <87efkgvxt1.fsf@HIDDEN>
User-agent: mu4e 1.0; emacs 25.3.1
From: Ricardo Wurmus <rekado@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
In-reply-to: <87efkgvxt1.fsf@HIDDEN>
X-URL: https://elephly.net
X-PGP-Key: https://elephly.net/rekado.pubkey
X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
Date: Tue, 20 Mar 2018 11:56:11 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-ID: <87o9jjc8xg.fsf@HIDDEN>
X-ZohoMailClient: External
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 30831
Cc: Nikolai Merinov <nikolai.merinov@HIDDEN>,
 Danny Milosavljevic <dannym@HIDDEN>, 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Hello,
>
> Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:
>
>> Actually there is two ways to achieve this:
>> 1. Constantly update bootsrap binaries version.
>> 2. For each new release create new package. As result we'll be able to
>> use old rust release to build each new rust release. E.g. we can use
>> 1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
>> 1.23.0 rust and then use it to build 1.24.1 rust.
>>
>> Which way is preferable?=20
>
> Like I wrote, I would prefer option #2, so as to increase =E2=80=9Cbinary
> diversity=E2=80=9D and not rely on builds made by upstream.
>
> This obviously relates to <http://bootstrappable.org/>.  Ricardo, what=E2=
=80=99s
> your take on this?

I agree.  In the long run, however, I=E2=80=99d prefer for Rust to be
bootstrapped through one of the alternative implementations.  Then we
don=E2=80=99t need to keep a long chain of older versions.

Currently, however, I don=E2=80=99t see a way around it.

--=20
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net






Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 19 Mar 2018 16:24:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 19 12:24:00 2018
Received: from localhost ([127.0.0.1]:42065 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1exxZn-00057U-Uk
	for submit <at> debbugs.gnu.org; Mon, 19 Mar 2018 12:24:00 -0400
Received: from hera.aquilenet.fr ([185.233.100.1]:35406)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1exxZm-00057M-24
 for 30831 <at> debbugs.gnu.org; Mon, 19 Mar 2018 12:23:58 -0400
Received: from localhost (localhost [127.0.0.1])
 by hera.aquilenet.fr (Postfix) with ESMTP id 2546112400;
 Mon, 19 Mar 2018 17:23:57 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at aquilenet.fr
Received: from hera.aquilenet.fr ([127.0.0.1])
 by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id yTd169eOIn_u; Mon, 19 Mar 2018 17:23:55 +0100 (CET)
Received: from ribbon (unknown [193.50.110.92])
 by hera.aquilenet.fr (Postfix) with ESMTPSA id 5825D123E1;
 Mon, 19 Mar 2018 17:23:55 +0100 (CET)
From: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=)
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
 <87h8pcckv4.fsf@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: 29 =?utf-8?Q?Vent=C3=B4se?= an 226 de la =?utf-8?Q?R?=
 =?utf-8?Q?=C3=A9volution?=
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Mon, 19 Mar 2018 17:23:54 +0100
In-Reply-To: <87h8pcckv4.fsf@HIDDEN> (Nikolai Merinov's message of
 "Mon, 19 Mar 2018 17:26:07 +0500")
Message-ID: <87efkgvxt1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org, Danny Milosavljevic <dannym@HIDDEN>,
 rekado@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

Hello,

Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:

> Actually there is two ways to achieve this:
> 1. Constantly update bootsrap binaries version.
> 2. For each new release create new package. As result we'll be able to
> use old rust release to build each new rust release. E.g. we can use
> 1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
> 1.23.0 rust and then use it to build 1.24.1 rust.
>
> Which way is preferable?=20

Like I wrote, I would prefer option #2, so as to increase =E2=80=9Cbinary
diversity=E2=80=9D and not rely on builds made by upstream.

This obviously relates to <http://bootstrappable.org/>.  Ricardo, what=E2=
=80=99s
your take on this?

> Please do not merge my patch until I'll check Danny's report about
> reproducability.

Sure!

Thanks,
Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 19 Mar 2018 12:26:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 19 08:26:20 2018
Received: from localhost ([127.0.0.1]:40819 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1extrn-0007fZ-Nx
	for submit <at> debbugs.gnu.org; Mon, 19 Mar 2018 08:26:19 -0400
Received: from mail-lf0-f49.google.com ([209.85.215.49]:37721)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1extrm-0007fM-QG
 for 30831 <at> debbugs.gnu.org; Mon, 19 Mar 2018 08:26:19 -0400
Received: by mail-lf0-f49.google.com with SMTP id y19-v6so25145291lfd.4
 for <30831 <at> debbugs.gnu.org>; Mon, 19 Mar 2018 05:26:18 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=dUedx0VXLqrWy3OMRrp5dhMdcMwmhxcElH+B9a5xRUw=;
 b=R8FMtflpqDD2KnkFerY723dtZ7uszPFCNXdnNpbpfmhLSRgvw2EAfbQHHoeuWpXLky
 y0CkoP9rryQfhyNXk3cp4SW9MDMhjwAZt19eYc04uauY9UrbQWEORVwC7VrQhHmclzmT
 IJHFWMzgI02GYhZ3M0d4PC/oDD30cZmT8osPqO+WPuOJhxd6jeNS7bUkedEP1LsenFdB
 JiLF9rGkAe1jaHFVC/loinW6afmqtTXjbP0SUlghaGP8kYizzHTuLufvaVgpuEEmqkqr
 px4ovqA8jqzNYTT1olnv+WZNU3JQvr42adPi53e//XZvpKmB2trZb8DpH8lHQsVzc+rp
 bnew==
X-Gm-Message-State: AElRT7HON0ILziWTLUMZa9rJ0FJj5srhW4wzrvEQMu/AedbDBO0geb7D
 0oUgzcDJAkir30iNPI9fh+GVhCWx
X-Google-Smtp-Source: AG47ELttL23OHr5PRsPsosF05FxsO3PrZD0F1OQzNzhJ06/CZtGG1Z/D2EZZG4s2oL8NfnV8fJ7xYw==
X-Received: by 10.46.116.4 with SMTP id p4mr8178883ljc.101.1521462372253;
 Mon, 19 Mar 2018 05:26:12 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id d27-v6sm1120179lfb.6.2018.03.19.05.26.10
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Mon, 19 Mar 2018 05:26:11 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=), Danny Milosavljevic
 <dannym@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN> <87bmfmmm78.fsf@HIDDEN>
Date: Mon, 19 Mar 2018 17:26:07 +0500
In-Reply-To: <87bmfmmm78.fsf@HIDDEN> ("Ludovic
 \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\=
 \=\?utf-8\?Q\?s\?\= message of "Sat, 17 Mar 2018 22:22:35 +0100")
Message-ID: <87h8pcckv4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

Hi Ludovic,

> Instead of incrementing the version number of the bootstrap binaries, do
> you think it would be an option to keep 1.22 and build 1.23 from it, or
> does that cargo/rust merge prevent it?

In rust 1.22 there already was possibility to build "cargo" from "rust"
repository, so suggested packages structures change can be used either
for old "rust" releases.

By default rust should be built with
https://github.com/rust-lang/rust/blob/1.24.1/src/stage0.txt versions of
rust and cargo. In most of cases this for "1.X.Y" release it want to use
"1.(X-1).0" version of rustc and "0.X.0" version of cargo. As result to
build release version of Rust compiler we should have previous release
of rust compiler.

Actually there is two ways to achieve this:
1. Constantly update bootsrap binaries version.
2. For each new release create new package. As result we'll be able to
use old rust release to build each new rust release. E.g. we can use
1.21.0 bootstrap binaries, then build 1.22.0 rust and use it to build
1.23.0 rust and then use it to build 1.24.1 rust.

Which way is preferable? 

Please do not merge my patch until I'll check Danny's report about
reproducability.

Regards,
Nikola




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 18 Mar 2018 18:58:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 18 14:58:19 2018
Received: from localhost ([127.0.0.1]:40342 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1exdVb-0004T4-LS
	for submit <at> debbugs.gnu.org; Sun, 18 Mar 2018 14:58:19 -0400
Received: from dd26836.kasserver.com ([85.13.145.193]:36442)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1exdVZ-0004Sv-So
 for 30831 <at> debbugs.gnu.org; Sun, 18 Mar 2018 14:58:18 -0400
Received: from localhost (77.118.190.99.wireless.dyn.drei.com [77.118.190.99])
 by dd26836.kasserver.com (Postfix) with ESMTPSA id 2454F3360CA2;
 Sun, 18 Mar 2018 19:58:16 +0100 (CET)
Date: Sun, 18 Mar 2018 19:58:11 +0100
From: Danny Milosavljevic <dannym@HIDDEN>
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release
 to 1.24.1
Message-ID: <20180318195811.70c2b820@HIDDEN>
In-Reply-To: <874llhdocu.fsf@HIDDEN>
References: <874llhdocu.fsf@HIDDEN>
X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 boundary="Sig_/_t/mhjelVQ=kvRi+6svIRIS"; protocol="application/pgp-signature"
X-Spam-Score: 0.6 (/)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.6 (/)

--Sig_/_t/mhjelVQ=kvRi+6svIRIS
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi,

Rust after this patch is not reproducible.

Binary files /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1/lib/li=
brustc-7b5ea53516e6ab59.so and /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-=
rust-1.24.1-check/lib/librustc-7b5ea53516e6ab59.so differ
Binary files /gnu/store/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1/lib/ru=
stlib/x86_64-unknown-linux-gnu/lib/librustc-7b5ea53516e6ab59.so and /gnu/st=
ore/nbyxci7zgv9z5zrkzw9c5wppgv3bk1rd-rust-1.24.1-check/lib/rustlib/x86_64-u=
nknown-linux-gnu/lib/librustc-7b5ea53516e6ab59.so differ

diffoscope says:

=E2=94=82 =E2=94=82 =E2=94=82 -  [26] .rustc            PROGBITS        000=
0000000000000 be3030 6e5dd5 00      0   0 16
=E2=94=82 =E2=94=82 =E2=94=82 -  [27] .symtab           SYMTAB          000=
0000000000000 12c8e08 158340 18     28 54351  8
=E2=94=82 =E2=94=82 =E2=94=82 -  [28] .strtab           STRTAB          000=
0000000000000 1421148 3b00e3 00      0   0  1
=E2=94=82 =E2=94=82 =E2=94=82 -  [29] .shstrtab         STRTAB          000=
0000000000000 17d122b 0000fe 00      0   0  1
=E2=94=82 =E2=94=82 =E2=94=82 +  [26] .rustc            PROGBITS        000=
0000000000000 be3030 6e6b05 00      0   0 16
=E2=94=82 =E2=94=82 =E2=94=82 +  [27] .symtab           SYMTAB          000=
0000000000000 12c9b38 158340 18     28 54351  8
=E2=94=82 =E2=94=82 =E2=94=82 +  [28] .strtab           STRTAB          000=
0000000000000 1421e78 3b00e3 00      0   0  1
=E2=94=82 =E2=94=82 =E2=94=82 +  [29] .shstrtab         STRTAB          000=
0000000000000 17d1f5b 0000fe 00      0   0  1
=E2=94=82 =E2=94=82 =E2=94=82  Key to Flags:
[...]
=E2=94=82 =E2=94=82 =E2=94=82 -  1603: 0000000000000000 0x6e5dd5 OBJECT  GL=
OBAL DEFAULT   26 rust_metadata_rustc_d87c35d223a98218627136b41e7e5b87
=E2=94=82 =E2=94=82 =E2=94=82 +  1603: 0000000000000000 0x6e6b05 OBJECT  GL=
OBAL DEFAULT   26 rust_metadata_rustc_d87c35d223a98218627136b41e7e5b87

And a metadata body part is missing in the second round.

--Sig_/_t/mhjelVQ=kvRi+6svIRIS
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqutsMACgkQ5xo1VCww
uqXx9gf+Ll5dpapnsol2F1S4EO2JiFDY2JnkEFwz/EFY5mHP19eg9sEqvH93AOl0
KShmEZ7XFKqrfSGbPEhVLGAjryPi3aSrgvXuzhb5KEyLL7eUk6B18z+j6iB1Eytd
VyajLxHKmg32L1++FQCfWQzIVLi83M+GQw8gotA7lzKo5oGftsgUmQjXLVDpS4bw
mJ9OOyxMZtd3H8JV9ECcujdf7NqpHsylp4ubYnrKyS2JtN173fzr+ImcL6V6LwVU
na4gC0bi/Z9L6Y0xH6Te9vW9jZmzo+kZHJqLgJ7pDxzmbUhlYX2I2EErbTxjRVct
pl/EKLPeb+kzBw5pbxexohv1ZpanqA==
=1HXL
-----END PGP SIGNATURE-----

--Sig_/_t/mhjelVQ=kvRi+6svIRIS--




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at 30831 <at> debbugs.gnu.org:


Received: (at 30831) by debbugs.gnu.org; 17 Mar 2018 21:22:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 17 17:22:41 2018
Received: from localhost ([127.0.0.1]:38756 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1exJHk-0001Zb-DN
	for submit <at> debbugs.gnu.org; Sat, 17 Mar 2018 17:22:41 -0400
Received: from hera.aquilenet.fr ([185.233.100.1]:49038)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1exJHi-0001ZT-Mr
 for 30831 <at> debbugs.gnu.org; Sat, 17 Mar 2018 17:22:39 -0400
Received: from localhost (localhost [127.0.0.1])
 by hera.aquilenet.fr (Postfix) with ESMTP id 13B0C1326A;
 Sat, 17 Mar 2018 22:22:38 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at aquilenet.fr
Received: from hera.aquilenet.fr ([127.0.0.1])
 by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id X8lnJ1a5M-Uc; Sat, 17 Mar 2018 22:22:37 +0100 (CET)
Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465])
 by hera.aquilenet.fr (Postfix) with ESMTPSA id D263113267;
 Sat, 17 Mar 2018 22:22:36 +0100 (CET)
From: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=)
To: Nikolai Merinov <nikolai.merinov@HIDDEN>
Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to
 1.24.1
References: <874llhdocu.fsf@HIDDEN>
Date: Sat, 17 Mar 2018 22:22:35 +0100
In-Reply-To: <874llhdocu.fsf@HIDDEN> (Nikolai Merinov's message of
 "Wed, 14 Mar 2018 00:06:53 +0500")
Message-ID: <87bmfmmm78.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 30831
Cc: 30831 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

Hi Nikolai,

Great piece of work!

Nikolai Merinov <nikolai.merinov@HIDDEN> skribis:

> * gnu/packages/rust.scm (%rust-bootstrap-binaries-version): Update versio=
n.
> (%rust-bootstrap-binaries): Update hashsums.
> (cargo-bootstrap): Update minor version.
> (rust): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo re=
lated
> dependencies. Install "cargo" as separate "rust" output. Remove substitut=
es
> for bugs that was fixed in "rustc" source code. Install documentation to
> separate "doc" output. Update configuration according to changes in "rust=
c"
> source code.
> * guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and
> "default-rustc" functions with "default-rust" function.
> (cargo-build-system): Take only one package as "rust" source. Use "rustc"=
 from
> default output of "rust" package, use "cargo" as "cargo" output of "rust"
> package.
>
> Cargo was moved from separate package to "rust" output because starting f=
rom
> 0.25.0 release cargo have no "Cargo.lock" anymore. According to
> https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286=
f5f154692
> commit message "cargo" used as "rust" dependency and stable version for
> "cargo" provided through "Cargo.lock" file from "rust-lang/rust"
> repository. As result only way to get stable version of "cargo" is build =
it from
> "rust" sources.

OK.

>  ;; Should be one less than the current released version.
> -(define %rust-bootstrap-binaries-version "1.21.0")
> +(define %rust-bootstrap-binaries-version "1.23.0")
>=20=20
>  (define %rust-bootstrap-binaries
>    (origin
> @@ -66,15 +66,15 @@
>       (base32
>        (match %host-type
>          ("i686-unknown-linux-gnu"
> -         "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
> +         "0gs283lw6larhjlr02zm9g78djq2f6bdhxj6ls66q0z18zpx0nyw")
>          ("x86_64-unknown-linux-gnu"
> -         "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
> +         "0znw3xxh837i5wlwsbbw6bxdqfa58bxyw3716wbckwyph8xb4d4s")
>          ("armv7-unknown-linux-gnueabihf"
> -         "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
> +         "13mh4qx996rb6c3xygflc10j5zkmcxzjr32340ardwb7ja4jfw2q")
>          ("aarch64-unknown-linux-gnu"
> -         "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
> +         "1irbj73ifdm7xvshma7qp61sadm683dnc57jfg5qc8kdjyyrydrq")
>          ("mips64el-unknown-linux-gnuabi64"
> -         "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
> +         "1wksf07ba9idrj1z6x0hdfjsmhpzzi5idawnkfbhy6cj1g9ihnzv")
>          (_ "")))))) ; Catch-all for other systems.

Instead of incrementing the version number of the bootstrap binaries, do
you think it would be an option to keep 1.22 and build 1.23 from it, or
does that cargo/rust merge prevent it?

That would allow us to build Rust independently from what upstream did,
thereby increasing binary diversity, which I think is a good thing
security-wise.

Thoughts?

Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 15 Mar 2018 21:24:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 15 17:24:37 2018
Received: from localhost ([127.0.0.1]:35479 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ewaMQ-0003RU-Gj
	for submit <at> debbugs.gnu.org; Thu, 15 Mar 2018 17:24:37 -0400
Received: from eggs.gnu.org ([208.118.235.92]:34274)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1ewaMN-0003RH-O3
 for submit <at> debbugs.gnu.org; Thu, 15 Mar 2018 17:24:29 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1ewaMD-0006mn-Ur
 for submit <at> debbugs.gnu.org; Thu, 15 Mar 2018 17:24:22 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:47862)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <nikolay.d.merinov@HIDDEN>)
 id 1ewaMD-0006mi-Pu
 for submit <at> debbugs.gnu.org; Thu, 15 Mar 2018 17:24:17 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:53456)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1ewaM9-0005CT-0x
 for guix-patches@HIDDEN; Thu, 15 Mar 2018 17:24:17 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <nikolay.d.merinov@HIDDEN>) id 1ewaM4-0006kW-CM
 for guix-patches@HIDDEN; Thu, 15 Mar 2018 17:24:13 -0400
Received: from mail-lf0-f53.google.com ([209.85.215.53]:43811)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <nikolay.d.merinov@HIDDEN>)
 id 1ewaM3-0006k9-PG
 for guix-patches@HIDDEN; Thu, 15 Mar 2018 17:24:08 -0400
Received: by mail-lf0-f53.google.com with SMTP id g13-v6so1367365lfe.10
 for <guix-patches@HIDDEN>; Thu, 15 Mar 2018 14:24:07 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:date:message-id:mime-version;
 bh=Ttg1j/GNbTFMbKLPQVgFCbhkBsgc/6cmFZzQ/tbm9i8=;
 b=uD04i/MjxehQyaE4Te3/oPyH5kYh7HCsPoMKLOiNGSzedijFMiiOzo79YkfqkwXJti
 16MuEwc01RJf+V9BijV02OFtHnIbCcnTH6nqrlFXBJ3yRNfkXRl52eaK4U7G9pc7+DXn
 oFKSOMo9AG1SKMS+XVaWpiD1dTxN3LPZz1/y9Gi7mhGkCa+i5PDnW1vE1M5xJX3L7r3W
 jXUXHyfQDH8zZs1c3FSxSr2Y2fAsqVYWVcF9sN4WzroaldEaZKJKfWlPagupf/0g83N3
 0jrmj694Bw1jqf6zjDdWkBOmt9/5ueSTVZ5Qb7sdFFCdbJhT/7EST/WAU/VkJ2SxhHAG
 NrDA==
X-Gm-Message-State: AElRT7FeljwwKIKlaDyOwJxqqIfaWIqb8ReY8v+rGqwOmdiUUscaBhpO
 /FIA2Of31wdvs0NOrRC1KhcRgw==
X-Google-Smtp-Source: AG47ELs/agoOl4j83tsaocviXGaJNFxrctE0nxSb/5NOAFKLo1bUXkxCO9S0ZZaFtXEfkS+kMrNRWw==
X-Received: by 2002:a19:2744:: with SMTP id
 n65-v6mr7753078lfn.67.1521149044423; 
 Thu, 15 Mar 2018 14:24:04 -0700 (PDT)
Received: from libremnd (97.9-157-90.telenet.ru. [90.157.9.97])
 by smtp.gmail.com with ESMTPSA id d204-v6sm1366375lfe.8.2018.03.15.14.24.02
 for <guix-patches@HIDDEN>
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Thu, 15 Mar 2018 14:24:03 -0700 (PDT)
From: Nikolai Merinov <nikolai.merinov@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] gnu: rust: Update rust from 1.22.1 release to 1.24.1
Date: Wed, 14 Mar 2018 00:06:53 +0500
Message-ID: <874llhdocu.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -3.5 (---)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.5 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  * gnu/packages/rust.scm (%rust-bootstrap-binaries-version):
    Update version. (%rust-bootstrap-binaries): Update hashsums. (cargo-bootstrap):
    Update minor version. (rust): Rename "rustc" to "rust". Update sha256 for
    tarball. Add cargo related dependencies. Install "cargo" as separate "rust"
    output. Remove substitutes for bugs that was fixed in "rustc" source code.
    Install documentation to separate "doc" output. Update configuration according
    to changes in "rustc" source code. * guix/build-system/cargo.scm (default-rust):
    Replace "default-cargo" and "default-rustc" functions with "default-rust"
    function. (cargo-build-system): Take only one package as "rust" source. Use
    "rustc" from default output of "rust" package, use "cargo" as "cargo" output
    of "rust" package. [...] 
 
 Content analysis details:   (1.5 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail
                             domains are different
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail provider
                             (nikolay.d.merinov[at]gmail.com)
  1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
  0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom
                              freemail headers are different

* gnu/packages/rust.scm (%rust-bootstrap-binaries-version): Update version.
(%rust-bootstrap-binaries): Update hashsums.
(cargo-bootstrap): Update minor version.
(rust): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo related
dependencies. Install "cargo" as separate "rust" output. Remove substitutes
for bugs that was fixed in "rustc" source code. Install documentation to
separate "doc" output. Update configuration according to changes in "rustc"
source code.
* guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and
"default-rustc" functions with "default-rust" function.
(cargo-build-system): Take only one package as "rust" source. Use "rustc" from
default output of "rust" package, use "cargo" as "cargo" output of "rust"
package.

Cargo was moved from separate package to "rust" output because starting from
0.25.0 release cargo have no "Cargo.lock" anymore. According to
https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286f5f154692
commit message "cargo" used as "rust" dependency and stable version for
"cargo" provided through "Cargo.lock" file from "rust-lang/rust"
repository. As result only way to get stable version of "cargo" is build it from
"rust" sources.
---
 gnu/packages/rust.scm       | 1146 ++-----------------------------------------
 guix/build-system/cargo.scm |   21 +-
 2 files changed, 37 insertions(+), 1130 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 1ba857d36..3fa889582 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -53,7 +53,7 @@
   #:use-module (srfi srfi-26))
 
 ;; Should be one less than the current released version.
-(define %rust-bootstrap-binaries-version "1.21.0")
+(define %rust-bootstrap-binaries-version "1.23.0")
 
 (define %rust-bootstrap-binaries
   (origin
@@ -66,15 +66,15 @@
      (base32
       (match %host-type
         ("i686-unknown-linux-gnu"
-         "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
+         "0gs283lw6larhjlr02zm9g78djq2f6bdhxj6ls66q0z18zpx0nyw")
         ("x86_64-unknown-linux-gnu"
-         "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
+         "0znw3xxh837i5wlwsbbw6bxdqfa58bxyw3716wbckwyph8xb4d4s")
         ("armv7-unknown-linux-gnueabihf"
-         "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
+         "13mh4qx996rb6c3xygflc10j5zkmcxzjr32340ardwb7ja4jfw2q")
         ("aarch64-unknown-linux-gnu"
-         "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
+         "1irbj73ifdm7xvshma7qp61sadm683dnc57jfg5qc8kdjyyrydrq")
         ("mips64el-unknown-linux-gnuabi64"
-         "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
+         "1wksf07ba9idrj1z6x0hdfjsmhpzzi5idawnkfbhy6cj1g9ihnzv")
         (_ "")))))) ; Catch-all for other systems.
 
 (define %cargo-reference-project-file "/dev/null")
@@ -148,7 +148,7 @@ which can in turn be used to build the final Rust compiler.")
 (define cargo-bootstrap
   (package
     (name "cargo-bootstrap")
-    (version (cargo-version %rust-bootstrap-binaries-version 1))
+    (version (cargo-version %rust-bootstrap-binaries-version 0))
     (source %rust-bootstrap-binaries)
     (build-system gnu-build-system)
     (native-inputs
@@ -213,9 +213,9 @@ manager, which is required to build itself.")
 rustc-bootstrap and cargo-bootstrap packages.")
     (license license:asl2.0)))
 
-(define-public rustc
+(define-public rust
   (package
-    (name "rustc")
+    (name "rust")
     (version (rustc-version %rust-bootstrap-binaries-version 1))
     (source (origin
               (method url-fetch)
@@ -224,7 +224,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
                     "rustc-" version "-src.tar.gz"))
               (sha256
                (base32
-                "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
+                "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -240,10 +240,14 @@ rustc-bootstrap and cargo-bootstrap packages.")
        ("procps" ,procps) ; For the tests
        ("python-2" ,python-2)
        ("rust-bootstrap" ,rust-bootstrap)
+       ("pkg-config" ,pkg-config) ; For "cargo"
        ("which" ,which)))
     (inputs
      `(("jemalloc" ,jemalloc-4.5.0)
-       ("llvm" ,llvm-3.9.1)))
+       ("llvm" ,llvm-3.9.1)
+       ("openssl" ,openssl)
+       ("libcurl" ,curl))) ; For "cargo"
+    (outputs '("out" "doc" "cargo"))
     (arguments
      `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
        #:phases
@@ -258,9 +262,6 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (add-after 'unpack 'patch-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((bash (assoc-ref inputs "bash")))
-               (substitute* "src/build_helper/lib.rs"
-                 ;; In same folder as gcc there is only "gcc-ar" utility
-                 (("file\\.push_str\\(\"ar\"\\);") "file.push_str(\"gcc-ar\");"))
                (substitute* "src/libstd/process.rs"
                  ;; The newline is intentional.
                  ;; There's a line length "tidy" check in Rust which would
@@ -276,12 +277,6 @@ rustc-bootstrap and cargo-bootstrap packages.")
                ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
                ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
                (delete-file-recursively "src/test/run-make/linker-output-non-utf8")
-               (substitute* "src/build_helper/lib.rs"
-                 ;; Bug in Rust code.
-                 ;; Current implementation assume that if dst not exist then it's mtime
-                 ;; is 0, but in same time "src" have 0 mtime in guix build!
-                 (("let threshold = mtime\\(dst\\);")
-                  "if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
                #t)))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
            (lambda* (#:key inputs #:allow-other-keys)
@@ -302,6 +297,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
                     (gcc (assoc-ref inputs "gcc"))
                     (gdb (assoc-ref inputs "gdb"))
                     (binutils (assoc-ref inputs "binutils"))
@@ -317,15 +313,18 @@ rustc-bootstrap and cargo-bootstrap packages.")
 [build]
 cargo = \"" cargo "/bin/cargo" "\"
 rustc = \"" rustc "/bin/rustc" "\"
+docs = true
 python = \"" python "/bin/python2" "\"
 gdb = \"" gdb "/bin/gdb" "\"
 vendor = true
 submodules = false
 [install]
 prefix = \"" out "\"
+docdir = \"" doc "/share/doc/rust" "\"
+sysconfdir = \"etc\"
+localstatedir = \"var/lib\"
 [rust]
 default-linker = \"" gcc "/bin/gcc" "\"
-default-ar = \"" binutils "/bin/ar" "\"
 channel = \"stable\"
 rpath = true
 # There is 2 failed codegen tests:
@@ -336,6 +335,7 @@ codegen-tests = false
 llvm-config = \"" llvm "/bin/llvm-config" "\"
 cc = \"" gcc "/bin/gcc" "\"
 cxx = \"" gcc "/bin/g++" "\"
+ar = \"" binutils "/bin/ar" "\"
 jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 [dist]
 ") port)))
@@ -350,13 +350,20 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
              #t))
          (replace 'build
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "build"))))
+             (and (zero? (system* "./x.py" "build"))
+                  (zero? (system* "./x.py" "build" "src/tools/cargo")))))
          (replace 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (zero? (system* "./x.py" "test"))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (zero? (system* "./x.py" "install"))))
+             (and (zero? (system* "./x.py" "install"))
+                  (begin
+                   (substitute* "config.toml"
+                     ;; replace prefix to specific output
+                     (("prefix = \"[^\"]*\"")
+                      (string-append "prefix = \"" (assoc-ref outputs "cargo") "\"")))
+                   (zero? (system* "./x.py" "install" "cargo"))))))
          (add-after 'install 'wrap-rustc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -375,1096 +382,3 @@ safety and thread safety guarantees.")
     (home-page "https://www.rust-lang.org")
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
-
-;; This tries very hard not to get into a cyclic dependency like this:
-;;   cargo <- cargo-build-system <- cargo.
-(define-public cargo
-  (package
-    (name "cargo")
-    (version (cargo-version (rustc-version %rust-bootstrap-binaries-version) 0))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rust-lang/cargo/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0kr7rml7v2bm7zl8jcb3056h63zpyy9m08s212i8vfwxf6lf5fzl"))))
-    (build-system cargo-build-system)
-    (propagated-inputs
-     `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("curl" ,curl)
-       ("libgit2" ,libgit2)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("python-2" ,python-2)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("git" ,git) ; required for tests
-       ;; Next dependencies generated with next command:
-       ;; cat Cargo.lock | awk '
-       ;;   /^"checksum/
-       ;;   { oname=name=$2; vers=$3; hash=$6;
-       ;;     if (ns[name] != 1) { ns[name]=1; } else { name = name "-" vers; }
-       ;;     print "       (\"rust-" name "\"";
-       ;;     print "        ,(origin";
-       ;;     print "           (method url-fetch)";
-       ;;     print "           (uri (crate-uri \"" oname "\" \"" vers "\"))";
-       ;;     print "           (file-name \"rust-" oname "\-\" vers "\")
-       ;;     print "           (sha256";
-       ;;     print "            (base16-string->bytevector";
-       ;;     print "             " hash "))))"
-       ;;   }'
-       ("rust-advapi32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "advapi32-sys" "0.2.0"))
-           (file-name "rust-advapi32-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb8a9a"))))
-       ("rust-aho-corasick"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.5.3"))
-           (file-name "rust-aho-corasick-0.5.3")
-           (sha256
-            (base16-string->bytevector
-             "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"))))
-       ("rust-aho-corasick-0.6.3"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "aho-corasick" "0.6.3"))
-           (file-name "rust-aho-corasick-0.6.3")
-           (sha256
-            (base16-string->bytevector
-             "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699"))))
-       ("rust-atty"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "atty" "0.2.3"))
-           (file-name "rust-atty-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860"))))
-       ("rust-backtrace"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace" "0.3.3"))
-           (file-name "rust-backtrace-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "99f2ce94e22b8e664d95c57fff45b98a966c2252b60691d0b7aeeccd88d70983"))))
-       ("rust-backtrace-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "backtrace-sys" "0.1.14"))
-           (file-name "rust-backtrace-sys-0.1.14")
-           (sha256
-            (base16-string->bytevector
-             "c63ea141ef8fdb10409d0f5daf30ac51f84ef43bff66f16627773d2a292cd189"))))
-       ("rust-bitflags"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.7.0"))
-           (file-name "rust-bitflags-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"))))
-       ("rust-bitflags-0.9.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bitflags" "0.9.1"))
-           (file-name "rust-bitflags-0.9.1")
-           (sha256
-            (base16-string->bytevector
-             "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"))))
-       ("rust-bufstream"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "bufstream" "0.1.3"))
-           (file-name "rust-bufstream-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d09468e32"))))
-       ("rust-cc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cc" "1.0.0"))
-           (file-name "rust-cc-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a76b1"))))
-       ("rust-cfg-if"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cfg-if" "0.1.2"))
-           (file-name "rust-cfg-if-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"))))
-       ("rust-cmake"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "cmake" "0.1.26"))
-           (file-name "rust-cmake-0.1.26")
-           (sha256
-            (base16-string->bytevector
-             "357c07e7a1fc95732793c1edb5901e1a1f305cfcf63a90eb12dbd22bdb6b789d"))))
-       ("rust-commoncrypto"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto" "0.2.0"))
-           (file-name "rust-commoncrypto-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007"))))
-       ("rust-commoncrypto-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "commoncrypto-sys" "0.2.0"))
-           (file-name "rust-commoncrypto-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2"))))
-       ("rust-conv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "conv" "0.3.3"))
-           (file-name "rust-conv-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"))))
-       ("rust-core-foundation"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation" "0.4.4"))
-           (file-name "rust-core-foundation-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "5909502e547762013619f4c4e01cc7393c20fe2d52d7fa471c1210adb2320dc7"))))
-       ("rust-core-foundation-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "core-foundation-sys" "0.4.4"))
-           (file-name "rust-core-foundation-sys-0.4.4")
-           (sha256
-            (base16-string->bytevector
-             "bc9fb3d6cb663e6fd7cf1c63f9b144ee2b1e4a78595a0451dd34bff85b9a3387"))))
-       ("rust-crossbeam"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.2.10"))
-           (file-name "rust-crossbeam-0.2.10")
-           (sha256
-            (base16-string->bytevector
-             "0c5ea215664ca264da8a9d9c3be80d2eaf30923c259d03e870388eb927508f97"))))
-       ("rust-crossbeam-0.3.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crossbeam" "0.3.0"))
-           (file-name "rust-crossbeam-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "8837ab96533202c5b610ed44bc7f4183e7957c1c8f56e8cc78bb098593c8ba0a"))))
-       ("rust-crypto-hash"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "crypto-hash" "0.3.0"))
-           (file-name "rust-crypto-hash-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "34903878eec1694faf53cae8473a088df333181de421d4d3d48061d6559fe602"))))
-       ("rust-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl" "0.4.8"))
-           (file-name "rust-curl-0.4.8")
-           (sha256
-            (base16-string->bytevector
-             "7034c534a1d7d22f7971d6088aa9d281d219ef724026c3428092500f41ae9c2c"))))
-       ("rust-curl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "curl-sys" "0.3.15"))
-           (file-name "rust-curl-sys-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "4bee31aa3a079d5f3ff9579ea4dcfb1b1a17a40886f5f467436d383e78134b55"))))
-       ("rust-custom_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "custom_derive" "0.1.7"))
-           (file-name "rust-custom_derive-0.1.7")
-           (sha256
-            (base16-string->bytevector
-             "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"))))
-       ("rust-dbghelp-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dbghelp-sys" "0.2.0"))
-           (file-name "rust-dbghelp-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"))))
-       ("rust-docopt"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "docopt" "0.8.1"))
-           (file-name "rust-docopt-0.8.1")
-           (sha256
-            (base16-string->bytevector
-             "3b5b93718f8b3e5544fcc914c43de828ca6c6ace23e0332c6080a2977b49787a"))))
-       ("rust-dtoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "dtoa" "0.4.2"))
-           (file-name "rust-dtoa-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"))))
-       ("rust-env_logger"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "env_logger" "0.4.3"))
-           (file-name "rust-env_logger-0.4.3")
-           (sha256
-            (base16-string->bytevector
-             "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b"))))
-       ("rust-error-chain"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "error-chain" "0.11.0"))
-           (file-name "rust-error-chain-0.11.0")
-           (sha256
-            (base16-string->bytevector
-             "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"))))
-       ("rust-filetime"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "filetime" "0.1.12"))
-           (file-name "rust-filetime-0.1.12")
-           (sha256
-            (base16-string->bytevector
-             "6ab199bf38537c6f38792669e081e0bb278b9b7405bba2642e4e5d15bf732c0e"))))
-       ("rust-flate2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "flate2" "0.2.20"))
-           (file-name "rust-flate2-0.2.20")
-           (sha256
-            (base16-string->bytevector
-             "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81e423"))))
-       ("rust-fnv"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fnv" "1.0.5"))
-           (file-name "rust-fnv-1.0.5")
-           (sha256
-            (base16-string->bytevector
-             "6cc484842f1e2884faf56f529f960cc12ad8c71ce96cc7abba0a067c98fee344"))))
-       ("rust-foreign-types"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "foreign-types" "0.2.0"))
-           (file-name "rust-foreign-types-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "3e4056b9bd47f8ac5ba12be771f77a0dae796d1bbaaf5fd0b9c2d38b69b8a29d"))))
-       ("rust-fs2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "fs2" "0.4.2"))
-           (file-name "rust-fs2-0.4.2")
-           (sha256
-            (base16-string->bytevector
-             "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c2866"))))
-       ("rust-git2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2" "0.6.8"))
-           (file-name "rust-git2-0.6.8")
-           (sha256
-            (base16-string->bytevector
-             "0c1c0203d653f4140241da0c1375a404f0a397249ec818cd2076c6280c50f6fa"))))
-       ("rust-git2-curl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "git2-curl" "0.7.0"))
-           (file-name "rust-git2-curl-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5bf8e"))))
-       ("rust-glob"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "glob" "0.2.11"))
-           (file-name "rust-glob-0.2.11")
-           (sha256
-            (base16-string->bytevector
-             "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"))))
-       ("rust-globset"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "globset" "0.2.0"))
-           (file-name "rust-globset-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "feeb1b6840809ef5efcf7a4a990bc4e1b7ee3df8cf9e2379a75aeb2ba42ac9c3"))))
-       ("rust-hamcrest"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hamcrest" "0.1.1"))
-           (file-name "rust-hamcrest-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "bf088f042a467089e9baa4972f57f9247e42a0cc549ba264c7a04fbb8ecb89d4"))))
-       ("rust-hex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "hex" "0.2.0"))
-           (file-name "rust-hex-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa"))))
-       ("rust-home"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "home" "0.3.0"))
-           (file-name "rust-home-0.3.0")
-           (sha256
-            (base16-string->bytevector
-             "9f25ae61099d8f3fee8b483df0bd4ecccf4b2731897aad40d50eca1b641fe6db"))))
-       ("rust-idna"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "idna" "0.1.4"))
-           (file-name "rust-idna-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d"))))
-       ("rust-ignore"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ignore" "0.2.2"))
-           (file-name "rust-ignore-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c99f5"))))
-       ("rust-itoa"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "itoa" "0.3.4"))
-           (file-name "rust-itoa-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"))))
-       ("rust-jobserver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "jobserver" "0.1.6"))
-           (file-name "rust-jobserver-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "443ae8bc0af6c106e6e8b77e04684faecc1a5ce94e058f4c2b0a037b0ea1b133"))))
-       ("rust-kernel32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "kernel32-sys" "0.2.2"))
-           (file-name "rust-kernel32-sys-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"))))
-       ("rust-lazy_static"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "lazy_static" "0.2.9"))
-           (file-name "rust-lazy_static-0.2.9")
-           (sha256
-            (base16-string->bytevector
-             "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375f8d5"))))
-       ("rust-libc"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libc" "0.2.31"))
-           (file-name "rust-libc-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "d1419b2939a0bc44b77feb34661583c7546b532b192feab36249ab584b86856c"))))
-       ("rust-libgit2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libgit2-sys" "0.6.16"))
-           (file-name "rust-libgit2-sys-0.6.16")
-           (sha256
-            (base16-string->bytevector
-             "6f74b4959cef96898f5123148724fc7dee043b9a6b99f219d948851bfbe53cb2"))))
-       ("rust-libssh2-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libssh2-sys" "0.2.6"))
-           (file-name "rust-libssh2-sys-0.2.6")
-           (sha256
-            (base16-string->bytevector
-             "0db4ec23611747ef772db1c4d650f8bd762f07b461727ec998f953c614024b75"))))
-       ("rust-libz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "libz-sys" "1.0.17"))
-           (file-name "rust-libz-sys-1.0.17")
-           (sha256
-            (base16-string->bytevector
-             "44ebbc760fd2d2f4d93de09a0e13d97e057612052e871da9985cedcb451e6bd5"))))
-       ("rust-log"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "log" "0.3.8"))
-           (file-name "rust-log-0.3.8")
-           (sha256
-            (base16-string->bytevector
-             "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b"))))
-       ("rust-magenta"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta" "0.1.1"))
-           (file-name "rust-magenta-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3ac527"))))
-       ("rust-magenta-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "magenta-sys" "0.1.1"))
-           (file-name "rust-magenta-sys-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f4699"))))
-       ("rust-matches"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "matches" "0.1.6"))
-           (file-name "rust-matches-0.1.6")
-           (sha256
-            (base16-string->bytevector
-             "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"))))
-       ("rust-memchr"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "0.1.11"))
-           (file-name "rust-memchr-0.1.11")
-           (sha256
-            (base16-string->bytevector
-             "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"))))
-       ("rust-memchr-1.0.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "memchr" "1.0.1"))
-           (file-name "rust-memchr-1.0.1")
-           (sha256
-            (base16-string->bytevector
-             "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"))))
-       ("rust-miniz-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miniz-sys" "0.1.10"))
-           (file-name "rust-miniz-sys-0.1.10")
-           (sha256
-            (base16-string->bytevector
-             "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4"))))
-       ("rust-miow"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "miow" "0.2.1"))
-           (file-name "rust-miow-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"))))
-       ("rust-net2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "net2" "0.2.31"))
-           (file-name "rust-net2-0.2.31")
-           (sha256
-            (base16-string->bytevector
-             "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"))))
-       ("rust-num"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num" "0.1.40"))
-           (file-name "rust-num-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f923525"))))
-       ("rust-num-bigint"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-bigint" "0.1.40"))
-           (file-name "rust-num-bigint-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "8fd0f8dbb4c0960998958a796281d88c16fbe68d87b1baa6f31e2979e81fd0bd"))))
-       ("rust-num-complex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-complex" "0.1.40"))
-           (file-name "rust-num-complex-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "503e668405c5492d67cf662a81e05be40efe2e6bcf10f7794a07bd9865e704e6"))))
-       ("rust-num-integer"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-integer" "0.1.35"))
-           (file-name "rust-num-integer-0.1.35")
-           (sha256
-            (base16-string->bytevector
-             "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"))))
-       ("rust-num-iter"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-iter" "0.1.34"))
-           (file-name "rust-num-iter-0.1.34")
-           (sha256
-            (base16-string->bytevector
-             "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"))))
-       ("rust-num-rational"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-rational" "0.1.39"))
-           (file-name "rust-num-rational-0.1.39")
-           (sha256
-            (base16-string->bytevector
-             "288629c76fac4b33556f4b7ab57ba21ae202da65ba8b77466e6d598e31990790"))))
-       ("rust-num-traits"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num-traits" "0.1.40"))
-           (file-name "rust-num-traits-0.1.40")
-           (sha256
-            (base16-string->bytevector
-             "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0"))))
-       ("rust-num_cpus"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "num_cpus" "1.7.0"))
-           (file-name "rust-num_cpus-1.7.0")
-           (sha256
-            (base16-string->bytevector
-             "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453b20d"))))
-       ("rust-openssl"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl" "0.9.19"))
-           (file-name "rust-openssl-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "816914b22eb15671d62c73442a51978f311e911d6a6f6cbdafa6abce1b5038fc"))))
-       ("rust-openssl-probe"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-probe" "0.1.1"))
-           (file-name "rust-openssl-probe-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "d98df0270d404ccd3c050a41d579c52d1db15375168bb3471e04ec0f5f378daf"))))
-       ("rust-openssl-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "openssl-sys" "0.9.19"))
-           (file-name "rust-openssl-sys-0.9.19")
-           (sha256
-            (base16-string->bytevector
-             "1e4c63a7d559c1e5afa6d6a9e6fa34bbc5f800ffc9ae08b72c605420b0c4f5e8"))))
-       ("rust-percent-encoding"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "percent-encoding" "1.0.0"))
-           (file-name "rust-precent-encoding-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6ae356"))))
-       ("rust-pkg-config"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "pkg-config" "0.3.9"))
-           (file-name "rust-pkg-config-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"))))
-       ("rust-psapi-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "psapi-sys" "0.1.0"))
-           (file-name "rust-psapi-sys-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "abcd5d1a07d360e29727f757a9decb3ce8bc6e0efa8969cfaad669a8317a2478"))))
-       ("rust-quote"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "quote" "0.3.15"))
-           (file-name "rust-quote-0.3.15")
-           (sha256
-            (base16-string->bytevector
-             "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"))))
-       ("rust-rand"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rand" "0.3.16"))
-           (file-name "rust-rand-0.3.16")
-           (sha256
-            (base16-string->bytevector
-             "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fecbcdf"))))
-       ("rust-redox_syscall"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_syscall" "0.1.31"))
-           (file-name "rust-redox_syscall-0.1.31")
-           (sha256
-            (base16-string->bytevector
-             "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb04509"))))
-       ("rust-redox_termios"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "redox_termios" "0.1.1"))
-           (file-name "rust-redox_termios-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"))))
-       ("rust-regex"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.1.80"))
-           (file-name "rust-regex-0.1.80")
-           (sha256
-            (base16-string->bytevector
-             "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"))))
-       ("rust-regex-0.2.2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex" "0.2.2"))
-           (file-name "rust-regex-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b2d1b"))))
-       ("rust-regex-syntax"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.3.9"))
-           (file-name "rust-regex-syntax-0.3.9")
-           (sha256
-            (base16-string->bytevector
-             "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"))))
-       ("rust-regex-syntax-0.4.1"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "regex-syntax" "0.4.1"))
-           (file-name "rust-regex-syntax-0.4.1")
-           (sha256
-            (base16-string->bytevector
-             "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f62db"))))
-       ("rust-rustc-demangle"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-demangle" "0.1.5"))
-           (file-name "rust-rustc-demangle-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"))))
-       ("rust-rustc-serialize"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "rustc-serialize" "0.3.24"))
-           (file-name "rust-rustc-serialize-0.3.24")
-           (sha256
-            (base16-string->bytevector
-             "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"))))
-       ("rust-same-file"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "same-file" "0.1.3"))
-           (file-name "rust-same-file-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"))))
-       ("rust-scoped-tls"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scoped-tls" "0.1.0"))
-           (file-name "rust-scoped-tls-0.1.0")
-           (sha256
-            (base16-string->bytevector
-             "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d"))))
-       ("rust-scopeguard"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "scopeguard" "0.1.2"))
-           (file-name "rust-scopeguard-0.1.2")
-           (sha256
-            (base16-string->bytevector
-             "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57"))))
-       ("rust-semver"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver" "0.8.0"))
-           (file-name "rust-semver-0.8.0")
-           (sha256
-            (base16-string->bytevector
-             "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6454b"))))
-       ("rust-semver-parser"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "semver-parser" "0.7.0"))
-           (file-name "rust-semver-parser-0.7.0")
-           (sha256
-            (base16-string->bytevector
-             "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"))))
-       ("rust-serde"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde" "1.0.15"))
-           (file-name "rust-serde-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "6a7046c9d4c6c522d10b2d098f9bebe2bef227e0e74044d8c1bfcf6b476af799"))))
-       ("rust-serde_derive"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive" "1.0.15"))
-           (file-name "rust-serde_derive-1.0.15")
-           (sha256
-            (base16-string->bytevector
-             "1afcaae083fd1c46952a315062326bc9957f182358eb7da03b57ef1c688f7aa9"))))
-       ("rust-serde_derive_internals"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_derive_internals" "0.16.0"))
-           (file-name "rust-serde_derive_internals-0.16.0")
-           (sha256
-            (base16-string->bytevector
-             "bd381f6d01a6616cdba8530492d453b7761b456ba974e98768a18cad2cd76f58"))))
-       ("rust-serde_ignored"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_ignored" "0.0.4"))
-           (file-name "rust-serde_ignored-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"))))
-       ("rust-serde_json"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "serde_json" "1.0.3"))
-           (file-name "rust-serde_json-1.0.3")
-           (sha256
-            (base16-string->bytevector
-             "d243424e06f9f9c39e3cd36147470fd340db785825e367625f79298a6ac6b7ac"))))
-       ("rust-shell-escape"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "shell-escape" "0.1.3"))
-           (file-name "rust-shell-escape-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "dd5cc96481d54583947bfe88bf30c23d53f883c6cd0145368b69989d97b84ef8"))))
-       ("rust-socket2"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "socket2" "0.2.3"))
-           (file-name "rust-socket2-0.2.3")
-           (sha256
-            (base16-string->bytevector
-             "9e76b159741052c7deaa9fd0b5ca6b5f79cecf525ed665abfe5002086c6b2791"))))
-       ("rust-strsim"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "strsim" "0.6.0"))
-           (file-name "rust-strsim-0.6.0")
-           (sha256
-            (base16-string->bytevector
-             "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"))))
-       ("rust-syn"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "syn" "0.11.11"))
-           (file-name "rust-syn-0.11.11")
-           (sha256
-            (base16-string->bytevector
-             "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"))))
-       ("rust-synom"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "synom" "0.11.3"))
-           (file-name "rust-synom-0.11.3")
-           (sha256
-            (base16-string->bytevector
-             "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"))))
-       ("rust-tar"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tar" "0.4.13"))
-           (file-name "rust-tar-0.4.13")
-           (sha256
-            (base16-string->bytevector
-             "281285b717926caa919ad905ef89c63d75805c7d89437fb873100925a53f2b1b"))))
-       ("rust-tempdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "tempdir" "0.3.5"))
-           (file-name "rust-tempdir-0.3.5")
-           (sha256
-            (base16-string->bytevector
-             "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6"))))
-       ("rust-termcolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termcolor" "0.3.3"))
-           (file-name "rust-termcolor-0.3.3")
-           (sha256
-            (base16-string->bytevector
-             "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b242c75"))))
-       ("rust-termion"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "termion" "1.5.1"))
-           (file-name "rust-termion-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"))))
-       ("rust-thread-id"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread-id" "2.0.0"))
-           (file-name "rust-thread-id-2.0.0")
-           (sha256
-            (base16-string->bytevector
-             "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"))))
-       ("rust-thread_local"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.2.7"))
-           (file-name "rust-thread_local-0.2.7")
-           (sha256
-            (base16-string->bytevector
-             "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"))))
-       ("rust-thread_local-0.3.4"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "thread_local" "0.3.4"))
-           (file-name "rust-thread_local-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90bb14"))))
-       ("rust-toml"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "toml" "0.4.5"))
-           (file-name "rust-toml-0.4.5")
-           (sha256
-            (base16-string->bytevector
-             "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"))))
-       ("rust-unicode-bidi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-bidi" "0.3.4"))
-           (file-name "rust-unicode-bidi-0.3.4")
-           (sha256
-            (base16-string->bytevector
-             "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"))))
-       ("rust-unicode-normalization"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-normalization" "0.1.5"))
-           (file-name "rust-unicode-normalization-0.1.5")
-           (sha256
-            (base16-string->bytevector
-             "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f"))))
-       ("rust-unicode-xid"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unicode-xid" "0.0.4"))
-           (file-name "rust-unicode-xid-0.0.4")
-           (sha256
-            (base16-string->bytevector
-             "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"))))
-       ("rust-unreachable"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "unreachable" "1.0.0"))
-           (file-name "rust-unreachable-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"))))
-       ("rust-url"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "url" "1.5.1"))
-           (file-name "rust-url-1.5.1")
-           (sha256
-            (base16-string->bytevector
-             "eeb819346883532a271eb626deb43c4a1bb4c4dd47c519bd78137c3e72a4fe27"))))
-       ("rust-userenv-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "userenv-sys" "0.2.0"))
-           (file-name "rust-userenv-sys-0.2.0")
-           (sha256
-            (base16-string->bytevector
-             "71d28ea36bbd9192d75bd9fa9b39f96ddb986eaee824adae5d53b6e51919b2f3"))))
-       ("rust-utf8-ranges"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "0.1.3"))
-           (file-name "rust-utf8-ranges-0.1.3")
-           (sha256
-            (base16-string->bytevector
-             "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"))))
-       ("rust-utf8-ranges-1.0.0"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "utf8-ranges" "1.0.0"))
-           (file-name "rust-utf8-ranges-1.0.0")
-           (sha256
-            (base16-string->bytevector
-             "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"))))
-       ("rust-vcpkg"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "vcpkg" "0.2.2"))
-           (file-name "rust-vcpkg-0.2.2")
-           (sha256
-            (base16-string->bytevector
-             "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b"))))
-       ("rust-void"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "void" "1.0.2"))
-           (file-name "rust-void-1.0.2")
-           (sha256
-            (base16-string->bytevector
-             "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"))))
-       ("rust-walkdir"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "walkdir" "1.0.7"))
-           (file-name "rust-walkdir-1.0.7")
-           (sha256
-            (base16-string->bytevector
-             "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"))))
-       ("rust-winapi"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi" "0.2.8"))
-           (file-name "rust-winapi-0.2.8")
-           (sha256
-            (base16-string->bytevector
-             "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"))))
-       ("rust-winapi-build"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "winapi-build" "0.1.1"))
-           (file-name "rust-winapi-build-0.1.1")
-           (sha256
-            (base16-string->bytevector
-             "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"))))
-       ("rust-wincolor"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "wincolor" "0.1.4"))
-           (file-name "rust-wincolor-0.1.4")
-           (sha256
-            (base16-string->bytevector
-             "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58b8b0"))))
-       ("rust-ws2_32-sys"
-        ,(origin
-           (method url-fetch)
-           (uri (crate-uri "ws2_32-sys" "0.2.1"))
-           (file-name "rust-ws2_32-sys-0.2.1")
-           (sha256
-            (base16-string->bytevector
-             "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"))))))
-    (arguments
-     `(#:cargo ,cargo-bootstrap
-       #:rustc ,rustc ; Force to use rustc from current file
-       #:modules
-       ((ice-9 match)
-        (srfi srfi-1) ; 'every
-        (guix build utils)
-        (guix build cargo-build-system))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unpack-dependencies
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (define (unpack source target)
-               (mkdir-p target)
-               (with-directory-excursion target
-                 (zero? (system* "tar" "xf"
-                                 source
-                                 "--strip-components=1"))))
-             (define (touch file-name)
-               (call-with-output-file file-name (const #t)))
-             (define (install-rust-library entry)
-               (match entry
-                 ((name . src)
-                  (if (string-prefix? "rust-" name)
-                      (let* ((rust-length (string-length "rust-"))
-                             (rust-name (string-drop name rust-length))
-                             (rsrc (string-append "vendor/" rust-name))
-                             (unpack-status (unpack src rsrc)))
-                        (touch (string-append rsrc "/.cargo-ok"))
-                        (generate-checksums rsrc src)
-                        unpack-status)))
-                 (_ #t)))
-             (mkdir "vendor")
-             (every install-rust-library inputs)))
-         (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Cargo.lock"
-               (("(\"checksum .* = )\".*\"" all name)
-                (string-append name "\"" ,%cargo-reference-hash "\"")))
-             (for-each
-              (lambda (filename)
-                (use-modules (guix build cargo-build-system))
-                (delete-file filename)
-                (let* ((dir (dirname filename)))
-                  (display (string-append
-                            "patch-cargo-checksums: generate-checksums for "
-                            dir "\n"))
-                  (generate-checksums dir ,%cargo-reference-project-file)))
-              (find-files "vendor" ".cargo-checksum.json"))
-             #t))
-         (replace 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "tests/build.rs"
-               (("/usr/bin/env") (which "env"))
-               ;; Guix llvm compiled without asmjs-unknown-emscripten at all
-               (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs"))
-             (substitute* "tests/death.rs"
-               ;; Stuck when built in container
-               (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone"))
-             (mkdir ".cargo")
-             (call-with-output-file ".cargo/config"
-               (lambda (port)
-                 (display "
-[source.crates-io]
-registry = 'https://github.com/rust-lang/crates.io-index'
-replace-with = 'vendored-sources'
-
-[source.vendored-sources]
-directory = 'vendor'
-" port)))
-             ;; Disable test for cross compilation support
-             (setenv "CFG_DISABLE_CROSS_TESTS" "1")
-             (setenv "SHELL" (which "sh"))
-             (setenv "CONFIG_SHELL" (which "sh"))
-             (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
-             #t)))))
-    (home-page "https://github.com/rust-lang/cargo")
-    (synopsis "Build tool and package manager for Rust")
-    (description "Cargo is a tool that allows Rust projects to declare their
-dependencies and ensures a reproducible build.")
-    ;; Cargo is dual licensed Apache and MIT. Also contains
-    ;; code from openssl which is GPL2 with linking exception.
-    (license (list license:asl2.0 license:expat license:gpl2))))
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index c637fbb16..4a1eb0cfa 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -43,17 +43,11 @@
 to NAME and VERSION."
   (string-append crate-url name "/" version "/download"))
 
-(define (default-cargo)
-  "Return the default Cargo package."
+(define (default-rust)
+  "Return the default Rust package."
   ;; Lazily resolve the binding to avoid a circular dependency.
   (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'cargo)))
-
-(define (default-rustc)
-  "Return the default Rustc package."
-  ;; Lazily resolve the binding to avoid a circular dependency.
-  (let ((rust (resolve-interface '(gnu packages rust))))
-    (module-ref rust 'rustc)))
+    (module-ref rust 'rust)))
 
 (define %cargo-build-system-modules
   ;; Build-side modules imported by default.
@@ -115,14 +109,13 @@ to NAME and VERSION."
 
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
-                (cargo (default-cargo))
-                (rustc (default-rustc))
+                (rust (default-rust))
                 #:allow-other-keys
                 #:rest arguments)
   "Return a bag for NAME."
 
   (define private-keywords
-    '(#:source #:target #:cargo #:rustc #:inputs #:native-inputs #:outputs))
+    '(#:source #:target #:rust #:inputs #:native-inputs #:outputs))
 
   (and (not target) ;; TODO: support cross-compilation
        (bag
@@ -136,8 +129,8 @@ to NAME and VERSION."
 
                         ;; Keep the standard inputs of 'gnu-build-system'
                         ,@(standard-packages)))
-         (build-inputs `(("cargo" ,cargo)
-                         ("rustc" ,rustc)
+         (build-inputs `(("cargo" ,rust "cargo")
+                         ("rustc" ,rust)
                          ,@native-inputs))
          (outputs outputs)
          (build cargo-build)
-- 
2.16.2





Acknowledgement sent to Nikolai Merinov <nikolai.merinov@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#30831; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 30 Mar 2018 18:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.