Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
asdf
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
15
Issues
15
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
asdf
asdf
Commits
dcdd0c56
Commit
dcdd0c56
authored
Dec 13, 2011
by
Francois-Rene Rideau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.014.4: better errors for bad (relative) paths in environment variables.
From bug report by Rupert Swarbrick.
parent
7dd86b37
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
21 deletions
+34
-21
asdf.asd
asdf.asd
+1
-1
asdf.lisp
asdf.lisp
+33
-20
No files found.
asdf.asd
View file @
dcdd0c56
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,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.019.
3
"
;; to be automatically updated by bin/bump-revision
:version
"2.019.
4
"
;; to be automatically updated by bin/bump-revision
:depends-on
()
:depends-on
()
:components
:components
((
:file
"asdf"
)
((
:file
"asdf"
)
...
...
asdf.lisp
View file @
dcdd0c56
;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 2.019.
3
: Another System Definition Facility.
;;; This is ASDF 2.019.
4
: 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>.
...
@@ -107,7 +107,7 @@
...
@@ -107,7 +107,7 @@
;; "2.345.6" would be a development version in the official upstream
;; "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.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
;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
(
asdf-version
"2.019.
3
"
)
(
asdf-version
"2.019.
4
"
)
(
existing-asdf
(
find-class
'component
nil
))
(
existing-asdf
(
find-class
'component
nil
))
(
existing-version
*asdf-version*
)
(
existing-version
*asdf-version*
)
(
already-there
(
equal
asdf-version
existing-version
)))
(
already-there
(
equal
asdf-version
existing-version
)))
...
@@ -3150,21 +3150,35 @@ located."
...
@@ -3150,21 +3150,35 @@ located."
#+
mcl
(
current-user-homedir-pathname
)
#+
mcl
(
current-user-homedir-pathname
)
#-
mcl
(
user-homedir-pathname
))))
#-
mcl
(
user-homedir-pathname
))))
(
defun*
ensure-absolute-pathname*
(
x
fmt
&rest
args
)
(
and
(
plusp
(
length
x
))
(
or
(
absolute-pathname-p
x
)
(
cerror
"ignore relative pathname"
"Invalid relative pathname ~A~@[ ~?~]"
x
fmt
args
))
x
))
(
defun*
split-absolute-pathnames
(
x
fmt
&rest
args
)
(
loop
:for
dir
:in
(
split-string
x
:separator
(
inter-directory-separator
))
:do
(
apply
'ensure-absolute-pathname*
dir
fmt
args
)
:collect
dir
))
(
defun
getenv-absolute-pathname
(
x
&aux
(
s
(
getenv
x
)))
(
ensure-absolute-pathname*
s
"from (getenv ~S)"
x
))
(
defun
getenv-absolute-pathnames
(
x
&aux
(
s
(
getenv
x
)))
(
split-absolute-pathnames
s
"from (getenv ~S) = ~S"
x
s
))
(
defun*
user-configuration-directories
()
(
defun*
user-configuration-directories
()
(
let
((
dirs
(
let
((
dirs
`
(
,@
(
when
(
os-unix-p
)
`
(
,@
(
when
(
os-unix-p
)
(
cons
(
cons
(
subpathname*
(
getenv
"XDG_CONFIG_HOME"
)
"common-lisp/"
)
(
subpathname*
(
getenv-absolute-pathname
"XDG_CONFIG_HOME"
)
"common-lisp/"
)
(
loop
:with
dirs
=
(
getenv
"XDG_CONFIG_DIRS"
)
(
loop
:for
dir
:in
(
getenv-absolute-pathnames
"XDG_CONFIG_DIRS"
)
:for
dir
:in
(
split-string
dirs
:separator
":"
)
:collect
(
subpathname*
dir
"common-lisp/"
))))
:collect
(
subpathname*
dir
"common-lisp/"
))))
,@
(
when
(
os-windows-p
)
,@
(
when
(
os-windows-p
)
`
(
,
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
`
(
,
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
getenv
"LOCALAPPDATA"
))
(
getenv
-absolute-pathname
"LOCALAPPDATA"
))
"common-lisp/config/"
)
"common-lisp/config/"
)
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData
,
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
,
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
(
getenv
"APPDATA"
))
(
getenv
-absolute-pathname
"APPDATA"
))
"common-lisp/config/"
)))
"common-lisp/config/"
)))
,
(
subpathname
(
user-homedir
)
".config/common-lisp/"
))))
,
(
subpathname
(
user-homedir
)
".config/common-lisp/"
))))
(
remove-duplicates
(
remove-if-not
#'
absolute-pathname-p
dirs
)
(
remove-duplicates
(
remove-if-not
#'
absolute-pathname-p
dirs
)
...
@@ -3177,8 +3191,8 @@ located."
...
@@ -3177,8 +3191,8 @@ located."
(
aif
(
aif
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common AppData
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common AppData
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
subpathname*
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
getenv
"ALLUSERSAPPDATA"
)
(
getenv
-absolute-pathname
"ALLUSERSAPPDATA"
)
(
subpathname*
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
))
(
subpathname*
(
getenv
-absolute-pathname
"ALLUSERSPROFILE"
)
"Application Data/"
))
"common-lisp/config/"
)
"common-lisp/config/"
)
(
list
it
)))))
(
list
it
)))))
...
@@ -3302,12 +3316,12 @@ and the order is by decreasing length of namestring of the source pathname.")
...
@@ -3302,12 +3316,12 @@ and the order is by decreasing length of namestring of the source pathname.")
(
defvar
*user-cache*
(
defvar
*user-cache*
(
flet
((
try
(
x
&rest
sub
)
(
and
x
`
(
,
x
,@
sub
))))
(
flet
((
try
(
x
&rest
sub
)
(
and
x
`
(
,
x
,@
sub
))))
(
or
(
or
(
try
(
getenv
"XDG_CACHE_HOME"
)
"common-lisp"
:implementation
)
(
try
(
getenv
-absolute-pathname
"XDG_CACHE_HOME"
)
"common-lisp"
:implementation
)
(
when
(
os-windows-p
)
(
when
(
os-windows-p
)
(
try
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
try
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
getenv
"LOCALAPPDATA"
)
(
getenv
-absolute-pathname
"LOCALAPPDATA"
)
#+
lispworks
(
sys:get-folder-path
:appdata
)
#+
lispworks
(
sys:get-folder-path
:appdata
)
(
getenv
"APPDATA"
))
(
getenv
-absolute-pathname
"APPDATA"
))
"common-lisp"
"cache"
:implementation
))
"common-lisp"
"cache"
:implementation
))
'
(
:home
".cache"
"common-lisp"
:implementation
))))
'
(
:home
".cache"
"common-lisp"
:implementation
))))
...
@@ -4024,19 +4038,18 @@ with a different configuration, so the configuration would be re-read then."
...
@@ -4024,19 +4038,18 @@ with a different configuration, so the configuration would be re-read then."
(
:directory
,
(
default-directory
))
(
:directory
,
(
default-directory
))
,@
(
loop
:for
dir
:in
,@
(
loop
:for
dir
:in
`
(
,@
(
when
(
os-unix-p
)
`
(
,@
(
when
(
os-unix-p
)
`
(
,
(
or
(
getenv
"XDG_DATA_HOME"
)
`
(
,
(
or
(
getenv
-absolute-pathname
"XDG_DATA_HOME"
)
(
subpathname
(
user-homedir
)
".local/share/"
))
(
subpathname
(
user-homedir
)
".local/share/"
))
,@
(
split-string
(
or
(
getenv
"XDG_DATA_DIRS"
)
,@
(
or
(
getenv-absolute-pathnames
"XDG_DATA_DIRS"
)
"/usr/local/share:/usr/share"
)
'
(
"/usr/local/share"
"/usr/share"
))))
:separator
":"
)))
,@
(
when
(
os-windows-p
)
,@
(
when
(
os-windows-p
)
`
(
,
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
`
(
,
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
getenv
"LOCALAPPDATA"
))
(
getenv
-absolute-pathname
"LOCALAPPDATA"
))
,
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
,
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
(
getenv
"APPDATA"
))
(
getenv
-absolute-pathname
"APPDATA"
))
,
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
,
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
getenv
"ALLUSERSAPPDATA"
)
(
getenv
-absolute-pathname
"ALLUSERSAPPDATA"
)
(
subpathname*
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
)))))
(
subpathname*
(
getenv
-absolute-pathname
"ALLUSERSPROFILE"
)
"Application Data/"
)))))
:collect
`
(
:directory
,
(
subpathname*
dir
"common-lisp/systems/"
))
:collect
`
(
:directory
,
(
subpathname*
dir
"common-lisp/systems/"
))
:collect
`
(
:tree
,
(
subpathname*
dir
"common-lisp/source/"
)))
:collect
`
(
:tree
,
(
subpathname*
dir
"common-lisp/source/"
)))
:inherit-configuration
))
:inherit-configuration
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment