Package: guix;
Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Date: Mon, 5 Oct 2020 17:37:01 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 43818 <at> debbugs.gnu.org Subject: bug#43818: [PATCH] packages: Fix a bug in %patch-path. Date: Tue, 27 Oct 2020 12:41:40 -0400
Hello, Ludovic Courtès <ludo <at> gnu.org> writes: > Hi, > > Maxim Cournoyer <maxim.cournoyer <at> 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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.