unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#36614: rust@1.36's hash is incorrect.
@ 2019-07-12  9:41 Pierre Langlois
       [not found] ` <handler.36614.B.156292453627169.ack@debbugs.gnu.org>
  2019-07-12 13:16 ` bug#36614: rust@1.36's hash is incorrect Tobias Geerinckx-Rice
  0 siblings, 2 replies; 9+ messages in thread
From: Pierre Langlois @ 2019-07-12  9:41 UTC (permalink / raw)
  To: 36614; +Cc: Ivan Petkov

Hello Guix!

It looks like the hash for the new rust 1.36 is wrong, I get the following:

~~~
$ guix build rust
building /gnu/store/37wfhzp1yqm9w4vq0dhmy6bg3ajaa9yh-rustc-1.36.0-src.tar.gz.drv...

Starting download of /gnu/store/jm9xvf6qy4zxkb7rkmpz8ygf55l8v8v5-rustc-1.36.0-src.tar.gz
From https://static.rust-lang.org/dist/rustc-1.36.0-src.tar.gz...
downloading from https://static.rust-lang.org/dist/rustc-1.36.0-src.tar.gz...
 rustc-1.36.0-src.tar.gz  147.5MiB                                                            1.6MiB/s 01:35 [##################] 100.0%
sha256 hash mismatch for /gnu/store/jm9xvf6qy4zxkb7rkmpz8ygf55l8v8v5-rustc-1.36.0-src.tar.gz:
  expected hash: 18r688ih4xi9m8gv55g1amb8inrwkdxp5fbcqb6i4gqxi90l3i0m
  actual hash:   06xv2p6zq03lidr0yaf029ii8wnjjqa894nkmrm6s0rx47by9i04
hash mismatch for store item '/gnu/store/jm9xvf6qy4zxkb7rkmpz8ygf55l8v8v5-rustc-1.36.0-src.tar.gz'
build of /gnu/store/37wfhzp1yqm9w4vq0dhmy6bg3ajaa9yh-rustc-1.36.0-src.tar.gz.drv failed
View build log at '/var/log/guix/drvs/37/wfhzp1yqm9w4vq0dhmy6bg3ajaa9yh-rustc-1.36.0-src.tar.gz.drv.bz2'.
cannot build derivation `/gnu/store/wzslkk72p8g9l5zymcb4hqfmq4zg29q7-rustc-1.36.0-src.tar.xz.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/61660f8p8xxdrhl267402yzq2d4c89ix-rust-1.36.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/61660f8p8xxdrhl267402yzq2d4c89ix-rust-1.36.0.drv' failed
~~~

Can you also reproduce this?

Hopefully it's not unstable :-/.

Thanks,
Pierre

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

* bug#36614: Acknowledgement (rust@1.36's hash is incorrect.)
       [not found] ` <handler.36614.B.156292453627169.ack@debbugs.gnu.org>
@ 2019-07-12 13:11   ` Pierre Langlois
  0 siblings, 0 replies; 9+ messages in thread
From: Pierre Langlois @ 2019-07-12 13:11 UTC (permalink / raw)
  To: 36614-done


Thanks Tobias for fixing this!

Pierre

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12  9:41 bug#36614: rust@1.36's hash is incorrect Pierre Langlois
       [not found] ` <handler.36614.B.156292453627169.ack@debbugs.gnu.org>
@ 2019-07-12 13:16 ` Tobias Geerinckx-Rice
  2019-07-12 16:33   ` Ivan Petkov
  1 sibling, 1 reply; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-07-12 13:16 UTC (permalink / raw)
  To: 36614-done; +Cc: Ivan Petkov

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

Pierre, Ivan,

Pierre Langlois wrote:
> From 
> https://static.rust-lang.org/dist/rustc-1.36.0-src.tar.gz...
> downloading from 
> https://static.rust-lang.org/dist/rustc-1.36.0-src.tar.gz...
>  rustc-1.36.0-src.tar.gz  147.5MiB 
>  1.6MiB/s 01:35 [##################] 100.0%
> sha256 hash mismatch for 
> /gnu/store/jm9xvf6qy4zxkb7rkmpz8ygf55l8v8v5-rustc-1.36.0-src.tar.gz:
>   expected hash: 
>   18r688ih4xi9m8gv55g1amb8inrwkdxp5fbcqb6i4gqxi90l3i0m
>   actual hash: 
>   06xv2p6zq03lidr0yaf029ii8wnjjqa894nkmrm6s0rx47by9i04

I get that too.

> Hopefully it's not unstable :-/.

Since release archives are signed that would imply some horrible 
things about their key management, so I doubt it very much.  I 
guess we'll find out.

I've gone ahead and pushed a fix since the signature checked out. 
I'm closing this bug for now...

However, I'd be interested to know what the previous hash 
described.  Do you still have that file around, Ivan?

Thanks,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 13:16 ` bug#36614: rust@1.36's hash is incorrect Tobias Geerinckx-Rice
@ 2019-07-12 16:33   ` Ivan Petkov
  2019-07-12 17:23     ` Leo Famulari
                       ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ivan Petkov @ 2019-07-12 16:33 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 36614-done

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


> On Jul 12, 2019, at 6:16 AM, Tobias Geerinckx-Rice <me@tobias.gr> wrote:
> 
> Since release archives are signed that would imply some horrible things about their key management, so I doubt it very much.  I guess we'll find out.
> 
> I've gone ahead and pushed a fix since the signature checked out. I'm closing this bug for now...
> 
> However, I'd be interested to know what the previous hash described.  Do you still have that file around, Ivan?

My apologies, this was all partly my fault. I do have the old source lying
around, diffing the two (attached) reveals that the changelog and one source
file actually changed.

A bit more detailed context:
The rust project makes pre-release sources available for testing ahead of
the formal release, and the process is meant to shake out any potential bugs.
I tested with the prerelease build originally, and after the real release
came out I updated the package URL to the formal release and immediately
rebuilt successfully.

I'm not 100% sure if maybe guix reused the cached tarball I had from earlier,
or whether the prerelease source was immediately upgraded to the formal release
and fixed shortly after. (I did try rebuilding right before pushing the change
out which succeeded with no changes, which I'm guessing is because guix did
not redownload the tarball and why I didn't notice the hash mismatch).

—Ivan


[-- Attachment #2: rust-src.diff --]
[-- Type: application/octet-stream, Size: 9659 bytes --]

--- rustc-1.36.0-src-old/
+++ rustc-1.36.0-src/
├── RELEASES.md
│ @@ -1,7 +1,111 @@
│ +Version 1.36.0 (2019-07-04)
│ +==========================
│ +
│ +Language
│ +--------
│ +- [Non-Lexical Lifetimes are now enabled on the 2015 edition.][59114]
│ +- [The order of traits in trait objects no longer affects the semantics of that
│ +  object.][59445] e.g. `dyn Send + fmt::Debug` is now equivalent to
│ +  `dyn fmt::Debug + Send`, where this was previously not the case.
│ +
│ +Libraries
│ +---------
│ +- [`HashMap`'s implementation has been replaced with `hashbrown::HashMap` implementation.][58623]
│ +- [`TryFromSliceError` now implements `From<Infallible>`.][60318]
│ +- [`mem::needs_drop` is now available as a const fn.][60364]
│ +- [`alloc::Layout::from_size_align_unchecked` is now available as a const fn.][60370]
│ +- [`String` now implements `BorrowMut<str>`.][60404]
│ +- [`io::Cursor` now implements `Default`.][60234]
│ +- [Both `NonNull::{dangling, cast}` are now const fns.][60244]
│ +- [The `alloc` crate is now stable.][59675] `alloc` allows you to use a subset
│ +  of `std` (e.g. `Vec`, `Box`, `Arc`) in `#![no_std]` environments if the
│ +  environment has access to heap memory allocation.
│ +- [`String` now implements `From<&String>`.][59825]
│ +- [You can now pass multiple arguments to the `dbg!` macro.][59826] `dbg!` will
│ +  return a tuple of each argument when there is multiple arguments.
│ +- [`Result::{is_err, is_ok}` are now `#[must_use]` and will produce a warning if
│ +  not used.][59648]
│ +
│ +Stabilized APIs
│ +---------------
│ +- [`VecDeque::rotate_left`]
│ +- [`VecDeque::rotate_right`]
│ +- [`Iterator::copied`]
│ +- [`io::IoSlice`]
│ +- [`io::IoSliceMut`]
│ +- [`Read::read_vectored`]
│ +- [`Write::write_vectored`]
│ +- [`str::as_mut_ptr`]
│ +- [`mem::MaybeUninit`]
│ +- [`pointer::align_offset`]
│ +- [`future::Future`]
│ +- [`task::Context`]
│ +- [`task::RawWaker`]
│ +- [`task::RawWakerVTable`]
│ +- [`task::Waker`]
│ +- [`task::Poll`]
│ +
│ +Cargo
│ +-----
│ +- [Cargo will now produce an error if you attempt to use the name of a required dependency as a feature.][cargo/6860]
│ +- [You can now pass the `--offline` flag to run cargo without accessing the network.][cargo/6934]
│ +
│ +You can find further change's in [Cargo's 1.36.0 release notes][cargo-1-36-0].
│ +
│ +Clippy
│ +------
│ +There have been numerous additions and fixes to clippy, see [Clippy's 1.36.0 release notes][clippy-1-36-0] for more details.
│ +
│ +Misc
│ +----
│ +
│ +Compatibility Notes
│ +-------------------
│ +- [`std::arch::x86::_rdtsc` returns `u64` instead of `i64`][stdsimd/559]
│ +- [`std::arch::x86_64::_mm_shuffle_ps` takes an `i32` instead of `u32` for `mask`][stdsimd/522]
│ +- With the stabilisation of `mem::MaybeUninit`, `mem::uninitialized` use is no
│ +  longer recommended, and will be deprecated in 1.38.0.
│ +
│ +[60318]: https://github.com/rust-lang/rust/pull/60318/
│ +[60364]: https://github.com/rust-lang/rust/pull/60364/
│ +[60370]: https://github.com/rust-lang/rust/pull/60370/
│ +[60404]: https://github.com/rust-lang/rust/pull/60404/
│ +[60234]: https://github.com/rust-lang/rust/pull/60234/
│ +[60244]: https://github.com/rust-lang/rust/pull/60244/
│ +[58623]: https://github.com/rust-lang/rust/pull/58623/
│ +[59648]: https://github.com/rust-lang/rust/pull/59648/
│ +[59675]: https://github.com/rust-lang/rust/pull/59675/
│ +[59825]: https://github.com/rust-lang/rust/pull/59825/
│ +[59826]: https://github.com/rust-lang/rust/pull/59826/
│ +[59445]: https://github.com/rust-lang/rust/pull/59445/
│ +[59114]: https://github.com/rust-lang/rust/pull/59114/
│ +[cargo/6860]: https://github.com/rust-lang/cargo/pull/6860/
│ +[cargo/6934]: https://github.com/rust-lang/cargo/pull/6934/
│ +[`VecDeque::rotate_left`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.rotate_left
│ +[`VecDeque::rotate_right`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.rotate_right
│ +[`Iterator::copied`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#tymethod.copied
│ +[`io::IoSlice`]: https://doc.rust-lang.org/std/io/struct.IoSlice.html
│ +[`io::IoSliceMut`]: https://doc.rust-lang.org/std/io/struct.IoSliceMut.html
│ +[`Read::read_vectored`]: https://doc.rust-lang.org/std/io/trait.Read.html#method.read_vectored
│ +[`Write::write_vectored`]: https://doc.rust-lang.org/std/io/trait.Write.html#method.write_vectored
│ +[`str::as_mut_ptr`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_mut_ptr
│ +[`mem::MaybeUninit`]: https://doc.rust-lang.org/std/mem/union.MaybeUninit.html
│ +[`pointer::align_offset`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.align_offset
│ +[`future::Future`]: https://doc.rust-lang.org/std/future/trait.Future.html
│ +[`task::Context`]: https://doc.rust-lang.org/beta/std/task/struct.Context.html
│ +[`task::RawWaker`]: https://doc.rust-lang.org/beta/std/task/struct.RawWaker.html
│ +[`task::RawWakerVTable`]: https://doc.rust-lang.org/beta/std/task/struct.RawWakerVTable.html
│ +[`task::Waker`]: https://doc.rust-lang.org/beta/std/task/struct.Waker.html
│ +[`task::Poll`]: https://doc.rust-lang.org/beta/std/task/enum.Poll.html
│ +[clippy-1-36-0]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-136
│ +[cargo-1-36-0]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-136-2019-07-04
│ +[stdsimd/522]: https://github.com/rust-lang-nursery/stdsimd/issues/522
│ +[stdsimd/559]: https://github.com/rust-lang-nursery/stdsimd/issues/559
│ +
│  Version 1.35.0 (2019-05-23)
│  ==========================
│  
│  Language
│  --------
│  - [`FnOnce`, `FnMut`, and the `Fn` traits are now implemented for `Box<FnOnce>`,
│    `Box<FnMut>`, and `Box<Fn>` respectively.][59500]
│ @@ -58,15 +162,15 @@
│  - [`Option::copied`]
│  
│  Cargo
│  -----
│  - [You can now set `cargo:rustc-cdylib-link-arg` at build time to pass custom
│    linker arguments when building a `cdylib`.][cargo/6298] Its usage is highly
│    platform specific.
│ -  
│ +
│  Misc
│  ----
│  - [The Rust toolchain is now available natively for musl based distros.][58575]
│  
│  [59460]: https://github.com/rust-lang/rust/pull/59460/
│  [59464]: https://github.com/rust-lang/rust/pull/59464/
│  [59500]: https://github.com/rust-lang/rust/pull/59500/
├── git-commit-hash
│ @@ -1 +1 @@
│ -9d98f8f319eaa1a40f76fb15b52ee2a179e5286a
│ +a53f9df32fbb0b5f4382caaad8f1a46f36ea887c
├── src
│ ├── libstd
│ │ ├── collections
│ │ │ ├── hash
│ │ │ │ ├── map.rs
│ │ │ │ │ @@ -2604,14 +2604,20 @@
│ │ │ │ │      use super::HashMap;
│ │ │ │ │      use super::RandomState;
│ │ │ │ │      use crate::cell::RefCell;
│ │ │ │ │      use rand::{thread_rng, Rng};
│ │ │ │ │      use realstd::collections::CollectionAllocErr::*;
│ │ │ │ │      use realstd::usize;
│ │ │ │ │  
│ │ │ │ │ +    // https://github.com/rust-lang/rust/issues/62301
│ │ │ │ │ +    fn _assert_hashmap_is_unwind_safe() {
│ │ │ │ │ +        fn assert_unwind_safe<T: crate::panic::UnwindSafe>() {}
│ │ │ │ │ +        assert_unwind_safe::<HashMap<(), crate::cell::UnsafeCell<()>>>();
│ │ │ │ │ +    }
│ │ │ │ │ +
│ │ │ │ │      #[test]
│ │ │ │ │      fn test_zero_capacities() {
│ │ │ │ │          type HM = HashMap<i32, i32>;
│ │ │ │ │  
│ │ │ │ │          let m = HM::new();
│ │ │ │ │          assert_eq!(m.capacity(), 0);
│ │ ├── panic.rs
│ │ │ @@ -1,13 +1,14 @@
│ │ │  //! Panic support in the standard library.
│ │ │  
│ │ │  #![stable(feature = "std_panic", since = "1.9.0")]
│ │ │  
│ │ │  use crate::any::Any;
│ │ │  use crate::cell::UnsafeCell;
│ │ │ +use crate::collections;
│ │ │  use crate::fmt;
│ │ │  use crate::future::Future;
│ │ │  use crate::pin::Pin;
│ │ │  use crate::ops::{Deref, DerefMut};
│ │ │  use crate::panicking;
│ │ │  use crate::ptr::{Unique, NonNull};
│ │ │  use crate::rc::Rc;
│ │ │ @@ -281,14 +282,19 @@
│ │ │  #[stable(feature = "unwind_safe_atomic_refs", since = "1.14.0")]
│ │ │  impl RefUnwindSafe for atomic::AtomicBool {}
│ │ │  
│ │ │  #[cfg(target_has_atomic = "ptr")]
│ │ │  #[stable(feature = "unwind_safe_atomic_refs", since = "1.14.0")]
│ │ │  impl<T> RefUnwindSafe for atomic::AtomicPtr<T> {}
│ │ │  
│ │ │ +// https://github.com/rust-lang/rust/issues/62301
│ │ │ +#[stable(feature = "hashbrown", since = "1.36.0")]
│ │ │ +impl<K, V, S> UnwindSafe for collections::HashMap<K, V, S>
│ │ │ +    where K: UnwindSafe, V: UnwindSafe, S: UnwindSafe {}
│ │ │ +
│ │ │  #[stable(feature = "catch_unwind", since = "1.9.0")]
│ │ │  impl<T> Deref for AssertUnwindSafe<T> {
│ │ │      type Target = T;
│ │ │  
│ │ │      fn deref(&self) -> &T {
│ │ │          &self.0
│ │ │      }
├── version
│ @@ -1 +1 @@
│ -1.36.0 (9d98f8f31 2019-06-29)
│ +1.36.0 (a53f9df32 2019-07-03)

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 16:33   ` Ivan Petkov
@ 2019-07-12 17:23     ` Leo Famulari
  2019-07-12 17:26     ` Tobias Geerinckx-Rice
  2019-07-12 17:27     ` Tobias Geerinckx-Rice
  2 siblings, 0 replies; 9+ messages in thread
From: Leo Famulari @ 2019-07-12 17:23 UTC (permalink / raw)
  To: Ivan Petkov; +Cc: 36614-done

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

On Fri, Jul 12, 2019 at 09:33:50AM -0700, Ivan Petkov wrote:
> A bit more detailed context:
> The rust project makes pre-release sources available for testing ahead of
> the formal release, and the process is meant to shake out any potential bugs.
> I tested with the prerelease build originally, and after the real release
> came out I updated the package URL to the formal release and immediately
> rebuilt successfully.
> 
> I'm not 100% sure if maybe guix reused the cached tarball I had from earlier,
> or whether the prerelease source was immediately upgraded to the formal release
> and fixed shortly after. (I did try rebuilding right before pushing the change
> out which succeeded with no changes, which I'm guessing is because guix did
> not redownload the tarball and why I didn't notice the hash mismatch).

Right, Guix looks up the sources locally by hash. So, if you change a
URL but not the hash, and you have the old file with the same hash in
/gnu/store, Guix will use the old file and you will not notice that the
URL / hash pair is incorrect.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 16:33   ` Ivan Petkov
  2019-07-12 17:23     ` Leo Famulari
@ 2019-07-12 17:26     ` Tobias Geerinckx-Rice
  2019-07-13  0:59       ` Ivan Petkov
  2019-07-12 17:27     ` Tobias Geerinckx-Rice
  2 siblings, 1 reply; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-07-12 17:26 UTC (permalink / raw)
  To: Ivan Petkov; +Cc: 36614-done

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

Ivan,

Ivan Petkov wrote:
> My apologies, this was all partly my fault. I do have the old 
> source lying
> around, diffing the two (attached) reveals that the changelog 
> and one source
> file actually changed.
>
> A bit more detailed context:
> The rust project makes pre-release sources available for testing 
> ahead of
> the formal release, and the process is meant to shake out any 
> potential bugs.
> I tested with the prerelease build originally, and after the 
> real release
> came out I updated the package URL to the formal release and 
> immediately
> rebuilt successfully.

No apologies necessary.  It's nice to know that our Rust updates 
will always follow swiftly on the heels of upstream as long as you 
take care of them.  However, please make sure to check the 
signature (.asc) once the final release is cut; one never knows...

> I'm not 100% sure if maybe guix reused the cached tarball I had 
> from earlier,
> or whether the prerelease source was immediately upgraded to the 
> formal release
> and fixed shortly after. (I did try rebuilding right before 
> pushing the change
> out which succeeded with no changes, which I'm guessing is 
> because guix did
> not redownload the tarball and why I didn't notice the hash 
> mismatch).

Yes, this is exactly what happened.  I consider this is a feature 
of Guix, even though it can feel like a gotcha sometimes.  :-)

We often tend to think of the source URL(s) as an ‘identifier’ of 
the source file.  However, it is nothing more than a hint about 
its *location*.  The only authoritative identifier of its 
*content* is the hash: to get *this file* (content hash), try 
looking *here* (location: URL).

One origin may have 0 or more source URLs: Guix will try them all 
until it downloads something matching the hash (and if even that 
fails it will try some implicit ones like tarballs.nixos.org).

    ‘Unique’ identifier (hash)
      ├ maybe you can *find* it here (URL)
      ├ or here (another URL)
      ├ hell maybe here I don't know (yet another URL)
      ⋮
      
Guix cares only about the content of the file; it doesn't care or 
even remember how it got it.  Or: if you change the download hint 
(release URL in this case), Guix won't care, because you didn't 
change the hash.

I hope that makes some sense,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 16:33   ` Ivan Petkov
  2019-07-12 17:23     ` Leo Famulari
  2019-07-12 17:26     ` Tobias Geerinckx-Rice
@ 2019-07-12 17:27     ` Tobias Geerinckx-Rice
  2019-07-12 17:34       ` Tobias Geerinckx-Rice
  2 siblings, 1 reply; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-07-12 17:27 UTC (permalink / raw)
  To: Ivan Petkov; +Cc: 36614

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

Ivan,

On Jul 12, 2019, at 6:16 AM, Tobias Geerinckx-Rice <me@tobias.gr> 
wrote:
> I've gone ahead and pushed a fix since the signature checked 
> out. I'm closing this bug for now...

Unfortunately, the build still fails for me.  See below.

Kind regards,

T G-R

--8<---------------cut here---------------start------------->8---
    | 
    ||________________________________________________________________________- 
    in this macro invocation (#5)
4   |   |      types {
...     |
7   | / |      impl_error_chain_processed ! {
8   | | |      types { $ error_name , $ error_kind_name , $ 
result_ext_name ; } $ ( $ rest )
9   | | |      * } /// Convenient wrapper around `std::Result`.
    | |_|________- in this macro invocation (#6)
...     |
91  |   |      ( ref foreign_err ) => { foreign_err . cause (  ) } 
) * _ => None } } } } }
    |   |                                             ^^^^^
...     |
154 |   |      move || { $ crate :: ChainedError :: from_kind ( 
callback (  ) . into (  ) ) }
155 |   |      ) } } } ;
    |   |              -
    |   |              |
    |   |              in this expansion of 
    `impl_error_chain_processed!` (#4)
    |   |______________in this expansion of 
    `impl_error_chain_processed!` (#5)
    |                  in this expansion of 
    `impl_error_chain_processed!` (#6)
    | 
   ::: <::error_chain::error_chain::error_chain macros>:1:1
    |
1   |        / ( $ ( $ block_name : ident { $ ( $ block_content : 
tt ) * } ) * ) => {
2   |        | error_chain_processing ! {
    |  ______|_-
3   | |      | ( {  } , {  } , {  } , {  } ) $ ( $ block_name { $ 
( $ block_content ) * } ) *
4   | |      | } } ;
    | |      |_-___- in this expansion of `error_chain!` (#1)
    | |________|
    |          in this macro invocation (#2)
    | 
   ::: src/tools/rust-installer/src/lib.rs:21:5
    |
21  | /            error_chain!{
22  | |                foreign_links {
23  | |                    Io(::std::io::Error);
24  | | 
StripPrefix(::std::path::StripPrefixError);
25  | |                    WalkDir(::walkdir::Error);
26  | |                }
27  | |            }
    | |____________- in this macro invocation (#1)

    Finished release [optimized] target(s) in 1m 36s
Error: failed to generate installer
Caused by: failed to copy 
'/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/tmp/dist/rust-docs-1.36.0-x86_64-unknown-linux-gnu-image/share/doc/rust/html/unstable-book/library-features/weak-counts.html' 
to 
'/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/tmp/dist/rust-docs-1.36.0-x86_64-unknown-linux-gnu/rust-docs/share/doc/rust/html/unstable-book/library-features/weak-counts.html'
Caused by: No space left on device (os error 28)


command did not execute successfully: 
"/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/x86_64-unknown-linux-gnu/stage0-tools-bin/fabricate" 
"generate" "--product-name=Rust-Documentation" 
"--rel-manifest-dir=rustlib" 
"--success-message=Rust-documentation-is-installed." "--image-dir" 
"/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/tmp/dist/rust-docs-1.36.0-x86_64-unknown-linux-gnu-image" 
"--work-dir" 
"/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/tmp/dist" 
"--output-dir" 
"/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/dist" 
"--package-name=rust-docs-1.36.0-x86_64-unknown-linux-gnu" 
"--component-name=rust-docs" 
"--legacy-manifest-dirs=rustlib,cargo" 
"--bulk-dirs=share/doc/rust/html"
expected success, got: exit code: 1


failed to run: 
/tmp/guix-build-rust-1.36.0.drv-0/rustc-1.36.0-src/build/bootstrap/debug/bootstrap 
install
Build completed unsuccessfully in 0:01:54
Backtrace:
           5 (primitive-load 
           "/gnu/store/n6nh9mqsd8grd10f532z8nswnlj…")
In ice-9/eval.scm:
   191:35  4 (_ _)
In srfi/srfi-1.scm:
   863:16  3 (every1 #<procedure a6c980 at 
   /gnu/store/cmlwy3sxnq9yf…> …)
In 
/gnu/store/cmlwy3sxnq9yfp75w80par5imvyg143f-module-import/guix/build/gnu-build-system.scm:
   799:28  2 (_ _)
In ice-9/eval.scm:
    619:8  1 (_ #(#(#<directory (guile-user) 5ce140>) (("o…" . #) 
    …)))
In 
/gnu/store/cmlwy3sxnq9yfp75w80par5imvyg143f-module-import/guix/build/utils.scm:
    616:6  0 (invoke _ . _)

/gnu/store/cmlwy3sxnq9yfp75w80par5imvyg143f-module-import/guix/build/utils.scm:616:6: 
In procedure invoke:
Throw to key `srfi-34' with args `(#<condition &invoke-error 
[program: "./x.py" arguments: ("install") exit-status: 1 
term-signal: #f stop-signal: #f] 9f04c0>)'.
note: build failure may have been caused by lack of free disk 
space
builder for 
`/gnu/store/cknk6wa34h04vqb7qwdlzx36xx2j4n54-rust-1.36.0.drv' 
failed with exit code 1
build of 
/gnu/store/cknk6wa34h04vqb7qwdlzx36xx2j4n54-rust-1.36.0.drv failed
View build log at 
'/var/log/guix/drvs/ck/nk6wa34h04vqb7qwdlzx36xx2j4n54-rust-1.36.0.drv.bz2'.
guix build: error: build of 
`/gnu/store/cknk6wa34h04vqb7qwdlzx36xx2j4n54-rust-1.36.0.drv' 
failed
~/guix ⑂nckx-master✱ λ 
--8<---------------cut here---------------end--------------->8---

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 17:27     ` Tobias Geerinckx-Rice
@ 2019-07-12 17:34       ` Tobias Geerinckx-Rice
  0 siblings, 0 replies; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-07-12 17:34 UTC (permalink / raw)
  To: Ivan Petkov; +Cc: 36614

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

Tobias Geerinckx-Rice wrote:
> Caused by: No space left on device (os error 28)

Eh, never mind, I managed to copy, paste, & send an entire e-mail 
while missing this line.

👍,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#36614: rust@1.36's hash is incorrect.
  2019-07-12 17:26     ` Tobias Geerinckx-Rice
@ 2019-07-13  0:59       ` Ivan Petkov
  0 siblings, 0 replies; 9+ messages in thread
From: Ivan Petkov @ 2019-07-13  0:59 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 36614-done


> On Jul 12, 2019, at 10:26 AM, Tobias Geerinckx-Rice <me@tobias.gr> wrote:
> 
> Yes, this is exactly what happened.  I consider this is a feature of Guix, even though it can feel like a gotcha sometimes.  :-)
> 
> We often tend to think of the source URL(s) as an ‘identifier’ of the source file.  However, it is nothing more than a hint about its *location*.  The only authoritative identifier of its *content* is the hash: to get *this file* (content hash), try looking *here* (location: URL).
> 
> One origin may have 0 or more source URLs: Guix will try them all until it downloads something matching the hash (and if even that fails it will try some implicit ones like tarballs.nixos.org).
> 
>   ‘Unique’ identifier (hash)
>     ├ maybe you can *find* it here (URL)
>     ├ or here (another URL)
>     ├ hell maybe here I don't know (yet another URL)
>     ⋮
>     Guix cares only about the content of the file; it doesn't care or even remember how it got it.  Or: if you change the download hint (release URL in this case), Guix won't care, because you didn't change the hash.
> 
> I hope that makes some sense,

This is a wonderful explanation, thanks! Will keep this in mind for the future :)

—Ivan

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

end of thread, other threads:[~2019-07-13  1:00 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-12  9:41 bug#36614: rust@1.36's hash is incorrect Pierre Langlois
     [not found] ` <handler.36614.B.156292453627169.ack@debbugs.gnu.org>
2019-07-12 13:11   ` bug#36614: Acknowledgement (rust@1.36's hash is incorrect.) Pierre Langlois
2019-07-12 13:16 ` bug#36614: rust@1.36's hash is incorrect Tobias Geerinckx-Rice
2019-07-12 16:33   ` Ivan Petkov
2019-07-12 17:23     ` Leo Famulari
2019-07-12 17:26     ` Tobias Geerinckx-Rice
2019-07-13  0:59       ` Ivan Petkov
2019-07-12 17:27     ` Tobias Geerinckx-Rice
2019-07-12 17:34       ` Tobias Geerinckx-Rice

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).