all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Simon Tournier <zimon.toutoune@gmail.com>
Cc: maxim.cournoyer@gmail.com, 73073@debbugs.gnu.org
Subject: [bug#73073] [PATCH 0/6] Allow origin with label as inputs.
Date: Fri, 06 Sep 2024 23:45:04 +0200	[thread overview]
Message-ID: <87o750wj6n.fsf@gnu.org> (raw)
In-Reply-To: <cover.1725636992.git.zimon.toutoune@gmail.com> (Simon Tournier's message of "Fri, 6 Sep 2024 17:51:14 +0200")

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

Hello,

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

> The reason is because ’sanitize-inputs’; see module (guix packages).
>
>     ((_ (list args ...))
>      (add-input-labels args ...))
>     ((_ inputs)
>      (maybe-add-input-labels inputs))))

[...]

> The procedure ’maybe-add-input-labels’ reads: if the first element of
> the ’inputs’ record field is using the “old style“ then return all
> as-is, assuming all are “old style”.  Else apply to all the ’inputs’
> elements the procedure ’add-input-label’.

Yes: as an optimization, we just check the first element or even just
the syntax (whether the value starts with (list …)).

This is one reason why I’d rather avoid the change you’re suggesting.
But more importantly: I think we should avoid polymorphic lists for
clarity (the principle is followed in most of the code), and
reintroducing labels would be a step backwards.

To be clear, I understand the current situation is not perfect, but I
would rather look for solutions that do not involve undoing what’s taken
this long to do.

The main issue we want to address here is origins being hidden from
‘package-direct-sources’, right?

What if we could do this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 864 bytes --]

diff --git a/guix/packages.scm b/guix/packages.scm
index f373136d22..624d3d8c45 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -1320,7 +1320,16 @@ (define (package-direct-sources package)
                    ((_ (? origin? orig) _ ...)
                     orig)
                    (_ #f))
-                  (package-direct-inputs package))))
+                  (package-direct-inputs package))
+    (match (assoc #:phases (package-arguments package))
+      ((#:phases (? gexp? phases) . _)
+       (filter-map (lambda (input)
+                     (match (gexp-input-thing input)
+                       ((? origin? o) o)
+                       (_ #f)))
+                   (gexp-inputs phases)))
+      (_
+       '()))))
 
 (define (package-transitive-sources package)
   "Return PACKAGE's direct sources, and their direct sources, recursively."

[-- Attachment #3: Type: text/plain, Size: 149 bytes --]


?  (Currently we can’t because ‘gexp-inputs’ is private.)

Or, alternatively, we’d have origins without labels in inputs, with
this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: Type: text/x-patch, Size: 401 bytes --]

diff --git a/guix/packages.scm b/guix/packages.scm
index f373136d22..8b08f0d379 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -676,6 +676,8 @@ (define (add-input-label input)
               "_")
          ,obj
          ,@(if (string=? output "out") '() (list output)))))
+    ((? origin? origin)
+     (list (or (origin-actual-file-name origin) "_") origin))
     (x
      `("_" ,x))))
 

[-- Attachment #5: Type: text/plain, Size: 225 bytes --]


… meaning we could write (this-package-input "git-manpages.tar.gz") or
similar.  (This particular change would need tweaks in a few packages
such as ‘tzdata’ to avoid a full rebuild.)

WDYT?

Thanks,
Ludo’.

  parent reply	other threads:[~2024-09-06 21:46 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-06 15:51 [bug#73073] [PATCH 0/6] Allow origin with label as inputs Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 1/6] guix: packages: " Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 2/6] gnu: dmd-bootstrap: Move phobos origin from phases to native-inputs Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 3/6] gnu: smithforth: Move system.fs " Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 4/6] gnu: gnome-recipes: Move libgd " Simon Tournier
2024-09-06 17:33   ` Liliana Marie Prikler
2024-09-06 18:11     ` Simon Tournier
2024-09-06 20:14       ` Liliana Marie Prikler
2024-09-07 11:37         ` Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 5/6] gnu: farstream: Move common " Simon Tournier
2024-09-06 15:54 ` [bug#73073] [PATCH 6/6] gnu: gnulib: Move phobos " Simon Tournier
2024-09-06 21:45 ` Ludovic Courtès [this message]
2024-09-07 13:40   ` [bug#73073] [PATCH 0/6] Allow origin with label as inputs Simon Tournier
2024-09-07 14:49     ` Liliana Marie Prikler
2024-09-16 20:13     ` Ludovic Courtès
2024-09-10  1:27 ` [bug#73073] [PATCH v2 0/8] Allow origin inside inputs with "new style" Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 1/8] guix: packages: " Simon Tournier
2024-09-16 20:19     ` Ludovic Courtès
2024-09-16 20:42       ` Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 2/8] gnu: gnome-recipes: Move libgd origin from phases to native-inputs Simon Tournier
2024-09-10  4:30     ` Liliana Marie Prikler
2024-09-10  7:58       ` Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 3/8] gnu: dmd-bootstrap: Move phobos " Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 4/8] gnu: smithforth: Move system.fs " Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 5/8] gnu: farstream: Move common " Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 6/8] gnu: gnulib: Move phobos " Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 7/8] gnu: git: Move git-manpages " Simon Tournier
2024-09-10  1:27   ` [bug#73073] [PATCH v2 8/8] gnu: cgit: Remove input labels Simon Tournier

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=87o750wj6n.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=73073@debbugs.gnu.org \
    --cc=maxim.cournoyer@gmail.com \
    --cc=zimon.toutoune@gmail.com \
    /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.