Subject: [PATCH 1/2] svn-download: Disable keyword expansion.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 7 Apr 2023 16:07:23 +0200

From: Ludovic Courtès <[email-masked]>

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.

Reported by Timothy Sample <[email-masked]>.

* guix/build/svn.scm (svn-fetch): Pass '--ignore-keywords'.
* gnu/packages/java.scm (java-geronimo-xbean-reflect):
* gnu/packages/machine-learning.scm (ghmm): Adjust source hash
accordingly.
* gnu/packages/tex.scm (texlive-hyphen-base): Likewise.
(texlive-dvips): Likewise.
(texlive-cm): Likewise.
(texlive-tex-plain): Likewise.
(texlive-kpathsea): Likewise
(texlive-latexconfig): Likewise.
(texlive-tetex): Likewise.
(texlive-pdftex): Likewise.
* gnu/packages/video.scm (libsmpeg): Likewise.
(libsmpeg-with-sdl1): Likewise.
---
 gnu/packages/java.scm             |  2 +-
 gnu/packages/machine-learning.scm |  2 +-
 gnu/packages/tex.scm              | 16 ++++++++--------
 gnu/packages/video.scm            |  4 ++--
 guix/build/svn.scm                |  9 ++++++++-
 5 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index de3a0003e5..1405d0d69a 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"
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..056741b052 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -731,7 +731,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")
@@ -783,7 +783,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 +1041,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 +1645,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 +2851,7 @@ (define-public texlive-kpathsea
                          "/web2c/tcvn-t5.tcx"
                          "/web2c/viscii-t5.tcx")
                    (base32
-                    "00q2nny7lw7jxyln6ch4h0alygbrzk8yynliyc291m53kds1h0mr")
+                    "08nfk5hicqbvnz73rjbxi97lcakd9i1k2cy4qi2cwghan92650jq")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -2914,7 +2914,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")
@@ -3748,7 +3748,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 +8195,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
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 47b5fd1593..359880df53 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/svn.scm b/guix/build/svn.scm
index 2d960cb364..875d3c50ca 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 <[email-masked]>
+;;; Copyright © 2014, 2020, 2023 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2014 Sree Harsha Totakura <[email-masked]>
 ;;; Copyright © 2018 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2020 Simon Tournier <[email-masked]>
@@ -47,6 +47,13 @@ (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 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"
+
            `(,@(if (and user-name password)
                    (list (string-append "--username=" user-name)
                          (string-append "--password=" password))
-- 
2.39.2