From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id cJwJIZB17l7GVQAA0tVLHw (envelope-from ) for ; Sat, 20 Jun 2020 20:46:08 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id sAXsHJB17l4UXwAAbx9fmQ (envelope-from ) for ; Sat, 20 Jun 2020 20:46:08 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 08658940669 for ; Sat, 20 Jun 2020 20:46:08 +0000 (UTC) Received: from localhost ([::1]:34844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmkNK-0006oe-Mp for larch@yhetil.org; Sat, 20 Jun 2020 16:46:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmkNG-0006oE-4w for guix-patches@gnu.org; Sat, 20 Jun 2020 16:46:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47274) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jmkNF-0007dC-R7 for guix-patches@gnu.org; Sat, 20 Jun 2020 16:46:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jmkNF-00061K-On for guix-patches@gnu.org; Sat, 20 Jun 2020 16:46:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#40957] [PATCH v2 2/2] gnu: rust: Bootstrap up to rustc 1.44. References: <20200429094022.22294-1-kuba@kadziolka.net> In-Reply-To: <20200429094022.22294-1-kuba@kadziolka.net> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 20 Jun 2020 20:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40957 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 40957@debbugs.gnu.org Received: via spool by 40957-submit@debbugs.gnu.org id=B40957.159268590523071 (code B ref 40957); Sat, 20 Jun 2020 20:46:01 +0000 Received: (at 40957) by debbugs.gnu.org; 20 Jun 2020 20:45:05 +0000 Received: from localhost ([127.0.0.1]:58819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmkMF-0005zG-EJ for submit@debbugs.gnu.org; Sat, 20 Jun 2020 16:45:04 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:52610) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmkMD-0005z6-2g for 40957@debbugs.gnu.org; Sat, 20 Jun 2020 16:44:58 -0400 Received: (qmail 18762 invoked by uid 1009); 20 Jun 2020 22:44:56 +0200 Received: from 188.123.215.55 (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl (envelope-from , uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25848. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.013985 secs); 20 Jun 2020 20:44:56 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 20 Jun 2020 22:44:55 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Date: Sat, 20 Jun 2020 22:44:54 +0200 Message-Id: <20200620204454.5847-1-kuba@kadziolka.net> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 1.49 X-TUID: lvhE5JQ2mIH+ * gnu/packages/rust.scm (rust-1.40, rust-1.41, rust-1.42, rust-1.43, rust-1.44): New variables. --- gnu/packages/rust.scm | 100 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index d139657f39..1f85332583 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2019 Ivan Petkov +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -797,6 +798,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (("fn finds_author_git") "#[ignore]\nfn finds_author_git") (("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git")) #t)) + ;; TODO(rebuild-rust): Remove this phase in rust-1.28 when rebuilding. (add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel (lambda* _ ;; This test failed to work on "nightly" channel builds @@ -1143,12 +1145,16 @@ move around." (setenv "CARGO_HOME" cargo-home) #t)))))))))) +;; TODO(rebuild-rust): Switch to LLVM 9 in 1.38 instead of 1.40. (define-public rust-1.38 (let ((base-rust (rust-bootstrapped-package rust-1.37 "1.38.0" "101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4"))) (package (inherit base-rust) + #;(inputs + (alist-replace "llvm" (list llvm-9) + (package-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) @@ -1183,4 +1189,98 @@ move around." (generate-all-checksums "vendor") #t))))))))) +(define-public rust-1.40 + (let ((base-rust + (rust-bootstrapped-package rust-1.39 "1.40.0" + "1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx"))) + (package + (inherit base-rust) + (inputs + (alist-replace "llvm" (list llvm-9) + (package-inputs base-rust))) + (source + (origin + (inherit (package-source base-rust)) + ;; llvm-emscripten is no longer bundled, as that codegen backend + ;; got removed. + (snippet '(begin + (delete-file-recursively "src/llvm-project") + (delete-file-recursively "vendor/jemalloc-sys/jemalloc") + #t)))) + (arguments + ;; Rust 1.40 does not ship rustc-internal libraries by default + ;; (see rustc-dev-split). This means that librustc_driver.so is no + ;; longer available in lib/rustlib/$target/lib, which is the directory + ;; included in the runpath of librustc_codegen_llvm-llvm.so. + ;; This is detected by our validate-runpath phase as an error, but it + ;; is harmless as the codegen backend is loaded by librustc_driver.so + ;; itself, which must at that point have been already loaded. + ;; As such, we skip validating the runpath for Rust 1.40. + ;; Rust 1.41 stopped putting the codegen backend in a separate library, + ;; which makes this workaround only necessary for this release. + (cons* #:validate-runpath? #f + (substitute-keyword-arguments (package-arguments base-rust) + ((#:phases phases) + `(modify-phases ,phases + ;; We often need to patch tests with various Guix-specific paths. + ;; This often increases the line length and makes tidy, rustc's + ;; style checker, complain. We could insert additional newlines + ;; or add an "// ignore-tidy-linelength" comment, but as an + ;; ignore comment must be used, both approaches are fragile due + ;; to upstream formatting changes. As such, disable running the + ;; linter during tests, since it's intended for rustc developers + ;; anyway. + ;; + ;; TODO(rebuild-rust): This phase could be added earlier to + ;; simplify a significant amount of code, but it would require + ;; rebuilding the entire rusty universe. + (add-after 'patch-tests 'neuter-tidy + (lambda _ + (substitute* "src/bootstrap/builder.rs" + (("^.*::Tidy,") "")) + #t)) + ;; TODO(rebuild-rust): Adapt the find-files approach for + ;; earlier testsuite patches. + (replace 'patch-command-uid-gid-test + (lambda _ + (match (find-files "src/test" "command-uid-gid\\.rs") + ((file) + (substitute* file + (("/bin/sh") (which "sh"))))) + #t)) + (replace 'patch-command-exec-tests + ,(patch-command-exec-tests-phase + '(match (find-files "src/test" "command-exec\\.rs") + ((file) file)))) + ;; TODO(rebuild-rust): The test in question got fixed long ago. + (delete 'disable-cargo-test-for-nightly-channel) + ;; The test got removed in commit 000fe63b6fc57b09828930cacbab20c2ee6e6d15 + ;; "Remove painful test that is not pulling its weight" + (delete 'remove-unsupported-tests))))))))) + +(define-public rust-1.41 + (let ((base-rust + (rust-bootstrapped-package rust-1.40 "1.41.1" + "0ws5x0fxv57fyllsa6025h3q6j9v3m8nb3syl4x0hgkddq0kvj9q"))) + (package + (inherit base-rust) + (arguments + (substitute-keyword-arguments (package-arguments base-rust) + ((#:validate-runpath? _) #t)))))) + +(define-public rust-1.42 + (rust-bootstrapped-package rust-1.41 "1.42.0" + "0x9lxs82may6c0iln0b908cxyn1cv7h03n5cmbx3j1bas4qzks6j")) + +(define-public rust-1.43 + (rust-bootstrapped-package rust-1.42 "1.43.0" + "18akhk0wz1my6y9vhardriy2ysc482z0fnjdcgs9gy59kmnarxkm")) + +(define-public rust-1.44 + (rust-bootstrapped-package rust-1.43 "1.44.0" + "000iavc6m6aikyh6nvndz6qxm7x9a51pvg65cx0yhcz52wizcbdz")) + +;; NOTE: An update to LLVM 10 is coming in 1.45, make sure not to miss it. + +;; TODO(staging): Bump this variable to the latest packaged rust. (define-public rust rust-1.39) -- 2.26.2