[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43818: [PATCH] packages: Fix a bug in %patch-path.
From: |
Maxim Cournoyer |
Subject: |
bug#43818: [PATCH] packages: Fix a bug in %patch-path. |
Date: |
Tue, 27 Oct 2020 12:41:40 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hello,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Fixes <https://issues.guix.gnu.org/43818>.
>>
>> Having the Guix root trailed by a slash in the GUILE_LOAD_PATH would
>> previously cause %patch-path to not return an entry with the patches
>> sub-directory, leading to errors such as:
>>
>> While executing meta-command:
>> ERROR:
>> 1. &formatted-message:
>> format: "~a: patch not found\n"
>> arguments: ("icecat-use-older-reveal-hidden-html.patch")
>>
>> * gnu/packages.scm (strip-trailing-slash): New procedure.
>> (%patch-path): Use it to strip any trailing slash from the %load-path
>> entries.
>> ---
>> gnu/packages.scm | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> How can this be reproduced, outside Geiser? I tried:
>
> ./pre-inst-env sh -c 'GUILE_LOAD_PATH=$PWD/:$GUILE_LOAD_PATH guix build
> icecat -n'
>
> with an explicit trailing slash, but it doesn’t trigger the problem.
That's because %patch-path searches for a match in all of the entries in
GUILE_LOAD_PATH, and pre-inst-env added a correct version:
modified gnu/packages.scm
@@ -167,7 +167,7 @@ flags."
(if (string=? directory %distro-root-directory)
(string-append directory "/gnu/packages/patches")
directory))
- %load-path)))
+ (pk '%load-path %load-path))))
;;; (%load-path ("/home/maxim/src/guix/" "/home/maxim/src/guix"
"/home/maxim/src/guix"
"/gnu/store/dgnjvl87m41rmlcgskl9w1lq47wi77i3-profile/share/guile/site/3.0"
"/gnu/store/9c4l0pj3rz2kgr984fqxa8fwblkllnz1-profile/share/guile/site/3.0"
[...]
"/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4/share/guile"))
The following should reproduce it:
$ GUILE_LOAD_PATH=$PWD/:$GUILE_LOAD_PATH
GUILE_LOAD_COMPILED_PATH=$PWD:$GUILE_LOAD_COMPILED_PATH guile -c '(use-modules
(gnu packages linux))'
Backtrace:
In ice-9/boot-9.scm:
3393:24 19 (_)
222:29 18 (map1 (((guix licenses) #:select (lgpl2.0+)) ((guix packages))
((guix download)) ((guix build-system cmake)) ((guix build-system gnu)) ((gnu
packages)) ((gnu packages freedesktop)) ((gnu # #)) # …))
222:29 17 (map1 (((guix packages)) ((guix download)) ((guix build-system
cmake)) ((guix build-system gnu)) ((gnu packages)) ((gnu packages freedesktop))
((gnu packages glib)) ((gnu packages gtk)) ((# …)) …))
222:29 16 (map1 (((guix download)) ((guix build-system cmake)) ((guix
build-system gnu)) ((gnu packages)) ((gnu packages freedesktop)) ((gnu packages
glib)) ((gnu packages gtk)) ((gnu packages gnuzilla)) …))
222:29 15 (map1 (((guix build-system cmake)) ((guix build-system gnu)) ((gnu
packages)) ((gnu packages freedesktop)) ((gnu packages glib)) ((gnu packages
gtk)) ((gnu packages gnuzilla)) ((gnu packages …)) …))
222:29 14 (map1 (((guix build-system gnu)) ((gnu packages)) ((gnu packages
freedesktop)) ((gnu packages glib)) ((gnu packages gtk)) ((gnu packages
gnuzilla)) ((gnu packages linux)) ((gnu packages nss)) # …))
222:29 13 (map1 (((gnu packages)) ((gnu packages freedesktop)) ((gnu
packages glib)) ((gnu packages gtk)) ((gnu packages gnuzilla)) ((gnu packages
linux)) ((gnu packages nss)) ((gnu packages perl)) ((…)) …))
222:29 12 (map1 (((gnu packages freedesktop)) ((gnu packages glib)) ((gnu
packages gtk)) ((gnu packages gnuzilla)) ((gnu packages linux)) ((gnu packages
nss)) ((gnu packages perl)) ((gnu packages #)) (#) #))
222:29 11 (map1 (((gnu packages glib)) ((gnu packages gtk)) ((gnu packages
gnuzilla)) ((gnu packages linux)) ((gnu packages nss)) ((gnu packages perl))
((gnu packages pkg-config)) ((gnu packages qt)) ((…))))
222:29 10 (map1 (((gnu packages gtk)) ((gnu packages gnuzilla)) ((gnu
packages linux)) ((gnu packages nss)) ((gnu packages perl)) ((gnu packages
pkg-config)) ((gnu packages qt)) ((gnu packages xml))))
222:17 9 (map1 (((gnu packages gnuzilla)) ((gnu packages linux)) ((gnu
packages nss)) ((gnu packages perl)) ((gnu packages pkg-config)) ((gnu packages
qt)) ((gnu packages xml))))
3297:17 8 (resolve-interface (gnu packages gnuzilla) #:select _ #:hide _
#:prefix _ #:renamer _ #:version _)
In ice-9/threads.scm:
390:8 7 (_ _)
In ice-9/boot-9.scm:
3223:13 6 (_)
In ice-9/threads.scm:
390:8 5 (_ _)
In ice-9/boot-9.scm:
3507:20 4 (_)
2806:4 3 (save-module-excursion #<procedure 7f27e7785030 at
ice-9/boot-9.scm:3508:21 ()>)
3527:26 2 (_)
In unknown file:
1 (primitive-load-path "gnu/packages/gnuzilla" #<procedure
7f27e7795aa0 at ice-9/boot-9.scm:3514:37 ()>)
In gnu/packages/gnuzilla.scm:
598:23 0 (_)
gnu/packages/gnuzilla.scm:598:23: ERROR:
1. &formatted-message:
format: "~a: patch not found\n"
arguments: ("icecat-use-older-reveal-hidden-html.patch")
Thanks!
Maxim