Subject: Re: bug#62712: [PATCH 0/2] Disable keyword expansion for Subversion downloads

From: Ludovic Courtès <[email-masked]>
Date: Sat, 08 Apr 2023 23:23:50 +0200

Hi Timothy!

Timothy Sample <[email-masked]> skribis:

> Whoops!  I guess I was a little slow getting my patch in.

No problem!  I had it on my to-do list.

> I’ve highlighted a few sources you missed below, as well as attached
> my patch (for comparison and for listing the new hashes of the missing
> sources).

Oh, good that you were able to find some more!

> I generated a big diff for all 17 sources that I found (mostly because
> it excites me that Guix can do stuff like that).  Basically all the
> changes were boring (as we expected).

Excellent.

> For “texlive-scripts”, I added a phase that approximates keyword
> expansion for the few scripts that use it to output version information.
> It‘s not exactly the same as what Subversion does.  Subversion uses the
> last revision that updated the given file, and I just use
> ‘%texlive-revision’ for every file.  I’m not too attached to this
> approach, but it felt like the right thing to do.

I wouldn’t mind doing nothing, but what you did sounds good.

>> The second patch makes ‘recursive?’ default to #f, which AFAICS is
>> what all the SVN-using packages that were not explicit expected (no
>> changes required).
>
> I also carefully checked turning recursion off by default.  I’m
> confident that nothing changes.

Excellent.  I’ll push it to ‘master’.

>>>From 19c14a09e9e1d92a1035d15dbbb8d12fb3b59d17 Mon Sep 17 00:00:00 2001
> From: Timothy Sample <[email-masked]>
> Date: Wed, 5 Apr 2023 13:46:28 -0600
> Subject: [PATCH] svn-download: Do not expand keywords.
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> See <https://issues.guix.gnu.org/43442#15>.

For posterity, you can add something along the lines of what I had:

  Subversion keyword expansion is potentially non-reproducible as some of
  them expand time strings relative to the local time zone:

    https://issues.guix.gnu.org/43442#18

  In practice this is not a problem in Guix since Subversion checkouts
  happen in an isolated environment using the "default timezone" (UTC).

  However, Software Heritage disables keyword expansion for this very
  reason.  By following suit, we make sure content can be retrieved from
  there.

> +           ;; Disable keyword substitution (keywords are CVS-like strings
> +           ;; like "$Date$", "$Id$", and so on).
> +           "--ignore-keywords"

Likewise:

+           ;; Disable keyword substitutions (keywords are CVS-like strings
+           ;; like "$Date$", "$Id$", and so on) for two reasons: (1) some
+           ;; expansions depend on the local time zone, and (2) SWH disables
+           ;; it in its archive for this very reason.
+           "--ignore-keywords"

Chris, should we get it built on qa.guix?  It’s on the order of 7K
rebuilds per architecture since ‘texlive-bin’ is modified.
Alternatively we can set up ci.guix for it, if you think it’s more
appropriate resource-wise.

WDYT?

Ludo’.

PS: I’ll be AFK for the next few days.