Hi Ben, Ben Woodcroft <b.woodcr...@uq.edu.au> writes:
> I run a setup that uses a non-standard store directory, and am running > into this: > > $ ~/git/guix-euramoo/pre-inst-env guix build -S libssh > substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' > uses different store '/gnu/store'; ignoring it > The following derivations will be built: > /RDS/Q0227/store/sm6fhnj3yy0g44jk9nwzrrib8lhx569h-libssh-0.7.5-0.tar.xz.drv > /RDS/Q0227/store/imwprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv > substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' > uses different store '/gnu/store'; ignoring it > substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' > uses different store '/gnu/store'; ignoring it > @ build-started > /RDS/Q0227/store/imwprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv > - > x86_64-linux > /RDS/Q0227/var/log/guix/drvs/im//wprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv.bz2 > Initialized empty Git repository in > /RDS/Q0227/store/7871hkkcr3iqn8pjn0a8n1kfslg47rvh-libssh-0.7.5-0.239d0f7-checkout/.git/ > > > fatal: dumb http transport does not support shallow capabilities This seems like a Git problem. Git doesn't like something about the transport. Are you using a recent version of Guix? If it's still happening after you run "guix pull", maybe it's a packaging bug we need to fix. My guess is that the Git server at https://git.libssh.org/projects/libssh.git doesn't support some feature that our Git client needs. Since they have a git:// URL available [1], also, perhaps we should update the package definition to use it instead. Would you be willing to submit a patch for that? > Relatedly, is there some way to enable source substitutes when the > store root does not match? Unfortunately, no. Components in the store often refer to other components in the store (e.g., a program might refer to shared libraries). If you were to download a substitute that refers to paths in /gnu/store rather than /RDS/Q0227/store, your substitute would refer to paths that lie outside of your local store and don't exist, so your installed software would be broken. For this reason, the location of the store is one of the factors that determines the hash part of store items. You can only make use of substitutes if those substitutes use the same store location as you do. > Also, is there some way to workaround this by downloading the source > manually and then using 'guix download' or similar? I suspect that > won't work because the file-name cannot be specified as an option to > that command. Actually, this should work because derivations that build source like this are so-called "fixed-output derivations": their output is fixed and known in advance. If you "guix download" the source file into the store, as long as the content was correct, it will be used automatically by later invocations of "guix build" etc. It doesn't matter where you got the file from. You could probably even "guix download" a path from Hydra, even though it uses a different store location, since all that matters is the content of the file. The tricky part is knowing exactly which file you need. Footnotes: [1] https://www.libssh.org/get-it/ -- Chris
signature.asc
Description: PGP signature