[bug#33465] gnu: rust: Don't depend on 'git'.

Message ID 20181122135830.18927-1-mbakke@fastmail.com
State Accepted
Headers show
Series [bug#33465] gnu: rust: Don't depend on 'git'. | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Marius Bakke Nov. 22, 2018, 1:58 p.m. UTC
* gnu/packages/rust.scm (rust-1.19)[inputs]: Remove GIT.
(rust-1.20)[arguments]: Disable Cargo tests that require git.
(rust-1.26)[arguments]: Likewise.
---

Notes:
    Guix,
    
    The Rust toolchain is very expensive to build and needs less volatility.
    
    So far I have only built up to Rust 1.23 with this patch.  I suggest
    applying this on 'core-updates', and giving Rust in 'master' a
    git-2.19.1 input to the previous substitutes are valid again.
    
    WDYT?

 gnu/packages/rust.scm | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

Comments

Julien Lepiller Nov. 22, 2018, 2:06 p.m. UTC | #1
Le 2018-11-22 14:58, Marius Bakke a écrit :
> * gnu/packages/rust.scm (rust-1.19)[inputs]: Remove GIT.
> (rust-1.20)[arguments]: Disable Cargo tests that require git.
> (rust-1.26)[arguments]: Likewise.
> ---
> 
> Notes:
>     Guix,
> 
>     The Rust toolchain is very expensive to build and needs less 
> volatility.
> 
>     So far I have only built up to Rust 1.23 with this patch.  I 
> suggest
>     applying this on 'core-updates', and giving Rust in 'master' a
>     git-2.19.1 input to the previous substitutes are valid again.
> 
>     WDYT?

Hi, I don't really know how our rust packages are built, but I wonder if 
they have more than the bare minimum optional features for our purposes 
(apart from 1.24 used by icecat and the latest version, we probably 
don't need to build everything)? Maybe it's worth investigating if that 
can speed up the build of the whole chain. It seems we're two versions 
behind current rust too. Is anyone working on packaging them?

> 
>  gnu/packages/rust.scm | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
> index a56faad07..ae41a7dd3 100644
> --- a/gnu/packages/rust.scm
> +++ b/gnu/packages/rust.scm
> @@ -41,7 +41,6 @@
>    #: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)
> @@ -387,7 +386,6 @@ test = { path = \"../libtest\" }
>         ("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" ,mrustc)
> @@ -446,6 +444,13 @@ safety and thread safety guarantees.")
>                   ;; i686-linux.
>                   (substitute* "src/tools/cargo/tests/test.rs"
>                     (("fn cargo_test_env") "#[ignore]\nfn 
> cargo_test_env"))
> +
> +                 ;; These tests pull in a dependency on "git", which 
> changes
> +                 ;; too frequently take part in the Rust toolchain.
> +                 (substitute* "src/tools/cargo/tests/new.rs"
> +                   (("fn author_prefers_cargo") "#[ignore]\nfn
> author_prefers_cargo")
> +                   (("fn finds_author_git") "#[ignore]\nfn 
> finds_author_git")
> +                   (("fn finds_local_author_git") "#[ignore]\nfn
> finds_local_author_git"))
>                   #t))
>               (add-after 'patch-cargo-tests 
> 'ignore-glibc-2.27-incompatible-test
>                 ;; https://github.com/rust-lang/rust/issues/47863
> @@ -678,6 +683,12 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" 
> "\"
>                   ;; i686-linux.
>                   (substitute* 
> "src/tools/cargo/tests/testsuite/test.rs"
>                     (("fn cargo_test_env") "#[ignore]\nfn 
> cargo_test_env"))
> +
> +                 ;; Avoid dependency on "git".
> +                 (substitute* "src/tools/cargo/tests/new.rs"
> +                   (("fn author_prefers_cargo") "#[ignore]\nfn
> author_prefers_cargo")
> +                   (("fn finds_author_git") "#[ignore]\nfn 
> finds_author_git")
> +                   (("fn finds_local_author_git") "#[ignore]\nfn
> finds_local_author_git"))
>                   #t))
>               (add-after 'patch-cargo-tests
> 'disable-cargo-test-for-nightly-channel
>                 (lambda* _

Patch

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index a56faad07..ae41a7dd3 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -41,7 +41,6 @@ 
   #: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)
@@ -387,7 +386,6 @@  test = { path = \"../libtest\" }
        ("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" ,mrustc)
@@ -446,6 +444,13 @@  safety and thread safety guarantees.")
                  ;; i686-linux.
                  (substitute* "src/tools/cargo/tests/test.rs"
                    (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env"))
+
+                 ;; These tests pull in a dependency on "git", which changes
+                 ;; too frequently take part in the Rust toolchain.
+                 (substitute* "src/tools/cargo/tests/new.rs"
+                   (("fn author_prefers_cargo") "#[ignore]\nfn author_prefers_cargo")
+                   (("fn finds_author_git") "#[ignore]\nfn finds_author_git")
+                   (("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git"))
                  #t))
              (add-after 'patch-cargo-tests 'ignore-glibc-2.27-incompatible-test
                ;; https://github.com/rust-lang/rust/issues/47863
@@ -678,6 +683,12 @@  jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  ;; i686-linux.
                  (substitute* "src/tools/cargo/tests/testsuite/test.rs"
                    (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env"))
+
+                 ;; Avoid dependency on "git".
+                 (substitute* "src/tools/cargo/tests/new.rs"
+                   (("fn author_prefers_cargo") "#[ignore]\nfn author_prefers_cargo")
+                   (("fn finds_author_git") "#[ignore]\nfn finds_author_git")
+                   (("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git"))
                  #t))
              (add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel
                (lambda* _