Commit 59392e15 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

2.014.16: Fix infinite loop in dealing with symlinked asd's

Fixed Bug lp#776808 which was introduced in 2.014.9 (Oops),
as found by Stas Boukarev. Thanks!
parent 56f5085f
......@@ -12,7 +12,7 @@
:licence "MIT"
:description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems."
:version "2.014.15" ;; to be automatically updated by bin/bump-revision
:version "2.014.16" ;; to be automatically updated by bin/bump-revision
:depends-on ()
:components
((:file "asdf")
......
;;; -*- mode: common-lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 2.014.15: Another System Definition Facility.
;;; This is ASDF 2.014.16: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
......@@ -104,7 +104,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.014.15")
(asdf-version "2.014.16")
(existing-asdf (fboundp 'find-system))
(existing-version *asdf-version*)
(already-there (equal asdf-version existing-version)))
......@@ -842,6 +842,11 @@ with given pathname and if it exists return its truename."
path
(excl:pathname-resolve-symbolic-links path)))
(defun* resolve-symlinks* (path)
(if *resolve-symlinks*
(and path (resolve-symlinks path))
path))
(defun ensure-pathname-absolute (path)
(cond
((absolute-pathname-p path) path)
......@@ -1534,6 +1539,7 @@ Going forward, we recommend new users should be using the source-registry.
(pathname (or (and (typep found '(or pathname string)) (pathname found))
(and found-system (system-source-file found-system))
(and previous (system-source-file previous)))))
(setf pathname (resolve-symlinks* pathname))
(when (and pathname (not (absolute-pathname-p pathname)))
(setf pathname (ensure-pathname-absolute pathname))
(when found-system
......@@ -2457,10 +2463,7 @@ details."
;;;; Defsystem
(defun* load-pathname ()
(let ((pn (or *load-pathname* *compile-file-pathname*)))
(if *resolve-symlinks*
(and pn (resolve-symlinks pn))
pn)))
(resolve-symlinks* (or *load-pathname* *compile-file-pathname*)))
(defun* determine-system-pathname (pathname pathname-supplied-p)
;; The defsystem macro calls us to determine
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment