packages: Factorize ‘all-packages’.

* gnu/packages.scm (all-packages): New procedure.
* etc/source-manifest.scm (all-packages): Remove.
* guix/scripts/graph.scm (all-packages): Remove.
* guix/scripts/refresh.scm (all-packages): Remove.
* guix/scripts/weather.scm (all-packages): Remove.

Change-Id: I6072952c4b877b541037ce86402cfb7744eeb0a0
This commit is contained in:
Ludovic Courtès 2024-11-25 14:30:28 +01:00
parent a633422371
commit 4b5dae8def
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
5 changed files with 20 additions and 48 deletions

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -25,17 +25,6 @@
(guix packages) (guix profiles)
(gnu packages))
(define (all-packages)
"Return the list of all the packages, public or private, omitting only
superseded packages."
(fold-packages (lambda (package lst)
(match (package-replacement package)
(#f (cons package lst))
(replacement
(append (list replacement package) lst))))
'()
#:select? (negate package-superseded)))
(define (upstream-origin source)
"Return SOURCE without any patches or snippet."
(origin (inherit source)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2020, 2022-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2020, 2022-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@ -56,6 +56,7 @@ (define-module (gnu packages)
cache-is-authoritative?
fold-packages
all-packages
fold-available-packages
find-newest-available-packages
@ -253,6 +254,23 @@ (define* (fold-packages proc init
init
modules))
(define all-packages
(mlambda ()
"Return the list of all public packages, including replacements and hidden
packages, excluding superseded packages."
(delete-duplicates
(fold-packages (lambda (package result)
(match (package-replacement package)
((? package? replacement)
(cons* replacement package result))
(#f
(cons package result))))
'()
;; Dismiss deprecated packages but keep hidden packages.
#:select? (negate package-superseded))
eq?)))
(define %package-cache-file
;; Location of the package cache.
"/lib/guix/package.cache")

View file

@ -119,16 +119,6 @@ (define %package-node-type
;;; Reverse package DAG.
;;;
(define (all-packages) ;XXX: duplicated from (guix scripts refresh)
"Return the list of all the distro's packages."
(fold-packages (lambda (package result)
;; Ignore deprecated packages.
(if (package-superseded package)
result
(cons package result)))
'()
#:select? (const #t))) ;include hidden packages
(define %reverse-package-node-type
;; For this node type we first need to compute the list of packages and the
;; list of back-edges. Since we want to do it only once, we use the

View file

@ -455,16 +455,6 @@ (define package
;;; Dependents.
;;;
(define (all-packages)
"Return the list of all the distro's packages."
(fold-packages (lambda (package result)
;; Ignore deprecated packages.
(if (package-superseded package)
result
(cons package result)))
'()
#:select? (const #t))) ;include hidden packages
(define (list-dependents packages)
"List all the things that would need to be rebuilt if PACKAGES are changed."
;; Using %BAG-NODE-TYPE is more accurate than using %PACKAGE-NODE-TYPE

View file

@ -55,21 +55,6 @@ (define-module (guix scripts weather)
#:use-module (ice-9 vlist)
#:export (guix-weather))
(define (all-packages)
"Return the list of public packages we are going to query."
(delete-duplicates
(fold-packages (lambda (package result)
(match (package-replacement package)
((? package? replacement)
(cons* replacement package result))
(#f
(cons package result))))
'()
;; Dismiss deprecated packages but keep hidden packages.
#:select? (negate package-superseded))
eq?))
(define (call-with-progress-reporter reporter proc)
"This is a variant of 'call-with-progress-reporter' that works with monadic
scope."