~ruther/guix-local

f8f005815efdf9f0d5d2a5ac30c6fdd19aa22e72 — Ludovic Courtès 1 year, 5 months ago e9e4b2f
packages: Use origin file names as their input labels.

* guix/packages.scm (add-input-label): Rely on 'origin-actual-file-name' for
internal inputs labels.
* tests/packages.scm ("this-package-input, origin"): New test.
* doc/guix.texi (package Reference): Mention origin lookup for
‘lookup-package-input’ & co.
* gnu/packages/base.scm (tzdata)[inputs]: Reintroduce label.
* gnu/packages/tex.scm (texlive-hyphen-complete)[inputs]: Likewise.
(texlive-newverbs)[native-inputs]: Likewise.

Change-Id: I6ba5352b1b1b8ab810da3730b09cb9db61d6429c
Co-authored-by: Simon Tournier <zimon.toutoune@gmail.com>
5 files changed, 41 insertions(+), 20 deletions(-)

M doc/guix.texi
M gnu/packages/base.scm
M gnu/packages/tex.scm
M guix/packages.scm
M tests/packages.scm
M doc/guix.texi => doc/guix.texi +6 -2
@@ 8061,8 8061,8 @@ inputs.
Look up @var{name} among @var{package}'s inputs (or native, propagated,
or direct inputs).  Return it if found, @code{#f} otherwise.

@var{name} is the name of a package depended on.  Here's how you might
use it:
@var{name} is the name of a package or the file name of an origin
depended on.  Here's how you might use it:

@lisp
(use-modules (guix packages) (gnu packages base))


@@ 8073,6 8073,10 @@ use it:

In this example we obtain the @code{gmp} package that is among the
direct inputs of @code{coreutils}.

When looking up an origin, use the name that appears in the origin's
@code{file-name} field or its default file name---e.g.,
@code{"foo-1.2.tar.gz"}.
@end deffn

@cindex development inputs, of a package

M gnu/packages/base.scm => gnu/packages/base.scm +11 -8
@@ 1778,14 1778,17 @@ command.")
                     (delete-file-recursively
                      (string-append out "/share/zoneinfo-leaps")))))
               (delete 'configure))))
    (inputs (list (origin
                    (method url-fetch)
                    (uri (string-append
                          "https://data.iana.org/time-zones/releases/tzcode"
                          version ".tar.gz"))
                    (sha256
                     (base32
                      "07hn7hn2klw4dfyr673ril2nrk18198hbfv25gljsvc833hzk9g9")))))
    (inputs `(("_"
               ;; Note: The "_" label above is here to avoid a full rebuild.
               ;; TODO: Remove it on next rebuild cycle.
               ,(origin
                  (method url-fetch)
                  (uri (string-append
                        "https://data.iana.org/time-zones/releases/tzcode"
                        version ".tar.gz"))
                  (sha256
                   (base32
                    "07hn7hn2klw4dfyr673ril2nrk18198hbfv25gljsvc833hzk9g9"))))))
    (home-page "https://www.iana.org/time-zones")
    (synopsis "Database of current and historical time zones")
    (description "The Time Zone Database (often called tz or zoneinfo)

M gnu/packages/tex.scm => gnu/packages/tex.scm +12 -9
@@ 706,14 706,15 @@ of user-specified directories similar to how shells look up executables.")
                     (string-append "File.join(\"" ptex "\"")))
                  (invoke "ruby" "generate-ptex-patterns.rb"))))))))
    (native-inputs
     (list ruby-2.7
           ruby-hydra-minimal/pinned
           ;; Build phase requires "docstrip.tex" from TEXLIVE-LATEX.
           ;; However, adding this package to native inputs would initiate
           ;; a circular dependency.  To work around this, use TEXLIVE-LATEX
           ;; source, then add "docstrip.tex" to TEXINPUTS before build.
           (package-source texlive-latex)
           texlive-tex))
     ;; TODO: Remove input labels on next rebuild cycle.
     `(("ruby" ,ruby-2.7)
       ("ruby-hydra-minimal" ,ruby-hydra-minimal/pinned)
       ;; Build phase requires "docstrip.tex" from TEXLIVE-LATEX.
       ;; However, adding this package to native inputs would initiate
       ;; a circular dependency.  To work around this, use TEXLIVE-LATEX
       ;; source, then add "docstrip.tex" to TEXINPUTS before build.
       ("_" ,(package-source texlive-latex))
       ("texlive-tex" ,texlive-tex)))
    (home-page "https://ctan.org/pkg/hyph-utf8")
    (synopsis "Hyphenation patterns expressed in UTF-8")
    (description


@@ 65048,7 65049,9 @@ Unicode option of @code{inputenc} or @code{inputenx}, or by XeLaTeX/LuaLaTeX.")
                                               "tex/generic/ydoc/ydocstrip.tex")
                            "build/")
              (setenv "TEXINPUTS" (string-append (getcwd) "/build:")))))))
    (native-inputs (list (package-source texlive-ydoc)))
    (native-inputs
     ;; TODO: Remove input label on next rebuild cycle.
     `(("_" ,(package-source texlive-ydoc))))
    (home-page "https://ctan.org/pkg/newverbs")
    (synopsis "Define new versions of @code{\\verb}")
    (description

M guix/packages.scm => guix/packages.scm +3 -0
@@ 678,6 678,9 @@ Texinfo.  Otherwise, return the string."
              "_")
         ,obj
         ,@(if (string=? output "out") '() (list output)))))
    ((? origin? origin)
     ;; Allow references to origins by their file name.
     (list (or (origin-actual-file-name origin) "_") origin))
    (x
     `("_" ,x))))


M tests/packages.scm => tests/packages.scm +9 -1
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>


@@ 2051,6 2051,14 @@
   (dummy-package "a"
     (arguments (this-package-native-input "hello")))))

(test-equal "this-package-input, origin"
  "http://example.org/foo.tar.gz"
  (origin-uri
   (package-arguments
    (dummy-package "a"
      (inputs (list (dummy-origin (uri "http://example.org/foo.tar.gz"))))
      (arguments (this-package-input "foo.tar.gz"))))))

(test-eq "modify-inputs, replace"
  coreutils
  ;; Replace an input; notice that the label in unchanged.