From 1bfaae25fab372c8ff86e34024adf20240699b55 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 20 Sep 2018 22:12:10 +0200 Subject: gnu: rust@1.20.0: Fix tests. * gnu/packages/rust.scm (rust-1.23)[arguments]<#:phases> [patch-cargo-tests, ignore-glibc-2.27-incompatible-test,fix-mtime-bug]: Move to... (rust-1.20): ... here. --- gnu/packages/rust.scm | 57 ++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'gnu/packages/rust.scm') diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 74de6f3ae1..ec8b30d78f 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -514,6 +514,35 @@ (define-public rust-1.20 (substitute-keyword-arguments (package-arguments rust-1.19) ((#:phases phases) `(modify-phases ,phases + (add-after 'patch-tests 'patch-cargo-tests + (lambda _ + (substitute* "src/tools/cargo/tests/build.rs" + (("/usr/bin/env") (which "env")) + ;; Guix llvm is compiled without asmjs-unknown-emscripten. + (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs")) + (substitute* "src/tools/cargo/tests/death.rs" + ;; This is stuck when built in container. + (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")) + ;; Prints test output in the wrong order when built on + ;; i686-linux. + (substitute* "src/tools/cargo/tests/test.rs" + (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env")) + #t)) + (add-after 'patch-cargo-tests 'ignore-glibc-2.27-incompatible-test + ;; https://github.com/rust-lang/rust/issues/47863 + (lambda _ + (substitute* "src/test/run-pass/out-of-stack.rs" + (("// ignore-android") "// ignore-test\n// ignore-android")) + #t)) + (add-after 'ignore-glibc-2.27-incompatible-test '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")) @@ -651,34 +680,6 @@ (define-public rust-1.23 ;; XXX: Revisit this when we use gcc 6. (substitute* "src/binaryen/CMakeLists.txt" (("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") "")) - #t)) - (add-after 'patch-tests 'patch-cargo-tests - (lambda _ - (substitute* "src/tools/cargo/tests/build.rs" - (("/usr/bin/env") (which "env")) - ;; Guix llvm is compiled without asmjs-unknown-emscripten. - (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs")) - (substitute* "src/tools/cargo/tests/death.rs" - ;; This is stuck when built in container. - (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")) - ;; Prints test output in the wrong order when built on - ;; i686-linux. - (substitute* "src/tools/cargo/tests/test.rs" - (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env")) - #t)) - (add-after 'patch-cargo-tests 'ignore-glibc-2.27-incompatible-test - ;; https://github.com/rust-lang/rust/issues/47863 - (lambda _ - (substitute* "src/test/run-pass/out-of-stack.rs" - (("// ignore-android") "// ignore-test\n// ignore-android")))) - (add-after 'ignore-glibc-2.27-incompatible-test '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)))))))) (define-public rust-1.24 -- cgit v1.2.3 From e0b07ccc1ab0b763f0e9da39f56f2a7aec6116d5 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 20 Sep 2018 22:16:45 +0200 Subject: gnu: rust: Work around mtime bug in rust build helpers. * gnu/packages/rust.scm (rust-1.20)[arguments]<#:phases>[fix-mtime-bug]: Delete. [reset-timestamps-after-changes]: Modify. (rust-1.24): Don't delete "fix-mtime-bug" since now it doesn't ever get created. --- gnu/packages/rust.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'gnu/packages/rust.scm') diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index ec8b30d78f..e8eca80aa6 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -534,15 +534,6 @@ (define-public rust-1.20 (substitute* "src/test/run-pass/out-of-stack.rs" (("// ignore-android") "// ignore-test\n// ignore-android")) #t)) - (add-after 'ignore-glibc-2.27-incompatible-test '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")) @@ -608,10 +599,11 @@ (define-public rust-1.20 (delete 'patch-cargo-tomls) (add-before 'build 'reset-timestamps-after-changes (lambda* _ - (define ref (stat "README.md")) (for-each (lambda (filename) - (set-file-time filename ref)) + ;; Rust 1.20.0 treats timestamp 0 as "file doesn't exist". + ;; Therefore, use timestamp 1. + (utime filename 1 1 1 1)) (find-files "." #:directories? #t)) #t)) (replace 'build @@ -699,8 +691,7 @@ (define-public rust-1.24 ;; This test is known to fail on aarch64 and powerpc64le: ;; https://github.com/rust-lang/rust/issues/45410 (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) - #t)) - (delete 'fix-mtime-bug)))))))) + #t))))))))) (define-public rust-1.25 (let ((base-rust -- cgit v1.2.3 From 10e066f410d1ffb9505f4fd0b5cc73e8af2154b0 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Sep 2018 15:21:24 +0200 Subject: gnu: rust: Remove unused "localstatedir" setting. * gnu/packages/rust.scm (rust-1.20)[arguments]<#:phases>[configure]: Remove unused "localstatedir" setting. --- gnu/packages/rust.scm | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu/packages/rust.scm') diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index e8eca80aa6..40633854ae 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -562,7 +562,6 @@ (define-public rust-1.20 prefix = \"" out "\" docdir = \"" doc "/share/doc/rust" "\" sysconfdir = \"etc\" -localstatedir = \"var/lib\" [rust] default-linker = \"" gcc "/bin/gcc" "\" channel = \"stable\" -- cgit v1.2.3 From ec944a1de97c8a523d6e1089b8c4430424297f93 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Sep 2018 15:42:56 +0200 Subject: gnu: rust: Remove unused "ar" setting. * gnu/packages/rust.scm (rust-1.20)[arguments]<#:phases>[configure]: Remove unused "ar" setting. --- gnu/packages/rust.scm | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu/packages/rust.scm') diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 40633854ae..cc33a0d3b9 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -574,7 +574,6 @@ (define-public rust-1.20 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))) -- cgit v1.2.3 From 91294b53619995712a6f8d497d650bfc02b4c952 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 22 Sep 2018 10:07:50 +0200 Subject: Revert 'gnu: rust: Remove unused "ar" setting.'. Some versions of Rust do need it and others complain about it. For now, revert the removal entirely. This reverts commit ec944a1de97c8a523d6e1089b8c4430424297f93. --- gnu/packages/rust.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/rust.scm') diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index cc33a0d3b9..40633854ae 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -574,6 +574,7 @@ (define-public rust-1.20 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))) -- cgit v1.2.3