unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke@fastmail.com>
Cc: 27593@debbugs.gnu.org
Subject: bug#27593: [PATCH v2] gnu: groff: Remove timestamps.
Date: Sun, 09 Jul 2017 21:51:08 +0200	[thread overview]
Message-ID: <87eftpv177.fsf@gnu.org> (raw)
In-Reply-To: <87wp7hahpm.fsf@fastmail.com> (Marius Bakke's message of "Sun, 09 Jul 2017 15:00:05 +0200")

Marius Bakke <mbakke@fastmail.com> skribis:

> Danny Milosavljevic <dannym@scratchpost.org> writes:
>
>> Fixes <https://bugs.gnu.org/27593>.
>>
>> * gnu/packages/groff.scm (groff)[source]: Remove timestamps.
>> ---
>>  gnu/packages/groff.scm | 18 +++++++++++++++++-
>>  1 file changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm
>> index 46e1ccf23..1a74194a6 100644
>> --- a/gnu/packages/groff.scm
>> +++ b/gnu/packages/groff.scm
>> @@ -40,7 +40,23 @@
>>              (uri (string-append "mirror://gnu/groff/groff-" version
>>                                  ".tar.gz"))
>>              (sha256 (base32
>> -                     "1998v2kcs288d3y7kfxpvl369nqi06zbbvjzafyvyl3pr7bajj1s"))))
>> +                     "1998v2kcs288d3y7kfxpvl369nqi06zbbvjzafyvyl3pr7bajj1s"))
>> +            (modules '((guix build utils)))
>> +            (snippet
>> +             '(begin
>> +                (substitute* "mdate.sh"
>> +                 (("^LANGUAGE=") "
>> +
>> +echo \"1 Jan 1970\"
>> +exit 0
>> +
>> +"))
>
> It would be more obvious what's going on if we substitute the "mdate.sh"
> invocation from the Makefile instead. OTOH, this is more
> future-proof. No strong opinion, but feels a bit "hacky".
>
> Note that you can use \n here.
>
>> +                (substitute* '("src/devices/grops/ps.cpp"
>> +                               "src/devices/grohtml/post-html.cpp"
>> +                               "src/roff/troff/input.cpp")
>> +                  (("time\\(0\\)") "0"))
>> +                (substitute* "src/devices/gropdf/gropdf.pl"
>> +                  (("\\(time\\)") "(0)"))))))
>
> Are all of these really a cause of indeterminism in the build process?
> It looks like this could make "legitimate" uses of groff return epoch 0
> at runtime, I'm not sure if that is okay.
>
> Which output files are fixed by these substitutions? Are there other
> ways to deal with the indeterminism, e.g. substitute them in place?

Sometimes it’s better to make such changes available as a .patch file so
that we can more clearly see from the context that we’re patching the
right thing.  Perhaps that’s one such case here.

BTW, looking at issues.yml in
git://git.debian.org/git/reproducible/notes.git leads me to:

  https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByGroff

Debian has a SOURCE_DATE_EPOCH patch:

  http://sources.debian.net/patches/groff/1.22.3-9/source-date-epoch.patch/

Perhaps we could just use that?  That way, the default behavior of groff
would remained unchanged.

Apparently upstream wasn’t convinced by the idea of SOURCE_DATE_EPOCH,
so we could also restart the discussion with upstream in parallel.

However, it would be nice to commit this groff change quickly so we can
go on with core-updates builds.  :-)

Thoughts?

Ludo’.

  reply	other threads:[~2017-07-09 19:52 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-06  0:54 bug#27593: groff build is not reproducible Danny Milosavljevic
2017-07-06  1:01 ` bug#27593: [PATCH] gnu: groff: Remove timestamps Danny Milosavljevic
2017-07-06  1:47 ` bug#27593: [PATCH v2] " Danny Milosavljevic
2017-07-09 13:00   ` Marius Bakke
2017-07-09 19:51     ` Ludovic Courtès [this message]
2017-07-09 21:27       ` bug#27593: [PATCH v3] " Danny Milosavljevic
2017-07-09 21:55         ` Marius Bakke
2017-07-10  9:05           ` Ludovic Courtès
2017-07-10 10:40             ` Danny Milosavljevic
2017-07-10 16:37 ` bug#27593: [PATCH] gnu: groff: Make build reproducible Danny Milosavljevic
2017-07-10 19:07   ` Marius Bakke
2017-07-10 19:28     ` Danny Milosavljevic
2017-07-11  9:31   ` Ludovic Courtès
2017-09-09 20:31     ` Ludovic Courtès
2017-09-09 21:17       ` Danny Milosavljevic
2017-09-10 13:13         ` 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

  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=87eftpv177.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=27593@debbugs.gnu.org \
    --cc=mbakke@fastmail.com \
    /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).