From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id yGrLKdNrC2MBOgAAbAwnHQ (envelope-from ) for ; Sun, 28 Aug 2022 15:21:23 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 8C3hKNNrC2NldAEAG6o9tA (envelope-from ) for ; Sun, 28 Aug 2022 15:21:23 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 321D923D9F for ; Sun, 28 Aug 2022 15:21:23 +0200 (CEST) Received: from localhost ([::1]:48458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oSIE6-0005Zu-Bs for larch@yhetil.org; Sun, 28 Aug 2022 09:21:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oSICv-0002z2-Sk for guix-patches@gnu.org; Sun, 28 Aug 2022 09:20:10 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39844) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oSICv-0002g9-Jd for guix-patches@gnu.org; Sun, 28 Aug 2022 09:20:09 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oSICv-0006zD-Fc for guix-patches@gnu.org; Sun, 28 Aug 2022 09:20:09 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57460] [PATCH 15/20] refresh: Allow updating to a specific version (script) Resent-From: Hartmut Goebel Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 28 Aug 2022 13:20:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57460 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 57460@debbugs.gnu.org Received: via spool by 57460-submit@debbugs.gnu.org id=B57460.166169278126688 (code B ref 57460); Sun, 28 Aug 2022 13:20:09 +0000 Received: (at 57460) by debbugs.gnu.org; 28 Aug 2022 13:19:41 +0000 Received: from localhost ([127.0.0.1]:57804 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSICS-0006wG-S5 for submit@debbugs.gnu.org; Sun, 28 Aug 2022 09:19:41 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:57489) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSICH-0006un-O1 for 57460@debbugs.gnu.org; Sun, 28 Aug 2022 09:19:30 -0400 Received: from hermia.goebel-consult.de ([46.87.137.46]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M6URd-1oUDzx0YMz-006w7C for <57460@debbugs.gnu.org>; Sun, 28 Aug 2022 15:19:24 +0200 Received: from lenashee.fritz.box (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 4E3C165A4A; Sun, 28 Aug 2022 15:18:56 +0200 (CEST) From: Hartmut Goebel Date: Sun, 28 Aug 2022 15:18:41 +0200 Message-Id: X-Mailer: git-send-email 2.30.4 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:vSysZ/IaTQn65cJm9u1e7IYJqjCu+VSqdIVVXOSsNCRRWPT8f3A pLyRoibU6Y+vSI5yalEBbSUSWOO/PLe+6TdZOJu09IOslQamB6CZAybGfYXqZ6Reet/GmiH WV7F/40iMHYrTEaUyvATMg5Zi6gs+YzOHTrbQwAdMH2GXrr1QnI5grhAyMEDtecS/7pK+NI ymA4LNRorf6PvhoKYAcPA== X-UI-Out-Filterresults: notjunk:1;V03:K0:BgrqSDvho7E=:LJGLuGO+kSezOu8jdjGxM4 E9P5jlPhsLAWkUiD7j4u75/RLqh+EBPtuMIYT0JX0baK79CvZlbsYPwPP8W4lsQvlfhEJSE2t JW9Fw9HhnqMd5nZ6FUpuXVU4MRz7pe3I71F2qF+MmAoTUs0xLkyvrkwfs9kqCLkHxq9MDWBBD Qb5CTA1s//Z4rF7I4O98vdLJS4YzR3ckAusDNiOCPHpWscnrO6IKY3Tle5ST5U835pIQOLlLE nVGJpjb9Yk9HmGw1CdO+Ht9sl+V7JG+xBbYhkBp1FiPXOQG0lGsCY5faqCV2XJg7pSXKvCsdk upm9OsSmP7O5rj2D4M38qzZHFSFXVmiN8LdKcaBBpdhsp9Hl0iPVq7qAcf4UHcU3PlJsQMWJ/ zVlZzRDBnuBvOyOKiIStwmbjsw8ERPPSmhypWhWym5bjZpQoyqaNNlpGx/9TPoZvFVmqCV6j8 7iWDAcCZJIAstHi1KvTrNiQGscvzGIlETgjK/8Ok03uogfzwUAxsabwrMUXgGAhj6JkwRdHHw qhhi0lfSPTUMzPML4ZnW1ltNW9cO8fnH7Ya9aBFPQ5Kn2/t5bqi8yUK88L8VUBFFupIrY7SXq 7ClN8p0GIwbB9YkgM4yZo5tsjXhsjJc9JOWrMBY1f28SMugJukz1Oy8dB8qmC2bmPOBv7iEJp IUt7PzdgEFsmevley5SzIy1bYkG8f1C1LlRzBafbnOby+NOKnjTYcBya1tTowd/UVawCvOME7 /IRMDlqvkVMLR4lEnvHdhIKPay6Grswkh+WK/7wtKFUOhEFw5/ZoTWjE4aU= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1661692883; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=Enc18RsJYL4PxIajrxYsQqy1Pg2stcDtDUeDNjrP7+Q=; b=JHNAHDr/4NMXVX1XicPHX7Y0VfykhdOXjTGTDE/QCDWqsJYI3G8qYq6/HqbZ8c5rQw1Qqu e6BWYpMRT5sXYrs1ptz6HAHV/OYrw2q3QTMe4R7sO2WuCdDRpg/HQCh819oFsKBi1/SgiW o5NhcLS6T1BcEkcGaVHHgxPu8c4X0RkyPd9oftiBqJlmm7ROksUT4n0M36fh6R7s6bnfhl iZbv1Qs97R53QV2uvndqi0Pewvh6YZwHVjeGTZtlckpUfF1wEo2p8C5YAIs0dEG1um2Zwo QAcVLFnYV7Fq3fF0W9m6I4fWlH/GNHt42KrsrhoxhTRdf44jI6RlVqNrmGGBZQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1661692883; a=rsa-sha256; cv=none; b=qS8dnBymu/x/Pn8dksbD85cQzKvDHPvjBdMiQxsD3XAdL5SL+nufZvAoPiH/mRG95Iy7WF CF9SLRYa1WMDZiF070AzJIOgG/LwC9MCPhLeijYWTzfibxbPil4z0srY8cq0+dllbIHKSe KdpRfg3y+T4eplyh2kzo144PK/vfv/wgEA9H6SvcevGHz7/sbChQBFsI8pXJozzGlOOZJ+ Mu/x6eYb+Ss8hd0T/W3RchOYXAxQnboJ1EmGd/NnQMAKV/dJrKfqsJbG69s5W6RkzbifCU sE979LZUbnEanx13IhSD7t8232mFY1+gYIyFem8BOP25a19iHq6W8HunzrEpGg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -1.30 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 321D923D9F X-Spam-Score: -1.30 X-Migadu-Scanner: scn0.migadu.com X-TUID: gPHCN3iq2OD8 * guix/scripts/refresh.scm(options->packages)[args-packages]: Handle version specification in package name arguments. (update-package): Add keyword-argument 'version' and pass it on to called functions. (guix-refresh): When updating, pass the specified version (if any) to update-package. [package-list-without-versions, package-list-with-versions]: New functions. --- guix/scripts/refresh.scm | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 14329751f8..441e71a6e4 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2020 Simon Tournier ;;; Copyright © 2021 Sarah Morgensen +;;; Copyright © 2022 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -224,7 +225,8 @@ update would trigger a complete rebuild." (('argument . spec) ;; Take either the specified version or the ;; latest one. - (specification->package spec)) + (let* ((name version (package-name->name+version spec))) + (list (specification->package name) version))) (('expression . exp) (read/eval-package-expression exp)) (_ #f)) @@ -298,7 +300,7 @@ update would trigger a complete rebuild." (G_ "no updater for ~a~%") (package-name package))) -(define* (update-package store package updaters +(define* (update-package store package version updaters #:key (key-download 'interactive) warn?) "Update the source file that defines PACKAGE with the new version. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed @@ -307,7 +309,7 @@ warn about packages that have no matching updater." (if (lookup-updater package updaters) (let ((version output source (package-update store package updaters - #:key-download key-download)) + #:key-download key-download #:version version)) (loc (or (package-field-location package 'version) (package-location package)))) (when version @@ -523,6 +525,18 @@ all are dependent packages: ~{~a~^ ~}~%") (lists (concatenate lists)))) + (define (package-list-without-versions packages) + (map (match-lambda + ((package version) package) + (package package)) + packages)) + + (define (package-list-with-versions packages) + (map (match-lambda + ((package version) (list package version)) + (package (list package #f))) + packages)) + (let* ((opts (parse-options)) (update? (assoc-ref opts 'update?)) (updaters (options->updaters opts)) @@ -540,12 +554,13 @@ all are dependent packages: ~{~a~^ ~}~%") (with-error-handling (with-store store (run-with-store store + (begin (mlet %store-monad ((packages (options->packages opts))) (cond (list-dependent? - (list-dependents packages)) + (list-dependents (package-list-without-versions packages))) (list-transitive? - (list-transitive packages)) + (list-transitive (package-list-without-versions packages))) (update? (parameterize ((%openpgp-key-server (or (assoc-ref opts 'key-server) @@ -558,13 +573,16 @@ all are dependent packages: ~{~a~^ ~}~%") (string-append (config-directory) "/upstream/trustedkeys.kbx")))) (for-each - (cut update-package store <> updaters - #:key-download key-download - #:warn? warn?) - packages) + (cut apply + (lambda (package version) + (update-package store package version updaters + #:key-download key-download + #:warn? warn?)) + <>) + (values (package-list-with-versions packages))) (return #t))) (else (for-each (cut check-for-package-update <> updaters #:warn? warn?) - packages) - (return #t))))))))) + (package-list-without-versions packages)) + (return #t)))))))))) -- 2.30.4