aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorolgeni <olgeni@FreeBSD.org>2010-01-21 02:09:01 +0800
committerolgeni <olgeni@FreeBSD.org>2010-01-21 02:09:01 +0800
commitc85ea944e9011ff57e02ae93c7e0402fe3f525e4 (patch)
tree888863449101cd089e6d89d0d9dc71901953a1cf /devel
parente4dcfbad47ae58ece21edd46656c1e58526a48c1 (diff)
downloadfreebsd-ports-gnome-c85ea944e9011ff57e02ae93c7e0402fe3f525e4.tar.gz
freebsd-ports-gnome-c85ea944e9011ff57e02ae93c7e0402fe3f525e4.tar.zst
freebsd-ports-gnome-c85ea944e9011ff57e02ae93c7e0402fe3f525e4.zip
Fix fasl loading by using an asdf:*source-to-target-mappings* entry
for each installed cl-* port. Previously, some fasl files were either rebuilt when running as root, or failed to load due to permission errors for normal users.
Diffstat (limited to 'devel')
-rw-r--r--devel/cl-asdf/Makefile2
-rw-r--r--devel/cl-asdf/files/asdf-init.lisp11
2 files changed, 10 insertions, 3 deletions
diff --git a/devel/cl-asdf/Makefile b/devel/cl-asdf/Makefile
index 49e7184836c7..086298e2bea7 100644
--- a/devel/cl-asdf/Makefile
+++ b/devel/cl-asdf/Makefile
@@ -9,7 +9,7 @@
PORTNAME= asdf
PORTVERSION= 1.374
-PORTREVISION= 2
+PORTREVISION= 3
PORTEPOCH= 1
CATEGORIES= devel lisp
PKGNAMEPREFIX= cl-
diff --git a/devel/cl-asdf/files/asdf-init.lisp b/devel/cl-asdf/files/asdf-init.lisp
index 9913c1fc1800..1b6eed38dd31 100644
--- a/devel/cl-asdf/files/asdf-init.lisp
+++ b/devel/cl-asdf/files/asdf-init.lisp
@@ -232,6 +232,11 @@ clispfasl, ...) by calling lisp-specific-fasl-subdir."
:type "fasl"
:defaults default-output-file))))
+;; Map each library in common-lisp/ to its fasl subdirectory
+(dolist (path (directory "%%PREFIX%%/lib/common-lisp/*/"))
+ (let ((fasldir (make-pathname :directory (append (pathname-directory path) (list (lisp-specific-fasl-subdir))))))
+ (pushnew (list path fasldir) asdf:*source-to-target-mappings*)))
+
(if (and (getenv "FBSD_ASDF_COMPILE_PORT")
(getenv "PORTNAME")
(getenv "WRKSRC"))
@@ -239,7 +244,9 @@ clispfasl, ...) by calling lisp-specific-fasl-subdir."
(portname (getenv "PORTNAME")))
;; If we are building a FreeBSD port, all the compiled fasl files
;; should be redirected to WRKSRC.
- (let ((package (format nil "%%PREFIX%%/lib/common-lisp/~A/" portname)))
- (pushnew (list package wrksrc) asdf:*source-to-target-mappings*))))
+ (let ((port-source (make-pathname
+ :directory (append (pathname-directory #P"%%PREFIX%%/lib/common-lisp/")
+ (list portname)))))
+ (pushnew (list port-source wrksrc) asdf:*source-to-target-mappings*))))
;;;; asdf-init.lisp ends here