X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fasdf-install%2Finstaller.lisp;h=b55532a17645882e66e376f36460e85a3c11f970;hb=9837343101c3da7b3a8f94609ec116ec5025436a;hp=e20d6cf3c6ccc485fe3a3943797b0bcce958aaac;hpb=68ea71d0f020f2726e3c56c1ec491d0af734b3a4;p=sbcl.git diff --git a/contrib/asdf-install/installer.lisp b/contrib/asdf-install/installer.lisp index e20d6cf..b55532a 100644 --- a/contrib/asdf-install/installer.lisp +++ b/contrib/asdf-install/installer.lisp @@ -2,8 +2,9 @@ (defvar *proxy* (posix-getenv "http_proxy")) (defvar *cclan-mirror* - (or (posix-getenv "CCLAN_MIRROR") - "http://ftp.linux.org.uk/pub/lisp/cclan/")) + (let ((mirror (posix-getenv "CCLAN_MIRROR"))) + (or (and (not (string= mirror "")) mirror) + "http://ftp.linux.org.uk/pub/lisp/cclan/"))) (defun directorify (name) ;; input name may or may not have a training #\/, but we know we @@ -13,7 +14,8 @@ (merge-pathnames (make-pathname :directory `(:relative ,(pathname-name path))) (make-pathname :directory (pathname-directory path) - :host (pathname-host path))) + :host (pathname-host path) + :device (pathname-device path))) path))) (defvar *sbcl-home* (directorify (posix-getenv "SBCL_HOME"))) @@ -136,7 +138,7 @@ (defun copy-stream (in out) - (let ((buf (make-array 8192 :element-type (stream-element-type in)))) + (let ((buf (make-array 8192 :element-type (stream-element-type out)))) (loop for pos = (read-sequence buf in) until (zerop pos) do (write-sequence buf out :end pos)))) @@ -255,8 +257,14 @@ (elt *locations* (1- response))))) (defparameter *tar-program* - (or #+darwin "gnutar" - "tar")) + ;; Please do not "clean this up" by using a bunch of #+'s and one + ;; #-. When the conditional is written this way, adding a new + ;; special case only involves one change. If #- is used, two changes + ;; are needed. -- JES, 2007-02-12 + (progn + "tar" + #+darwin "gnutar" + #+(or sunos netbsd) "gtar")) (defun get-tar-directory (packagename) (let* ((tar (with-output-to-string (o)