;;; ;;; Corman Lisp 3.0 beta 1 patch 3 ;;; (in-package :ccl) (defpatch 3 :install-func install-patch-3 :uninstall-func uninstall-patch-3) (let ((sys-files ' ("misc-utility.lisp" "auto-update.lisp" "conditions.lisp" "clos.lisp" "load-sys2.lisp" "sockets.lisp" "xp.lisp" "write.lisp" "symbols.lisp" "pretty.lisp" "parse-c-decls.lisp" "misc-features.lisp" "format.lisp" "defpackage.lisp" "compile-file.lisp")) (patch-level (cormanlisp-patch-level *patch*))) (defun install-patch-3 () (let* ((backup-dir (ccl::local-patches-backup-directory patch-level)) (sys-backup-dir (merge-pathnames "sys/" backup-dir)) (sys-dir (merge-pathnames "sys/" *cormanlisp-directory*))) (ensure-directories-exist sys-backup-dir) (dolist (f sys-files) (let ((src (merge-pathnames f sys-dir))) (copy-file src (merge-pathnames f sys-backup-dir)) (ensure-writable-file src) (sockets:get-http-file *patch-server* (format nil "~A~D/sys/~A" *patch-root-directory* (cormanlisp-patch-level *patch*) f) (merge-pathnames f sys-dir)))))) (defun uninstall-patch-3 () (let* ((backup-dir (ccl::local-patches-backup-directory patch-level)) (sys-backup-dir (merge-pathnames "sys/" backup-dir)) (sys-dir (merge-pathnames "sys/" *cormanlisp-directory*))) (dolist (f sys-files) (let ((src (merge-pathnames f sys-dir))) (ensure-writable-file src) (copy-file (merge-pathnames f sys-backup-dir) src))))))