The function ASDF::SPLIT is undefined

Bug #612998 reported by Phil Hargett
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
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!

Revision history for this message
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.

Revision history for this message
Phil Hargett (phil-haphazardhouse) wrote :

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.

Revision history for this message
Phil Hargett (phil-haphazardhouse) wrote :

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!

:)

Revision history for this message
Christophe Rhodes (csr21-cantab) wrote : Re: [Bug 612998] Re: The function ASDF::SPLIT is undefined

 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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.