>From 620b200f06f522dda9b2869420346c4635735d78 Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Wed, 29 Aug 2018 08:54:44 +1200 Subject: [PATCH 1/3] Make the "-no-install" option affect named eggs but not dependencies --- chicken-install.mdoc | 3 ++- chicken-install.scm | 39 ++++++++++++++++----------------------- 2 files changed, 18 insertions(+), 24 deletions(-) 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)))))))) -- 2.11.0