diff mbox

[bug#62712,0/2] Disable keyword expansion for Subversion downloads

Message ID 87jzyny6oi.fsf_-_@ngyro.com
State New
Headers show

Commit Message

Timothy Sample April 7, 2023, 4:54 p.m. UTC
Hi Ludo,

Whoops!  I guess I was a little slow getting my patch in.  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).

Ludovic Courtès <ludo@gnu.org> writes:

> * gnu/packages/java.scm (java-geronimo-xbean-reflect):

Also java-geronimo-genesis-2.1.

> * gnu/packages/tex.scm (texlive-hyphen-base): Likewise.
> (texlive-dvips): Likewise.

Also texlive-dvipdfmx.

> (texlive-cm): Likewise.
> (texlive-tex-plain): Likewise.
> (texlive-kpathsea): Likewise
> (texlive-latexconfig): Likewise.
> (texlive-tetex): Likewise.
> (texlive-pdftex): Likewise.

Also texlive-xetex.

There’s also the “texlive-scripts” input in texlive-bin, and the
“texlive-luatexconfig” native input in texlive-latex-base.

> [...]

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).

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.

> 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.


-- Tim

Comments

Ludovic Courtès April 8, 2023, 9:23 p.m. UTC | #1
Hi Timothy!

Timothy Sample <samplet@ngyro.com> 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 <samplet@ngyro.com>
> 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.
Christopher Baines April 9, 2023, 9:31 p.m. UTC | #2
Ludovic Courtès <ludo@gnu.org> writes:

> 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?

The data service comparison is available now which is good.

The builds won't be submitted automatically since there's so many, but
I've shuffled the code around to allow manually submitting them, I'm
running the following command in a screen session on bayfront:

  root@bayfront /var/lib/qa-frontpage# sudo -u qa-frontpage /gnu/store/lv4014zwba44fzf035pafba228lypqyl-guix-qa-frontpage-0-7.53bd333/bin/guix-qa-frontpage submit-issue-builds 62712 --priority=600


It will be some time before the builds are completed though, I also need
to try and sort out something for the ARM build machines, as they seem
to be really struggling with slow upload speeds at the moment.
Christopher Baines April 12, 2023, 1:49 p.m. UTC | #3
Christopher Baines <mail@cbaines.net> writes:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> 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?
>
> The data service comparison is available now which is good.
>
> The builds won't be submitted automatically since there's so many, but
> I've shuffled the code around to allow manually submitting them, I'm
> running the following command in a screen session on bayfront:
>
>   root@bayfront /var/lib/qa-frontpage# sudo -u qa-frontpage
> /gnu/store/lv4014zwba44fzf035pafba228lypqyl-guix-qa-frontpage-0-7.53bd333/bin/guix-qa-frontpage
> submit-issue-builds 62712 --priority=600

This has now finished running (I don't exactly know when), so the
package changes information on [1] is now showing up.

All the x86_64-linux builds have already completed, and builds for other
systems are happening.

1: https://qa.guix.gnu.org/issue/62712
Ludovic Courtès April 20, 2023, 9:57 a.m. UTC | #4
Hi Chris,

Christopher Baines <mail@cbaines.net> skribis:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> 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?
>>
>> The data service comparison is available now which is good.
>>
>> The builds won't be submitted automatically since there's so many, but
>> I've shuffled the code around to allow manually submitting them, I'm
>> running the following command in a screen session on bayfront:
>>
>>   root@bayfront /var/lib/qa-frontpage# sudo -u qa-frontpage
>> /gnu/store/lv4014zwba44fzf035pafba228lypqyl-guix-qa-frontpage-0-7.53bd333/bin/guix-qa-frontpage
>> submit-issue-builds 62712 --priority=600
>
> This has now finished running (I don't exactly know when), so the
> package changes information on [1] is now showing up.
>
> All the x86_64-linux builds have already completed, and builds for other
> systems are happening.
>
> 1: https://qa.guix.gnu.org/issue/62712

Thanks a lot!

With ‘core-updates’ coming up, I’m not sure what the best strategy is.
The data at qa.guix should give us confidence, so perhaps we can rebase
it after the ‘core-updates’ merge and apply it at that point?

Ludo’.
Simon Tournier April 25, 2023, 12:41 p.m. UTC | #5
Hi,

Oh cool!  Thanks.

On Thu, 20 Apr 2023 at 11:57, Ludovic Courtès <ludo@gnu.org> wrote:

> With ‘core-updates’ coming up, I’m not sure what the best strategy is.
> The data at qa.guix should give us confidence, so perhaps we can rebase
> it after the ‘core-updates’ merge and apply it at that point?

Yes, it looks good to me.

Cheers,
simon
Simon Tournier May 5, 2023, 2:09 p.m. UTC | #6
Hi Ludo,

On jeu., 20 avril 2023 at 11:57, Ludovic Courtès <ludo@gnu.org> wrote:

> With ‘core-updates’ coming up, I’m not sure what the best strategy is.
> The data at qa.guix should give us confidence, so perhaps we can rebase
> it after the ‘core-updates’ merge and apply it at that point?

What is the status of this patch?  The merge of ’core-updates’ is behind
us now \o/ yeah! and all seems green for installing this patch, no?

Cheers,
simon
Nicolas Goaziou May 6, 2023, 12:22 a.m. UTC | #7
Hello,

Simon Tournier <zimon.toutoune@gmail.com> writes:

> What is the status of this patch?  The merge of ’core-updates’ is behind
> us now \o/ yeah! and all seems green for installing this patch, no?

It was applied in "tex-team" branch, which is currently being built by
the CI.

Regards,
Simon Tournier May 9, 2023, 12:22 p.m. UTC | #8
Hi,

On sam., 06 mai 2023 at 02:22, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:

> It was applied in "tex-team" branch, which is currently being built by
> the CI.

Cool!  This branch seems green, isn’t it?  Is it merged?

Well, since the patch is installed, what about closing this submission?

Cheers,
simon
Ludovic Courtès May 10, 2023, 4:22 p.m. UTC | #9
Hi!

Simon Tournier <zimon.toutoune@gmail.com> skribis:

> On sam., 06 mai 2023 at 02:22, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>
>> It was applied in "tex-team" branch, which is currently being built by
>> the CI.
>
> Cool!  This branch seems green, isn’t it?  Is it merged?

Nope.  Unfortunately, due to the recent ‘rust-team’ merge, we’ll have to
merge back and wait for CI to build it again.

Nicolas, can you take care of merging ‘master’ into the branch?  (Or
rebasing it.)

Ludo’.
Nicolas Goaziou May 11, 2023, 9:40 p.m. UTC | #10
Hello,

Ludovic Courtès <ludo@gnu.org> writes:

> Nicolas, can you take care of merging ‘master’ into the branch?  (Or
> rebasing it.)

Done. I re-created `tex-team' on top of `master'. It can be built again.

Regards,
Christopher Baines May 12, 2023, 11:45 a.m. UTC | #11
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Hello,
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Nicolas, can you take care of merging ‘master’ into the branch?  (Or
>> rebasing it.)
>
> Done. I re-created `tex-team' on top of `master'. It can be built again.

Given this might be the next branch to try and merge to master, would
you be interested in trying out the proecss I set out here [1]?

1: https://issues.guix.gnu.org/63459

All that would involve is creating a guix-patches issue saying you're
looking to merge the tex-team branch.

I'm interested in this since I want to look at getting the qa-frontpage
to spot these issues for branch merges, and then use that information to
manage builds and testing.

Chris
Nicolas Goaziou May 15, 2023, 3:50 p.m. UTC | #12
Hello,

Christopher Baines <mail@cbaines.net> writes:

> Given this might be the next branch to try and merge to master, would
> you be interested in trying out the proecss I set out here [1]?
>
> 1: https://issues.guix.gnu.org/63459
>
> All that would involve is creating a guix-patches issue saying you're
> looking to merge the tex-team branch.

Done in <https://issues.guix.gnu.org/63521>

Regards,
Christopher Baines May 16, 2023, 9:54 a.m. UTC | #13
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Hello,
>
> Christopher Baines <mail@cbaines.net> writes:
>
>> Given this might be the next branch to try and merge to master, would
>> you be interested in trying out the proecss I set out here [1]?
>>
>> 1: https://issues.guix.gnu.org/63459
>>
>> All that would involve is creating a guix-patches issue saying you're
>> looking to merge the tex-team branch.
>
> Done in <https://issues.guix.gnu.org/63521>

Awesome, thanks. I'll have a look at getting the qa-frontpage to detect
that issue and start submitting builds for the tex-team branch.
Ludovic Courtès June 18, 2023, 9:21 p.m. UTC | #14
This was merged last week (see commit
e6da6e3152b01b36d925d8670f1b8c3e1a39ef4b).

Closing!

Ludo’.
diff mbox

Patch

From 19c14a09e9e1d92a1035d15dbbb8d12fb3b59d17 Mon Sep 17 00:00:00 2001
From: Timothy Sample <samplet@ngyro.com>
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>.

* guix/build/svn.scm (svn-fecth): Pass "--ignore-keywords" to
Subversion.
* guix/build-system/texlive.scm (%texlive-date): New variable.
* gnu/packages/java.scm (java-geronimo-xbean-reflect)
(java-geronimo-genesis-2.1): Update the source hash.
* gnu/packages/machine-learning.scm (ghmm): Likewise.
* gnu/packages/video.scm (libsmpeg, libsmpeg-with-sdl1): Likewise.
* gnu/packages/tex.scm (texlive-bin): Update the hash of the
"texlive-scripts" input, and a add a new phase that imitates
Subversion keyword expansion for scripts that need it.
(texlive-latex-base): Update the hash of the "texlive-luatexconfig"
native input.
(texlive-hyphen-base, texlive-dvipdfmx, texlive-dvips, texlive-cm)
(texlive-tex-plain, texlive-kpathsea, texlive-latexconfig)
(texlive-tetex, texlive-pdftex, texlive-xetex): Update the source
hash.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/java.scm             |  4 +--
 gnu/packages/machine-learning.scm |  2 +-
 gnu/packages/tex.scm              | 52 +++++++++++++++++++++++--------
 gnu/packages/video.scm            |  4 +--
 guix/build-system/texlive.scm     |  4 ++-
 guix/build/svn.scm                |  7 ++++-
 6 files changed, 53 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index de3a0003e5..4fad4b06f6 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -11216,7 +11216,7 @@  (define-public java-geronimo-xbean-reflect
               (file-name (string-append name "-" version))
               (sha256
                (base32
-                "18q3i6jgm6rkw8aysfgihgywrdc5nvijrwnslmi3ww497jvri6ja"))))
+                "0zjqmsad4xk0iar23hdyvx19nxczybd2bh0i35xrafli5cmh720k"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "geronimo-xbean-reflect.jar"
@@ -11267,7 +11267,7 @@  (define java-geronimo-genesis-2.1
               (file-name (string-append name "-" version "-source"))
               (sha256
                (base32
-                "119yn795jvnjf52si84q192s8wag1k013iabg78b7wnadssnnh31"))))
+                "1mky4zyl2xsqlgrkairaj5971byvhwk2z9bq8snsgvlr11ydc0zf"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 37d4ef78ad..503b41d64c 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -233,7 +233,7 @@  (define-public ghmm
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq"))))
+                  "07kdsngvr4n1qxpqzv1nlay7g41d6jzjppa8vzmrg220s8ing87z"))))
       (build-system gnu-build-system)
       (arguments
        `(#:imported-modules (,@%gnu-build-system-modules
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b40e72c582..3ced782c44 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -25,6 +25,7 @@ 
 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2023 Thomas Albers Raviola <thomas@thomaslabs.org>
 ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2023 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -293,7 +294,7 @@  (define-public texlive-bin
                                      "-checkout"))
            (sha256
             (base32
-             "10xpa4nnz1biap7qfv7fb0zk6132ki5g1j8w0bqwkggfncdfl07d"))))
+             "1jrphfjhmw17rp1yqsl70shmvka3vg0g8841q6zx2lfn48p7vqf3"))))
        ("cairo" ,cairo)
        ("fontconfig" ,fontconfig)
        ("fontforge" ,fontforge)
@@ -413,7 +414,32 @@  (define-public texlive-bin
              (mkdir "texlive-scripts")
              (with-directory-excursion "texlive-scripts"
                (apply (assoc-ref %standard-phases 'unpack)
-                      (list #:source (assoc-ref inputs "texlive-scripts"))))))
+                      (list #:source (assoc-ref inputs "texlive-scripts")))
+               ;; Configure the version string for some scripts.
+               ;; Normally this would be done by Subversion.
+               ;; See <https://issues.guix.gnu.org/43442#15>.
+               (for-each (lambda (file)
+                           (substitute* file
+                             (("\\$Id\\$")
+                              (format #f "$Id: ~a ~a ~a nobody $"
+                                      file
+                                      ,%texlive-revision
+                                      ,%texlive-date))
+                             (("\\$Revision\\$")
+                              (format #f "$Revision: ~a $"
+                                      ,%texlive-revision))
+                             (("\\$Date\\$")
+                              (format #f "$Date: ~a $"
+                                      ,%texlive-date))))
+                         '("fmtutil.pl"
+                           "mktexlsr"
+                           "mktexlsr.pl"
+                           "mktexmf"
+                           "mktexpk"
+                           "mktextfm"
+                           "tlmgr.pl"
+                           "tlmgrgui.pl"
+                           "updmap.pl")))))
          (add-after 'unpack-texlive-scripts 'patch-scripts
            (lambda _
              (let* ((scripts (append (find-files "texk/kpathsea" "^mktex")
@@ -731,7 +757,7 @@  (define-public texlive-hyphen-base
                     "/tex/generic/hyphen/hypht1.tex"
                     "/tex/generic/hyphen/zerohyph.tex")
               (base32
-               "1sagn9aybs34m1s6m3zwya5g5kbiwfnw8ifcgxssygmzzs88dgjp")
+               "1nad1bqpjsywm49hlv7d75mqvgha3j5vayvkvfhv8wwzgdb3mk84")
               #:trivial? #t))
     (home-page "https://tug.org/texlive/")
     (synopsis "Core hyphenation support files")
@@ -751,7 +777,7 @@  (define-public texlive-dvipdfmx
                          "fonts/cmap/dvipdfmx/"
                          "fonts/map/dvipdfmx/")
                    (base32
-                    "04x93w777l9qzdzglwanb14k8cmq74kjcsgyanvp3bsmnn5zfrgz")
+                    "08i81hciksh0sm9pw6lw8v8s2rj92p58wd5j2mq1mzqbp171wjmr")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -783,7 +809,7 @@  (define-public texlive-dvips
                     "/fonts/enc/dvips/base/"
                     "/tex/generic/dvips/")
               (base32
-               "0rns1hpjy4fmsskmkwx197j8qbgdmyj0j9214sq9vhpa6nv7czm3")
+               "1fb73mfw9mp4ylp6sfc0465rbdb7k830aq0qf3c085c3n0zyrin8")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/dvips")
     (synopsis "DVI to PostScript drivers")
@@ -1041,7 +1067,7 @@  (define-public texlive-cm
                          "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map"
                          "/doc/fonts/cm/")
                    (base32
-                    "1ky4gvcn8qn3d61bvb39512b8r92igv6il7vh02hw04223yj6q8i")
+                    "0mfslqs9saqkb3z3xdhsqnklxk858nmipgj1y93by2791jzkma1d")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -1645,7 +1671,7 @@  (define-public texlive-tex-plain
               "texlive-tex-plain"
               (list "/tex/plain/")
               (base32
-               "0gwygkm8i2jmpf7bfg6fb6824rl7fq4a2s0wni73v0fz6s4chr1n")
+               "1hafbphx1486069cky87hyksx6ia5gd83m4wp2xmgc09z87faf0h")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/plain")
     (synopsis "Plain TeX format and supporting files")
@@ -2851,7 +2877,7 @@  (define-public texlive-kpathsea
                          "/web2c/tcvn-t5.tcx"
                          "/web2c/viscii-t5.tcx")
                    (base32
-                    "00q2nny7lw7jxyln6ch4h0alygbrzk8yynliyc291m53kds1h0mr")
+                    "08nfk5hicqbvnz73rjbxi97lcakd9i1k2cy4qi2cwghan92650jq")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -2914,7 +2940,7 @@  (define-public texlive-latexconfig
               "texlive-latexconfig"
               (list "/tex/latex/latexconfig/")
               (base32
-               "10ynmd8b9b9l1wl1mva23yz4zir53p6r5z31s39wmxz19pj12qvx")
+               "1x5fyr2185nx3qlyariykdz44hcy5azimrk9db2p707dg08bjhsd")
               #:trivial? #t))
     (home-page "https://www.tug.org/")
     (synopsis "Configuration files for LaTeX-related formats")
@@ -3068,7 +3094,7 @@  (define-public texlive-latex-base
                   "/tex/generic/config/luatexiniconfig.tex"
                   "/web2c/texmfcnf.lua")
             (base32
-             "0yjx7nw9mgfgnq1givkzbxh7z7ncw1liaddjgm7n2nwn0aw6xfdg")))))
+             "065j47i2785nbj2507pzxlscyrwr4ghv6nksc3a01rp62bq8kkjp")))))
       (propagated-inputs
        (list texlive-dehyph-exptl
              texlive-etex
@@ -3748,7 +3774,7 @@  (define-public texlive-tetex
                     "/fonts/enc/dvips/tetex/"
                     "/fonts/map/dvips/tetex/")
               (base32
-               "1si3as8mwi8837965djlw6jhwwzsp3r1hkflvdxv2avx9vb45hjb")
+               "05mf8yqdj2wrc1zm3al2j4aam2wx0ky6a7slxw17pkd1c7rmvjrq")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/tetex")
     (synopsis "Font maps originally from teTeX")
@@ -8195,7 +8221,7 @@  (define-public texlive-pdftex
                     "/tex/generic/pdftex/glyphtounicode.tex"
                     "/tex/generic/pdftex/pdfcolor.tex")
               (base32
-               "1wx928rqsv0x1a8vc7aq49w3nglr4bmlhl822slqglymfxrmb91b")
+               "0w4ar5g7x4w8zw8z6hdwqxwcbglfzzq7pcznz8rawllwy6dssr8g")
               #:trivial? #t))
     ;; TODO: add this missing package:
     ;; dehyph
@@ -12524,7 +12550,7 @@  (define-public texlive-xetex
                     "/fonts/misc/xetex/fontmapping/base/"
                     "/tex/xelatex/xetexconfig/")
               (base32
-               "1gmgagvsv2qknrjzjk840ca3wging8wfc20rgq7bnhphm9n87m6q")
+               "0j396anlhk5pqrnwxr8bpq55sp3qfyb6n9g08x4nmaa6p9b9y8ab")
               #:trivial? #t))
     (propagated-inputs
      (list texlive-generic-atbegshi
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2559634c29..131f001400 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -3795,7 +3795,7 @@  (define-public libsmpeg
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
+                "1srzyjks9s0g4k7ms8vc0hjby2g6shndnr552hl63pn90sgmwxs9"))))
     (build-system gnu-build-system)
     (arguments
      ;; libsmpeg fails to build with -std=c++11, which is the default with
@@ -3831,7 +3831,7 @@  (define-public libsmpeg-with-sdl1
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0jfi085rf3fa5xsn0vd3nqf32my8ph9c6a9445y7a8lrlz4dms64"))))
+                "1jy9xqykhwfg8in0fxjcqcvwazii1ckzs39wp749b926q7ny5bwy"))))
     (inputs
      (list sdl))))
 
diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm
index d970c1beb9..aefd573d11 100644
--- a/guix/build-system/texlive.scm
+++ b/guix/build-system/texlive.scm
@@ -34,7 +34,8 @@  (define-module (guix build-system texlive)
             texlive-ref
             texlive-origin
             %texlive-tag
-            %texlive-revision))
+            %texlive-revision
+            %texlive-date))
 
 ;; Commentary:
 ;;
@@ -46,6 +47,7 @@  (define-module (guix build-system texlive)
 ;; are taken from https://www.tug.org/svn/texlive/tags/
 (define %texlive-tag "texlive-2021.3")
 (define %texlive-revision 59745)
+(define %texlive-date "2021-06-28 21:59:21Z")
 
 (define (texlive-origin name version locations hash)
   "Return an <origin> object for a TeX Live package consisting of multiple
diff --git a/guix/build/svn.scm b/guix/build/svn.scm
index 2d960cb364..bc6f3155a0 100644
--- a/guix/build/svn.scm
+++ b/guix/build/svn.scm
@@ -1,5 +1,5 @@ 
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
@@ -47,6 +47,11 @@  (define* (svn-fetch url revision directory
            ;; verify the checksum later.  This can be removed when
            ;; ca-certificates package is added.
            "--trust-server-cert" "-r" (number->string revision)
+
+           ;; Disable keyword substitution (keywords are CVS-like strings
+           ;; like "$Date$", "$Id$", and so on).
+           "--ignore-keywords"
+
            `(,@(if (and user-name password)
                    (list (string-append "--username=" user-name)
                          (string-append "--password=" password))
-- 
2.39.2