Package: guix-patches;
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Tue, 26 Nov 2024 10:33:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Message #122 received at 74542 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 74542 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH v2 05/16] packages: Factorize ‘all-packages’. Date: Fri, 29 Nov 2024 10:40:08 +0100
* 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 --- etc/source-manifest.scm | 13 +------------ gnu/packages.scm | 20 +++++++++++++++++++- guix/scripts/graph.scm | 10 ---------- guix/scripts/refresh.scm | 10 ---------- guix/scripts/weather.scm | 15 --------------- 5 files changed, 20 insertions(+), 48 deletions(-) diff --git a/etc/source-manifest.scm b/etc/source-manifest.scm index f96a5da6f7..3e1ae07959 100644 --- a/etc/source-manifest.scm +++ b/etc/source-manifest.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> +;;; Copyright © 2021, 2024 Ludovic Courtès <ludo <at> 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) diff --git a/gnu/packages.scm b/gnu/packages.scm index 80c22d1d7f..1af3b8d440 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2020, 2022-2023 Ludovic Courtès <ludo <at> gnu.org> +;;; Copyright © 2012-2020, 2022-2024 Ludovic Courtès <ludo <at> gnu.org> ;;; Copyright © 2013 Mark H Weaver <mhw <at> netris.org> ;;; Copyright © 2014 Eric Bavier <bavier <at> member.fsf.org> ;;; Copyright © 2016, 2017 Alex Kost <alezost <at> 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") diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 6740858d8b..935721edea 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -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 diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index ec7d38c22a..8c72d0c545 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -455,16 +455,6 @@ (define* (check-for-package-update update-spec updaters #:key warn?) ;;; 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 diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index 08a1b22a74..29432fd923 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -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." -- 2.46.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.