» new archive release
I've released version 0.6.0 of ARCHIVE. There's not a lot to talk about with ARCHIVE; it's fairly stable--part of my build process for releasing my packages--but there are a few new things in this version:
- Writing archives on Lispworks/Win32 is now supported. (Thanks to Sean Ross)
- WITH-OPEN-ARCHIVE now accepts a stream or a pathname--previously it just accepted a pathname. (Thanks to Sean Ross for implementing this and Andreas Fuchs for prodding me about this feature to get this release out the door :)
- (SETF NAME) has been implemented and
WRITE-ENTRY-TO-ARCHIVE has been changed so you can write an arbitrary
stream to an archive entry. The net result is something like:
(defun generate-tar-file (tarball-pathname asdf-install-pathname system-directory-pathname component-pathnames) (archive:with-open-archive (archive tarball-pathname :direction :output :if-exists :supersede) (dolist (file component-pathnames (archive:finalize-archive archive)) (let* ((*default-pathname-defaults* system-directory-pathname) (entry (archive:create-entry-from-pathname archive file))) (setf (archive:name entry) (namestring (merge-pathnames file asdf-install-pathname))) (with-open-file (stream file :direction :input :element-type '(unsigned-byte 8)) (archive:write-entry-to-archive archive entry :stream stream))))))
which is what I use to write tar files for my software releases. Previously I had to copy files around to make sure everything got the right name; now I can do everything in-place.
There are a couple other new things and bugfixes; check the NEWS file for details.