civodul pushed a commit to branch master
in repository guix.

commit f8f005815efdf9f0d5d2a5ac30c6fdd19aa22e72
Author: Ludovic Courtès <[email protected]>
AuthorDate: Wed Dec 4 18:26:07 2024 +0100

    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 <[email protected]>
---
 doc/guix.texi         |  8 ++++++--
 gnu/packages/base.scm | 19 +++++++++++--------
 gnu/packages/tex.scm  | 21 ++++++++++++---------
 guix/packages.scm     |  3 +++
 tests/packages.scm    | 10 +++++++++-
 5 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 57030102ca..9bf177a185 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -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
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 3a46ad2ec5..87c7568ef2 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -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)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 9f8cccecc8..f5dd1243ab 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -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
diff --git a/guix/packages.scm b/guix/packages.scm
index 0ce3276051..84f2c6f838 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -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))))
 
diff --git a/tests/packages.scm b/tests/packages.scm
index 7c28e75c45..1d901505aa 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <[email protected]>
+;;; Copyright © 2012-2024 Ludovic Courtès <[email protected]>
 ;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <[email protected]>
 ;;; Copyright © 2021 Maxim Cournoyer <[email protected]>
 ;;; Copyright © 2021 Maxime Devos <[email protected]>
@@ -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.

Reply via email to