all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: guix-devel@gnu.org
Subject: Re: Timestamps in tarballs created by 'patch-and-repack'
Date: Tue, 14 Jul 2015 16:25:34 -0400	[thread overview]
Message-ID: <87pp3utrk1.fsf@netris.org> (raw)
In-Reply-To: <87y4iitus4.fsf@netris.org> (Mark H. Weaver's message of "Tue, 14 Jul 2015 15:15:55 -0400")

Mark H Weaver <mhw@netris.org> writes:

> Hello Guix,
>
> One of the MIPS build slaves has a malfunctioning clock, and sometimes I
> discover that the clock is several days behind or ahead.  In the past
> I've been able to simply reset the clock and restart builds, but now I
> have a more serious problem:
>
> Patched tarballs created by 'patch-and-repack' were built on a build
> slave with the clock set about 8 days ahead.  Those tarballs are now in
> Hydra's store, and include timestamps in the tar file that are set so
> far ahead that attempts to build them are failing.  I'm currently
> attempting to find and delete the bad tarballs from hydra's store.

I ran into difficulties doing this, and anyway I'm not sure how to
achieve confidence that I've found all of the bad archives, which might
result is subtle breakage.  So now I'm more inclined to just fix the
problem in 'patch-and-repack'.

> 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

I'm going to try this on my local machine and see how it goes...

      Mark

  reply	other threads:[~2015-07-14 20:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-14 19:15 Timestamps in tarballs created by 'patch-and-repack' Mark H Weaver
2015-07-14 20:25 ` Mark H Weaver [this message]
2015-07-15  0:01   ` Mark H Weaver
2015-07-15 14:30     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pp3utrk1.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.