Skip to content
Snippets Groups Projects
Commit 235dce5a authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

2.28.7: have defsystem-depends-on takes arbitrary specs, not just names.

Fixes lp#1027521.
parent 0124eb1d
No related branches found
No related tags found
No related merge requests found
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
:licence "MIT" :licence "MIT"
:description "Another System Definition Facility" :description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems." :long-description "ASDF builds Common Lisp software organized into defined systems."
:version "2.28.6" ;; to be automatically updated by make bump-version :version "2.28.7" ;; to be automatically updated by make bump-version
:depends-on () :depends-on ()
#+asdf3 :encoding #+asdf3 :utf-8 #+asdf3 :encoding #+asdf3 :utf-8
;; For most purposes, asdf itself specially counts as a builtin system. ;; For most purposes, asdf itself specially counts as a builtin system.
......
...@@ -55,6 +55,8 @@ another pathname in a degenerate way.")) ...@@ -55,6 +55,8 @@ another pathname in a degenerate way."))
(defgeneric version-satisfies (component version)) (defgeneric version-satisfies (component version))
(defgeneric component-version (component)) (defgeneric component-version (component))
(defgeneric (setf component-version) (new-version component)) (defgeneric (setf component-version) (new-version component))
(defgeneric component-parent (component))
(defmethod component-parent ((component null)) (declare (ignorable component)) nil)
;; Backward compatible way of computing the FILE-TYPE of a component. ;; Backward compatible way of computing the FILE-TYPE of a component.
;; TODO: find users, have them stop using that, remove it for ASDF4. ;; TODO: find users, have them stop using that, remove it for ASDF4.
......
...@@ -189,8 +189,10 @@ ...@@ -189,8 +189,10 @@
(make-instance 'system :name name :source-file source-file)))) (make-instance 'system :name name :source-file source-file))))
(system (reset-system (cdr registered!) (system (reset-system (cdr registered!)
:name name :source-file source-file)) :name name :source-file source-file))
(component-options (remove-plist-key :class options))) (component-options (remove-plist-key :class options))
(apply 'load-systems defsystem-depends-on) (defsystem-dependencies (loop :for spec :in defsystem-depends-on :collect
(resolve-dependency-spec nil spec))))
(apply 'load-systems defsystem-dependencies)
;; We change-class AFTER we loaded the defsystem-depends-on ;; We change-class AFTER we loaded the defsystem-depends-on
;; since the class might be defined as part of those. ;; since the class might be defined as part of those.
(let ((class (class-for-type nil class))) (let ((class (class-for-type nil class)))
......
;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 2.28.6: Another System Definition Facility. ;;; This is ASDF 2.28.7: Another System Definition Facility.
;;; ;;;
;;; Feedback, bug reports, and patches are all welcome: ;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>. ;;; please mail to <asdf-devel@common-lisp.net>.
......
;;; -*- Lisp -*- ;;; -*- Lisp -*-
(def-test-system :versioned-system-1
:pathname #.*test-directory*
:version "1.0")
(def-test-system :versioned-system-2
:pathname #.*test-directory*
:version "1.1")
(progn (def-test-system :versioned-system-3
(def-test-system :versioned-system-1 :defsystem-depends-on ((:version :test-asdf/file2 "2.1"))
:pathname #.*test-directory* :pathname #.*test-directory*
:version "1.0") :version "1.2")
(def-test-system :versioned-system-2 (defun vtest (name v &optional (true t))
:pathname #.*test-directory* (or (eq true (version-satisfies (find-system name) v))
:version "1.1") (error "no satisfaction: ~S version ~A not ~A" name v true)))
(vtest :versioned-system-1 "1.0")
(def-test-system :versioned-system-3 (vtest :versioned-system-2 "1.0")
:pathname #.*test-directory* (vtest :versioned-system-3 "2.0" nil)
:version "1.2")
(flet ((test (name v &optional (true t))
(or (eq true (version-satisfies (find-system name) v))
(error "no satisfaction: ~S version ~A not ~A" name v true))))
(test :versioned-system-1 "1.0")
(test :versioned-system-2 "1.0")
(test :versioned-system-3 "2.0" nil)))
...@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO ...@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
;; "3.4.5.67" would be a development version in the official upstream of 3.4.5. ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
(asdf-version "2.28.6") (asdf-version "2.28.7")
(existing-version (asdf-version))) (existing-version (asdf-version)))
(setf *asdf-version* asdf-version) (setf *asdf-version* asdf-version)
(when (and existing-version (not (equal asdf-version existing-version))) (when (and existing-version (not (equal asdf-version existing-version)))
......
"2.28.6" "2.28.7"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment