[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libssh source problem

From: Chris Marusich
Subject: Re: libssh source problem
Date: Thu, 02 Aug 2018 01:04:16 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Hi Ben,

Ben Woodcroft <address@hidden> 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: ''
> 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: ''
> uses different store '/gnu/store'; ignoring it
> substitute: guix substitute: warning: ''
> 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 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.



Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]