[Nix-dev] Hydra-generated manifests

Eelco Dolstra e.dolstra at tudelft.nl
Thu Mar 19 16:55:54 CET 2009


Hi,

Ludovic Courtès wrote:

> When using manifests generated by Hydra, I sometimes observe the
> following behavior:
> 
>   the following paths will be downloaded/copied (0.00 MiB):
>     /nix/store/3fd3kfa2d1cgihalzjagd15hwqkckzc5-xpdf-3.02pl2
>   substituting path `/nix/store/3fd3kfa2d1cgihalzjagd15hwqkckzc5-xpdf-3.02pl2' using substituter `/nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/substituters/download-using-manifests.pl'
>   building path(s) `/nix/store/v6kgm8f72clhd7r7klpzr7ixphdi70cc-pygame-1.7.1release.tar.gz'
>   Use of uninitialized value in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 9.
>   Use of uninitialized value $hash in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 9.
>   Use of uninitialized value in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 14.
>   Use of uninitialized value $hash in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 14.
>   Use of uninitialized value in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 21.
>   Use of uninitialized value $hash in string eq at /nix/store/qa8ni49xjnrzrr2ynfp36qbv6n1q68rv-nix-0.13pre14422/libexec/nix/readmanifest.pm line 102, <MANIFEST> line 21.
>   ...
> 
> The entry that ends at line 9 lacks the `References' and `Size' fields,
> the one at line 14 lacks `References', `Deriver' and `Size', etc.  Is
> that the v4 manifest format?

Yes.  That is, it lacks the Size and Hash fields because Hydra generates the NAR
archives on demand.  References and Deriver are only missing when the path
doesn't have references or a known deriver - this was always allowed IIRC.

It turns out that there was still some code left that assumes that there is a
Hash field.  I've fixed it now.

> I'm using 0.13pre14422; if it's unable to handle this format, shouldn't
> it complain upon reading `ManifestVersion'?

Your version is new enough.  However older versions that aren't new enough don't
complain, because unfortunately I wasn't forward-looking enough to have
download-using-manifests check whether the version is too new...

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/



More information about the nix-dev mailing list