From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH] Add 12 rubygems. Date: Tue, 29 Dec 2015 08:18:28 +0100 Message-ID: <87io3h4ta3.fsf@elephly.net> References: <56821E47.9010400@uq.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47193) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDoYK-0002S2-N9 for guix-devel@gnu.org; Tue, 29 Dec 2015 02:18:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDoYH-0008KO-HK for guix-devel@gnu.org; Tue, 29 Dec 2015 02:18:40 -0500 Received: from sender163-mail.zoho.com ([74.201.84.163]:25719) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDoYH-0008KK-1a for guix-devel@gnu.org; Tue, 29 Dec 2015 02:18:37 -0500 In-reply-to: <56821E47.9010400@uq.edu.au> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ben Woodcroft Cc: "guix-devel@gnu.org" Ben Woodcroft 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