Don't upgrade transitive dependencies by default.

This commit is contained in:
Alex Shinn 2015-05-08 00:46:39 +09:00
parent bfbb8c42fe
commit 9688f01afd
2 changed files with 34 additions and 21 deletions

View file

@ -1421,8 +1421,10 @@
(define (installed-libraries impl cfg)
(delete-duplicates
(append-map
(lambda (dir)
(directory-fold-tree
(get-install-source-dir impl cfg)
dir
#f #f
(lambda (file acc)
(cond
@ -1437,7 +1439,8 @@
(package-libraries pkg))
acc)))
(else acc)))
'())
'()))
(get-install-search-dirs impl cfg))
(lambda (a b) (equal? (car a) (car b)))))
(define r7rs-small-libraries
@ -2020,7 +2023,9 @@
;; Choose packages for the corresponding libraries, and recursively
;; select uninstalled packages.
(define (expand-package-dependencies repo impl cfg lib-names)
(let ((current (installed-libraries impl cfg)))
(let ((current (installed-libraries impl cfg))
(auto-upgrade-dependencies?
(conf-get cfg '(command install auto-upgrade-dependencies?))))
(let lp ((ls lib-names) (res '()) (ignored '()))
(cond
((null? ls) res)
@ -2038,8 +2043,10 @@
(filter
(lambda (pkg)
(or (not current-version)
(and (or auto-upgrade-dependencies?
(member (car ls) lib-names))
(version>? (package-version pkg)
current-version)))
current-version))))
providers)))
(cond
((member (car ls) ignored)
@ -2116,7 +2123,10 @@
(let* ((repo (current-repositories cfg))
(impls (conf-selected-implementations cfg))
(impl-cfgs (map (lambda (impl)
(conf-for-implementation cfg impl))
(conf-extend
(conf-for-implementation cfg impl)
'((command install auto-upgrade-dependencies?)
. #t)))
impls)))
(for-each
(lambda (impl cfg)

View file

@ -102,6 +102,9 @@
'((skip-tests? boolean ("skip-tests") "don't run tests even if present")
(show-tests? boolean ("show-tests") "show test output even on success")
(install-tests? boolean ("install-tests") "install test-only libraries")
(auto-upgrade-dependencies?
boolean ("auto-upgrade-dependencies")
"upgrade install dependencies when newer versions are available")
(use-sudo? symbol ("use-sudo") "always, never, or as-needed (default)")))
(define upgrade-spec
install-spec)