[Openmcl-devel] ASDF-INSTALL Problems (Many)
Wade Humeniuk
wade.humeniuk at gmail.com
Thu Oct 29 09:53:10 PDT 2009
I went back to the code to try to find a better solution to the bsdtar
issue I reversed the change
to return-output-from-program in port.lisp and modifed installer.lisp to
(defun bsdtarp ()
"Determine if tar is bsdtar. bsdtar returns extracted archive lines
appended with \"x \""
(let ((tar-version-output
(return-output-from-program (tar-command) '("--version"))))
(search "bsdtar" tar-version-output :test 'string=)))
(defun extract-using-tar (to-dir tarball)
(let ((tar-command (tar-command)))
(if (and tar-command (probe-file tar-command))
(let ((tar-output (return-output-from-program tar-command
(tar-arguments to-dir tarball))))
(if (and (bsdtarp) (string= "x " tar-output :end2 2))
(subseq tar-output 2) ;; Strip first "x " from tar output.
tar-output))
(warn "Cannot find tar command ~S." tar-command))))
Wade
On Wed, Oct 28, 2009 at 7:51 PM, R. Matthew Emerson <rme at clozure.com> wrote:
> I just went ahead and committed fixes for these. We're probably causing
> future trouble for ourselves if we ever want to upgrade from upstream
> asdf-install, but at least asdf-install should work on Snow Leopard now.
>
>
>
> On Oct 25, 2009, at 5:18 PM, Wade Humeniuk wrote:
>
>> I was having many problems with asdf-install.
>>
>> When I have
>>
>> (setf ccl:*default-file-character-encoding* :utf-8)
>>
>> in my ccl-init.lisp file.
>>
>> I get errors when saving the temporary download file, its created
>> with utf-8 encodings (I assume at the beginning).
>>
>> Is it legit to set my default encoding to :utf-8 in ccl-init.lisp? Or
>> should I just change it on an as needed basis?
>>
>> To fix that asdf-install issue I change the open-file-arguments
>> in tools/asdf-install/port.lisp to specify the exact format.
>>
>> (defun open-file-arguments ()
>> (append
>> #+(or sbcl ccl) ;;;;;;;; CHANGE HERE
>> '(:external-format :latin1)
>> #+:scl
>> '(:external-format :iso-8859-1)
>> #+(or :clisp :digitool (and :lispworks :win32))
>> '(:element-type (unsigned-byte 8))))
>>
>> I have also changed system-namestring to (I saw that Matthew Emerson
>> changed
>> that to use ccl:native-translated-namerstring). Removed the call to
>> truename,
>> it throws an error because a symlink file does not yet exist.
>>
>> #-:digitool
>> (defun system-namestring (pathname)
>> #+:openmcl
>> (ccl:native-translated-namestring pathname)
>> #-:openmcl
>> (namestring (truename pathname)))
>>
>> And I had to change tar handling because of snow leopard changes. Changed
>>
>> #+:openmcl
>> (defun return-output-from-program (program args)
>> (with-output-to-string (out-stream)
>> (let ((proc (ccl:run-program program args
>> :input nil
>> :output :stream
>> :wait nil)))
>> (loop for line = (read-line
>> (ccl:external-process-output-stream proc) nil nil
>> nil)
>> while line
>> do
>> (if (string= line "x " :end1 2 )
>> (write-line (subseq line 2) out-stream)
>> (write-line line out-stream))))))
>>
>> That is probably not the best place to fix tar issues (Oh well).
>>
>> I think it is working now. Hope that helps anyone else encountering
>> problems.
>>
>> Wade
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel
>
>
More information about the Openmcl-devel
mailing list