diff mbox

[bug#49597,core-updates,00/15] Ajust packages to label-less input style

Message ID 877dhehg6t.fsf@gnu.org
State Accepted
Headers show

Commit Message

Mathieu Othacehe July 25, 2021, 9:54 a.m. UTC
Hey Ludo,

> I went ahead and pushed as d468a03a00738bb0742148e056f7a557aae08f2f.

The CI reports that core-updates evaluation is broken. That's because
"search-input-file" expects a relative FILE whereas some calls, such as
the one in the glib package provide an absolute one:

--8<---------------cut here---------------start------------->8---
(search-input-file (or native-inputs inputs)
                   (string-append
                    "/bin/python"
                    ,(version-major+minor
                      (package-version python))))))))
--8<---------------cut here---------------end--------------->8---

We could edit all those calls to use relative FILE arguments. Another
solution would be to make sure that search-input-file treats
"/bin/python" and "bin/python" the same way as proposed in the attached
patch.

That would be consistent with search-input-directory that already
accepts both "/include/xxx" and "include/xxx".

WDYT?

Thanks,

Mathieu

Comments

M July 25, 2021, 3:13 p.m. UTC | #1
Mathieu Othacehe schreef op zo 25-07-2021 om 11:54 [+0200]:
> The CI reports that core-updates evaluation is broken. That's because
> "search-input-file" expects a relative FILE whereas some calls, such as
> the one in the glib package provide an absolute one: [...]
> 
> We could edit all those calls to use relative FILE arguments. Another
> solution would be to make sure that search-input-file treats
> "/bin/python" and "bin/python" the same way as proposed in the attached
> patch.
> 
> That would be consistent with search-input-directory that already
> accepts both "/include/xxx" and "include/xxx".

Allowing both "/bin/python" and "bin/python" seems more robust than only
allowing "bin/python", so I'm not opposed to trimming leading slashes.
(Also less work than editing all those calls I presume.)

Nitpick (‘build: utils: Trim trailing slashes from search-input-file’):
it is leading slashes that are trimmed, not trailing slashes.

Maybe a warning could be emitted if there were any leading slashes?

Greetings,
Maxime.
Ludovic Courtès July 25, 2021, 5:05 p.m. UTC | #2
Hi,

Mathieu Othacehe <othacehe@gnu.org> skribis:

> The CI reports that core-updates evaluation is broken. That's because
> "search-input-file" expects a relative FILE whereas some calls, such as
> the one in the glib package provide an absolute one:
>
> (search-input-file (or native-inputs inputs)
>                    (string-append
>                     "/bin/python"
>                     ,(version-major+minor
>                       (package-version python))))))))
>
> We could edit all those calls to use relative FILE arguments. Another
> solution would be to make sure that search-input-file treats
> "/bin/python" and "bin/python" the same way as proposed in the attached
> patch.

Ouch, my bad; I was confident it was OK to have a leading slash.

> From 6920b87a9cb22c0a5c2ceaf6b6ca852a8e094732 Mon Sep 17 00:00:00 2001
> From: Mathieu Othacehe <othacehe@gnu.org>
> Date: Sun, 25 Jul 2021 11:43:05 +0200
> Subject: [PATCH] build: utils: Trim trailing slashes from search-input-file
>  input.
>
> Make sure that both:
>
> (search-input-file inputs "/bin/sh") and (search-input-file inputs "bin/sh")
>
> are supported.
>
> * guix/build/utils (search-input-file): Trim starting slash character from
> FILE.

I agree with Maxime, let’s do that.

Thank you, and apologies for the mess!

Ludo’.
Mathieu Othacehe July 25, 2021, 5:17 p.m. UTC | #3
Hey Maxime,

> Nitpick (‘build: utils: Trim trailing slashes from search-input-file’):
> it is leading slashes that are trimmed, not trailing slashes.
>
> Maybe a warning could be emitted if there were any leading slashes?

Thanks for having a look, I fixed the commit message and pushed as
0236013cd0fc86ff4a042885c735e3f36a7f5c25. I find both versions (with an
without leading slash) acceptable so didn't add a warning.

Mathieu
Mathieu Othacehe July 25, 2021, 5:18 p.m. UTC | #4
Hey Ludo,

> I agree with Maxime, let’s do that.

Here we go, let's see if it fixes the evaluation :).

Thanks,

Mathieu
diff mbox

Patch

From 6920b87a9cb22c0a5c2ceaf6b6ca852a8e094732 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Sun, 25 Jul 2021 11:43:05 +0200
Subject: [PATCH] build: utils: Trim trailing slashes from search-input-file
 input.

Make sure that both:

(search-input-file inputs "/bin/sh") and (search-input-file inputs "bin/sh")

are supported.

* guix/build/utils (search-input-file): Trim starting slash character from
FILE.
---
 guix/build/utils.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index e7782d3e08..3beb7da67a 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -631,8 +631,11 @@  FILE must be a string like \"bin/sh\". If FILE is not found, an exception is
 raised."
   (match inputs
     (((_ . directories) ...)
-     (or (search-path directories file)
-         (raise (condition (&search-error (path directories) (file file))))))))
+     ;; Accept both "bin/sh" and "/bin/sh" as FILE argument.
+     (let ((file (string-trim file #\/)))
+       (or (search-path directories file)
+           (raise
+            (condition (&search-error (path directories) (file file)))))))))
 
 (define (search-input-directory inputs directory)
   "Find a sub-directory named DIRECTORY among the INPUTS and return its
-- 
2.32.0