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 construido satisfactoriamente construyendo /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv... la construcción de /gnu/store/3dfjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv falló Muestra el registro de construcción en '/var/log/guix/drvs/3d/fjsc9nm0bjcv4p0gidgi61n3yk3ps3-enchant-2.2.5.tar.gz.drv.bz2'. construyendo /gnu/store/7gsxkb7qivmw6kw4aizfxnx5r6m6i2lh-gnupg-2.2.17.tar.bz2.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 Se construirá la siguiente derivación: /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/wsyfm5avik0wvh82gyxw9acbixp0ygbp-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/releases/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.