From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Catriel" Subject: enchant hash, fail to upgrade Date: Sun, 22 Sep 2019 16:22:45 -0300 Message-ID: <87a7awm8ze.fsf@dc.uba.ar> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:43187) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iC7S0-0007TE-PF for help-guix@gnu.org; Sun, 22 Sep 2019 15:23:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iC7Ry-0001yG-1j for help-guix@gnu.org; Sun, 22 Sep 2019 15:23:15 -0400 Received: from mta1.exactas.uba.ar ([157.92.32.131]:55796) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iC7Rx-0001sn-1Q for help-guix@gnu.org; Sun, 22 Sep 2019 15:23:13 -0400 Received: from antispam0.exactas.uba.ar (antispam0 [172.20.0.135]) by mta1.exactas.uba.ar (Postfix) with ESMTP id AE16D801FA for ; Sun, 22 Sep 2019 16:23:01 -0300 (-03) Received: from mta0.exactas.uba.ar ([172.20.0.130]) by antispam0.exactas.uba.ar (antispam0.exactas.uba.ar [172.20.0.135]) (amavisd-new, port 10024) with LMTP id 4LFyQsgAM_74 for ; Sun, 22 Sep 2019 16:22:58 -0300 (ART) Received: from titan (unknown [181.46.206.162]) (Authenticated sender: cdelia) by mta0.exactas.uba.ar (Postfix) with ESMTPSA id EEA63221090 for ; Sun, 22 Sep 2019 16:22:57 -0300 (-03) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org Hi! after a minor nuisanse (*) with guix pull, I stumble upon an error: $guix upgrade --fallback guix upgrade: aviso: paquete 'libstdc++' ya no existe guix upgrade: el paquete 'sbcl-next' ha sido reemplazado por 'next' substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100= .0% substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100= .0% construyendo /gnu/store/g6srxnikawk7snkzxk6vxmms1aldidww-libgnomekbd-3.26.1= .tar.xz.drv... /gnu/store/g6srxnikawk7snkzxk6vxmms1aldidww-libgnomekbd-3.26.1.tar.xz.drv c= onstruido satisfactoriamente construyendo /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.= gz.drv... la construcci=C3=B3n de /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant= -2.2.5.tar.gz.drv fall=C3=B3 Muestra el registro de construcci=C3=B3n en '/var/log/guix/drvs/3d/fjsc9nm0= bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv.bz2'. construyendo /gnu/store/7gsxkb7qivmw6kw4aizfxnx5r6m6i2lh-gnupg-2.2.17.tar.b= z2.drv... -guix upgrade: error: build of `/gnu/store/9xsx8j5b5j3khlicg91nrv6v84c3nssa= -arc-theme-20181022.drv' failed (sorry about the language) it's saying that /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv failed. the log doesn't output anything usefull, it just shows that the file was downloaded. So I try to build it from the derivation for more info: guix build /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz= .drv=20 Se construir=C3=A1 la siguiente derivaci=C3=B3n: /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv construyendo /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv... ... sha256 hash mismatch for output path `/gnu/store/wsyfm5avik0wvh82gyxw9acbix= p0ygbp-enchant-2.2.5.tar.gz' expected: 0iqwzs11i9fvqdxv5kn0svcn2mzymn657qf3j66lg8dx1nh4xkpz actual: 0r41qjz3104h5raiwlw5ywwybafbxdjz12j1bnq3kq60jlr6d2pf And there it goes, the sha256 it's wrong, either in the .scm definition or upstream. I choose to trust upstream and try to define a package with the same name and version but different sha256. After guix download --no-check-certificate https://github.com/AbiWord/enchant/rel= eases/download/v2.2.5/enchant-2.2.5.tar.gz to get the hash (**) and file and defining enchant.scm with: (use-modules (guix packages) (guix download) (gnu packages enchant) (gnu packages wm)) (package (inherit enchant) (name "enchant") (version "2.2.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/AbiWord/enchant/releases" "/download/v" version "/enchant-" version ".tar.gz")) (sha256 (base32 "0r41qjz3104h5raiwlw5ywwybafbxdjz12j1bnq3kq60jlr6d2pf"))))) and then guix package -f enchant.scm I succefully install enchant, with the same version and name. Then happily enjoying my wit to circumvent this issue until more proper fixing takes place, I try to do a package upgrade again 'guix package -u' but as a knowingly reader might predict, it just tries to build again the enchant definition on guix repos. No matter that the package have the same version and name, the package has another hash, another place on the store, it's just a different input for the packages that use enchant. So my hacky solution it's a no-solution that poped up in my mind because habits from a non functional world die hard... but they will... eventually. So the questions are: * How do I patch a package definition when I find a bug? * Do I have to use guixsd or guix from source? (I'm currently using a guix binary installation on a foreign distro) * I know that I can define a package with modifications. Say, modify emacs to display mario bros on background.. cuz... that would be really usefull. But how to modify a package definition that it's not a leaf in the dependency graph? I never installed enchant, it's just a dependency. Say I find a bug or want to mess around with some lib and break things for fun. Just to break it, travel back in time with guix, and break it again in just another way. Do I have to redefine all the packages that use that dependency or there is an automatic way to do it? (*) I was suffering from the same problem in this thread https://www.mail-archive.com/help-guix@gnu.org/msg04879.html and tried Ludovic suggestion. Maybe I remove more links that Ludovic suggests, but after some manual tinkering it just works. (**) How does guix download calculates the hash? if I do a $sha256sum tarball.tar.gz it outputs other hash. Thanks in advance! COD.