guix package: '-s' displays different packages that have the same location.
Before that, 'guix package -s foobarbaz' would display only one package when several match but they have the same location (which is common when using 'inherit'.) The original rationale was given at <http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00280.html> but it was arguably misguided because it led to "real" packages being hidden. Reported by Tomáš Čech <sleep_walker@gnu.org>. * guix/scripts/package.scm (find-packages-by-description)[same-location?]: Remove. Remove call to 'delete-duplicates'.
This commit is contained in:
parent
ac85b51521
commit
9eeb3d8c28
|
@ -240,28 +240,22 @@ DURATION-RELATION with the current time."
|
|||
(define (find-packages-by-description rx)
|
||||
"Return the list of packages whose name, synopsis, or description matches
|
||||
RX."
|
||||
(define (same-location? p1 p2)
|
||||
;; Compare locations of two packages.
|
||||
(equal? (package-location p1) (package-location p2)))
|
||||
(sort
|
||||
(fold-packages (lambda (package result)
|
||||
(define matches?
|
||||
(cut regexp-exec rx <>))
|
||||
|
||||
(delete-duplicates
|
||||
(sort
|
||||
(fold-packages (lambda (package result)
|
||||
(define matches?
|
||||
(cut regexp-exec rx <>))
|
||||
|
||||
(if (or (matches? (package-name package))
|
||||
(and=> (package-synopsis package)
|
||||
(compose matches? P_))
|
||||
(and=> (package-description package)
|
||||
(compose matches? P_)))
|
||||
(cons package result)
|
||||
result))
|
||||
'())
|
||||
(lambda (p1 p2)
|
||||
(string<? (package-name p1)
|
||||
(package-name p2))))
|
||||
same-location?))
|
||||
(if (or (matches? (package-name package))
|
||||
(and=> (package-synopsis package)
|
||||
(compose matches? P_))
|
||||
(and=> (package-description package)
|
||||
(compose matches? P_)))
|
||||
(cons package result)
|
||||
result))
|
||||
'())
|
||||
(lambda (p1 p2)
|
||||
(string<? (package-name p1)
|
||||
(package-name p2)))))
|
||||
|
||||
(define-syntax-rule (leave-on-EPIPE exp ...)
|
||||
"Run EXP... in a context when EPIPE errors are caught and lead to 'exit'
|
||||
|
|
Loading…
Reference in New Issue