From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: emacs-dev: 'unpack' phase does not seem to preserve timestamps Date: Wed, 23 May 2018 17:01:09 +0200 Message-ID: <87h8myxvpm.fsf@gnu.org> References: <874lj6iaap.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53203) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fLVGW-0008UH-CS for help-guix@gnu.org; Wed, 23 May 2018 11:01:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fLVGM-0008Ah-Pb for help-guix@gnu.org; Wed, 23 May 2018 11:01:24 -0400 In-Reply-To: <874lj6iaap.fsf@gmail.com> (Pierre Neidhardt's message of "Thu, 17 May 2018 17:14:38 +0200") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Pierre Neidhardt Cc: help-guix Hello, Pierre Neidhardt skribis: > Since all file timestamps are set to Epoch by 'unpack', the build phase > tries to rebuild everything. > And since the files unpacked to "source" are read-only, `make` fails to > regenerate the files that go in "source". Yes, that=E2=80=99s annoying, but that=E2=80=99s expected. Perhaps the =E2= =80=98unpack=E2=80=99 phase could automatically make the copy that it creates with =E2=80=98copy-recursively=E2=80=99 writable? > From the source, 'unpack' is supposed to preserve the timestamp: > > (define* (unpack #:key source #:allow-other-keys) > "Unpack SOURCE in the working directory, and change directory within the > source. When SOURCE is a directory, copy it in a sub-directory of the cu= rrent > working directory." > (if (file-is-directory? source) > (begin > (mkdir "source") > (chdir "source") > > ;; Preserve timestamps (set to the Epoch) on the copied tree so t= hat > ;; things work deterministically. > (copy-recursively source "." > #:keep-mtime? #t) It does preserve timestamps, but since SOURCE is in the store, its timestamps are all set to the Epoch. But that=E2=80=99s OK: Git doesn=E2=80=99t specify timestamps anyway. Thanks, Ludo=E2=80=99.