Subject: Re: bug#48225: Wrong result of package-name->name+version

From: Ludovic Courtès <[email-masked]>
Date: Sat, 08 May 2021 12:27:19 +0200

Hi Guillaume,

Guillaume Le Vaillant <[email-masked]> skribis:

> From 1e37a89b943a818b5274c1d5f31143ca48bad40a Mon Sep 17 00:00:00 2001
> From: Guillaume Le Vaillant <[email-masked]>
> 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 <https://issues.guix.gnu.org/41437>.
>
> * 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’.