Steel Bank Common Lisp

The function ASDF::SPLIT is undefined

Reported by Phil Hargett on 2010-08-03
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

Platform : SBCL 1.0.40 64-bit with threads, Mac OS X Snow Leopard

*FEATURES* : (:PARENSCRIPT :HUNCHENTOOT :SBCL-DEBUG-PRINT-VARIABLE-ALIST :BORDEAUX-THREADS
 :CL-PPCRE :CL-FAD :CHUNGA :SPLIT-SEQUENCE CFFI-FEATURES:FLAT-NAMESPACE
 CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX CFFI-FEATURES:DARWIN :CFFI
 CFFI-SYS::FLAT-NAMESPACE :LITTLE-ENDIAN :FLEXI-STREAMS :CL-JSON-CLOS :CL-JSON
 :THREAD-SUPPORT :ASDF2 :ASDF :SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :SB-DOC
 :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS
 :IEEE-FLOATING-POINT :X86-64 :INODE64 :DARWIN9-OR-BETTER :UNIX :MACH-O :BSD
 :DARWIN :MACH-EXCEPTION-HANDLER :SB-LUTEX :UD2-BREAKPOINTS :GENCGC
 :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK :LINKAGE-TABLE
 :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP :RAW-INSTANCE-INIT-VOPS
 :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-VECTORS
 :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-FIXED-OBJECTS :ALIEN-CALLBACKS
 :CYCLE-COUNTER :COMPLEX-FLOAT-VOPS :FLOAT-EQL-VOPS :INLINE-CONSTANTS
 :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC
 :OS-PROVIDES-BLKSIZE-T :OS-PROVIDES-SUSECONDS-T)

Test case:

1. Open a terminal and run SBCL (for REPL)
2. type (require 'asdf)
3. type (require 'asdf-install)
4. type (asdf-install:install :cl-html-parse) ;; or any package

Expected:

Installation proceeds automatically to conclusion with no errors

Results:

Hit an error saying :"The function ASDF::SPLIT is undefined," with restarts for SKIP-GPG-CHECK and ABORT.

Details:

I'm using ASDF-INSTALL to install a package into my environment, and every time I do on 1.0.40 (Mac OS X Snow Leopard, FWIW), I receive this error. There is a restart on the stack to "skip gpg check," so I often just choose that restart and continue--package installation proceeds fine.

After reviewing the code, it appears that in 1.0.40, the file contrib/asdf-install/installer.lisp still refers to asdf::split @ line 203, but contrib/asdf/asdf.lisp contains no such function. That function did appear in asdf.lisp for 1.0.39, but appears to have been replaced in 1.0.40 by asdf::split-string. However, given that I'm hitting this error, it would appear that installer.lisp was not updated with this change.

That I'm getting a "skip gpg check" restart is simply because verify-gpg-signature/url is called @ line 180 of installer.lisp, and it's wrapped in a general restart-case--so even though the issue has nothing to do with GPG, that restart catches any error that happens on the code path.

Hope the above helps!

Faré (fahree) wrote :

Note: at some point, someone in the SBCL team might want to merge ASDF-INSTALL with the upstream from common-lisp.net which does work with ASDF 2.

FWIW, this bug effectively disables GPG signature verification, since GPG output (of any kind) can't be parsed by the code shipped in 1.0.40.

Thus, one could regarding this as a security bug, but that depends upon how one regards asdf-install and / or GPG check. Not mine to say, and the workaround is very easy...and very non-blocking.

Not sure of patch guidelines, and I'm clearly not a submitter...but in the interest of speed, here's a patch created from a cvs checkout today, using cvs diff -u.

Hope that helps!

:)

 status fixcommitted
 done

Phil Hargett <email address hidden> writes:

> Not sure of patch guidelines, and I'm clearly not a submitter...but in
> the interest of speed, here's a patch created from a cvs checkout today,
> using cvs diff -u.
>
> Hope that helps!

Thanks. Fix committed as sbcl-1.0.41.56.

Christophe

Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers