Ludovic Courtès skribis: > Hi Guillaume, > > Guillaume Le Vaillant skribis: > >> From 1e37a89b943a818b5274c1d5f31143ca48bad40a Mon Sep 17 00:00:00 2001 >> From: Guillaume Le Vaillant >> Date: Thu, 6 May 2021 10:32:56 +0200 >> Subject: [PATCH] build-system: asdf: Work around package-name->name+version >> bug. >> >> This patch modifies how the name of the main Common Lisp system is extracted >> from the full Guix package name to work around bug#48225 concerning the >> 'package-name->name+version' function. >> >> Fixes . >> >> * guix/build-system/asdf.scm (asdf-build): Fix 'systems' function. >> * guix/build/asdf-build-system.scm (main-system-name): Fix it. > > If it works for you, sounds good to me. Please do rebuild as many CL > packages, with different CL implementations, to make sure we do not > overlook any corner case. > >> + (let* ((lisp-prefix (string-append lisp-type "-")) >> + (package-name (hyphen-separated-name->name+version >> + (if (string-prefix? lisp-prefix name) >> + (string-drop name >> + (string-length lisp-prefix)) >> + name)))) >> + `(quote ,(list package-name))) > > I’d like to see a FIXME in there: this is all guesswork and we should > eventually replace guesses with known-good info. > > What would it take to pass the right package name and implementation > name upfront from the package? > > Thanks, > Ludo’. I tried rebuilding all the sbcl-*, cl-* and ecl-* packages, as well as stumpwm, uglify-js and nyxt, and I didn't see new failures. I pushed the patch as 2fa8fd4af59af0de392352915fa50fc21a4cf98a. When 'package-name->name+version' returns a bad result leading to an incorrect default Lisp system name being computed, it can be overridden using the '#:asd-systems' parameter of 'asdf-build-system', which should work around the problem in almost all cases. However I suppose other build systems could have issues if they make use of 'package-name->name+version' on a package with a name like "abc-123-def-1.2.3" (depending how they use the result).