From patchwork Fri Dec 27 10:56:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 35853 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4816327BBEB; Fri, 27 Dec 2024 10:57:12 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id C822C27BBE2 for ; Fri, 27 Dec 2024 10:57:11 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tR81h-0002mD-RT; Fri, 27 Dec 2024 05:57:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81g-0002li-8J for guix-patches@gnu.org; Fri, 27 Dec 2024 05:57:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tR81f-0003uo-Vu; Fri, 27 Dec 2024 05:57:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=zlRyDz1aTmIvjSZqDu4NAnchp2ghsIhbAQK80mOsnqQ=; b=JDIrIkND0TY/3fepAV5fS+GpOClvjzuaFjIyHAQJWGZkoV2pW0uWLac3QeG2ZMziPtyX95yu6aFiWicRvuGL3EjgSQrXOjggkcSrz1A25jkBZOFlnyrmmElSJnyoyAvk3eUTxN6or8O8YBo8vDP4wACFa2U9Io43iTPYM34SENsRdbZ8NVrFr0D+hGLoyEecnmTkn8Lv6Ekjvb+LshLoJQ04EAssbZENQgjwkQ+B3+7lGSEwyxI6yWiP8re6811FUAwngbEO9ve08Avsxuq5sE9pCAFZi36EryPbbdIgl0DexIy9tfnOOA05W91ZyBp3UaLPFMWk7ipQ+dmh8O36HA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tR81d-0001dN-Nq; Fri, 27 Dec 2024 05:57:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75137] [PATCH 1/4] upstream: Switch to SRFI-71. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Fri, 27 Dec 2024 10:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75137 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75137@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 75137-submit@debbugs.gnu.org id=B75137.17352970196261 (code B ref 75137); Fri, 27 Dec 2024 10:57:01 +0000 Received: (at 75137) by debbugs.gnu.org; 27 Dec 2024 10:56:59 +0000 Received: from localhost ([127.0.0.1]:44808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81b-0001ct-FC for submit@debbugs.gnu.org; Fri, 27 Dec 2024 05:56:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:32834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81Z-0001cP-II for 75137@debbugs.gnu.org; Fri, 27 Dec 2024 05:56:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81T-0003to-Uv; Fri, 27 Dec 2024 05:56:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=zlRyDz1aTmIvjSZqDu4NAnchp2ghsIhbAQK80mOsnqQ=; b=GDatA28mHIWNbmFFBzQf jwD4H/fPIgLWVYUOUQ+n0fuB8ttW4WYIzanBIDO3cGRyDfSijCt1LiVK5ygAl5XrvK5uFd7eOsOrh 0rdX0GhYxTEIHdDplkwCe0saVUC77bS1yFt+l+VmurMNvqFWYXqNbMpBIpaT1MfM7PSKYpV4ommj7 fBit0UajLO1zV4U6D2qyhNRGBTvoHTBHyRhzMCS472QtTZE30jpFXWLEvT20aOsRUyrMEi2hGzb7q +h60fVxHnZj0+vsjEvzefeFHjR8Enuh8a/JkFXB1wksO43E7ZNaKeZ8/4E/UP4ufGRI/H8mXNE8TU cAsENfNsjNsVYw==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Fri, 27 Dec 2024 11:56:40 +0100 Message-ID: <1878ae44b216f1f8b92efb19a7a67b435af23c90.1735296761.git.ludo@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/upstream.scm (download-tarball, package-update/url-fetch): Use SRFI-71 instead of SRFI-11. Change-Id: Ic7ca79b8e1248d01fd48a07faad3a6fa6a1d0c5f --- guix/upstream.scm | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index 0593c363aa..d680199578 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -44,7 +44,6 @@ (define-module (guix upstream) #:use-module (guix monads) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) - #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -339,12 +338,11 @@ (define* (download-tarball store url signature-url (mbegin %store-monad (built-derivations (list drv)) (return (derivation->output-path drv)))))))) - (let-values (((status data) - (if sig - (gnupg-verify* sig data - #:server key-server - #:key-download key-download) - (values 'missing-signature data)))) + (let ((status data (if sig + (gnupg-verify* sig data + #:server key-server + #:key-download key-download) + (values 'missing-signature data)))) (match status ('valid-signature tarball) @@ -438,18 +436,17 @@ (define* (package-update/url-fetch store package source SOURCE, an ." (match source (($ _ version urls signature-urls) - (let*-values (((archive-type) - (package-archive-type package)) - ((url signature-url) - ;; Try to find a URL that matches ARCHIVE-TYPE. - (find2 (lambda (url sig-url) - ;; Some URIs lack a file extension, like - ;; 'https://crates.io/???/0.1/download'. In that - ;; case, pick the first URL. - (or (not archive-type) - (string-suffix? archive-type url))) - urls - (or signature-urls (circular-list #f))))) + (let* ((archive-type (package-archive-type package)) + (url signature-url + ;; Try to find a URL that matches ARCHIVE-TYPE. + (find2 (lambda (url sig-url) + ;; Some URIs lack a file extension, like + ;; 'https://crates.io/???/0.1/download'. In that + ;; case, pick the first URL. + (or (not archive-type) + (string-suffix? archive-type url))) + urls + (or signature-urls (circular-list #f))))) ;; If none of URLS matches ARCHIVE-TYPE, then URL is #f; in that case, ;; pick up the first element of URLS. (let ((tarball (download-tarball store From patchwork Fri Dec 27 10:56:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 35854 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A7C8727BBE2; Fri, 27 Dec 2024 10:57:28 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2B07127BBE2 for ; Fri, 27 Dec 2024 10:57:28 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tR81i-0002md-IW; Fri, 27 Dec 2024 05:57:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81g-0002lt-R0 for guix-patches@gnu.org; Fri, 27 Dec 2024 05:57:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tR81g-0003ux-IJ; Fri, 27 Dec 2024 05:57:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=5dhmNPTm6fbis7eIyf3TLOaRsZmZQ9vQmwW7Z+8wvos=; b=Cg060fGTStPkN0CbG0bg5WcSrzWZp5z5F37INXMF7aX5nlGEW2vLY3tSCT4/cUrmL/OUPdztCqpAWzd9zYTlFKCxHCwFsvBXnYBTB6wcjpdPE54n3LjqfX8EDoBnTxPO/zesGEKrmcJCyEppu1oq3DS1dEE0yadAOT2bRWt2v8ifs70cMg4dCFiJcECqeglPwTnnSD/PMhRK+tXlUxHGuWwhuf68CF82ZzrelWGMakRpzbbPE0IdkXlKUIsHz+uczqllE9uMYPqCFONnC1ZXtpXBVy6EzeR0M/rXrlY7VjVyN+b7xd9KIcXeYvY/faQ45qWL6vwO41k6+JDKBnyZwg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tR81e-0001dX-AZ; Fri, 27 Dec 2024 05:57:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75137] [PATCH 2/4] upstream: Extract =?utf-8?b?4oCYcHJlZmVy?= =?utf-8?b?cmVkLXVwc3RyZWFtLXNvdXJjZS11cmzigJku?= Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Fri, 27 Dec 2024 10:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75137 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75137@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 75137-submit@debbugs.gnu.org id=B75137.17352970206274 (code B ref 75137); Fri, 27 Dec 2024 10:57:02 +0000 Received: (at 75137) by debbugs.gnu.org; 27 Dec 2024 10:57:00 +0000 Received: from localhost ([127.0.0.1]:44812 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81b-0001cw-Rs for submit@debbugs.gnu.org; Fri, 27 Dec 2024 05:57:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:32848) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81a-0001cQ-0E for 75137@debbugs.gnu.org; Fri, 27 Dec 2024 05:56:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81U-0003u3-Ov; Fri, 27 Dec 2024 05:56:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=5dhmNPTm6fbis7eIyf3TLOaRsZmZQ9vQmwW7Z+8wvos=; b=OnB8wHVjaYPDbpwsst9K +AcvcexG/mvQOvRvypztJCLEBJngy3D/FVyYygyNBYygVO91mI1WxbOw61cAzIxkRbV/QlNGurhUr SEpfrrjUtliZAr4fmHn+90KAPH/bE2lSmy14TCzL80ekWcVvPGojzA3bznZqTL4ZBZ8D4/fZaM7vQ qqLm+1MA2FHYA0HdFcDDsojuRMcBj+ETqgnaQhpGuJ8FTK7bVrGYWXm/DZuowPKkEPM4nbEGBUAEL SvIX2+QPenP+lD80k71kFaENC5H+lzmurTOuLN13+4iuAp+E9Hh8Cd+zJkR3wqcWMPQrM9rXkSqNa HDZqnjHetKxxiw==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Fri, 27 Dec 2024 11:56:41 +0100 Message-ID: X-Mailer: git-send-email 2.46.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/upstream.scm (preferred-upstream-source-url): New procedure. (package-update/url-fetch): Use it. Change-Id: I229cdf7668567e30ca156b3d65b77c90ead8bb05 --- guix/upstream.scm | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index d680199578..a6659c3b14 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2010-2023 Ludovic Courtès +;;; Copyright © 2010-2024 Ludovic Courtès ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2019, 2022-2024 Ricardo Wurmus ;;; Copyright © 2021 Sarah Morgensen @@ -430,23 +430,29 @@ (define (package-archive-type package) (string-contains extension "tar")) extension))))) +(define (preferred-upstream-source-url source package) + "Return two values: a source URL that matches the archive type of +PACKAGE (gz, xz, bz2, etc.) and the corresponding signature URL or #f if there +is no signature. Return #f and #f when this is not applicable." + (let ((archive-type (package-archive-type package))) + (find2 (lambda (url sig-url) + ;; Some URIs lack a file extension, like + ;; 'https://crates.io/???/0.1/download'. In that case, pick the + ;; first URL. + (or (not archive-type) + (string-suffix? archive-type url))) + (upstream-source-urls source) + (or (upstream-source-signature-urls source) + (circular-list #f))))) + (define* (package-update/url-fetch store package source #:key key-download key-server) "Return the version, tarball, and SOURCE, to update PACKAGE to SOURCE, an ." (match source (($ _ version urls signature-urls) - (let* ((archive-type (package-archive-type package)) - (url signature-url - ;; Try to find a URL that matches ARCHIVE-TYPE. - (find2 (lambda (url sig-url) - ;; Some URIs lack a file extension, like - ;; 'https://crates.io/???/0.1/download'. In that - ;; case, pick the first URL. - (or (not archive-type) - (string-suffix? archive-type url))) - urls - (or signature-urls (circular-list #f))))) + (let ((url signature-url + (preferred-upstream-source-url source package))) ;; If none of URLS matches ARCHIVE-TYPE, then URL is #f; in that case, ;; pick up the first element of URLS. (let ((tarball (download-tarball store From patchwork Fri Dec 27 10:56:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 35856 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1A78C27BBE9; Fri, 27 Dec 2024 10:58:26 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 8C87627BBE2 for ; Fri, 27 Dec 2024 10:58:25 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tR82f-00030P-K0; Fri, 27 Dec 2024 05:58:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR82e-000304-1h for guix-patches@gnu.org; Fri, 27 Dec 2024 05:58:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tR82d-0003yX-Lg; Fri, 27 Dec 2024 05:58:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=RTWZ57pnH1octakJPOtakRXEzLzV4TgFGPPTJchsQ1c=; b=n/5rdSbFKrLcOf7ROoKgN/62OwTvg9F5beaVC7CjP3vWVVrCfUMHlK9BpnOP7mFJgTJ0PhMKCQIkjduQYQBGeplkIEkfiVt5N3AkQup13ZBdmjW07A40xVVkX/7PN6gJQcrChhMywyTgMNwpjkQkLtR1Wc1grxVpLrBWWX0UK+LfvhEta1rIpzWxcIeJMQ8+1yAw1/406MVwSGpHsybzHUEXbuezpZ9pHPgW3pzefUdXznTGHDnLP6j3hudiqULBLH900EIc8ZuM3mqzAEUBfRa/O4/tpidl5R5YHXLAVGtdJigVe5D19cVfp+E3FlRj8z9UgZ/w70qkSabsAG3ZtA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tR82b-0001fa-Vp; Fri, 27 Dec 2024 05:58:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75137] [PATCH 3/4] upstream: Define =?utf-8?b?4oCYcHJlZmVycmVk?= =?utf-8?b?LXVwc3RyZWFtLXNvdXJjZeKAmS4=?= Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Fri, 27 Dec 2024 10:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75137 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75137@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 75137-submit@debbugs.gnu.org id=B75137.17352970296335 (code B ref 75137); Fri, 27 Dec 2024 10:58:01 +0000 Received: (at 75137) by debbugs.gnu.org; 27 Dec 2024 10:57:09 +0000 Received: from localhost ([127.0.0.1]:44824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81j-0001e1-Dz for submit@debbugs.gnu.org; Fri, 27 Dec 2024 05:57:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:32850) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81a-0001cT-QO for 75137@debbugs.gnu.org; Fri, 27 Dec 2024 05:56:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81V-0003uE-Ja; Fri, 27 Dec 2024 05:56:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=RTWZ57pnH1octakJPOtakRXEzLzV4TgFGPPTJchsQ1c=; b=ZzXKG7QAWNcLc5QmDQD+ Sq/wG2Ar6OeEAdBDS0C5+pDNtJMBNAJOp/oGIKrwlLpZb9OG7vhfo9VD6Y7Zh0+ZXA/cXa6fv/sz0 HC/HgZHVtHtysOio7RpM8/SLXwu19jKt4o4ckRwWLTPiXV6SZg8zXDC8CclYY7AnAk8yPkrnMOx68 MQ741ErwuD2GG69nQhZxTQqw/q43BIz+wDRnjOF9dBgFq0LUNRWUq1dW0Duz1FViTpYrx3NmRZPGc 2MRavjv59Jk1pq9b0g1DcaBKWRGYeA93aDMsxHJVvgtaScDlcVY3a2cVfb3y8sbWNOkQ/D6uVCpqK xzPjpJJm8jeN8Q==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Fri, 27 Dec 2024 11:56:42 +0100 Message-ID: X-Mailer: git-send-email 2.46.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/upstream.scm (preferred-upstream-source): New procedure. * tests/upstream.scm ("preferred-upstream-source"): New test. Change-Id: I4b48b44f1aa233d2e99bfe2e1359a670297efae8 --- guix/upstream.scm | 12 ++++++++++++ tests/upstream.scm | 21 ++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index a6659c3b14..19c5efc21b 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -76,6 +76,7 @@ (define-module (guix upstream) url-predicate url-prefix-predicate coalesce-sources + preferred-upstream-source upstream-updater upstream-updater? @@ -445,6 +446,17 @@ (define (preferred-upstream-source-url source package) (or (upstream-source-signature-urls source) (circular-list #f))))) +(define (preferred-upstream-source source package) + "Return a variant of SOURCE that uses the same archive type as PACKAGE's +source (gz, xz, zst, etc.). Return SOURCE if this is not applicable." + (let ((url signature-url (preferred-upstream-source-url source package))) + (if url + (upstream-source + (inherit source) + (urls (list url)) + (signature-urls (and=> signature-url list))) + source))) + (define* (package-update/url-fetch store package source #:key key-download key-server) "Return the version, tarball, and SOURCE, to update PACKAGE to diff --git a/tests/upstream.scm b/tests/upstream.scm index a94bb66068..c75ab091e5 100644 --- a/tests/upstream.scm +++ b/tests/upstream.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2023 Ludovic Courtès +;;; Copyright © 2016, 2023-2024 Ludovic Courtès ;;; Copyright © 2022 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -26,6 +26,7 @@ (define-module (test-upstream) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix upstream) #:use-module (guix tests) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -55,4 +56,22 @@ (define-module (test-upstream) (signature-urls '("ftp://example.org/foo-1.tar.xz.sig"))))))) +(test-equal "preferred-upstream-source" + '(("http://example.org/foo-2.0.tar.xz") + ("http://example.org/foo-2.0.tar.xz.sig")) + (let* ((package (dummy-package + "foo" + (version "1.0") + (source + (dummy-origin (uri "http://example.org/foo-1.0.tar.xz"))))) + (source (upstream-source + (package "foo") + (version "2.0") + (urls '("http://example.org/foo-2.0.tar.gz" + "http://example.org/foo-2.0.tar.xz")) + (signature-urls (map (cut string-append <> ".sig") urls)))) + (preferred (preferred-upstream-source source package))) + (list (upstream-source-urls preferred) + (upstream-source-signature-urls preferred)))) + (test-end) From patchwork Fri Dec 27 10:56:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 35855 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 33B3627BBEB; Fri, 27 Dec 2024 10:58:14 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id AEEBD27BBE2 for ; Fri, 27 Dec 2024 10:58:13 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tR82e-00030H-Sj; Fri, 27 Dec 2024 05:58:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR82d-0002zw-EM for guix-patches@gnu.org; Fri, 27 Dec 2024 05:58:03 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tR82d-0003yN-4Z; Fri, 27 Dec 2024 05:58:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=2Ql5mPBI+6VirdjeTblezMhGv51kMkI+Tgo9ynQmO2o=; b=GdGVd9ulUj9/putyNa66E/PxbW3DRUundfBNEhS/A+zWxlUYp5aptUgVimiu0MFZ62McxBEOPfWFbYsi6fXwBhq4buR+CPccbnpgAA7o7/g+zyLeYDPAQStWTucTCLmaHkt5fqoBlktvkCQG9ec8+meIh/8f730gsAMLoGPVt/hhijbuANXI60yTJRFyqpmENPOfqXOuVSuWB0kExy76h8uCMokxO9d+DsyRjzZlKBgT4Ix82XHPL8gKZUF7UH0r3PawnbX8Y3VPrirKkRpk6KsA0n+oJ1jxJoFnovXbf/lvk9SdzMH6JNKHmCUYPD9wm5Y872yD8ASY75MfQ6hEDg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tR82c-0001fj-E5; Fri, 27 Dec 2024 05:58:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75137] [PATCH 4/4] transformations: =?utf-8?q?=E2=80=98package?= =?utf-8?q?-with-upstream-version=E2=80=99?= can preserve archive type. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Fri, 27 Dec 2024 10:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75137 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75137@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 75137-submit@debbugs.gnu.org id=B75137.17352970296342 (code B ref 75137); Fri, 27 Dec 2024 10:58:02 +0000 Received: (at 75137) by debbugs.gnu.org; 27 Dec 2024 10:57:09 +0000 Received: from localhost ([127.0.0.1]:44826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81l-0001eD-6b for submit@debbugs.gnu.org; Fri, 27 Dec 2024 05:57:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:32862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tR81b-0001cV-LJ for 75137@debbugs.gnu.org; Fri, 27 Dec 2024 05:57:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tR81W-0003uN-FH; Fri, 27 Dec 2024 05:56:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=2Ql5mPBI+6VirdjeTblezMhGv51kMkI+Tgo9ynQmO2o=; b=V3DogwGXqUBFXdArxyoa 5dBhvglrS+a5bxHNA+f6SfNansqlcw438E6jtR95IazgFhkaw4NCoI2UZza6DbHDQs+w8xcgbsJXE 2d9jyQhFhMHD7J5NeD/ColX7k2m+cVZGRNUIcFw09euEAApiyO5pwiZUiwvE1R/KZ/zT4zdZtjQ26 OSEPXyXLerLCJsV6Z1i+V6vEVQQ2msG41SsyfD2uFUBIXQXbdVvDiYh8SxLOJ3QtnpWT1DJFUHuBT lbJzeRxpyRL4vHaYIdgi3czgV0IAOwawXOmiy1FxcsGiLJ8ssb9ylMpPueUZvsVvTTEct+m1UIc5S W+rEoWonw/1/yg==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Fri, 27 Dec 2024 11:56:43 +0100 Message-ID: X-Mailer: git-send-email 2.46.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Fixes a discrepancy for ‘url-fetch’ packages where upstream provides several source tarballs. For example, for ‘xorg-server’, ‘package-with-upstream-version’ would pick the “tar.gz” tarball even though the package definition uses “tar.xz”. It now picks “tar.xz” by default. * guix/transformations.scm (package-with-upstream-version): Add #:preserve-archive-type?. Call ‘preferred-upstream-source’ to honor it. Change-Id: Iefa007aba339d81709faf82b7c52a5a2c7a6aad7 --- guix/transformations.scm | 44 +++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/guix/transformations.scm b/guix/transformations.scm index 131b8564f8..2887d91a34 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -33,6 +33,7 @@ (define-module (guix transformations) #:autoload (guix git) (git-checkout git-checkout? git-checkout-url) #:autoload (guix upstream) (upstream-source package-latest-release + preferred-upstream-source upstream-source-version upstream-source-signature-urls) #:autoload (guix cpu) (current-cpu @@ -865,12 +866,14 @@ (define (upstream-source-without-signatures source) (define* (package-with-upstream-version p #:optional version #:key (preserve-patches? #f) - (authenticate? #t)) + (authenticate? #t) + (preserve-archive-type? #t)) "Return package P changed to use the given upstream VERSION or, if VERSION is #f, the latest known upstream version. When PRESERVE-PATCHES? is true, preserve patches and snippets found in the source of P, provided it's an origin. When AUTHENTICATE? is false, disable OpenPGP signature verification -of upstream source code." +of upstream source code. When PRESERVE-ARCHIVE-TYPE? is true, use the same +archive type as P's source (gz, xz, zstd, etc.)" (let ((source (and=> (package-latest-release p #:version version) (if authenticate? identity @@ -899,24 +902,27 @@ (define* (package-with-upstream-version p #:optional version (upstream-source-version source) (package-version p))) - (unless (pair? (upstream-source-signature-urls source)) - (warning (G_ "cannot authenticate source of '~a', version ~a~%") - (package-name p) - (upstream-source-version source))) + (let ((source (if preserve-archive-type? + (preferred-upstream-source source p) + source))) + (unless (pair? (upstream-source-signature-urls source)) + (warning (G_ "cannot authenticate source of '~a', version ~a~%") + (package-name p) + (upstream-source-version source))) - ;; TODO: Take 'upstream-source-input-changes' into account. - (package - (inherit p) - (version (upstream-source-version source)) - (source (if (and preserve-patches? - (origin? (package-source p))) - ;; Inherit P's origin so snippets and patches are - ;; applied as if we had run 'guix refresh -u'. - (origin - (inherit (package-source p)) - (method upstream-fetch) - (uri source)) - source))))))) + ;; TODO: Take 'upstream-source-input-changes' into account. + (package + (inherit p) + (version (upstream-source-version source)) + (source (if (and preserve-patches? + (origin? (package-source p))) + ;; Inherit P's origin so snippets and patches are + ;; applied as if we had run 'guix refresh -u'. + (origin + (inherit (package-source p)) + (method upstream-fetch) + (uri source)) + source)))))))) (define (transform-package-latest specs) "Return a procedure that rewrites package graphs such that those in SPECS