diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-09-06 23:14:07 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-09-06 23:22:10 +0200 |
commit | 01afdab89c6a91f4cd05d3c4f4ff95a0402703eb (patch) | |
tree | 7be146245b7b7053532f38476399e5b8f5b2f9c4 /gnu/packages.scm | |
parent | 03763d6473bcd6c7a84bcc3a6aa7bc2d1ee1e44f (diff) | |
download | gnu-guix-01afdab89c6a91f4cd05d3c4f4ff95a0402703eb.tar gnu-guix-01afdab89c6a91f4cd05d3c4f4ff95a0402703eb.tar.gz |
packages: Add 'package-superseded' and associated support.
This provides a way to mark a package as superseded by another one.
Upgrades replace superseded packages with their replacement.
* guix/packages.scm (package-superseded, deprecated-package): New
procedures.
* gnu/packages.scm (%find-package): Check for 'package-superseded'.
* guix/scripts/package.scm (transaction-upgrade-entry)[supersede]: New
procedure. Call it when 'package-superseded' is true.
* tests/guix-build.sh: Add test for a superseded package.
* tests/packages.scm ("package-superseded")
("transaction-upgrade-entry, superseded package"): New tests.
Diffstat (limited to 'gnu/packages.scm')
-rw-r--r-- | gnu/packages.scm | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gnu/packages.scm b/gnu/packages.scm index 68a9eef2ad..5d60423a3a 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -305,7 +305,14 @@ return its return value." (when fallback? (warning (_ "deprecated NAME-VERSION syntax; \ use NAME@VERSION instead~%"))) - pkg) + + (match (package-superseded pkg) + ((? package? new) + (info (_ "package '~a' has been superseded by '~a'~%") + (package-name pkg) (package-name new)) + new) + (#f + pkg))) (_ (if version (leave (_ "~A: package not found for version ~a~%") name version) |