diff options
author | Mark H Weaver <mhw@netris.org> | 2017-06-26 00:00:58 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2017-06-26 00:00:58 -0400 |
commit | ed068b960eeedb92823238783779730319b8ba0e (patch) | |
tree | 36a4de280458d52520b911b2716eb5cea309fd78 /guix/scripts | |
parent | a9308efec642bfbce480545a22fce848e6212456 (diff) | |
parent | ffc015bea26f24d862e7e877d907fbe1ab9a9967 (diff) |
Merge branch 'master' into core-updates
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/environment.scm | 7 | ||||
-rw-r--r-- | guix/scripts/package.scm | 9 | ||||
-rw-r--r-- | guix/scripts/refresh.scm | 35 |
3 files changed, 40 insertions, 11 deletions
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index af69e2b730..0abc509a35 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -323,6 +323,13 @@ BOOTSTRAP? specifies whether to use the bootstrap Guile to build the profile." (profile-derivation (packages->manifest inputs) #:system system + + ;; Packages can have conflicting inputs, or explicit + ;; inputs that conflict with implicit inputs (e.g., gcc, + ;; gzip, etc.). Thus, do not error out when we + ;; encounter collision. + #:allow-collisions? #t + #:hooks (if bootstrap? '() %default-profile-hooks) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index a6bfb03ae4..1f835ca5a5 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -312,12 +312,16 @@ of relevance scores." ((=) (let ((candidate-path (derivation->output-path (package-derivation (%store) pkg)))) - (if (string=? path candidate-path) + ;; XXX: When there are propagated inputs, assume we need to + ;; upgrade the whole entry. + (if (and (string=? path candidate-path) + (null? (package-propagated-inputs pkg))) transaction (manifest-transaction-install-entry (package->manifest-entry pkg output) transaction)))))))) (#f + (warning (G_ "package '~a' no longer exists~%") name) transaction))))) @@ -786,7 +790,8 @@ processed, #f otherwise." (('search-paths kind) (let* ((manifests (map profile-manifest profiles)) - (entries (append-map manifest-entries manifests)) + (entries (append-map manifest-transitive-entries + manifests)) (profiles (map user-friendly-profile profiles)) (settings (search-path-environment-variables entries profiles (const #f) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index dd93e7d3e7..5add64d8e8 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -253,15 +253,32 @@ downloaded and authenticated; not updating~%") WARN? is true and no updater exists for PACKAGE, print a warning." (match (package-latest-release package updaters) ((? upstream-source? source) - (when (version>? (upstream-source-version source) - (package-version package)) - (let ((loc (or (package-field-location package 'version) - (package-location package)))) - (format (current-error-port) - (G_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - (upstream-source-version source))))) + (let ((loc (or (package-field-location package 'version) + (package-location package)))) + (case (version-compare (upstream-source-version source) + (package-version package)) + ((>) + (format (current-error-port) + (G_ "~a: ~a would be upgraded from ~a to ~a~%") + (location->string loc) + (package-name package) (package-version package) + (upstream-source-version source))) + ((=) + (when warn? + (format (current-error-port) + (G_ "~a: info: ~a is already the latest version of ~a~%") + (location->string loc) + (package-version package) + (package-name package)))) + (else + (when warn? + (format (current-error-port) + (G_ "~a: warning: ~a is greater than \ +the latest known version of ~a (~a)~%") + (location->string loc) + (package-version package) + (package-name package) + (upstream-source-version source))))))) (#f (when warn? (warn-no-updater package))))) |