From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 0/2] Split off rust@1.19.0. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Apr 2018 17:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 31026@debbugs.gnu.org Cc: Danny Milosavljevic X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.152268975826051 (code B ref -1); Mon, 02 Apr 2018 17:23:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Apr 2018 17:22:38 +0000 Received: from localhost ([127.0.0.1]:35347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33AD-0006m7-UW for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:22:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33AC-0006lv-Q1 for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:22:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f33A6-0002yh-SI for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:22:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53606) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f33A6-0002yd-Pq for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:22:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39800) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f33A5-00021O-Pr for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f33A2-0002wn-MJ for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:29 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:38598) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f33A2-0002wG-Ff for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:26 -0400 Received: from dayas.3.home (178.113.134.1.wireless.dyn.drei.com [178.113.134.1]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 1B3A03360129; Mon, 2 Apr 2018 19:22:24 +0200 (CEST) From: Danny Milosavljevic Date: Mon, 2 Apr 2018 19:17:21 +0200 Message-Id: <20180402171721.12331-1-dannym@scratchpost.org> X-Mailer: git-send-email 2.16.2 Tags: patch 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: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Prepare for mrustc bootstrap. Danny Milosavljevic (2): gnu: Add rust@1.19.0. gnu: Factorize rust-bootstrapped-package. gnu/packages/rust.scm | 155 +++++++++++++++++++++++++++++--------------------- 1 file changed, 90 insertions(+), 65 deletions(-) From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 1/2] gnu: Add rust@1.19.0. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Apr 2018 17:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 31026@debbugs.gnu.org Cc: Danny Milosavljevic Received: via spool by 31026-submit@debbugs.gnu.org id=B31026.152268986026250 (code B ref 31026); Mon, 02 Apr 2018 17:25:01 +0000 Received: (at 31026) by debbugs.gnu.org; 2 Apr 2018 17:24:20 +0000 Received: from localhost ([127.0.0.1]:35352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33Bs-0006pK-Ch for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:24:20 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:56170) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33Bp-0006pB-Pg for 31026@debbugs.gnu.org; Mon, 02 Apr 2018 13:24:18 -0400 Received: from dayas.3.home (178.113.134.1.wireless.dyn.drei.com [178.113.134.1]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 4497B336024E; Mon, 2 Apr 2018 19:24:16 +0200 (CEST) From: Danny Milosavljevic Date: Mon, 2 Apr 2018 19:24:08 +0200 Message-Id: <20180402172409.13230-1-dannym@scratchpost.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180402171721.12331-1-dannym@scratchpost.org> References: <20180402171721.12331-1-dannym@scratchpost.org> Tags: patch X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) * gnu/packages/rust.scm (rust-1.23)[build-system, native-inputs, inputs, native-search-paths, synopsis, description, home-page, license]: Move to... (rust-1.19): ... here. New variable. (rust-1.23)[arguments]<#:phases>[set-env, patch-tests, patch-cargo-checksums]: Move to... (rust-1.19): ... here. (rust-1.19)[arguments]<#:phases>[configure, check, install]: Replace by no-op. --- gnu/packages/rust.scm | 126 ++++++++++++++++++++++++++++---------------------- 1 file changed, 72 insertions(+), 54 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 70140579b..8ec748fa6 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -150,30 +150,12 @@ in turn be used to build the final Rust.") (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "src/llvm") #t)))) -(define-public rust-1.23 +(define-public rust-1.19 (package (name "rust") - (version "1.23.0") - (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")) - (build-system gnu-build-system) - (native-inputs - `(("bison" ,bison) ; For the tests - ("cmake" ,cmake) - ("flex" ,flex) ; For the tests - ("gdb" ,gdb) ; For the tests - ("git" ,git) - ("procps" ,procps) ; For the tests - ("python-2" ,python-2) - ("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) - ("openssl" ,openssl) - ("libcurl" ,curl))) ; For "cargo" - (outputs '("out" "doc" "cargo")) + (version "1.19.0") + (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm")) + (outputs '("out" "cargo")) (arguments `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums' #:phases @@ -204,15 +186,6 @@ in turn be used to build the final Rust.") ;; (delete-file-recursively "src/test/run-make/linker-output-non-utf8") #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 = mtime\\(dst\\);") - "if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);")) - #t)) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda* _ (substitute* "src/Cargo.lock" @@ -230,20 +203,73 @@ in turn be used to build the final Rust.") (find-files "src/vendor" ".cargo-checksum.json")) #t)) (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")) - (python (assoc-ref inputs "python-2")) - (rustc (assoc-ref inputs "rustc-bootstrap")) - (cargo (assoc-ref inputs "cargo-bootstrap")) - (llvm (assoc-ref inputs "llvm")) - (jemalloc (assoc-ref inputs "jemalloc"))) - (call-with-output-file "config.toml" - (lambda (port) - (display (string-append " + (const #t)) + (replace 'check + (const #t)) + (replace 'install + (const #t))))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) ; For the tests + ("cmake" ,cmake) + ("flex" ,flex) ; For the tests + ("gdb" ,gdb) ; For the tests + ("git" ,git) + ("procps" ,procps) ; For the tests + ("python-2" ,python-2) + ("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) + ("openssl" ,openssl) + ("libcurl" ,curl))) ; For "cargo" + ;; rustc invokes gcc, so we need to set its search paths accordingly. + (native-search-paths (package-native-search-paths gcc)) + (synopsis "Compiler for the Rust progamming language") + (description "Rust is a systems programming language that provides memory +safety and thread safety guarantees.") + (home-page "https://www.rust-lang.org") + ;; Dual licensed. + (license (list license:asl2.0 license:expat)))) + +(define-public rust-1.23 + (package + (inherit rust-1.19) + (name "rust") + (version "1.23.0") + (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")) + (outputs '("out" "doc" "cargo")) + (arguments + (substitute-keyword-arguments (package-arguments rust-1.19) + ((#:phases phases) + `(modify-phases ,phases + (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 = mtime\\(dst\\);") + "if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);")) + #t)) + (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")) + (python (assoc-ref inputs "python-2")) + (rustc (assoc-ref inputs "rustc-bootstrap")) + (cargo (assoc-ref inputs "cargo-bootstrap")) + (llvm (assoc-ref inputs "llvm")) + (jemalloc (assoc-ref inputs "jemalloc"))) + (call-with-output-file "config.toml" + (lambda (port) + (display (string-append " [llvm] [build] cargo = \"" cargo "/bin/cargo" "\" @@ -308,15 +334,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (wrap-program (string-append out "/bin/rustc") `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))) - #t)))))) - ;; rustc invokes gcc, so we need to set its search paths accordingly. - (native-search-paths (package-native-search-paths gcc)) - (synopsis "Compiler for the Rust progamming language") - (description "Rust is a systems programming language that provides memory -safety and thread safety guarantees.") - (home-page "https://www.rust-lang.org") - ;; Dual licensed. - (license (list license:asl2.0 license:expat)))) + #t))))))))) (define-public rust (let ((base-rust rust-1.23)) From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 2/2] gnu: Factorize rust-bootstrapped-package. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Apr 2018 17:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 31026@debbugs.gnu.org Cc: Danny Milosavljevic Received: via spool by 31026-submit@debbugs.gnu.org id=B31026.152268986426269 (code B ref 31026); Mon, 02 Apr 2018 17:25:02 +0000 Received: (at 31026) by debbugs.gnu.org; 2 Apr 2018 17:24:24 +0000 Received: from localhost ([127.0.0.1]:35355 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33Bv-0006pd-QC for submit@debbugs.gnu.org; Mon, 02 Apr 2018 13:24:23 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:56184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f33Bu-0006pS-3a for 31026@debbugs.gnu.org; Mon, 02 Apr 2018 13:24:22 -0400 Received: from dayas.3.home (178.113.134.1.wireless.dyn.drei.com [178.113.134.1]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 21412336024E; Mon, 2 Apr 2018 19:24:18 +0200 (CEST) From: Danny Milosavljevic Date: Mon, 2 Apr 2018 19:24:09 +0200 Message-Id: <20180402172409.13230-2-dannym@scratchpost.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180402172409.13230-1-dannym@scratchpost.org> References: <20180402171721.12331-1-dannym@scratchpost.org> <20180402172409.13230-1-dannym@scratchpost.org> Tags: patch X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) * gnu/packages/rust.scm (rust-bootstrapped-package): New procedure. (rust): Use rust-bootstrapped-package. --- gnu/packages/rust.scm | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 8ec748fa6..eaa8c4852 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -235,6 +235,18 @@ safety and thread safety guarantees.") ;; Dual licensed. (license (list license:asl2.0 license:expat)))) +(define (rust-bootstrapped-package base-rust version checksum) + "Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST." + (package + (inherit base-rust) + (version version) + (source + (rust-source version checksum)) + (native-inputs + (alist-replace "cargo-bootstrap" (list base-rust "cargo") + (alist-replace "rustc-bootstrap" (list base-rust) + (package-native-inputs base-rust)))))) + (define-public rust-1.23 (package (inherit rust-1.19) @@ -337,18 +349,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" #t))))))))) (define-public rust - (let ((base-rust rust-1.23)) + (let ((base-rust + (rust-bootstrapped-package rust-1.23 "1.24.1" + "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))) (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)))))))) + ((#:phases phases) + `(modify-phases ,phases + (delete 'fix-mtime-bug)))))))) From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 0/2] Split off rust@1.19.0. Resent-From: Nils Gillmann Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Apr 2018 18:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 31026@debbugs.gnu.org Received: via spool by 31026-submit@debbugs.gnu.org id=B31026.15226931476159 (code B ref 31026); Mon, 02 Apr 2018 18:20:02 +0000 Received: (at 31026) by debbugs.gnu.org; 2 Apr 2018 18:19:07 +0000 Received: from localhost ([127.0.0.1]:35383 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f342s-0001bF-2L for submit@debbugs.gnu.org; Mon, 02 Apr 2018 14:19:07 -0400 Received: from static.195.114.201.195.clients.your-server.de ([195.201.114.195]:54722 helo=conspiracy.of.n0.is) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f342p-0001b5-JT for 31026@debbugs.gnu.org; Mon, 02 Apr 2018 14:19:04 -0400 Received: by conspiracy.of.n0.is (OpenSMTPD) with ESMTPSA id 5bb8cab1 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Mon, 2 Apr 2018 18:19:01 +0000 (UTC) Date: Mon, 2 Apr 2018 18:19:21 +0000 From: Nils Gillmann Message-ID: <20180402181921.qsmwady62buv5hkj@abyayala> References: <20180402171721.12331-1-dannym@scratchpost.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20180402171721.12331-1-dannym@scratchpost.org> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Danny Milosavljevic transcribed 260 bytes: > Prepare for mrustc bootstrap. Woo, good news. Did I miss an email or does this still require some review? I can reserve some time for building this tonight and review tomorrow at some point. > Danny Milosavljevic (2): > gnu: Add rust@1.19.0. > gnu: Factorize rust-bootstrapped-package. > > gnu/packages/rust.scm | 155 +++++++++++++++++++++++++++++--------------------- > 1 file changed, 90 insertions(+), 65 deletions(-) > > > > From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 0/2] Split off rust@1.19.0. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 02 Apr 2018 19:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Nils Gillmann Cc: 31026@debbugs.gnu.org Received: via spool by 31026-submit@debbugs.gnu.org id=B31026.152269688411494 (code B ref 31026); Mon, 02 Apr 2018 19:22:01 +0000 Received: (at 31026) by debbugs.gnu.org; 2 Apr 2018 19:21:24 +0000 Received: from localhost ([127.0.0.1]:35409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f350z-0002z8-Mq for submit@debbugs.gnu.org; Mon, 02 Apr 2018 15:21:24 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:36824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f350u-0002yw-6j for 31026@debbugs.gnu.org; Mon, 02 Apr 2018 15:21:13 -0400 Received: from localhost (178.113.134.1.wireless.dyn.drei.com [178.113.134.1]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 88D24336028A; Mon, 2 Apr 2018 21:21:06 +0200 (CEST) Date: Mon, 2 Apr 2018 21:20:53 +0200 From: Danny Milosavljevic Message-ID: <20180402212053.41f46ab5@scratchpost.org> In-Reply-To: <20180402181921.qsmwady62buv5hkj@abyayala> References: <20180402171721.12331-1-dannym@scratchpost.org> <20180402181921.qsmwady62buv5hkj@abyayala> 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_/tq76mU6LgAFZrU9z6F9gi6t"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --Sig_/tq76mU6LgAFZrU9z6F9gi6t Content-Type: multipart/mixed; boundary="MP_/bjA0fQ4eeTtV+yxabpjSS.y" --MP_/bjA0fQ4eeTtV+yxabpjSS.y Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Mon, 2 Apr 2018 18:19:21 +0000 Nils Gillmann wrote: > Danny Milosavljevic transcribed 260 bytes: > > Prepare for mrustc bootstrap. =20 >=20 > Woo, good news. Did I miss an email=20 I've been trying to use mrustc to bootstrap rust on and off for quite some time now. The upstream authors have been busy too and it's far enough that I have a working rust-1.19.0 compiler compiled by mrustc in /gnu/store= :) The libstd still had some rough edges - and one test takes about 30 h of building - so it will still take some time until this is done. I thought in the meantime I'd clean up and split up the patches. These here are some of the patches that can be applied without switching to= mrustc yet (that is, they just refactor stuff). >or does this still require some review? Right now, mrustc officially *supports* x86_64 targets only. aarch64 is under review upstream (support is there but unfinished). We will only be able to use mrustc to bootstrap if it supports more archite= ctures. We will see when that comes to pass. mrustc is written in a way that it can compile rust@1.19.0 so that's why th= is exact version is in this patchset. I hope in the future mrustc can compile newer versions of Rust. > I can reserve some time for building this tonight and review tomorrow at = some > point. Nice! I've attached my current gnu/packages/rust.scm here - which includes some t= hings not ready to merge yet. But it should (famous last words) bootstrap rust 1= .24 starting from mrustc in multiple steps. --MP_/bjA0fQ4eeTtV+yxabpjSS.y Content-Type: text/x-scheme Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=rust.scm ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016 David Craven ;;; Copyright =C2=A9 2016 Eric Le Bihan ;;; Copyright =C2=A9 2016 Nils Gillmann ;;; Copyright =C2=A9 2017 Ben Woodcroft ;;; Copyright =C2=A9 2017, 2018 Nikolai Merinov ;;; Copyright =C2=A9 2017 Efraim Flashner ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2018 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages rust) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages bootstrap) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages gcc) #:use-module (gnu packages gdb) #:use-module (gnu packages jemalloc) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages) #:use-module (guix build-system cargo) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix git-download) #: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)) (define %cargo-reference-project-file "/dev/null") (define %cargo-reference-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") (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)))) =0C (define-public mrustc (let ((commit "1a16def28935548e29be0fe5a632e25c83045924") (revision "0") (rustc-version "1.19.0")) (package (name "mrustc") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/thepowersgang/mrustc.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0i5kqnzsd1rkj8qm147jx934nyn9sd1fz2b4achj9z0r00h84dh6")))) (outputs '("out" "cargo")) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ("flex" ,flex) ("llvm" ,llvm-3.9.1) ;; Required for the libstd sources. ("rustc" ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1as= wpvad81y8qm")))) (arguments `(#:tests? #f #:make-flags (list (string-append "LLVM_CONFIG=3D" (assoc-ref %build-inputs "llvm") "/bin/llvm-config")) #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-target-compiler (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "minicargo.mk" ;; Don't try to build LLVM. (("^[$][(]LLVM_CONFIG[)]:") "xxx:") ;; Build for the correct target architecture. (("^RUSTC_TARGET :=3D x86_64-unknown-linux-gnu") (string-append "RUSTC_TARGET :=3D " ,(or (%current-target-system) (nix-system->gnu-triplet (%current-system)))))) (invoke "tar" "xf" (assoc-ref inputs "rustc")) (chdir "rustc-1.19.0-src") (invoke "patch" "-p0" "../rust_src.patch") (chdir "..") #t)) (delete 'configure) (add-after 'build 'build-minicargo (lambda _ (for-each (lambda (target) (invoke "make" "-f" "minicargo.mk" target)) '("output/libstd.hir" "output/libpanic_unwind.hir" "output/libproc_macro.hir" "output/libtest.hir")) ;; Technically the above already does it - but we want to be= clear. (invoke "make" "-C" "tools/minicargo"))) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (tools-bin (string-append out "/tools/bin")) (cargo-out (assoc-ref outputs "cargo")) (cargo-bin (string-append cargo-out "/bin")) (lib (string-append out "/lib")) (lib/rust (string-append lib "/mrust")) (gcc (assoc-ref inputs "gcc"))) ;; These files are not reproducible. (for-each delete-file (find-files "output" "\\.txt$")) (mkdir-p lib) (copy-recursively "output" lib/rust) (mkdir-p bin) (mkdir-p tools-bin) (install-file "bin/mrustc" bin) ;; TODO: Try to generate config.toml and remove this. (symlink (string-append gcc "/bin/gcc") (string-append out "/bin/cc")) ;; minicargo uses relative paths to resolve mrustc. (install-file "tools/bin/minicargo" tools-bin) (install-file "tools/bin/minicargo" cargo-bin) #t)))))) (synopsis "Compiler for the Rust progamming language") (description "Rust is a systems programming language that provides me= mory safety and thread safety guarantees.") (home-page "https://github.com/thepowersgang/mrustc") ;; Dual licensed. (license (list license:asl2.0 license:expat))))) ;; FIXME rust 1.19: backtrace-sys/src/libbacktrace/configure: /usr/bin/file= . (define-public rust-1.19 (package (name "rust") (version "1.19.0") (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1as= wpvad81y8qm")) (outputs '("out" "cargo")) (arguments `(#:imported-modules ,%cargo-build-system-modules ;for `generate-check= sums' #:modules ((guix build utils) (ice-9 match) (guix build gnu-build-sy= stem)) #:phases (modify-phases %standard-phases (add-after 'unpack 'set-env (lambda _ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) ;; guix llvm-3.9.1 package installs only shared libraries (setenv "LLVM_LINK_SHARED" "1") #t)) (add-after 'unpack 'patch-tests (lambda* (#:key inputs #:allow-other-keys) (let ((bash (assoc-ref inputs "bash"))) (substitute* "src/libstd/process.rs" ;; The newline is intentional. ;; There's a line length "tidy" check in Rust which would ;; fail otherwise. (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\""))) (substitute* "src/libstd/net/tcp.rs" ;; There is no network in build environment (("fn connect_timeout_unroutable") "#[ignore]\nfn connect_timeout_unroutable")) ;; (substitute* "src/libstd/sys/unix/process/process_common.rs" (("#\\[cfg_attr\\(target_arch =3D \"arm\", ignore\\)\\] fn test_process_mask") "#[ignore] fn test_process_mask")) ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_P= ATH. ;; (delete-file-recursively "src/test/run-make/linker-output-no= n-utf8") #t))) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda* _ (substitute* "src/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 "src/vendor" ".cargo-checksum.json")) #t)) (replace 'configure (const #t)) (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) (let ((rustc-bootstrap (assoc-ref inputs "rustc-bootstrap"))) (substitute* "src/librustc_errors/Cargo.toml" (("[[]dependencies[]]") " [dependencies] term =3D \"0.4.4\" ")) (substitute* "src/librustc/Cargo.toml" (("[[]dependencies[]]") " [dependencies] getopts =3D { path =3D \"../libgetopts\" } ")) (substitute* "src/librustdoc/Cargo.toml" (("[[]dependencies[]]") " [dependencies] test =3D { path =3D \"../libtest\" } ")) ;; Required for the "cc" symlink. TODO: Make unnecessary. (setenv "PATH" (string-append rustc-bootstrap "/bin/cc:" (getenv "PATH"))) (setenv "CFG_COMPILER_HOST_TRIPLE" ,(nix-system->gnu-triplet (%current-system))) (setenv "CFG_RELEASE" "") (setenv "CFG_RELEASE_CHANNEL" "stable") (setenv "CFG_VERSION" "1.19.0-stable-mrustc") (setenv "CFG_PREFIX" "mrustc") ; FIXME output path. FIXMEwh= at's LIBDIR_RELATIVE? (setenv "CFG_LIBDIR_RELATIVE" "lib") (mkdir-p "output") (invoke (string-append rustc-bootstrap "/tools/bin/minicargo= ") "src/rustc" "--vendor-dir" "src/vendor" "--output-dir" (string-append ;(getcwd) ; FIXME: Rem= ove. "output/rustc-build") "-L" (string-append rustc-bootstrap "/lib/mrust") "-j" "1") (install-file "output/rustc-build/rustc" "output") ; FIXME: = Remove? ;(setenv "CC" "gcc") (setenv "CFG_COMPILER_HOST_TRIPLE" #f) (setenv "CFG_RELEASE" #f) (setenv "CFG_RELEASE_CHANNEL" #f) (setenv "CFG_VERSION" #f) (setenv "CFG_PREFIX" #f) (setenv "CFG_LIBDIR_RELATIVE" #f) (invoke (string-append rustc-bootstrap "/tools/bin/minicargo= ") "src/tools/cargo" "--vendor-dir" "src/vendor" "--output-dir" (string-append ;(getcwd) ; FIXME: Rem= ove. "output/cargo-build") "-L" "output/" "-L" (string-append rustc-bootstrap "/lib/mrust") "-j" "1") ;; Now use the newly-built rustc to build the librar= ies. ;; (Cargo has problems with libstd's circular depend= encies) (for-each (match-lambda ((name . flags) (apply invoke "output/rust-build/rustc" "-L" "output/target-libs" (string-append "src/" name "/lib.rs") "-o" (string-append "output/target-libs/" name ".rlib") flags))) '(("libcore") ("libcollections") ;; FIXME: Add libarena ("libstd_unicode") ("libcompiler_builtins") ("liblibc" "--cfg" "stdbuild") ("libunwind" "-l" "gcc_s") ("liballoc") ("libstd" "-l" "dl" "-l" "rt" "-l" "pthread"))) ; toml "cargo", "rustc"; Alternativ= e: CFG_LOCAL_RUST_ROOT in get_mk (config.mk). =3D> /bin/rustc; or "cargo" i= n config.toml . ;FIXME (invoke "output/cargo-build/cargo" "build" "--manife= st-path" "src/bootstrap/Cargo.toml" "--verbose") ; "--locked" "--frozen" #t))) (replace 'check (const #t)) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (target-system ,(or (%current-target-system) (nix-system->gnu-triplet (%current-system)))) (out-libs (string-append out "/lib/rustlib/" target-system "/lib"))) ;(setenv "CFG_PREFIX" out) (mkdir-p out-libs) (copy-recursively "output/target-libs" out-libs) (install-file "output/rustc-build/rustc" (string-append out "/bin")) (install-file "output/cargo-build/cargo" (string-append (assoc-ref outputs "cargo") "/bin"))) #t))))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ; For the tests ("cmake" ,cmake) ("flex" ,flex) ; For the tests ("gdb" ,gdb) ; For the tests ("git" ,git) ("procps" ,procps) ; For the tests ("strace" ,strace) ; FIXME Remove. ("python-2" ,python-2) ("rustc-bootstrap" ,mrustc) ("cargo-bootstrap" ,mrustc "cargo") ("pkg-config" ,pkg-config) ; For "cargo" ("which" ,which))) (inputs `(("jemalloc" ,jemalloc-4.5.0) ("llvm" ,llvm-3.9.1) ("openssl" ,openssl) ("libcurl" ,curl))) ; For "cargo" (native-search-paths (package-native-search-paths gcc)) (synopsis "Compiler for the Rust progamming language") (description "Rust is a systems programming language that provides memo= ry safety and thread safety guarantees.") (home-page "https://www.rust-lang.org") ;; Dual licensed. (license (list license:asl2.0 license:expat)))) (define (rust-bootstrapped-package base-rust version checksum) "Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST." (package (inherit base-rust) (version version) (source (rust-source version checksum)) (native-inputs (alist-replace "cargo-bootstrap" (list base-rust "cargo") (alist-replace "rustc-bootstrap" (list base-rust) (package-native-inputs base-rust)))))) ;; FIXME: Make private. (define-public rust-1.20 (let ((base-rust (rust-bootstrapped-package rust-1.19 "1.20.0" "0542y4rnzlsrricai130mqyxl8r6rd991frb4q= snwb27yigqg91a"))) (package (inherit base-rust) (outputs '("out" "doc" "cargo")) (native-inputs (cons* ;(list "strace" strace) (package-native-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) `(modify-phases ,phases (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")) (python (assoc-ref inputs "python-2")) (rustc (assoc-ref inputs "rustc-bootstrap")) (cargo (assoc-ref inputs "cargo-bootstrap")) (llvm (assoc-ref inputs "llvm")) (jemalloc (assoc-ref inputs "jemalloc"))) (call-with-output-file "config.toml" (lambda (port) (display (string-append " [llvm] [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" "\" channel =3D \"stable\" rpath =3D true # There is 2 failed codegen tests: # codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs # These tests required patched LLVM codegen-tests =3D false [target." %host-type "] 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))) (replace 'build (lambda* _ (invoke "./x.py" "build") (invoke "./x.py" "build" "src/tools/cargo"))) (add-before 'build 'reset-timestamps-after-changes (lambda* _ (define ref (stat "README.md")) (for-each (lambda (filename) (set-file-time filename ref)) (find-files "." #:directories? #t)) #t)) (replace 'check (lambda* _ (invoke "./x.py" "test"))) (replace '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")) (libc (assoc-ref inputs "libc")) (ld-wrapper (assoc-ref inputs "ld-wrapper"))) ;; Let gcc find ld and libc startup files. (wrap-program (string-append out "/bin/rustc") `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))= )) #t)))))))))) (define-public rust-1.21 (rust-bootstrapped-package rust-1.20 "1.21.0" "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4= i1c21qp")) (define-public rust-1.22 (rust-bootstrapped-package rust-1.21 "1.22.0" "0saaprfb01z95gxlqqki28a3rq7p5a7labxdn3w1d9n49= yy6zj8a")) (define-public rust-1.23 (let ((base-rust (rust-bootstrapped-package rust-1.22 "1.23.0" "5vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzc= da9sfjx12kv99y"))) (package (inherit base-rust) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) `(modify-phases ,phases (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 t= hen its mtime ;; is 0, but in same time "src" have 0 mtime in guix bui= ld! (("let threshold =3D mtime\\(dst\\);") "if !dst.exists() {\nreturn false\n}\n let threshold = =3D mtime(dst);")) #t))))))))) (define-public rust-1.24 (let ((base-rust (rust-bootstrapped-package rust-1.23 "1.24.1" "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzc= da9sfjx12kv99y"))) (package (inherit base-rust) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) `(modify-phases ,phases (delete 'fix-mtime-bug)))))))) (define-public rust rust-1.24) --MP_/bjA0fQ4eeTtV+yxabpjSS.y-- --Sig_/tq76mU6LgAFZrU9z6F9gi6t Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlrCgpUACgkQ5xo1VCww uqWo8wgAjcX3F/uquCShpKv0cybY0m1M4WnGJa0gOiN4wZOBWaAHpibLeXGlMLRE Cb8br54OZP7VjdQXwORG5pl9mKTO8g93yFzkquWBYYU2fMKOeePOhJ17e490mY7W Gjt0aT3gCV46cSeDLhZDhlZ1G93NVGN/mz2ETti9qWpb0QXLkvwAkTFygdMrO/Om Y5ia0CQDuzuZpPjy7nZVPESIVsjDwGgCxRuzU8YaeOdQrURFL1onZ1x760sGse7B 9l3PAV54X22VNzg7xC1ibDdy05DRdHTjfZbXityHNASYoH2wpd0TViZdn6aOCzLY r2niHt7UtBA3p/Ll5QPxYrm5UnHhSA== =661N -----END PGP SIGNATURE----- --Sig_/tq76mU6LgAFZrU9z6F9gi6t-- From unknown Tue Jun 17 22:25:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31026] [PATCH 0/2] Split off rust@1.19.0. Resent-From: Nils Gillmann Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 03 Apr 2018 11:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31026 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: Nils Gillmann , 31026@debbugs.gnu.org Received: via spool by 31026-submit@debbugs.gnu.org id=B31026.152275383113159 (code B ref 31026); Tue, 03 Apr 2018 11:11:02 +0000 Received: (at 31026) by debbugs.gnu.org; 3 Apr 2018 11:10:31 +0000 Received: from localhost ([127.0.0.1]:35922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f3JpT-0003Py-PO for submit@debbugs.gnu.org; Tue, 03 Apr 2018 07:10:30 -0400 Received: from static.195.114.201.195.clients.your-server.de ([195.201.114.195]:54736 helo=conspiracy.of.n0.is) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f3JpO-0003Pm-56 for 31026@debbugs.gnu.org; Tue, 03 Apr 2018 07:10:18 -0400 Received: by conspiracy.of.n0.is (OpenSMTPD) with ESMTPSA id c6625b96 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Tue, 3 Apr 2018 11:10:12 +0000 (UTC) Date: Tue, 3 Apr 2018 11:10:33 +0000 From: Nils Gillmann Message-ID: <20180403111033.pwyx23wdh4fdytgk@abyayala> References: <20180402171721.12331-1-dannym@scratchpost.org> <20180402181921.qsmwady62buv5hkj@abyayala> <20180402212053.41f46ab5@scratchpost.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180402212053.41f46ab5@scratchpost.org> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Danny Milosavljevic transcribed 24K bytes: > On Mon, 2 Apr 2018 18:19:21 +0000 > Nils Gillmann wrote: > > > Danny Milosavljevic transcribed 260 bytes: > > > Prepare for mrustc bootstrap. > > > > Woo, good news. Did I miss an email > > I've been trying to use mrustc to bootstrap rust on and off for quite > some time now. The upstream authors have been busy too and it's far enough > that I have a working rust-1.19.0 compiler compiled by mrustc in /gnu/store :) > > The libstd still had some rough edges - and one test takes about 30 h of > building - so it will still take some time until this is done. > > I thought in the meantime I'd clean up and split up the patches. > > These here are some of the patches that can be applied without switching to mrustc > yet (that is, they just refactor stuff). > > >or does this still require some review? > > Right now, mrustc officially *supports* x86_64 targets only. > > aarch64 is under review upstream (support is there but unfinished). > > We will only be able to use mrustc to bootstrap if it supports more architectures. > > We will see when that comes to pass. > > mrustc is written in a way that it can compile rust@1.19.0 so that's why this > exact version is in this patchset. I hope in the future mrustc can compile > newer versions of Rust. > > > I can reserve some time for building this tonight and review tomorrow at some > > point. I have to pass on this one, delay it for a couple of days. Too much to do. Someone else should do it. What do describe reads like lots of time spend building. > Nice! > > I've attached my current gnu/packages/rust.scm here - which includes some things > not ready to merge yet. But it should (famous last words) bootstrap rust 1.24 > starting from mrustc in multiple steps. > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright © 2016 David Craven > ;;; Copyright © 2016 Eric Le Bihan > ;;; Copyright © 2016 Nils Gillmann > ;;; Copyright © 2017 Ben Woodcroft > ;;; Copyright © 2017, 2018 Nikolai Merinov > ;;; Copyright © 2017 Efraim Flashner > ;;; Copyright © 2018 Tobias Geerinckx-Rice > ;;; Copyright © 2018 Danny Milosavljevic > ;;; > ;;; This file is part of GNU Guix. > ;;; > ;;; GNU Guix is free software; you can redistribute it and/or modify it > ;;; under the terms of the GNU General Public License as published by > ;;; the Free Software Foundation; either version 3 of the License, or (at > ;;; your option) any later version. > ;;; > ;;; GNU Guix is distributed in the hope that it will be useful, but > ;;; WITHOUT ANY WARRANTY; without even the implied warranty of > ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ;;; GNU General Public License for more details. > ;;; > ;;; You should have received a copy of the GNU General Public License > ;;; along with GNU Guix. If not, see . > > (define-module (gnu packages rust) > #:use-module (gnu packages base) > #:use-module (gnu packages bison) > #:use-module (gnu packages bootstrap) > #:use-module (gnu packages cmake) > #:use-module (gnu packages compression) > #:use-module (gnu packages curl) > #:use-module (gnu packages elf) > #:use-module (gnu packages flex) > #:use-module (gnu packages gcc) > #:use-module (gnu packages gdb) > #:use-module (gnu packages jemalloc) > #:use-module (gnu packages linux) > #:use-module (gnu packages llvm) > #:use-module (gnu packages pkg-config) > #:use-module (gnu packages python) > #:use-module (gnu packages ssh) > #:use-module (gnu packages tls) > #:use-module (gnu packages version-control) > #:use-module (gnu packages) > #:use-module (guix build-system cargo) > #:use-module (guix build-system gnu) > #:use-module (guix build-system trivial) > #:use-module (guix download) > #:use-module (guix git-download) > #: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)) > > (define %cargo-reference-project-file "/dev/null") > (define %cargo-reference-hash > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") > > (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 mrustc > (let ((commit "1a16def28935548e29be0fe5a632e25c83045924") > (revision "0") > (rustc-version "1.19.0")) > (package > (name "mrustc") > (version (git-version "0.0.0" revision commit)) > (source (origin > (method git-fetch) > (uri (git-reference > (url "https://github.com/thepowersgang/mrustc.git") > (commit commit))) > (file-name (git-file-name name version)) > (sha256 > (base32 > "0i5kqnzsd1rkj8qm147jx934nyn9sd1fz2b4achj9z0r00h84dh6")))) > (outputs '("out" "cargo")) > (build-system gnu-build-system) > (native-inputs > `(("bison" ,bison) > ("flex" ,flex) > ("llvm" ,llvm-3.9.1) > ;; Required for the libstd sources. > ("rustc" > ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm")))) > (arguments > `(#:tests? #f Maybe add something like ";Tests require rustc"? At least my ticket upstream wasn't closed last time I looked at it. > #:make-flags (list (string-append "LLVM_CONFIG=" > (assoc-ref %build-inputs "llvm") > "/bin/llvm-config")) > #:phases > (modify-phases %standard-phases > (add-after 'unpack 'unpack-target-compiler > (lambda* (#:key inputs outputs #:allow-other-keys) > (substitute* "minicargo.mk" > ;; Don't try to build LLVM. > (("^[$][(]LLVM_CONFIG[)]:") "xxx:") > ;; Build for the correct target architecture. > (("^RUSTC_TARGET := x86_64-unknown-linux-gnu") > (string-append "RUSTC_TARGET := " > ,(or (%current-target-system) > (nix-system->gnu-triplet > (%current-system)))))) > (invoke "tar" "xf" (assoc-ref inputs "rustc")) > (chdir "rustc-1.19.0-src") > (invoke "patch" "-p0" "../rust_src.patch") > (chdir "..") > #t)) > (delete 'configure) > (add-after 'build 'build-minicargo > (lambda _ > (for-each (lambda (target) > (invoke "make" "-f" "minicargo.mk" target)) > '("output/libstd.hir" "output/libpanic_unwind.hir" > "output/libproc_macro.hir" "output/libtest.hir")) > ;; Technically the above already does it - but we want to be clear. > (invoke "make" "-C" "tools/minicargo"))) > (replace 'install > (lambda* (#:key inputs outputs #:allow-other-keys) > (let* ((out (assoc-ref outputs "out")) > (bin (string-append out "/bin")) > (tools-bin (string-append out "/tools/bin")) > (cargo-out (assoc-ref outputs "cargo")) > (cargo-bin (string-append cargo-out "/bin")) > (lib (string-append out "/lib")) > (lib/rust (string-append lib "/mrust")) > (gcc (assoc-ref inputs "gcc"))) > ;; These files are not reproducible. > (for-each delete-file (find-files "output" "\\.txt$")) > (mkdir-p lib) > (copy-recursively "output" lib/rust) > (mkdir-p bin) > (mkdir-p tools-bin) > (install-file "bin/mrustc" bin) > ;; TODO: Try to generate config.toml and remove this. > (symlink (string-append gcc "/bin/gcc") > (string-append out "/bin/cc")) > ;; minicargo uses relative paths to resolve mrustc. > (install-file "tools/bin/minicargo" tools-bin) > (install-file "tools/bin/minicargo" cargo-bin) > #t)))))) > (synopsis "Compiler for the Rust progamming language") > (description "Rust is a systems programming language that provides memory > safety and thread safety guarantees.") > (home-page "https://github.com/thepowersgang/mrustc") > ;; Dual licensed. > (license (list license:asl2.0 license:expat))))) > > ;; FIXME rust 1.19: backtrace-sys/src/libbacktrace/configure: /usr/bin/file . > (define-public rust-1.19 > (package > (name "rust") > (version "1.19.0") > (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm")) > (outputs '("out" "cargo")) > (arguments > `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums' > #:modules ((guix build utils) (ice-9 match) (guix build gnu-build-system)) > #:phases > (modify-phases %standard-phases > (add-after 'unpack 'set-env > (lambda _ > (setenv "SHELL" (which "sh")) > (setenv "CONFIG_SHELL" (which "sh")) > ;; guix llvm-3.9.1 package installs only shared libraries > (setenv "LLVM_LINK_SHARED" "1") > #t)) > (add-after 'unpack 'patch-tests > (lambda* (#:key inputs #:allow-other-keys) > (let ((bash (assoc-ref inputs "bash"))) > (substitute* "src/libstd/process.rs" > ;; The newline is intentional. > ;; There's a line length "tidy" check in Rust which would > ;; fail otherwise. > (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\""))) > (substitute* "src/libstd/net/tcp.rs" > ;; There is no network in build environment > (("fn connect_timeout_unroutable") > "#[ignore]\nfn connect_timeout_unroutable")) > ;; > (substitute* "src/libstd/sys/unix/process/process_common.rs" > (("#\\[cfg_attr\\(target_arch = \"arm\", ignore\\)\\] > fn test_process_mask") "#[ignore] > fn test_process_mask")) > ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. > ;; > (delete-file-recursively "src/test/run-make/linker-output-non-utf8") > #t))) > (add-after 'patch-source-shebangs 'patch-cargo-checksums > (lambda* _ > (substitute* "src/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 "src/vendor" ".cargo-checksum.json")) > #t)) > (replace 'configure > (const #t)) > (replace 'build > (lambda* (#:key inputs outputs #:allow-other-keys) > (let ((rustc-bootstrap (assoc-ref inputs "rustc-bootstrap"))) > (substitute* "src/librustc_errors/Cargo.toml" > (("[[]dependencies[]]") " > [dependencies] > term = \"0.4.4\" > ")) > (substitute* "src/librustc/Cargo.toml" > (("[[]dependencies[]]") " > [dependencies] > getopts = { path = \"../libgetopts\" } > ")) > (substitute* "src/librustdoc/Cargo.toml" > (("[[]dependencies[]]") " > [dependencies] > test = { path = \"../libtest\" } > ")) > > ;; Required for the "cc" symlink. TODO: Make unnecessary. > (setenv "PATH" (string-append rustc-bootstrap "/bin/cc:" > (getenv "PATH"))) > (setenv "CFG_COMPILER_HOST_TRIPLE" > ,(nix-system->gnu-triplet (%current-system))) > (setenv "CFG_RELEASE" "") > (setenv "CFG_RELEASE_CHANNEL" "stable") > (setenv "CFG_VERSION" "1.19.0-stable-mrustc") > (setenv "CFG_PREFIX" "mrustc") ; FIXME output path. FIXMEwhat's LIBDIR_RELATIVE? > (setenv "CFG_LIBDIR_RELATIVE" "lib") > (mkdir-p "output") > (invoke (string-append rustc-bootstrap "/tools/bin/minicargo") > "src/rustc" "--vendor-dir" "src/vendor" > "--output-dir" (string-append ;(getcwd) ; FIXME: Remove. > "output/rustc-build") > "-L" (string-append rustc-bootstrap "/lib/mrust") > "-j" "1") > (install-file "output/rustc-build/rustc" "output") ; FIXME: Remove? > ;(setenv "CC" "gcc") > (setenv "CFG_COMPILER_HOST_TRIPLE" #f) > (setenv "CFG_RELEASE" #f) > (setenv "CFG_RELEASE_CHANNEL" #f) > (setenv "CFG_VERSION" #f) > (setenv "CFG_PREFIX" #f) > (setenv "CFG_LIBDIR_RELATIVE" #f) > (invoke (string-append rustc-bootstrap "/tools/bin/minicargo") > "src/tools/cargo" "--vendor-dir" "src/vendor" > "--output-dir" (string-append ;(getcwd) ; FIXME: Remove. > "output/cargo-build") > "-L" "output/" > "-L" (string-append rustc-bootstrap "/lib/mrust") > "-j" "1") > ;; Now use the newly-built rustc to build the libraries. > ;; (Cargo has problems with libstd's circular dependencies) > (for-each (match-lambda > ((name . flags) > (apply invoke > "output/rust-build/rustc" > "-L" "output/target-libs" > (string-append "src/" name "/lib.rs") > "-o" > (string-append "output/target-libs/" > name ".rlib") > flags))) > '(("libcore") > ("libcollections") > ;; FIXME: Add libarena > ("libstd_unicode") > ("libcompiler_builtins") > ("liblibc" "--cfg" "stdbuild") > ("libunwind" "-l" "gcc_s") > ("liballoc") > ("libstd" "-l" "dl" "-l" "rt" "-l" "pthread"))) > ; toml "cargo", "rustc"; Alternative: CFG_LOCAL_RUST_ROOT in get_mk (config.mk). => /bin/rustc; or "cargo" in config.toml . ;FIXME (invoke "output/cargo-build/cargo" "build" "--manifest-path" "src/bootstrap/Cargo.toml" "--verbose") ; "--locked" "--frozen" > #t))) > (replace 'check > (const #t)) > (replace 'install > (lambda* (#:key inputs outputs #:allow-other-keys) > (let* ((out (assoc-ref outputs "out")) > (target-system ,(or (%current-target-system) > (nix-system->gnu-triplet > (%current-system)))) > (out-libs (string-append out "/lib/rustlib/" > target-system "/lib"))) > ;(setenv "CFG_PREFIX" out) > (mkdir-p out-libs) > (copy-recursively "output/target-libs" out-libs) > (install-file "output/rustc-build/rustc" > (string-append out "/bin")) > (install-file "output/cargo-build/cargo" > (string-append (assoc-ref outputs "cargo") > "/bin"))) > #t))))) > (build-system gnu-build-system) > (native-inputs > `(("bison" ,bison) ; For the tests > ("cmake" ,cmake) > ("flex" ,flex) ; For the tests > ("gdb" ,gdb) ; For the tests > ("git" ,git) > ("procps" ,procps) ; For the tests > ("strace" ,strace) ; FIXME Remove. > ("python-2" ,python-2) > ("rustc-bootstrap" ,mrustc) > ("cargo-bootstrap" ,mrustc "cargo") > ("pkg-config" ,pkg-config) ; For "cargo" > ("which" ,which))) > (inputs > `(("jemalloc" ,jemalloc-4.5.0) > ("llvm" ,llvm-3.9.1) > ("openssl" ,openssl) > ("libcurl" ,curl))) ; For "cargo" > (native-search-paths (package-native-search-paths gcc)) > (synopsis "Compiler for the Rust progamming language") > (description "Rust is a systems programming language that provides memory > safety and thread safety guarantees.") > (home-page "https://www.rust-lang.org") > ;; Dual licensed. > (license (list license:asl2.0 license:expat)))) > > (define (rust-bootstrapped-package base-rust version checksum) > "Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST." > (package > (inherit base-rust) > (version version) > (source > (rust-source version checksum)) > (native-inputs > (alist-replace "cargo-bootstrap" (list base-rust "cargo") > (alist-replace "rustc-bootstrap" (list base-rust) > (package-native-inputs base-rust)))))) > > ;; FIXME: Make private. > (define-public rust-1.20 > (let ((base-rust > (rust-bootstrapped-package rust-1.19 "1.20.0" > "0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a"))) > (package > (inherit base-rust) > (outputs '("out" "doc" "cargo")) > (native-inputs > (cons* ;(list "strace" strace) > (package-native-inputs base-rust))) > (arguments > (substitute-keyword-arguments (package-arguments base-rust) > ((#:phases phases) > `(modify-phases ,phases > (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")) > (python (assoc-ref inputs "python-2")) > (rustc (assoc-ref inputs "rustc-bootstrap")) > (cargo (assoc-ref inputs "cargo-bootstrap")) > (llvm (assoc-ref inputs "llvm")) > (jemalloc (assoc-ref inputs "jemalloc"))) > (call-with-output-file "config.toml" > (lambda (port) > (display (string-append " > [llvm] > [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" "\" > channel = \"stable\" > rpath = true > # There is 2 failed codegen tests: > # codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs > # These tests required patched LLVM > codegen-tests = false > [target." %host-type "] > 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))) > #t))) > (replace 'build > (lambda* _ > (invoke "./x.py" "build") > (invoke "./x.py" "build" "src/tools/cargo"))) > (add-before 'build 'reset-timestamps-after-changes > (lambda* _ > (define ref (stat "README.md")) > (for-each > (lambda (filename) > (set-file-time filename ref)) > (find-files "." #:directories? #t)) > #t)) > (replace 'check > (lambda* _ > (invoke "./x.py" "test"))) > (replace 'install > (lambda* (#:key outputs #:allow-other-keys) > (invoke "./x.py" "install") > (substitute* "config.toml" > ;; replace prefix to specific output > (("prefix = \"[^\"]*\"") > (string-append "prefix = \"" (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")) > (libc (assoc-ref inputs "libc")) > (ld-wrapper (assoc-ref inputs "ld-wrapper"))) > ;; Let gcc find ld and libc startup files. > (wrap-program (string-append out "/bin/rustc") > `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) > `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))) > #t)))))))))) > > (define-public rust-1.21 > (rust-bootstrapped-package rust-1.20 "1.21.0" > "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp")) > > (define-public rust-1.22 > (rust-bootstrapped-package rust-1.21 "1.22.0" > "0saaprfb01z95gxlqqki28a3rq7p5a7labxdn3w1d9n49yy6zj8a")) > > (define-public rust-1.23 > (let ((base-rust > (rust-bootstrapped-package rust-1.22 "1.23.0" > "5vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))) > (package > (inherit base-rust) > (arguments > (substitute-keyword-arguments (package-arguments base-rust) > ((#:phases phases) > `(modify-phases ,phases > (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 its 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))))))))) > > (define-public rust-1.24 > (let ((base-rust > (rust-bootstrapped-package rust-1.23 "1.24.1" > "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))) > (package > (inherit base-rust) > (arguments > (substitute-keyword-arguments (package-arguments base-rust) > ((#:phases phases) > `(modify-phases ,phases > (delete 'fix-mtime-bug)))))))) > > (define-public rust rust-1.24) From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 15 03:58:51 2018 Received: (at control) by debbugs.gnu.org; 15 Apr 2018 07:58:51 +0000 Received: from localhost ([127.0.0.1]:52998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7cYl-0002aF-4v for submit@debbugs.gnu.org; Sun, 15 Apr 2018 03:58:51 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:51684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7cYh-0002a2-Cz for control@debbugs.gnu.org; Sun, 15 Apr 2018 03:58:47 -0400 Received: from localhost (77.118.179.77.wireless.dyn.drei.com [77.118.179.77]) by dd26836.kasserver.com (Postfix) with ESMTPSA id BAE523361087 for ; Sun, 15 Apr 2018 09:58:44 +0200 (CEST) Date: Sun, 15 Apr 2018 09:58:37 +0200 From: Danny Milosavljevic To: Message-ID: <20180415095837.64f66960@scratchpost.org> 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_/_9s/n6/KoAB.JjRqLrcazG6"; protocol="application/pgp-signature" X-Spam-Score: 1.3 (+) 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: close 31026 close 31070 [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) --Sig_/_9s/n6/KoAB.JjRqLrcazG6 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable close 31026 close 31070 --Sig_/_9s/n6/KoAB.JjRqLrcazG6 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlrTBi0ACgkQ5xo1VCww uqUFIQf6Auv6j404VQzmvpLTMe/dxZzSmUoppixM1UmcwjVkL2xXFv5a5cBeQ4DC 26PiaflxJtLQ6yeyXFcjwwfsLW8g4NpKavJDzyLce04Mqnt0BSCLeAvmVpO/lqiV p/sg6ZSQWR1K2MNbIiHgmcBadxtlGI46FQSuNp4DxFGFnhYdXZlklg9l3+6/ltpq iMz9gQjsEVtidJRfI4O0GONLrdvhPKqKckC7jY4zZMoRwy5LdFJLtkH6ULo1JnKU 8fqJKytx3NrX0pSxb3DwKkq+f4qcY757kafrn/n7i4ioxhCDcWMOGm+Q6OLa8PQx s4+GnGtBgk9JvR6ex/UDT8a+970+WQ== =SuTz -----END PGP SIGNATURE----- --Sig_/_9s/n6/KoAB.JjRqLrcazG6--