X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fasdf-install%2Finstaller.lisp;h=b55532a17645882e66e376f36460e85a3c11f970;hb=6b8baeece6cf870e3f979a9f09c32985c64c04de;hp=4dd97a5ad32541c89ba742a5848ebc681347e47b;hpb=18aa51db1d51cb20eb35a8e34c36cd78446c6bdd;p=sbcl.git diff --git a/contrib/asdf-install/installer.lisp b/contrib/asdf-install/installer.lisp index 4dd97a5..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,9 +257,14 @@ (elt *locations* (1- response))))) (defparameter *tar-program* - #+darwin "gnutar" - #+sunos "gtar" - #-(or darwin sunos) "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)