all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Timothy Sample <samplet@ngyro.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 62712@debbugs.gnu.org, "Ludovic Courtès" <ludovic.courtes@inria.fr>
Subject: [bug#62712] [PATCH 0/2] Disable keyword expansion for Subversion downloads
Date: Fri, 07 Apr 2023 10:54:05 -0600	[thread overview]
Message-ID: <87jzyny6oi.fsf_-_@ngyro.com> (raw)
In-Reply-To: <20230407140724.8815-1-ludo@gnu.org> ("Ludovic Courtès"'s message of "Fri, 7 Apr 2023 16:07:23 +0200")

[-- Attachment #1: Type: text/plain, Size: 1716 bytes --]

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


[-- Attachment #2: 0001-svn-download-Do-not-expand-keywords.patch --]
[-- Type: text/x-patch, Size: 13687 bytes --]

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


  parent reply	other threads:[~2023-04-07 16:55 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-07 14:05 [bug#62712] [PATCH 0/2] Disable keyword expansion for Subversion downloads Ludovic Courtès
2023-04-07 14:07 ` [bug#62712] [PATCH 1/2] svn-download: Disable keyword expansion Ludovic Courtès
2023-04-07 14:07   ` [bug#62712] [PATCH 2/2] svn-download: Default to non-recursive checkouts Ludovic Courtès
2023-04-07 16:54   ` Timothy Sample [this message]
2023-04-08 21:23     ` [bug#62712] [PATCH 0/2] Disable keyword expansion for Subversion downloads Ludovic Courtès
2023-04-09 21:31       ` Christopher Baines
2023-04-12 13:49         ` Christopher Baines
2023-04-20  9:57           ` Ludovic Courtès
2023-04-25 12:41             ` Simon Tournier
2023-05-05 14:09             ` Simon Tournier
2023-05-06  0:22               ` Nicolas Goaziou
2023-05-09 12:22                 ` Simon Tournier
2023-05-10 16:22                   ` Ludovic Courtès
2023-05-11 21:40                     ` Nicolas Goaziou
2023-05-12 11:45                       ` Christopher Baines
2023-05-15 15:50                         ` Nicolas Goaziou
2023-05-16  9:54                           ` Christopher Baines
2023-06-18 21:21                             ` bug#62712: " 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

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

  git send-email \
    --in-reply-to=87jzyny6oi.fsf_-_@ngyro.com \
    --to=samplet@ngyro.com \
    --cc=62712@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=ludovic.courtes@inria.fr \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.