From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Craven Subject: [PATCH 10/12] gnu: Add rustc-bootstrap. Date: Thu, 22 Sep 2016 15:19:01 +0200 Message-ID: <20160922131903.1606-10-david@craven.ch> References: <20160922131903.1606-1-david@craven.ch> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43403) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bn3ur-0004bB-Av for guix-devel@gnu.org; Thu, 22 Sep 2016 09:20:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bn3uT-0001b2-Is for guix-devel@gnu.org; Thu, 22 Sep 2016 09:19:52 -0400 Received: from so254-10.mailgun.net ([198.61.254.10]:35168) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bn3uS-0001XN-3r for guix-devel@gnu.org; Thu, 22 Sep 2016 09:19:29 -0400 In-Reply-To: <20160922131903.1606-1-david@craven.ch> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * gnu/packages/rust.scm (rustc-bootstrap): New variable. --- gnu/packages/rust.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 1831aa7..4030d18 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -17,7 +17,16 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages rust) - #:use-module (guix download)) + #:use-module (gnu packages base) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages commencement) + #:use-module (gnu packages compression) + #:use-module (gnu packages elf) + #:use-module (gnu packages gcc) + #:use-module (guix build-system trivial) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:)) (define rust-bootstrap-x86_64-1.12.0 (origin @@ -28,3 +37,59 @@ (sha256 (base32 "1is1k93zarvxx0h7b57ga8vr9gj34b36l9la6zkph41x33gfgpvl")))) + +(define-public rustc-bootstrap + (package + (name "rustc-bootstrap") + (version "1.12.0") + (source rust-bootstrap-x86_64-1.12.0) + (build-system gnu-build-system) + (native-inputs + `(("patchelf" ,patchelf))) + (inputs + `(("gcc-lib" ,gcc "lib") + ("gcc-toolchain-6" ,gcc-toolchain-6) + ("zlib" ,zlib))) + (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")) + (toolchain (assoc-ref inputs "gcc-toolchain-6")) + (zlib (assoc-ref inputs "zlib")) + (platform ,(system->rust-platform (%current-system))) + (ld-so (string-append (assoc-ref inputs "libc") + ,(glibc-dynamic-linker)))) + (system* "bash" "install.sh" + (string-append "--prefix=" out) + (string-append "--components=rustc," + "rust-std-" platform)) + (for-each + (lambda (file) + (system* "patchelf" + "--set-rpath" + (string-append out "/lib:" zlib "/lib:" + gcc-lib "/lib:" toolchain "/lib") + file)) + (cons* (string-append out "/bin/rustc") + (string-append out "/bin/rustdoc") + (find-files out "\\.so$"))) + (for-each + (lambda (file) + (system* "patchelf" + "--set-interpreter" ld-so + file)) + (list (string-append out "/bin/rustc") + (string-append out "/bin/rustdoc"))) + (symlink (string-append toolchain "/bin/gcc") + (string-append out "/bin/cc")))))))) + (home-page "https://www.rust-lang.org") + (synopsis "Rustc bootstrap") + (description "Rustc bootstrap.") + (license license:asl2.0))) -- 2.9.0