From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: Timestamps in tarballs created by 'patch-and-repack' Date: Tue, 14 Jul 2015 20:01:25 -0400 Message-ID: <87lheithka.fsf@netris.org> References: <87y4iitus4.fsf@netris.org> <87pp3utrk1.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFA8n-00034Y-Tx for guix-devel@gnu.org; Tue, 14 Jul 2015 20:01:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFA8j-0002ew-89 for guix-devel@gnu.org; Tue, 14 Jul 2015 20:01:37 -0400 Received: from world.peace.net ([50.252.239.5]:42251) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFA8j-0002em-4p for guix-devel@gnu.org; Tue, 14 Jul 2015 20:01:33 -0400 In-Reply-To: <87pp3utrk1.fsf@netris.org> (Mark H. Weaver's message of "Tue, 14 Jul 2015 16:25:34 -0400") 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: guix-devel@gnu.org Mark H Weaver writes: > Mark H Weaver writes: > >> However, this raises a deeper problem: all of the outputs of >> 'patch-and-repack' contain non-deterministic timestamps, and these >> timestamps can cause problems with future builds. >> >> Would it be sufficient to simply zero out all of the timestamps before >> repacking? > > I looked into this a bit more. In addition to timestamps, the other > impure bits getting into tar files are the names and numeric ids of the > owner and groups. Section 4.3.1 (Overriding File Metadata) of the GNU > tar manual describes how to override these when creating an archive. > > My guess is that the following options would be sufficient to make the > generated tar archives deterministic: > > --mtime=@0 --owner=root:0 --group=root:0 This seems to work well, so I've added these flags when creating tarballs in commits 2e9511dfbdb5ddd78c2f205c4ca7fc23738d79f8 and c09e6a5f5e2a77beff89d68069f3037c1b6310e5 in core-updates. Mark