diff -ur --exclude '*~' --exclude '*.fasl' archive_0.6.0.orig/archive.asd archive_0.6.0/archive.asd --- archive_0.6.0.orig/archive.asd 2006-09-11 20:31:34.000000000 -0500 +++ archive_0.6.0/archive.asd 2007-07-21 15:58:20.000000000 -0500 @@ -23,3 +23,10 @@ (:static-file "TODO") (:static-file "NEWS") (:static-file "LICENSE"))) + +(defmethod perform :around ((o compile-op) (c (eql (find-system 'archive)))) + (let ((use-sb-posix #+(and sbcl (not win32)) t)) + (if use-sb-posix + (let ((*features* (cons :use-sb-posix *features*))) + (call-next-method)) + (call-next-method)))) \ No newline at end of file diff -ur --exclude '*~' --exclude '*.fasl' archive_0.6.0.orig/archive.lisp archive_0.6.0/archive.lisp --- archive_0.6.0.orig/archive.lisp 2006-09-08 16:29:18.000000000 -0500 +++ archive_0.6.0/archive.lisp 2007-07-21 16:06:04.000000000 -0500 @@ -62,6 +62,7 @@ (defmethod write-entry-to-archive :before ((archive archive) entry &key stream) + (declare (ignore stream)) (unless (eq (%archive-direction archive) :output) (error "Attempting to write to a non-output archive"))) diff -ur --exclude '*~' --exclude '*.fasl' archive_0.6.0.orig/compat.lisp archive_0.6.0/compat.lisp --- archive_0.6.0.orig/compat.lisp 2007-02-01 20:06:27.000000000 -0600 +++ archive_0.6.0/compat.lisp 2007-07-21 15:58:38.000000000 -0500 @@ -3,10 +3,10 @@ (in-package :archive) (defconstant +permissions-mask+ - #+sbcl (logior sb-posix:s-irusr sb-posix:s-iwusr sb-posix:s-ixusr - sb-posix:s-irgrp sb-posix:s-iwgrp sb-posix:s-ixgrp - sb-posix:s-iroth sb-posix:s-iwoth sb-posix:s-ixoth) - #-sbcl 511) + #+use-sb-posix (logior sb-posix:s-irusr sb-posix:s-iwusr sb-posix:s-ixusr + sb-posix:s-irgrp sb-posix:s-iwgrp sb-posix:s-ixgrp + sb-posix:s-iroth sb-posix:s-iwoth sb-posix:s-ixoth) + #-use-sb-posix 511) ;;; CMUCL returns multiple values from UNIX:UNIX-STAT. We need to ;;; package these up into something to which we can repeatedly reference. diff -ur --exclude '*~' --exclude '*.fasl' archive_0.6.0.orig/cpio.lisp archive_0.6.0/cpio.lisp --- archive_0.6.0.orig/cpio.lisp 2007-02-01 20:34:13.000000000 -0600 +++ archive_0.6.0/cpio.lisp 2007-07-21 16:04:28.000000000 -0500 @@ -57,7 +57,7 @@ (isdir (mode entry))) (defmethod entry-symbolic-link-p ((entry cpio-entry)) - (islnk (mode entry))) + (islink (mode entry))) (defmethod entry-character-device-p ((entry cpio-entry)) (ischarfile (mode entry))) diff -ur --exclude '*~' --exclude '*.fasl' archive_0.6.0.orig/tar.lisp archive_0.6.0/tar.lisp --- archive_0.6.0.orig/tar.lisp 2007-02-01 20:29:46.000000000 -0600 +++ archive_0.6.0/tar.lisp 2007-07-21 16:00:28.000000000 -0500 @@ -235,18 +235,20 @@ finally (return-from null-block-p t)))) (defparameter *modefuns-to-typeflags* - #+sbcl (list (cons #'sb-posix::s-isreg +tar-regular-file+) - (cons #'sb-posix::s-isdir +tar-directory-file+) - (cons #'sb-posix::s-ischr +tar-character-device+) - (cons #'sb-posix::s-isblk +tar-block-device+) - (cons #'sb-posix::s-isfifo +tar-fifo-device+) - (cons #'sb-posix::s-islnk +tar-symbolic-link+)) - #-sbcl (list (cons 'isreg +tar-regular-file+) - (cons 'isdir +tar-directory-file+) - (cons 'ischarfile +tar-character-device+) - (cons 'isblockfile +tar-block-device+) - (cons 'isfifo +tar-fifo-device+) - (cons 'islink +tar-symbolic-link+))) + #+use-sb-posix + (list (cons #'sb-posix::s-isreg +tar-regular-file+) + (cons #'sb-posix::s-isdir +tar-directory-file+) + (cons #'sb-posix::s-ischr +tar-character-device+) + (cons #'sb-posix::s-isblk +tar-block-device+) + (cons #'sb-posix::s-isfifo +tar-fifo-device+) + (cons #'sb-posix::s-islnk +tar-symbolic-link+)) + #-use-sb-posix + (list (cons 'isreg +tar-regular-file+) + (cons 'isdir +tar-directory-file+) + (cons 'ischarfile +tar-character-device+) + (cons 'isblockfile +tar-block-device+) + (cons 'isfifo +tar-fifo-device+) + (cons 'islink +tar-symbolic-link+))) (defun typeflag-for-mode (mode) (loop for (modefun . typeflag) in *modefuns-to-typeflags*