Message ID | 877dhehg6t.fsf@gnu.org |
---|---|
State | Accepted |
Headers | show |
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.
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’.
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
Hey Ludo,
> I agree with Maxime, let’s do that.
Here we go, let's see if it fixes the evaluation :).
Thanks,
Mathieu
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
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