Le 22 septembre 2019 21:22:45 GMT+02:00, Catriel <cde...@dc.uba.ar> a écrit : > >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.
Sorry I'm too tired to answer properly. Their is a section about contributing in the manual. Have you read that? As a workaround, you can try guix package -u --with-source=enchant=`guix download …` where … is the url of the sources you want to use. Iirc, it applies to dependencies recursively. Good night, and good luck :)