unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#32822] [PATCH 0/4] Finish rust bootstrapping.
@ 2018-09-24 14:47 Danny Milosavljevic
  2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
  2018-09-24 19:38 ` [bug#32822] [PATCH 0/4] Finish rust bootstrapping Ludovic Courtès
  0 siblings, 2 replies; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-24 14:47 UTC (permalink / raw)
  To: 32822

Danny Milosavljevic (4):
  gnu: rust: Hide "ar" entry from rust@1.21.0.
  gnu: rust@1.23.0: Bootstrap by rust@1.22.0.
  gnu: rust@1.23.0: Use rust-bootstrapped-package.
  gnu: rust: Remove binary bootstrapper.

 gnu/packages/rust.scm | 142 +++++++++---------------------------------
 1 file changed, 30 insertions(+), 112 deletions(-)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0.
  2018-09-24 14:47 [bug#32822] [PATCH 0/4] Finish rust bootstrapping Danny Milosavljevic
@ 2018-09-24 15:01 ` Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 2/4] gnu: rust@1.23.0: Bootstrap by rust@1.22.0 Danny Milosavljevic
                     ` (2 more replies)
  2018-09-24 19:38 ` [bug#32822] [PATCH 0/4] Finish rust bootstrapping Ludovic Courtès
  1 sibling, 3 replies; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-24 15:01 UTC (permalink / raw)
  To: 32822

* gnu/packages/rust.scm (rust-1.21)[arguments]<#:phases>[remove-ar]: New
phase.
---
 gnu/packages/rust.scm | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 40633854a..a1ad6534e 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -636,8 +636,20 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    #t))))))))))
 
 (define-public rust-1.21
-  (rust-bootstrapped-package rust-1.20 "1.21.0"
-                             "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp"))
+  (let ((base-rust (rust-bootstrapped-package rust-1.20 "1.21.0"
+                    "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'configure 'remove-ar
+               (lambda* (#:key inputs #:allow-other-keys)
+                 ;; Remove because toml complains about "unknown field".
+                 (substitute* "config.toml"
+                  (("^ar =.*") "\n"))
+                 #t)))))))))
 
 (define-public rust-1.22
   (rust-bootstrapped-package rust-1.21 "1.22.1"

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 2/4] gnu: rust@1.23.0: Bootstrap by rust@1.22.0.
  2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
@ 2018-09-24 15:01   ` Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 3/4] gnu: rust@1.23.0: Use rust-bootstrapped-package Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 4/4] gnu: rust: Remove binary bootstrapper Danny Milosavljevic
  2 siblings, 0 replies; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-24 15:01 UTC (permalink / raw)
  To: 32822

* gnu/packages/rust.scm (rust-1.23)[inherit]: Inherit from rust-1.22.
[native-inputs]: Replace rust-bootstrap by rust-1.22.
[arguments]: Inherit from rust-1.22.  Delete "remove-ar" phase.
---
 gnu/packages/rust.scm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index a1ad6534e..2e51c4a5b 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -657,7 +657,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.23
   (package
-    (inherit rust-1.20)
+    (inherit rust-1.22)
     (name "rust")
     (version "1.23.0")
     (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
@@ -669,15 +669,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
        ("git" ,git)
        ("procps" ,procps) ; For the tests
        ("python-2" ,python-2)
-       ("rustc-bootstrap" ,rust-bootstrap)
-       ("cargo-bootstrap" ,rust-bootstrap "cargo")
+       ("rustc-bootstrap" ,rust-1.22)
+       ("cargo-bootstrap" ,rust-1.22 "cargo")
        ("pkg-config" ,pkg-config) ; For "cargo"
        ("which" ,which)))
     (arguments
-     (substitute-keyword-arguments (package-arguments rust-1.20)
+     (substitute-keyword-arguments (package-arguments rust-1.22)
        ((#:phases phases)
         `(modify-phases ,phases
            (delete 'configure-archiver)
+           (delete 'remove-ar)
            (add-after 'unpack 'dont-build-native
              (lambda _
                ;; XXX: Revisit this when we use gcc 6.

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 3/4] gnu: rust@1.23.0: Use rust-bootstrapped-package.
  2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 2/4] gnu: rust@1.23.0: Bootstrap by rust@1.22.0 Danny Milosavljevic
@ 2018-09-24 15:01   ` Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 4/4] gnu: rust: Remove binary bootstrapper Danny Milosavljevic
  2 siblings, 0 replies; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-24 15:01 UTC (permalink / raw)
  To: 32822

* gnu/packages/rust.scm (rust-1.23): Use rust-bootstrapped-package.
---
 gnu/packages/rust.scm | 45 +++++++++++++++----------------------------
 1 file changed, 16 insertions(+), 29 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 2e51c4a5b..37c30c14e 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -656,35 +656,22 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                              "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
 
 (define-public rust-1.23
-  (package
-    (inherit rust-1.22)
-    (name "rust")
-    (version "1.23.0")
-    (source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
-    (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-1.22)
-       ("cargo-bootstrap" ,rust-1.22 "cargo")
-       ("pkg-config" ,pkg-config) ; For "cargo"
-       ("which" ,which)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments rust-1.22)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (delete 'configure-archiver)
-           (delete 'remove-ar)
-           (add-after 'unpack 'dont-build-native
-             (lambda _
-               ;; XXX: Revisit this when we use gcc 6.
-               (substitute* "src/binaryen/CMakeLists.txt"
-                 (("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
-               #t))))))))
+  (let ((base-rust (rust-bootstrapped-package rust-1.22 "1.23.0"
+                    "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'configure-archiver)
+             (delete 'remove-ar)
+             (add-after 'unpack 'dont-build-native
+               (lambda _
+                 ;; XXX: Revisit this when we use gcc 6.
+                 (substitute* "src/binaryen/CMakeLists.txt"
+                   (("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
+                 #t)))))))))
 
 (define-public rust-1.24
   (let ((base-rust

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 4/4] gnu: rust: Remove binary bootstrapper.
  2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 2/4] gnu: rust@1.23.0: Bootstrap by rust@1.22.0 Danny Milosavljevic
  2018-09-24 15:01   ` [bug#32822] [PATCH 3/4] gnu: rust@1.23.0: Use rust-bootstrapped-package Danny Milosavljevic
@ 2018-09-24 15:01   ` Danny Milosavljevic
  2 siblings, 0 replies; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-24 15:01 UTC (permalink / raw)
  To: 32822

* gnu/packages/rust.scm (rust-bootstrap): Delete variable.
---
 gnu/packages/rust.scm | 82 -------------------------------------------
 1 file changed, 82 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 37c30c14e..e30e8a61a 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -69,88 +69,6 @@
     ("mips64el-linux" "mips64el-unknown-linux-gnuabi64")
     (_                (nix-system->gnu-triplet system))))
 
-(define rust-bootstrap
-  (package
-    (name "rust-bootstrap")
-    (version "1.22.1")
-    (source #f)
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("patchelf" ,patchelf)))
-    (inputs
-     `(("gcc" ,(canonical-package gcc))
-       ("gcc:lib" ,(canonical-package gcc) "lib")
-       ("zlib" ,zlib)
-       ("source"
-        ,(origin
-           (method url-fetch)
-           (uri (string-append
-                 "https://static.rust-lang.org/dist/"
-                 "rust-" version "-" (nix-system->gnu-triplet-for-rust)
-                 ".tar.gz"))
-           (sha256
-            (base32
-             (match (nix-system->gnu-triplet-for-rust)
-               ("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")
-               (_ ""))))))))
-    (outputs '("out" "cargo"))
-    (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"))
-                    (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 "/lib:"
-                                                gcc:lib "/lib"))
-                    (rustc (string-append out "/bin/rustc"))
-                    (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=" out)
-                        (string-append "--components=rustc,"
-                                       "rust-std-"
-                                       ,(nix-system->gnu-triplet-for-rust)))
-               ;; Install cargo.
-               (invoke "bash" "install.sh"
-                        (string-append "--prefix=" cargo-out)
-                        (string-append "--components=cargo"))
-               (for-each (lambda (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)
-                           (invoke "patchelf" "--set-interpreter" ld-so file))
-                         (list rustc rustdoc cargo))
-               #t))))))
-    (home-page "https://www.rust-lang.org")
-    (synopsis "Prebuilt rust compiler and cargo package manager")
-    (description "This package provides a pre-built @command{rustc} compiler
-and a pre-built @command{cargo} package manager, which can
-in turn be used to build the final Rust.")
-    (license license:asl2.0)))
-
 \f
 (define* (rust-source version hash #:key (patches '()))
   (origin

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 0/4] Finish rust bootstrapping.
  2018-09-24 14:47 [bug#32822] [PATCH 0/4] Finish rust bootstrapping Danny Milosavljevic
  2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
@ 2018-09-24 19:38 ` Ludovic Courtès
  2018-09-25  8:01   ` Danny Milosavljevic
  1 sibling, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-09-24 19:38 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 32822

Hi Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> Danny Milosavljevic (4):
>   gnu: rust: Hide "ar" entry from rust@1.21.0.
>   gnu: rust@1.23.0: Bootstrap by rust@1.22.0.
>   gnu: rust@1.23.0: Use rust-bootstrapped-package.
>   gnu: rust: Remove binary bootstrapper.

Do I get it right that mrustc is capable enough to build Rust 1.19, and
from there on we have the full chain?

That sounds really exciting!  And worth a blog post :-), if only to
share with those who care about building from source: #bootstrappable,
Debian, and other reproducible build people.

FWIW the patches LGTM.  I suppose you could push them to wip-rust, then
we let hydra and berlin build it, and once it’s built (could be 36h
later?) we merge into master.

WDYT?

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 0/4] Finish rust bootstrapping.
  2018-09-24 19:38 ` [bug#32822] [PATCH 0/4] Finish rust bootstrapping Ludovic Courtès
@ 2018-09-25  8:01   ` Danny Milosavljevic
  2018-09-25 15:31     ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Danny Milosavljevic @ 2018-09-25  8:01 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 32822

[-- Attachment #1: Type: text/plain, Size: 1155 bytes --]

Hi Ludo,

On Mon, 24 Sep 2018 21:38:21 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Danny Milosavljevic <dannym@scratchpost.org> skribis:
> 
> > Danny Milosavljevic (4):
> >   gnu: rust: Hide "ar" entry from rust@1.21.0.
> >   gnu: rust@1.23.0: Bootstrap by rust@1.22.0.
> >   gnu: rust@1.23.0: Use rust-bootstrapped-package.
> >   gnu: rust: Remove binary bootstrapper.  
> 
> Do I get it right that mrustc is capable enough to build Rust 1.19, and
> from there on we have the full chain?

Yes (except for MIPS, where mrustc doesn't have the target settings in
upstreeam - but I do, but untested).

> That sounds really exciting!  And worth a blog post :-), if only to
> share with those who care about building from source: #bootstrappable,
> Debian, and other reproducible build people.

Sure.  Should I just E-Mail the text or how do I get it into the blog?

> FWIW the patches LGTM.  I suppose you could push them to wip-rust, then
> we let hydra and berlin build it, and once it’s built (could be 36h
> later?) we merge into master.

Okay.  I've pushed them to wip-rust.  How do we make hydra and berlin build it?

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#32822] [PATCH 0/4] Finish rust bootstrapping.
  2018-09-25  8:01   ` Danny Milosavljevic
@ 2018-09-25 15:31     ` Ludovic Courtès
  0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2018-09-25 15:31 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 32822

Hello,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Mon, 24 Sep 2018 21:38:21 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>> 
>> > Danny Milosavljevic (4):
>> >   gnu: rust: Hide "ar" entry from rust@1.21.0.
>> >   gnu: rust@1.23.0: Bootstrap by rust@1.22.0.
>> >   gnu: rust@1.23.0: Use rust-bootstrapped-package.
>> >   gnu: rust: Remove binary bootstrapper.  
>> 
>> Do I get it right that mrustc is capable enough to build Rust 1.19, and
>> from there on we have the full chain?
>
> Yes (except for MIPS, where mrustc doesn't have the target settings in
> upstreeam - but I do, but untested).

Woohoo!  Impressive.

>> That sounds really exciting!  And worth a blog post :-), if only to
>> share with those who care about building from source: #bootstrappable,
>> Debian, and other reproducible build people.
>
> Sure.  Should I just E-Mail the text or how do I get it into the blog?

You can send a .md file or a patch against guix-artwork.git (under
website/posts) to guix-blog@gnu.org for feedback (though currently it’s
just Jelle, Ricardo, and myself IIRC.)  And then you can push to
guix-artwork.git and I can do the CVS dance to put it on-line.

>> FWIW the patches LGTM.  I suppose you could push them to wip-rust, then
>> we let hydra and berlin build it, and once it’s built (could be 36h
>> later?) we merge into master.
>
> Okay.  I've pushed them to wip-rust.  How do we make hydra and berlin build it?

If I didn’t make any mistake it should show up at:

  https://hydra.gnu.org/jobset/gnu/wip-rust
  https://berlin.guixsd.org/jobset/wip-rust

Thanks for all the work!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-09-25 15:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-24 14:47 [bug#32822] [PATCH 0/4] Finish rust bootstrapping Danny Milosavljevic
2018-09-24 15:01 ` [bug#32822] [PATCH 1/4] gnu: rust: Hide "ar" entry from rust@1.21.0 Danny Milosavljevic
2018-09-24 15:01   ` [bug#32822] [PATCH 2/4] gnu: rust@1.23.0: Bootstrap by rust@1.22.0 Danny Milosavljevic
2018-09-24 15:01   ` [bug#32822] [PATCH 3/4] gnu: rust@1.23.0: Use rust-bootstrapped-package Danny Milosavljevic
2018-09-24 15:01   ` [bug#32822] [PATCH 4/4] gnu: rust: Remove binary bootstrapper Danny Milosavljevic
2018-09-24 19:38 ` [bug#32822] [PATCH 0/4] Finish rust bootstrapping Ludovic Courtès
2018-09-25  8:01   ` Danny Milosavljevic
2018-09-25 15:31     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).