From 3d06ffb910d778aaed96ab40efa50bae7fe8d09b Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Tue, 7 Jun 2011 01:13:46 -0400
Subject: [PATCH] 2.015.12: Make defsystem-depends-on useful by allowing to use
 system classes defined therein. Tested with the XCVB bridge.

---
 asdf.asd  |  2 +-
 asdf.lisp | 11 ++++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/asdf.asd b/asdf.asd
index 690e6ad2..951b51d3 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -12,7 +12,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.015.11" ;; to be automatically updated by bin/bump-revision
+  :version "2.015.12" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")
diff --git a/asdf.lisp b/asdf.lisp
index 53cc0f82..e9eed425 100755
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: common-lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.015.11: Another System Definition Facility.
+;;; This is ASDF 2.015.12: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -106,7 +106,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.015.11")
+         (asdf-version "2.015.12")
          (existing-asdf (find-class 'component nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
@@ -2511,7 +2511,7 @@ details."
                                  class (find-class 'component)))
         :return class)
       (and (eq type :file)
-           (or (module-default-component-class parent)
+           (or (and parent (module-default-component-class parent))
                (find-class *default-component-class*)))
       (sysdef-error "don't recognize component type ~A" type)))
 
@@ -2690,8 +2690,9 @@ Returns the new tree (which probably shares structure with the old one)"
       (map () 'load-system defsystem-depends-on)
       ;; We change-class (when necessary) AFTER we load the defsystem-dep's
       ;; since the class might not be defined as part of those.
-      (unless (eq (type-of system) class)
-        (change-class system class))
+      (let ((class (class-for-type nil class)))
+        (unless (eq (type-of system) class)
+          (change-class system class)))
       (parse-component-form
        nil (list*
             :module name
-- 
GitLab