Subject: broken asdf-build-system on some CL source packages

From: Jiří Špaček <[email-masked]>
Date: Sun, 31 May 2020 16:12:55 +0000

This problem manifests when installing cl-stumpwm package from
gnu/packages/wm.scm but other cl-* packages are likely to be affected
as well.

guix build cl-stumpwm fails with:

...
phase `unpack' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./autogen.sh: changing `/bin/sh' to
`/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/sh'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `install'
Backtrace:
           8 (primitive-load "/gnu/store/3yrl560yxms43sqvyhv0g5xy4ki…")
In ice-9/eval.scm:
   191:35  7 (_ #f)
In guix/build/gnu-build-system.scm:
    838:2  6 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1736:10  5 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
   857:16  4 (every1 #<procedure 7ffff4b067c0 at guix/build/gnu-bui…> …)
In guix/build/gnu-build-system.scm:
   847:30  3 (_ _)
In guix/build/asdf-build-system.scm:
   128:24  2 (install #:inputs _ #:outputs _)
In unknown file:
           1 (string-take "stumpwm" #f)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Wrong type (expecting exact integer): #f

The problem seems to be caused by this commit
https://git.savannah.gnu.org/cgit/guix.git/commit/guix/build/asdf-build-system.scm?id=c3f1f09586967c3fefbb280014a4d46b57786696
 "
build: asdf-build-system: Use SBCL source in CL packages.
"

More specifically the way the parent-source is computed does not seem
handle packages that lack hyphen character in the name of their
parent.
+ (define parent-source
+ (and parent
+ (string-append parent "/share/common-lisp/"
+ (string-take parent-name
+ (string-index parent-name #\-))
+ "-source")))

My guix describe is:
Generation 10    May 31 2020 18:04:46    (current)
  my-personal-packages 451bc28
    repository URL: https://github.com/geostarling/guix-packages.git
    branch: master
    commit: 451bc28676242ff3ada89eae73b3a914836205e6
  guix bf6438f
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: bf6438f46583003cfd851c9f8ff4104aa3107c4d

Thank you for advice,

Jiri