From eb3f595f2157a91961a3316e2ca641efa6c17aa1 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Tue, 18 Dec 2012 20:18:22 -0500
Subject: [PATCH] 2.26.34: override a reinitialize-instance method, so we can
 upgrade from ASDF 2.018-2.26.

---
 asdf.asd  |  2 +-
 asdf.lisp | 16 ++++++++++++----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/asdf.asd b/asdf.asd
index 326376cf..bc2c8abf 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -14,7 +14,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.33" ;; to be automatically updated by bin/bump-revision
+  :version "2.26.34" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")))
diff --git a/asdf.lisp b/asdf.lisp
index 71ae2aa3..2b3a6b84 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,5 +1,5 @@
 ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
-;;; This is ASDF 2.26.33: Another System Definition Facility.
+;;; This is ASDF 2.26.34: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -118,7 +118,7 @@
          ;; "2.345.6" would be a development version in the official upstream
          ;; "2.345.0.7" would be your seventh local modification of official release 2.345
          ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
-         (asdf-version "2.26.33")
+         (asdf-version "2.26.34")
          (existing-asdf (find-class 'component nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
@@ -1213,11 +1213,15 @@ Returns two values:
 ;;;; -------------------------------------------------------------------------
 ;;; Methods in case of hot-upgrade. See https://bugs.launchpad.net/asdf/+bug/485687
 (when *upgraded-p*
+  ;; override previous definition from 2.018 to 2.26, not needed
+  ;; since we've stopped trying to recycle previously-installed systems.
+  (eval '(defmethod reinitialize-instance :after ((obj component) &rest initargs)
+          (declare (ignorable obj initargs)) (values)))
   (when (find-class 'module nil)
     (eval '(defmethod update-instance-for-redefined-class :after
             ((m module) added deleted plist &key)
             (declare (ignorable m added deleted plist))
-            nil)))) ;; override previous definition.
+            nil))))
 
 ;;;; -------------------------------------------------------------------------
 ;;; Classes, Conditions
@@ -2120,7 +2124,7 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
 
 (defmethod component-self-dependencies ((o operation) (c component))
   (remove-if-not
-   #'(lambda (x) (unless (eq (car x) 'feature) ;; avoid the "FEATURE" feature
+   #'(lambda (x) (unless (eq (car x) 'feature) ;; avoid the "FEATURE" "feature"
                    (find c (cdr x) :key #'(lambda (dep) (resolve-dependency-spec c dep)))))
    (component-depends-on o c)))
 
@@ -2883,6 +2887,10 @@ Returns the new tree (which probably shares structure with the old one)"
 
 ;; Resolve away the dubious and deprecated option :IF-COMPONENT-DEP-FAILS
 ;; and its companion ASDF:FEATURE pseudo-dependency.
+;; THIS IS ONLY PARTIAL SUPPORT: it won't recurse into dependencies
+;; to accumulate feature conditions.
+;; Therefore it will accept the SB-ROTATE-BYTE of an old SBCL
+;; (older than 1.1.2.20-fe6da9f) but won't suffice to load an old nibbles.
 (defvar *if-component-dep-fails-component* nil)
 (defun resolve-if-component-dep-fails (if-component-dep-fails component)
   (asdf-message "The system definition for ~S uses deprecated ~
-- 
GitLab