all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: "Björn Höfling" <bjoern.hoefling@bjoernhoefling.de>
Cc: Alberto EFG <albertoefg@posteo.mx>, 35012@debbugs.gnu.org
Subject: bug#35012: Can't install icecat
Date: Sat, 30 Mar 2019 02:14:14 -0400	[thread overview]
Message-ID: <8736n4anxq.fsf@netris.org> (raw)
In-Reply-To: <20190329102005.3623fd57@alma-ubu> ("Björn Höfling"'s message of "Fri, 29 Mar 2019 10:20:05 +0100")

Hi Björn,

Björn Höfling <bjoern.hoefling@bjoernhoefling.de> writes:

> On Thu, 28 Mar 2019 23:11:22 -0600
> Alberto EFG <albertoefg@posteo.mx> wrote:
>
>> H, Mark and everyone who has been helpful 
>> 
>> > As other people have mentioned, this substitute should now be
>> > available,  
>> I keep getting this, I don't know if I am doing something wrong:
>> 
>> $ guix package -n -u .
>> --substitute-urls="https://mirror.hydra.gnu.org
>> https://ci.guix.info" [...] substitute: updating substitutes from
>> 'https://mirror.hydra.gnu.org'... 100.0% substitute: updating
>> substitutes from 'https://ci.guix.info'... 100.0% The following
>> derivations would be
>> built: /gnu/store/5xs5i2pkf369g2hd26f2sy26r40bzjm6-icecat-60.6.1-guix1.drv /gnu/store/4f40wrx514rbly302ha0gvpn5b53d91f-rust-1.24.1.drv
>>    /gnu/store/yf5fcqp3v4jf038g454h2zqm54x6ijj6-profile.drv
>> 938.6 MB would be downloaded:
>
> I see that your hash of icecat differs from mine:
>
> $ guix package -n -i icecat
> --substitute-urls="https://mirror.hydra.gnu.org https://ci.guix.info"
> The following package would be upgraded: icecat	60.6.1-guix1 →
> 60.6.1-guix1	/gnu/store/bwhnxvfx4ng5fhc7xi6wijp8qciqjpbk-icecat-60.6.1-guix1

The hashes don't match because one is a store derivation (.drv) file and
the other is the output store item produced by that derivation.  These
store items are assigned different hashes.

You might expect that the hash of a derivation could be reused for the
outputs of that derivation, but it can't be done for a technical reason:
the hash in the file name of a store derivation is based on the entire
contents of that .drv file.  That .drv file also contains its output
file names.  See the problem?

In order to give these the same hash, you would need to create a
derivation file that contains its own hash, i.e. the result of hashing
its entire contents.  That would involve solving an equation of the
form: H = sha256(X ++ H ++ Y), which is presumably hard :)

     Regards,
       Mark

  parent reply	other threads:[~2019-03-30  6:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-26 19:39 bug#35012: Can't install icecat Alberto EFG
2019-03-26 23:09 ` Björn Höfling
2019-03-27 11:14   ` Danny Milosavljevic
2019-03-27 14:49     ` Ludovic Courtès
2019-03-29  1:57 ` Mark H Weaver
2019-03-29  5:11   ` Alberto EFG
2019-03-29  9:20     ` Björn Höfling
2019-03-29 21:34       ` Alberto EFG
2019-03-30  6:14       ` Mark H Weaver [this message]
2020-11-30 20:53 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8736n4anxq.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=35012@debbugs.gnu.org \
    --cc=albertoefg@posteo.mx \
    --cc=bjoern.hoefling@bjoernhoefling.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.