Ben Woodcroft <b.woodcr...@uq.edu.au> writes:

> Unfortunately none of these builds are reproducible because rubygems in 
> Guix generally aren't. For one, this is because .gem files are archives 
> whose contents are timestamped.

I found the same problem with Java stuff.  “.jar” files are archives of
the generated “.class” files and they contain an automatically generated
manifest.  To fix this in a build system I’m planning to unpack all
files from the “.jar”, then “touch -d @0” each file, and then repack
with “jar” without creating a new manifest.

So far “touch”-ing every class file after compilation and leaving off
the manifest at jar creation time has shown that “jar” archives can be
made reproducible.

“gem” archives are really just slightly modified “tar” archives, aren’t
they?  Maybe we could add a phase to the ruby-build-system — or modify
the “build” phase, which unpacks and rebuilds the “.gem” archive.

~~ Ricardo


Reply via email to