[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