~ chicken-core (chicken-5) 67310626935d98f93f31b09b5e63da329b73e719
commit 67310626935d98f93f31b09b5e63da329b73e719
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Wed Aug 29 08:54:44 2018 +1200
Commit: Peter Bex <peter@more-magic.net>
CommitDate: Mon Oct 8 16:09:35 2018 +0200
Make the "-no-install" option affect named eggs but not dependencies
Signed-off-by: Peter Bex <peter@more-magic.net>
diff --git a/chicken-install.mdoc b/chicken-install.mdoc
index 60921d88..773cd42d 100644
--- a/chicken-install.mdoc
+++ b/chicken-install.mdoc
@@ -81,7 +81,8 @@ Run included test cases, if available.
.It Fl n , Fl no-install
Do not install the egg, just build it.
.It Fl no-install-deps
-Do not retrieve or install dependencies.
+Do not install dependencies. Note that this option may result in build
+failures due to missing extension libraries.
.It Fl u , Fl update-db
Update export database.
.It Fl repository
diff --git a/chicken-install.scm b/chicken-install.scm
index 17f1acec..6f21ee66 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -82,7 +82,7 @@
(define no-install #f)
(define list-versions-only #f)
(define canonical-eggs '())
-(define tested-eggs '())
+(define requested-eggs '())
(define dependencies '())
(define checked-eggs '())
(define run-tests #f)
@@ -632,21 +632,15 @@
canonical-eggs)))
(define (outdated-dependencies egg info)
- (if no-deps
- (values '() '())
- (let ((ds (get-egg-dependencies info)))
- (for-each
- (lambda (h) (set! ds (h egg ds)))
- hacks)
- (let loop ((deps ds) (missing '()) (upgrade '()))
- (if (null? deps)
- (values (reverse missing) (reverse upgrade))
- (let ((dep (car deps))
- (rest (cdr deps)))
- (let-values (((m u) (check-dependency dep)))
- (loop rest
- (if m (cons m missing) missing)
- (if u (cons u upgrade) upgrade)))))))))
+ (let ((ds (get-egg-dependencies info)))
+ (for-each (lambda (h) (set! ds (h egg ds))) hacks)
+ (let loop ((deps ds) (missing '()) (upgrade '()))
+ (if (null? deps)
+ (values (reverse missing) (reverse upgrade))
+ (let-values (((m u) (check-dependency (car deps))))
+ (loop (cdr deps)
+ (if m (cons m missing) missing)
+ (if u (cons u upgrade) upgrade)))))))
(define (get-egg-dependencies info)
(append (get-egg-property* info 'dependencies '())
@@ -830,10 +824,11 @@
(else
(print "building " name)
(run-script dir bscript platform)
- (unless no-install
+ (unless (if (member name requested-eggs) no-install no-deps)
(print " installing " name)
(run-script dir iscript platform sudo: sudo-install))
- (when (and (member name tested-eggs)
+ (when (and (member name requested-eggs)
+ run-tests
(not (test-egg egg platform)))
(exit 2)))))))
(when target-extension
@@ -859,7 +854,7 @@
(else
(print "building " name " (target)")
(run-script dir bscript platform)
- (unless no-install
+ (unless (if (member name requested-eggs) no-install no-deps)
(print " installing " name " (target)")
(run-script dir iscript platform)))))))))
(order-installed-eggs)))
@@ -1005,16 +1000,14 @@
(map (lambda (fname)
(list (pathname-file fname) (current-directory) #f))
files))
- (when run-tests
- (set! tested-eggs (map car canonical-eggs)))
+ (set! requested-eggs (map car canonical-eggs))
(retrieve-eggs '())
(unless retrieve-only (install-eggs)))))
(else
(let ((eggs (apply-mappings eggs)))
(cond (list-versions-only (list-egg-versions eggs))
(else
- (when run-tests
- (set! tested-eggs (map (o car canonical) eggs)))
+ (set! requested-eggs (map (o car canonical) eggs))
(retrieve-eggs eggs)
(unless retrieve-only (install-eggs))))))))
Trap