unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Vagrant Cascadian <vagrant@reproducible-builds.org>
Cc: Guix Devel <guix-devel@gnu.org>
Subject: Re: Set FORCE_SOURCE_DATE=1 by default
Date: Wed, 22 Jun 2022 09:59:18 -0400	[thread overview]
Message-ID: <87pmj06bpl.fsf@gmail.com> (raw)
In-Reply-To: <87v8stnsca.fsf@contorta> (Vagrant Cascadian's message of "Tue, 21 Jun 2022 23:08:05 -0700")

Hi,

Vagrant Cascadian <vagrant@reproducible-builds.org> writes:

> On 2022-06-21, Maxim Cournoyer wrote:
>> Vagrant Cascadian <vagrant@reproducible-builds.org> writes:
>>> So, guix sets SOURCE_DATE_EPOCH=1 by default in
>>> guix/build/gnu-build-system.scm, which is great!
>>>
>>> This allows guix packages in many cases to build packages reproducibly,
>>> with a curious side-effect that takes us all back to the early 70s in
>>> some corner-cases (or even late 60s, dependent on timezone).
>>>
>>> That said, some projects (such as texlive) might be worried about
>>> messing with time too much (I get it, lots of cautionary sci-fi
>>> stories!), and so you *also* need FORCE_SOURCE_DATE=1 to be set in order
>>> to respect SOURCE_DATE_EPOCH.
>>
>> That seems ridiculous.  Has anyone tried getting in touch with them to
>> get their arguments about why inventing another variable that means the
>> same thing was necessary?
>
> Yes, there were some fairly long threads about it and I have little hope
> that revisiting it would change much; it was originally implemented as a
> texlive specific variable, which was changed to the FORCE_SOURCE_DATE
> variable to at least avoid the danger of every project inventing their
> own name-brand variables...
>
>
>> I'd much prefer challenging that stance than "endorsing" it in Guix :-).
>> I think it'd be OK to reluctantly add it in as a stop-gap fix in Guix,
>> but *only* after opening an issue to discuss it upstream and linking to
>> that issue in Guix.
>
> I get it. I really do. It kind of grates at me every time I think about
> this.
>
> I know it really is not great and seems quite suboptimal to me, but I
> don't personally think rehashing the arguments will be a productive use
> of time for anyone...
>
> I think the pragmatism of making more packages reproducible by conceding
> to set FORCE_SOURCE_DATE is the appropriate way forward; I agree it
> feels silly or even maybe would go so far as to say a bit "wrong".

Perhaps to show our stand here we could patch our copy of pdftex with
's/FORCE_SOURCE_DATE/SOURCE_DATE_EPOCH/', lest we end up with a grocery
list of *SOURCE_DATE* variable variants.  Even reproducible-builds.org
discourage its use (directed at upstream rather than downstream, but
still) [0]:

    If for some reason you’re still conflicted on suddenly changing the
    meaning of your “now()” function and desire another switch other than
    SOURCE_DATE_EPOCH being set or not, the texlive project came up with the
    variable FORCE_SOURCE_DATE; when that environment variable is set to 1
    cases that wouldn’t normally obey SOURCE_DATE_EPOCH will do. We strongly
    discourage the usage of such variable; SOURCE_DATE_EPOCH is meant to be
    already a flag forcing a particular timestamp to be used.

It'd still be nice to have the link to the upstream discussion that led
using a FORCE_SOURCE_DATE variable mentioned in a comment above where
we'd do this trivial substitution; do you have a link to it?  I couldn't
find it.

Thanks,

Maxim

[0]  https://reproducible-builds.org/docs/source-date-epoch/


  parent reply	other threads:[~2022-06-22 14:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-10 23:53 Set FORCE_SOURCE_DATE=1 by default Vagrant Cascadian
2022-06-15  8:58 ` Ludovic Courtès
2022-06-15 16:24   ` Vagrant Cascadian
2022-06-21 20:48   ` Vagrant Cascadian
2022-06-21 21:06     ` Vagrant Cascadian
2022-06-22  3:57 ` Maxim Cournoyer
2022-06-22  6:08   ` Vagrant Cascadian
2022-06-22 13:53     ` Ludovic Courtès
2022-06-22 15:11       ` Vagrant Cascadian
2022-06-22 17:41         ` Maxim Cournoyer
2022-06-22 13:59     ` Maxim Cournoyer [this message]
2022-06-23  1:03       ` Vagrant Cascadian
2022-06-23 16:44         ` Maxim Cournoyer
2022-07-03  1:58           ` Vagrant Cascadian
2022-07-04 13:14             ` Ludovic Courtès
2022-08-12 15:32               ` Vagrant Cascadian
2022-06-22 15:16 ` Time namespace for build sandbox (was Re: Set FORCE_SOURCE_DATE=1 by default) Zhu Zihao
2022-06-22 15:35   ` Vagrant Cascadian
2022-06-22 16:41   ` Maxime Devos

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=87pmj06bpl.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=vagrant@reproducible-builds.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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).