From: Andy S. <an...@gu...> - 2005-08-05 15:30:07
|
(I'm under the impression asdf-install is maintained as part of SBCL for the time being, so I sent this to sbcl-devel; apologies if this should be directed somewhere more specific.) I nearly tore my hair out this morning trying to figure out why asdf-install was untarring what it installed, and then simply returning nil without loading the package or its dependencies. Well, it's because I'm using FreeBSD, and `tar` output looks like this: x thingy-0.1/ x thingy-0.1/thingy.asd and so asdf-install reads that output and starts poking around in "~/.sbcl/site/x thingy-0.1/" where of course it can't find anything. I see this has already been worked around for darwin by simply using GNU tar, so I just did this for now (probably not the best long-term solution): (FreeBSD's GNU tar is 'gtar' by default, although I'm not sure whether the system necessarily comes with it installed in all cases - I have no idea what NetBSD or OpenBSD do though.) Index: installer.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/contrib/asdf-install/installer.lisp,v retrieving revision 1.11 diff -u -r1.11 installer.lisp --- installer.lisp 14 Jul 2005 16:30:06 -0000 1.11 +++ installer.lisp 5 Aug 2005 15:11:55 -0000 @@ -5,6 +5,11 @@ (or (posix-getenv "CCLAN_MIRROR") "http://ftp.linux.org.uk/pub/lisp/cclan/")) +(defvar *tar-program* + #+darwin "gnutar" + #+freebsd "gtar" + #-(or darwin freebsd) "tar") + (defun directorify (name) ;; input name may or may not have a training #\/, but we know we ;; want a directory @@ -249,8 +254,7 @@ (let* ((tar (with-output-to-string (o) (or - (sb-ext:run-program #-darwin "tar" - #+darwin "gnutar" + (sb-ext:run-program *tar-program* (list "-C" (namestring source) "-xzvf" (namestring packagename)) :output o |