From patchwork Tue Aug 22 16:52:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53099 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 090CE27BBE2; Tue, 22 Aug 2023 17:55:34 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 0170C27BBE9 for ; Tue, 22 Aug 2023 17:55:33 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUep-0004E9-IS; Tue, 22 Aug 2023 12:55:07 -0400 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 1qYUen-0004CG-6O for guix-patches@gnu.org; Tue, 22 Aug 2023 12:55:05 -0400 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 1qYUem-0000UA-4o; Tue, 22 Aug 2023 12:55:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUek-0007ff-Dx; Tue, 22 Aug 2023 12:55:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 01/10] gnu-maintenance: Make base-url argument of import-html-release required. References: In-Reply-To: Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272329729445 (code B ref 65230); Tue, 22 Aug 2023 16:55:02 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:54:57 +0000 Received: from localhost ([127.0.0.1]:60307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUef-0007er-8I for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:54:57 -0400 Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]:60730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUed-0007ec-RU for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:54:56 -0400 Received: by mail-qk1-x72c.google.com with SMTP id af79cd13be357-76dacc4b378so116701885a.1 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:54:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723287; x=1693328087; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=zwtEy8EVivZqRWhgKLVL9BFYU9+RVCEkhF+RI8/P9js=; b=cJbd3Mz+UCGxRJozjFg/oQHfgEkqDJ2xXXhi+rO86hbOpd4VMEkkV3JqCNveJNgWyV uA/hcH9gEuG7VSIvJfyvGWo2XoA/m+aI7klMPbXFavWoOinfAmXY7XGfoEN12u2eNmrh GDuwlTofnstEwmzx3Zf8oXPn+Bzr1N8/GaFRTPdEb2oRqIhMarPj4mbZuuRwvzKnzb/a /NhrK/a8DjyKJpb2lYAD8wUo4mDaWPbsChFS/7nAsg13Sv46prw8cFDxCh93WpAI/JFr HIDhvbnxlzvPxscZGpcYfLKvW9tSOsl9KZFi1Trdul4WOMWLVSnduhp8lDh2gtACZ8UE /pKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723287; x=1693328087; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zwtEy8EVivZqRWhgKLVL9BFYU9+RVCEkhF+RI8/P9js=; b=jaXexXZ/Hcunumm6DNy+qx0wn1hvoTSFZaZZQrhHXDKXVMqitlA6E6uXx6I4uYtWpl rFpBlnYEQcr1wrfKPO+qPnCKYI/9/FLyRw1dHMfMBL69PCD8hblf1fmvuvXI4xyBWumI gZ11JRfVIgGbzxyBjthBDPM98vvBp+bRQDeKg46KR9J0ioSrcCoWqB95f/jIXzlE9Bwe 81w3MvpHymOYKz49buuWwNxxLaWWS8M1BQfJIaB1tdrSnheCVF//Pj+uI1KDcKShZADS YlqwlYvaWwT+GBWiDOrlzG6PEaVybcgJQDW2OL0ZKauLX5ESznm5Jw19w9c/pcUxyuH0 N1ZA== X-Gm-Message-State: AOJu0YzP3I1M9mjRmM3UvV7BQo0C4iAxbNZ8ttEPmGOLTRQG9h21IYNd Qp1z9Z0q4qoIuh8adkGWQ1UVNI+DC0U= X-Google-Smtp-Source: AGHT+IH4alNg0JT6rCmP6WFjkVXIanDFhTS08jNI0Qx0wiG+2oBHxoWLj+HYG8hPNsgxMEfcTH/y7Q== X-Received: by 2002:a05:620a:408e:b0:767:c572:ab10 with SMTP id f14-20020a05620a408e00b00767c572ab10mr14763835qko.35.1692723287030; Tue, 22 Aug 2023 09:54:47 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:46 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:18 -0400 Message-ID: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 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 It doesn't make sense to have it default to something like "https://kernel.org/pub"; it should always be provided explicitly. * guix/gnu-maintenance.scm (import-html-release) <#:base-url>: Turn keyword argument into a positional argument. Update doc. * guix/gnu-maintenance.scm (import-savannah-release): Adjust call accordingly. (import-kernel.org-release): Likewise. (import-html-updatable-release): Likewise. --- (no changes since v1) guix/gnu-maintenance.scm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) base-commit: c655231b72ac28b5a433069fcf86a835c9c83691 diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 5c16a7617d..198d72fc86 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -483,15 +483,14 @@ (define (html-links sxml) (_ links)))) -(define* (import-html-release package +(define* (import-html-release base-url package #:key (version #f) - (base-url "https://kernel.org/pub") (directory (string-append "/" package)) file->signature) - "Return an for the latest release of PACKAGE (a string) on -SERVER under DIRECTORY, or #f. Optionally include a VERSION string to fetch a -specific version. + "Return an for the latest release of PACKAGE (a string) +under DIRECTORY at BASE-URL, or #f. Optionally include a VERSION string to +fetch a specific version. BASE-URL should be the URL of an HTML page, typically a directory listing as found on 'https://kernel.org/pub'. @@ -730,9 +729,8 @@ (define* (import-savannah-release package #:key (version #f)) (directory (dirname (uri-path uri)))) ;; Note: We use the default 'file->signature', which adds ".sig", ".asc", ;; or whichever detached signature naming scheme PACKAGE uses. - (import-html-release package + (import-html-release %savannah-base package #:version version - #:base-url %savannah-base #:directory directory))) (define* (latest-sourceforge-release package #:key (version #f)) @@ -824,9 +822,8 @@ (define* (import-kernel.org-release package #:key (version #f)) ((uri mirrors ...) uri)))) (package (package-upstream-name package)) (directory (dirname (uri-path uri)))) - (import-html-release package + (import-html-release %kernel.org-base package #:version version - #:base-url %kernel.org-base #:directory directory #:file->signature file->signature))) @@ -874,9 +871,8 @@ (define* (import-html-updatable-release package #:key (version #f)) (dirname (uri-path uri)))) (package (package-upstream-name package))) (false-if-networking-error - (import-html-release package + (import-html-release base package #:version version - #:base-url base #:directory directory)))) (define %gnu-updater From patchwork Tue Aug 22 16:52:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53100 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 2954227BBE9; Tue, 22 Aug 2023 17:55:41 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 987EE27BBE2 for ; Tue, 22 Aug 2023 17:55:40 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUep-0004Dm-AB; Tue, 22 Aug 2023 12:55:07 -0400 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 1qYUen-0004CD-1W for guix-patches@gnu.org; Tue, 22 Aug 2023 12:55:05 -0400 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 1qYUem-0000Wm-Af; Tue, 22 Aug 2023 12:55:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUek-0007fr-SS; Tue, 22 Aug 2023 12:55:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 02/10] gnu-maintenance: Fix docstring. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272330129470 (code B ref 65230); Tue, 22 Aug 2023 16:55:02 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:01 +0000 Received: from localhost ([127.0.0.1]:60311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUei-0007fF-LK for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:00 -0400 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]:51277) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUef-0007ee-O1 for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:54:58 -0400 Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-76d97f2e4d9so264424285a.2 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:54:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723289; x=1693328089; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=k1G2VIHKoTx2tIjjJ5XSofqk/ERa0Esv28m3h6yTL98=; b=d5ZKeVRa/8accQ+CH5o1nCO0KwVJirQB23ywNyl/nWDr64AX84y2Y1MEAXjwvfYwPB 9qsY/jsYiLKsWp0/+ooR9aaNV5/RYBkldvxSgQyrBUDs9Bmgvj17EEODmpIy9jaC/JU3 YDWoRrC04n63e5POnqmhq2F5OrLlIl55PCs9zF65TsLAbu0HBrOGwR9T7nA9fPvryaxc CyOt3fWQoE7vahIwwc1vNatjR8HbFqDG0nQpmnFowFJU71t3NtkVm5nqmY3xKwCQZDQq 5EIMFZVbCE96f3+9g3ct2J+mqh6IVL6ctH/P+oYetE0N7z/nBENe5LYBXIQRKw6Rm68U zpoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723289; x=1693328089; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k1G2VIHKoTx2tIjjJ5XSofqk/ERa0Esv28m3h6yTL98=; b=UAxP/bNsIorLQ9aElVIDQrHaK+hcQ4bnIL7mYkIc4JskxlAM77ORTpkUMiEuwk2Y9x fRkmn0kGz7zrNKDVZICa323rwZm8d66+jXO42Aj282uArjS2YxIb/zHcG9RlKg98jd11 M7TDGFuFJxo/mhm7aQSJ4uei8P5DfEirWfzn7T9IpFRbAy1l+T88FtOOkNTEmEyaONAX zcXGcnCGlxUo1SeRznGAL2ZUJTWBU3MRdanbRJxv7sil9dFhKRvwGe78Q6OV0GKLGvtG vepVtCtpYGtbhdkCMWuDWB8sZ0rBjHm8+FCYvOurvJguSwjtyWXO1YfsvBt7fs07t43P B9tQ== X-Gm-Message-State: AOJu0Yw/Ww7k8/uanylidCttslpjFep5W/Fzpu9UDYqcZJVN+PuNJQfk 85QYXKpMlwzNV72LSUcM/2lLGOh07vo= X-Google-Smtp-Source: AGHT+IEvpWroEgMvqa6NDazOHcaHYMy+OJjOrya53ARb4UXdxaDNO581KnytJ576LlyHVGUdG49EFA== X-Received: by 2002:a05:620a:4149:b0:76c:c147:2289 with SMTP id k9-20020a05620a414900b0076cc1472289mr14708296qko.67.1692723289152; Tue, 22 Aug 2023 09:54:49 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:48 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:19 -0400 Message-ID: <8fa04ff9730f7e822546562044af978ce6f57b0b.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (import-kernel.org-release): Fix docstring. --- (no changes since v1) guix/gnu-maintenance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 198d72fc86..6db0dd952c 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -489,7 +489,7 @@ (define* (import-html-release base-url package (directory (string-append "/" package)) file->signature) "Return an for the latest release of PACKAGE (a string) -under DIRECTORY at BASE-URL, or #f. Optionally include a VERSION string to +under DIRECTORY at BASE-URL, or #f. Optionally include a VERSION string to fetch a specific version. BASE-URL should be the URL of an HTML page, typically a directory listing as @@ -806,7 +806,7 @@ (define* (import-xorg-release package #:key (version #f)) (string-append "/pub/xorg/" (dirname (uri-path uri))))))) (define* (import-kernel.org-release package #:key (version #f)) - "Return the latest release of PACKAGE, the name of a kernel.org package. + "Return the latest release of PACKAGE, a Linux kernel package. Optionally include a VERSION string to fetch a specific version." (define %kernel.org-base ;; This URL and sub-directories thereof are nginx-generated directory From patchwork Tue Aug 22 16:52:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53098 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 B720827BBE9; Tue, 22 Aug 2023 17:55:21 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 D18CA27BBE2 for ; Tue, 22 Aug 2023 17:55:20 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUeo-0004D5-Av; Tue, 22 Aug 2023 12:55:06 -0400 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 1qYUen-0004CE-2D for guix-patches@gnu.org; Tue, 22 Aug 2023 12:55:05 -0400 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 1qYUem-0000Wj-7R; Tue, 22 Aug 2023 12:55:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUel-0007fx-7v; Tue, 22 Aug 2023 12:55:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 03/10] gnu-maintenance: Extract url->links procedure. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:55:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272330129476 (code B ref 65230); Tue, 22 Aug 2023 16:55:03 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:01 +0000 Received: from localhost ([127.0.0.1]:60313 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUei-0007fH-VU for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:01 -0400 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]:61931) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUeh-0007eh-P2 for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:00 -0400 Received: by mail-qk1-x733.google.com with SMTP id af79cd13be357-76daeaded2aso105687485a.3 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:54:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723291; x=1693328091; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=37M+iDjItsOpyggqYwMPNyGHNORkbOtVIycZBTzDwa0=; b=fQ85RG2MEDcBxoHQmNApo+SmhEhTDIt3plPG02/V5uhd/ZjZiqPN207A+PD/oR+Iwx lxip0gPSRA6LKeJnQI8PsHuy275q57mNazsW8akDmNaSrqIT8xHGYy4RGRGlsLH7ITEk MCvp3Wo1n9KhK4IZ65ugCIyYbnQiPvaVAOUkiHYWxZHskVez73dbnl3qGg8L5sg5wSFD ybkA4C081ViGT2ydmlEGd0mXbvB2HLqGdWS0eVv1vjP8VpsCJL6rR2XlSAv1f8jLEEhB iqbeq4rzsSdERSPjnXOTIqH8SwR9VKW8HCS8V5Fuqird/+2w+CRrh5UvWuomg7M1Agjb Bjnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723291; x=1693328091; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=37M+iDjItsOpyggqYwMPNyGHNORkbOtVIycZBTzDwa0=; b=esR450yJbjrxRFXH0C1BX8CMjp1ZO+mWcrtFDTeDvCstzU6uC0i+lbOe11Nh19AC01 HLP+ENZ7hIRmbLLzxSovlO6H5AV0umaigyXa9axWnOaZZiDi2cx5u3nLse52nerkorB8 5kngMtqGTdwu+IGqSO/w0gS6Zv2phiBVoFR5DMfUKPUziI5kHCksY4YGTvBkuXaZRG9A x5OUXc0OmgD1ZFk8g7E23YxjD4tVWAJfQoY9xO4oX03S6X9hFFPhkqTIXjDUHgXk0huR Hh3rFfp7NyKsz4owbOFuv188zZgaI2iPB1l9tm3VR01Gd0oTG++p9semvGRtIDp+5+Iv Nf2g== X-Gm-Message-State: AOJu0Yw9ve3D/iNXJA4pB5cvpYhxOsHJIwnhzswJu8WhVLffl/37L2dj wBhnOHnEdXH5BuauZarnmjQF5gAW7mQ= X-Google-Smtp-Source: AGHT+IG0fvYzAlanJOXmXcXRB3VjhgX/In1WK7Lv866bSGJ86ol4hFLwxm8wXmBOcpUgNWMvD4/eAg== X-Received: by 2002:a05:620a:1993:b0:76d:aeb8:a5bb with SMTP id bm19-20020a05620a199300b0076daeb8a5bbmr4164179qkb.76.1692723291117; Tue, 22 Aug 2023 09:54:51 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:50 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:20 -0400 Message-ID: <20596c553f28278506543195ef414aeb8b05e14c.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (url->links): New procedure. (import-html-release): Use it. --- (no changes since v1) guix/gnu-maintenance.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 6db0dd952c..fc9cf50f29 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -483,6 +483,14 @@ (define (html-links sxml) (_ links)))) +(define (url->links url) + "Return the unique links on the HTML page accessible at URL." + (let* ((uri (string->uri url)) + (port (http-fetch/cached uri #:ttl 3600)) + (sxml (html->sxml port))) + (close-port port) + (delete-duplicates (html-links sxml)))) + (define* (import-html-release base-url package #:key (version #f) @@ -499,12 +507,10 @@ (define* (import-html-release base-url package if any. Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source file URL and must return the corresponding signature URL, or #f it signatures are unavailable." - (let* ((uri (string->uri (if (string-null? directory) - base-url - (string-append base-url directory "/")))) - (port (http-fetch/cached uri #:ttl 3600)) - (sxml (html->sxml port)) - (links (delete-duplicates (html-links sxml)))) + (let* ((url (if (string-null? directory) + base-url + (string-append base-url directory "/"))) + (links (url->links url))) (define (file->signature/guess url) (let ((base (basename url))) (any (lambda (link) @@ -562,7 +568,6 @@ (define* (import-html-release base-url package (define candidates (filter-map url->release links)) - (close-port port) (match candidates (() #f) ((first . _) From patchwork Tue Aug 22 16:52:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53103 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 E96C827BBE9; Tue, 22 Aug 2023 17:56:35 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 2DB9B27BBE2 for ; Tue, 22 Aug 2023 17:56:35 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfj-0004XW-Bi; Tue, 22 Aug 2023 12:56:03 -0400 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 1qYUfi-0004WD-B0 for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:02 -0400 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 1qYUfg-0000ug-Kr; Tue, 22 Aug 2023 12:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfh-0007j0-I4; Tue, 22 Aug 2023 12:56:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 04/10] gnu-maintenance: Fix indentation. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272331029576 (code B ref 65230); Tue, 22 Aug 2023 16:56:01 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:10 +0000 Received: from localhost ([127.0.0.1]:60338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUer-0007gw-Bw for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:09 -0400 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]:48487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUej-0007ep-VZ for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:02 -0400 Received: by mail-qk1-x72a.google.com with SMTP id af79cd13be357-76da4437500so151168485a.1 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:54:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723293; x=1693328093; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=M4f2WKeBdjlZNo6pGrtWjG+LpoMBDMPli863HNQLcVc=; b=H59Zm/qDxYY7P7s55nGwhf4mapcrj+Lhso93V957syyybXDSMpFxwS/A19HvGyfEg3 8n9vTS3uuQlrZyoK5gKlWgDjwQbNEhMNZyUnIfSz1w6jMFSLBtJeVvAExfqwvEBUHErH 22hwNtqWK0rGRl1RnFq42JNoe3xN/xwtQcBd+A95hLCvVJPLOVjBMbEdKslWv37rIWwk rW924ps6GvkS5bun0njjvvgx7qqAtpXqC+NTlL9IXoJxSXkL8tlxFEFcwsreh+Tm7qYh CSUU5+quCyxO6PFvebDumuy1CimzdJ8hSCY1B8oxZyU/Nudn/LmgDT80ekKIztQpTwy2 rPpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723293; x=1693328093; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M4f2WKeBdjlZNo6pGrtWjG+LpoMBDMPli863HNQLcVc=; b=Z4ZmXE5GK7gVhG8uf6rX1HV0XfxG3Qiv9Ahc8ldPnx7CQN9xQRR8NfoWcJ/prmcqiN n6N6S/etq2RUtSyOTscKD3TmATONyq+nEcH9fZPLIAbj2HKgk8V+EPhbQcrkHq5AxRQ6 2v5is/k0jpNaGl3elTISdHq6BgKJbQds5SJn9WtHA1XGxyjoswCmWitGOpFKKps8rOmk neY6W/aBIjcs4iaPRXK03Iwrqp43zzrVDbVFScPAdl1//TeGMWWGGLkZw+UbGUDD5PFu 5/a9mC43pkuSdItenuf9Yg72MnFcdDVuoHaF/tyhrXXUj77vYb+9KQLicyrfP7zl3J+e +x/w== X-Gm-Message-State: AOJu0YwoZweA7w+f1FlDEvu6CwlI7+CSIW4vsaK+PF5Nfx+bnemoDVnP nUrtoV4eMo27DebcBdgbOT2DM8ZsDao= X-Google-Smtp-Source: AGHT+IFkxwoKzMjoVXWchK1UxP25h18RV59Ncw/c127xIKKY+lBOYvtScYc+AgtiM2dMIBOX1IuJaA== X-Received: by 2002:a05:620a:2410:b0:768:134e:1d41 with SMTP id d16-20020a05620a241000b00768134e1d41mr11248250qkn.7.1692723293257; Tue, 22 Aug 2023 09:54:53 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:53 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:21 -0400 Message-ID: <2ae6538027064b1a67afbb4310c99b56da6ea040.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm: Re-indent file. --- (no changes since v1) guix/gnu-maintenance.scm | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index fc9cf50f29..30792db60f 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -578,11 +578,11 @@ (define* (import-html-release base-url package (coalesce-sources candidates)) ;; Select the most recent release and return it. (reduce (lambda (r1 r2) - (if (version>? (upstream-source-version r1) - (upstream-source-version r2)) - r1 r2)) - first - (coalesce-sources candidates))))))) + (if (version>? (upstream-source-version r1) + (upstream-source-version r2)) + r1 r2)) + first + (coalesce-sources candidates))))))) ;;; @@ -656,20 +656,20 @@ (define* (import-gnu-release package #:key (version #f)) (tarballs (filter (lambda (file) (string=? version (tarball->version file))) relevant))) - (match tarballs - (() #f) - (_ - (upstream-source - (package name) - (version version) - (urls (map (lambda (file) - (string-append "mirror://gnu/" - (string-drop file - (string-length "/gnu/")))) - ;; Sort so that the tarball with the same compression - ;; format as currently used in PACKAGE comes first. - (sort tarballs better-tarball?))) - (signature-urls (map (cut string-append <> ".sig") urls)))))))) + (match tarballs + (() #f) + (_ + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://gnu/" + (string-drop file + (string-length "/gnu/")))) + ;; Sort so that the tarball with the same compression + ;; format as currently used in PACKAGE comes first. + (sort tarballs better-tarball?))) + (signature-urls (map (cut string-append <> ".sig") urls)))))))) (define %package-name-rx ;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses From patchwork Tue Aug 22 16:52:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53101 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 5F4E527BBEA; Tue, 22 Aug 2023 17:56:16 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 86CBA27BBE2 for ; Tue, 22 Aug 2023 17:56:15 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfi-0004X9-UO; Tue, 22 Aug 2023 12:56:02 -0400 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 1qYUfg-0004Uw-7L for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:00 -0400 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 1qYUff-0000uA-UN; Tue, 22 Aug 2023 12:55:59 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfh-0007j9-Uu; Tue, 22 Aug 2023 12:56:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 05/10] gnu-maintenance: Accept package object in 'import-html-release' procedure. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272331029584 (code B ref 65230); Tue, 22 Aug 2023 16:56:01 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:10 +0000 Received: from localhost ([127.0.0.1]:60340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUer-0007gz-Ql for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:10 -0400 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]:62496) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUem-0007f0-N7 for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:05 -0400 Received: by mail-qk1-x72f.google.com with SMTP id af79cd13be357-76da1331db9so115455385a.0 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723295; x=1693328095; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BtJI2v2nDn53eCOhzE5C3dMTcRcZQX6u6tNJ2SraCbY=; b=ql+Aw2NNjGQrXgGMm/HTNLtyJ8cwiZFi2YUoX1UGH5Vk1AMzq7+bw9xP/VRyvB6B9m Ro5phweCyBFfwYS+erWuDkRqgW2vVTdkTGWtJuiai7uF7QCAx3TWBj1C8s3MxASbyLBp 3RPTlU05JFKm/NAqNKH2aKKRL6YQ/WBoa3zqr1cnk8+erjYrorzllYj2k9oU+0nO+srs M1NsAuxGqLxBqeRSU3+M8WUY5iqvSv44T5VExOFA8ld4mtthug947oag0/KzFVBnQoNk u7IIXpliD0diByxLSV7kooPrpsoQONBA0P/qg/a2hHfeNHL+aecjD+SWoetj56uZe7ph qPLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723295; x=1693328095; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BtJI2v2nDn53eCOhzE5C3dMTcRcZQX6u6tNJ2SraCbY=; b=SgqGOhqfVSbViJtNYalSJxOWdey+9TJKZ0PTosPS95NVcJhBLylKm8J7NSqkEL7bEq wAmb5OwksKnuDNcUoDkmi9JLPfoMRurxWWeJnuJ3kCbxYhtWUBxQV0FIfLdBKbXYXNga zM2YLv2tvWJWYghY9IvU4mCbaJzs2TbEWulB94HwgDG8L6LnulnQlocn26ZQOydaHqIP UiU1ib2SpjB42Cq1e4+P44r75gB0uKzEe2He755Wgdlpd/+6Lb/Lx1IIh9Yn57xvaDfE ERnjiVj5FUYeNK0PaggLDCzslPL8rSttDssLdEkA93k3x/76WgDZrIv4rvrdGDsCi3UM 8orQ== X-Gm-Message-State: AOJu0YzVa87m+ty4HLpWggwvBRMWHLTg4omuFVPxhhcbOp+dCETv8F3S NKAKNRVoBhXyyytKp7nWI99Gb/oVdxo= X-Google-Smtp-Source: AGHT+IFybIgOZ6GrircjJXFSK2PhgfHR1seMbicvJUROjMwPEq+4hrdeJWcCEAovzc1Ym70aSez2vg== X-Received: by 2002:a05:620a:3955:b0:765:6923:623e with SMTP id qs21-20020a05620a395500b007656923623emr13322365qkn.29.1692723295143; Tue, 22 Aug 2023 09:54:55 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:54 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:22 -0400 Message-ID: <37557f6ed860610f81801a621b0aea0255d5750b.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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 This is in preparation for a new URL rewriting feature, which will need to have the current version information available. * guix/gnu-maintenance.scm (import-html-release): Update doc. Adjust default value of the DIRECTORY argument. Bind PACKAGE in lexical scope so that its value there is unchanged. (import-savannah-release, import-kernel.org-release) (import-html-updatable-release): Adjust accordingly. --- (no changes since v1) guix/gnu-maintenance.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 30792db60f..eea75095b5 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -494,11 +494,12 @@ (define (url->links url) (define* (import-html-release base-url package #:key (version #f) - (directory (string-append "/" package)) + (directory (string-append + "/" (package-upstream-name package))) file->signature) - "Return an for the latest release of PACKAGE (a string) -under DIRECTORY at BASE-URL, or #f. Optionally include a VERSION string to -fetch a specific version. + "Return an for the latest release of PACKAGE under +DIRECTORY at BASE-URL, or #f. Optionally include a VERSION string to fetch a +specific version. BASE-URL should be the URL of an HTML page, typically a directory listing as found on 'https://kernel.org/pub'. @@ -507,7 +508,8 @@ (define* (import-html-release base-url package if any. Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source file URL and must return the corresponding signature URL, or #f it signatures are unavailable." - (let* ((url (if (string-null? directory) + (let* ((package (package-upstream-name package)) + (url (if (string-null? directory) base-url (string-append base-url directory "/"))) (links (url->links url))) @@ -730,7 +732,6 @@ (define* (import-savannah-release package #:key (version #f)) (match (origin-uri (package-source package)) ((? string? uri) uri) ((uri mirrors ...) uri)))) - (package (package-upstream-name package)) (directory (dirname (uri-path uri)))) ;; Note: We use the default 'file->signature', which adds ".sig", ".asc", ;; or whichever detached signature naming scheme PACKAGE uses. @@ -825,7 +826,6 @@ (define* (import-kernel.org-release package #:key (version #f)) (match (origin-uri (package-source package)) ((? string? uri) uri) ((uri mirrors ...) uri)))) - (package (package-upstream-name package)) (directory (dirname (uri-path uri)))) (import-html-release %kernel.org-base package #:version version @@ -873,8 +873,7 @@ (define* (import-html-updatable-release package #:key (version #f)) "://" (uri-host uri)))) (directory (if custom "" - (dirname (uri-path uri)))) - (package (package-upstream-name package))) + (dirname (uri-path uri))))) (false-if-networking-error (import-html-release base package #:version version From patchwork Tue Aug 22 16:52:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53106 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 62BFB27BBEA; Tue, 22 Aug 2023 17:57:10 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 EB02E27BBE2 for ; Tue, 22 Aug 2023 17:57:09 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfm-0004Zh-3f; Tue, 22 Aug 2023 12:56:06 -0400 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 1qYUfi-0004WC-Af for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:02 -0400 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 1qYUfg-0000uh-V3; Tue, 22 Aug 2023 12:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfi-0007jJ-CB; Tue, 22 Aug 2023 12:56:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 06/10] gnu-maintenance: Document nested procedures in 'import-html-release'. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272331129597 (code B ref 65230); Tue, 22 Aug 2023 16:56:02 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:11 +0000 Received: from localhost ([127.0.0.1]:60342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUes-0007h7-Ea for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:11 -0400 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]:56432) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUen-0007fE-Nk for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:06 -0400 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-7a01d654111so1590807241.0 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723297; x=1693328097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=61VK4cF9u+X8ZZErKv6LBZiBDBUxDPdKiiK/7crSTqc=; b=Rfa9+IckAH6QATYNKzdvgi5iI96uUvSNFjSR7kYGGv+Jg734Yy1MPPS72klw/mX/lC y6jZV7TxrFHRbUSJNsjs+362IxLZtn7wmwvNTe2U5hC3pi6GU0HZ+90lfpRUUXTjiFaU iqkK/jDUcXaRDni5oaRpwv98hVr7Keue7gvGI3fdcJQTn2o7ri9vu0OFQfZcEwJHipOY CzU8Xq6lov6FUglVUFOoyWNfr41mkNKEMBy+HrWY3e+3s28vtYxhxOhpnKfZTQP1k6JU 8zoSHxpepbTmmZdp2Crk7kXgyoY7ZHSKH4rDm+/snjfh1B72oUGUEzE5py6GTNBQJiAJ duxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723297; x=1693328097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=61VK4cF9u+X8ZZErKv6LBZiBDBUxDPdKiiK/7crSTqc=; b=gq++RKN+YTc+5UZ3xoC+ZDtdAi8cAK4VstbL5p/itchLxJhhKOxrW3ABOjZtxq7D/Q 7nDoHwJ/28wr/fe3ScrUGLsnZam1g5yYVReN2QNIz+S4VFqXAckO9CBVdaMfcpa1gbcu DCHs4rqX69FYjoHi9MqLnDodkO2WZqiiyWJKRypsH2iA8Rqq0+oYFmobEUkligNyW3P9 GK2OrICOWILpA7nFtyi/w8QnrqOll6xamsurIBHqor/zBhpkFpj+3VmGzN7s1z22PljM 6Z0MI+YQGsQNcAEGwe6qbY7+VBSDiwnnKGF/aFYdewYN0tUSzjPUOlE860vdr6mKBK3e uEtQ== X-Gm-Message-State: AOJu0Yy3Apvn6O9Ro9so95buwrbNCSJXMp9/L7paBBOc7OaEgLc9FixG 5cAf0MVPGhQsYjq6IHg2xqWpnJxYJiI= X-Google-Smtp-Source: AGHT+IGI17NVxCi/r3lU/pWEpreIrotOMrmPByNW+3c0zBesqISIz/B4drtsYp42JlnvMw44eCGqog== X-Received: by 2002:a67:db05:0:b0:44d:4f5a:7c5e with SMTP id z5-20020a67db05000000b0044d4f5a7c5emr5511922vsj.23.1692723296987; Tue, 22 Aug 2023 09:54:56 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:56 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:23 -0400 Message-ID: <8933484dfaac3de2bb4dbc4f218c0b49cb9bda27.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (import-html-release): Add docstring to the 'file->signature/guess' and 'url->release' nested procedures. --- (no changes since v1) guix/gnu-maintenance.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index eea75095b5..6f08e2e295 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -514,6 +514,7 @@ (define* (import-html-release base-url package (string-append base-url directory "/"))) (links (url->links url))) (define (file->signature/guess url) + "Return the first link that matches a signature extension, else #f." (let ((base (basename url))) (any (lambda (link) (any (lambda (extension) @@ -524,6 +525,8 @@ (define* (import-html-release base-url package links))) (define (url->release url) + "Return an object if a release file was found at URL, +else #f." (let* ((base (basename url)) (base-url (string-append base-url directory)) (url (cond ((and=> (string->uri url) uri-scheme) ;full URL? @@ -574,7 +577,7 @@ (define* (import-html-release base-url package (() #f) ((first . _) (if version - ;; find matching release version and return it + ;; Find matching release version and return it. (find (lambda (upstream) (string=? (upstream-source-version upstream) version)) (coalesce-sources candidates)) From patchwork Tue Aug 22 16:52:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53107 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 DAD2B27BBEA; Tue, 22 Aug 2023 17:57:11 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 D7A0727BBE2 for ; Tue, 22 Aug 2023 17:57:10 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfm-0004Zt-KP; Tue, 22 Aug 2023 12:56:06 -0400 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 1qYUfg-0004Ux-7n for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:00 -0400 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 1qYUff-0000uB-Uw; Tue, 22 Aug 2023 12:55:59 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfi-0007jS-QZ; Tue, 22 Aug 2023 12:56:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 07/10] gnu-maintenance: Extract 'canonicalize-url' from 'import-html-release'. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272331129605 (code B ref 65230); Tue, 22 Aug 2023 16:56:02 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:11 +0000 Received: from localhost ([127.0.0.1]:60344 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUet-0007hK-26 for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:11 -0400 Received: from mail-qk1-x731.google.com ([2607:f8b0:4864:20::731]:42373) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUep-0007fe-D0 for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:07 -0400 Received: by mail-qk1-x731.google.com with SMTP id af79cd13be357-76d7fcb2c62so208804385a.1 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723299; x=1693328099; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=id3CChLigFwGUS/lHbcs8VAsJ/enUdGiNVlbtSUEaEM=; b=gRTUsP77Z2hkuGjZxCl6J9ce7CtiX8HHHK/Xr1LwhClylhmEp/iVEh+dRfjBBtrgGq BN2Apwthe4WJN/2b/Jxjp2x9upZj7QISWtGIl70o0MvKAuMlIfyhLiVGRqOdaBs8DSze hdeNUlnQM+Pze3MpitmI/hdZgxNh0R9CIr/2BPm/8mHWKpybEoX7p484Ef/nYU3AN37Y zWNkIXGBBXkV8JbdpoqKhFUhd/l8na8I6Gn2Of+ybfY6Z1ZHwhUSavI4oW2kxxWPn9oy I7H4P6GHqI74wA2sQdyo8u0vM0cj/fCnuDuvJMJEtrhYijH5LpHp9EfJbj24+B7CJ6IX wq9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723299; x=1693328099; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=id3CChLigFwGUS/lHbcs8VAsJ/enUdGiNVlbtSUEaEM=; b=PR7xFvOji53ktzAbAwrXlc0sS+iXtSqjBQCWxqkIbAyn6PsoIHYXBDX+LVVIxUdP3i eWbg1yEkz3KqMSPIFyZaWsbaScU+GnE0sS3F82avnBJ9O97TdOPv/di2eeItQqYcujm1 crpdzLfPBCuQ86wqSP3UwWo1r1fbywh0nqPKWtPHQYIgEzGsb2mxWSZMwUcGEKyzJ+oS JM2h2pt7bXTE7ckHoCNlIVoRWRB7EEtdHhdL8cNV9T9/1umC1kmAb1Q4wrnoyDkOcuAa icc9Mb88CyaSuag16ZNZaHpGiWPsLYETpckFacwsh8ZhHUijWvakX4OQoX7CboVKD/Hb RGYg== X-Gm-Message-State: AOJu0Yy8Z/ceXTztHJn4gmk0sjcrUrCuEP4+TsFRMYVL/7NuNpBcfM1I sKEqaanTX+CZqmduGJmTYVVQMxkX1O4= X-Google-Smtp-Source: AGHT+IG0tXlXai9ieSwViDoq6s3NrPkssEcjAOtonN3zhXxOhz8wHzC2rdeS9wkOuHMDfhyivD0C0A== X-Received: by 2002:a05:620a:1aa3:b0:76d:a784:9685 with SMTP id bl35-20020a05620a1aa300b0076da7849685mr8271513qkb.28.1692723298658; Tue, 22 Aug 2023 09:54:58 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:54:58 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:24 -0400 Message-ID: <54dea9a4e14ab5a2bb9fe29dab6c6b703c788b4a.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (canonicalize-url): New procedure, extracted from... (import-html-release): ... here. Use it. Rename inner PACKAGE variable to NAME, to explicit it is a string and not a package object. --- (no changes since v1) guix/gnu-maintenance.scm | 70 +++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 6f08e2e295..9eff98217e 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -491,6 +491,33 @@ (define (url->links url) (close-port port) (delete-duplicates (html-links sxml)))) +(define (canonicalize-url url base-url) + "Make relative URL absolute, by appending URL to BASE-URL as required. If +URL is a directory instead of a file, it should be suffixed with a slash (/)." + (cond ((and=> (string->uri url) uri-scheme) + ;; Fully specified URL. + url) + ((string-prefix? "//" url) + ;; Full URL lacking a URI scheme. Reuse the URI scheme of the + ;; document that contains the URL. + (string-append (symbol->string (uri-scheme (string->uri base-url))) + ":" url)) + ((string-prefix? "/" url) + ;; Absolute URL. + (let ((uri (string->uri base-url))) + (uri->string + (build-uri (uri-scheme uri) + #:host (uri-host uri) + #:port (uri-port uri) + #:path url)))) + ;; URL is relative to BASE-URL, which is assumed to be a directory. + ((string-suffix? "/" base-url) + (string-append base-url url)) + (else + ;; URL is relative to BASE-URL, which is assumed to denote a file + ;; within a directory. + (string-append (dirname base-url) "/" url)))) + (define* (import-html-release base-url package #:key (version #f) @@ -508,11 +535,12 @@ (define* (import-html-release base-url package if any. Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source file URL and must return the corresponding signature URL, or #f it signatures are unavailable." - (let* ((package (package-upstream-name package)) + (let* ((name (package-upstream-name package)) (url (if (string-null? directory) base-url (string-append base-url directory "/"))) - (links (url->links url))) + (links (map (cut canonicalize-url <> url) (url->links url)))) + (define (file->signature/guess url) "Return the first link that matches a signature extension, else #f." (let ((base (basename url))) @@ -526,42 +554,12 @@ (define* (import-html-release base-url package (define (url->release url) "Return an object if a release file was found at URL, -else #f." - (let* ((base (basename url)) - (base-url (string-append base-url directory)) - (url (cond ((and=> (string->uri url) uri-scheme) ;full URL? - url) - ;; full URL, except for URI scheme. Reuse the URI - ;; scheme of the document that contains the link. - ((string-prefix? "//" url) - (string-append - (symbol->string (uri-scheme (string->uri base-url))) - ":" url)) - ((string-prefix? "/" url) ;absolute path? - (let ((uri (string->uri base-url))) - (uri->string - (build-uri (uri-scheme uri) - #:host (uri-host uri) - #:port (uri-port uri) - #:path url)))) - - ;; URL is a relative path and BASE-URL may or may not - ;; end in slash. - ((string-suffix? "/" base-url) - (string-append base-url url)) - (else - ;; If DIRECTORY is non-empty, assume BASE-URL - ;; denotes a directory; otherwise, assume BASE-URL - ;; denotes a file within a directory, and that URL - ;; is relative to that directory. - (string-append (if (string-null? directory) - (dirname base-url) - base-url) - "/" url))))) - (and (release-file? package base) +else #f. URL is assumed to fully specified." + (let ((base (basename url))) + (and (release-file? name base) (let ((version (tarball->version base))) (upstream-source - (package package) + (package name) (version version) ;; uri-mirror-rewrite: Don't turn nice mirror:// URIs into ftp:// ;; URLs during "guix refresh -u". From patchwork Tue Aug 22 16:52:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53105 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 0725527BBE2; Tue, 22 Aug 2023 17:57:08 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, 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 6AF3E27BBE9 for ; Tue, 22 Aug 2023 17:57:06 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfk-0004Yb-LS; Tue, 22 Aug 2023 12:56:04 -0400 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 1qYUfj-0004Xo-PD for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:03 -0400 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 1qYUfj-0000vf-FF; Tue, 22 Aug 2023 12:56:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfj-0007jf-8I; Tue, 22 Aug 2023 12:56:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 08/10] gnu-maintenance: Add support to rewrite version in URL path. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272332229632 (code B ref 65230); Tue, 22 Aug 2023 16:56:03 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:22 +0000 Received: from localhost ([127.0.0.1]:60348 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUf2-0007hr-Q8 for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:21 -0400 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]:44498) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUer-0007gG-8Q for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:10 -0400 Received: by mail-qk1-x72e.google.com with SMTP id af79cd13be357-76d9a79e2fdso230797785a.1 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723300; x=1693328100; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EkPZNjDifyIrNwXbGTiHVlrv72ThA6bRdYOV1jWOF08=; b=dzCFwisAhIwRfg7mVrSmKcxNqp9+WEDVbhPzwlUpmxz2qesC/Rg80cwEZm1HmAFgd2 +2zaqLWh4B3bmEYTfOzQKawnJJVPRWHi0e8aNd1oS+pksSvbI2lZLo4pKyo7c+JmWP7i woJ2bTFgFlVDClCJioNhX68J0yCEloDnPXuaVihnbiwwkzd4L1fejOhz8wlOy57ieE7n s2RQ9j74rbDHbeHtG8XA5kmA93cNRt9I/92UoRaVTrrrp78MCfcCrYpTpHCjBf1r/xOs vFdVFtVlwWt0WaJc24cRhk08VDz2wkerKTHbsormVqvevo34rNZ6N66d3+RZX8DAm9VN HYGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723300; x=1693328100; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EkPZNjDifyIrNwXbGTiHVlrv72ThA6bRdYOV1jWOF08=; b=CW7/2guP/bpUbm22JiwKQ9YxGN5fXJf5/1jPjJeVxM9ug+tKeuOggRvk3KLX9bKpCe XKqjfk/PllaFwIHiWGr52bgApJtJgczn7+p3i4+30nblhcKI0xlQQFUo32J8G5YfnsFS Z6DgzilRgOqhost44hvcc4Ry7fkibaTOJ82soqi3h1yifLdqjPKRoBHocPe2piiAFwBa bzndWplKEd+2cAVBbIxew+LfhbeiJsFwgIAHdmpFy/b3aW+8h929zyjL77/wABW1VtHF MtNDkw1hLWLZBqgLas8VCHHM6ocbqLqficWPDmKpU1XqVX6+/9NzZrqwgWTa/q23AZhu zo/Q== X-Gm-Message-State: AOJu0Yyn0slEm6Pcdp/FBwPR5oOdBmt8U5wtrfbBgPSYtqaXNM1Zn1/b sP0fZDoFYel3rTkbNacrCT3WJlCPXqQ= X-Google-Smtp-Source: AGHT+IGCMfhNC/2ZG+HEfGeQMquviM6bMcBPe3XfNoVZ2nVidBE7XDCuoNWIbOrOXoIDef4lG6L9uQ== X-Received: by 2002:a05:620a:4401:b0:769:89c8:4fae with SMTP id v1-20020a05620a440100b0076989c84faemr12407533qkp.52.1692723300508; Tue, 22 Aug 2023 09:55:00 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.54.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:55:00 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:25 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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 . Fixes . Previously, the generic HTML updater would only look for the list of files found at the parent of its current source URL, ignoring that the URL may embed the version elsewhere in its path. This could cause 'guix refresh' to report no updates available, while in fact there were, such as for 'libuv'. * guix/gnu-maintenance.scm (strip-trailing-slash): New procedure. (%version-rx): New variable. (rewrite-url): New procedure. (import-html-release): New rewrite-url? argument. When true, use the above procedure. (import-html-updatable-release): Call import-html-release with #:rewrite-url set to #t. * tests/gnu-maintenance.scm ("rewrite-url, to-version specified") ("rewrite-url, without to-version"): New tests. --- - Rebase and mention it also fixes #65304 in commit message guix/gnu-maintenance.scm | 102 ++++++++++++++++++++++++++++++++++++-- tests/gnu-maintenance.scm | 43 ++++++++++++++++ 2 files changed, 142 insertions(+), 3 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 9eff98217e..228a84bd4b 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2022 Maxime Devos +;;; Copyright © 2023 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ (define-module (guix gnu-maintenance) #:use-module (ice-9 regex) #:use-module (ice-9 match) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (rnrs io ports) @@ -61,6 +63,7 @@ (define-module (guix gnu-maintenance) gnu-package? uri-mirror-rewrite + rewrite-url release-file? releases @@ -518,9 +521,93 @@ (define (canonicalize-url url base-url) ;; within a directory. (string-append (dirname base-url) "/" url)))) +(define (strip-trailing-slash s) + "Strip any trailing slash from S, a string." + (if (string-suffix? "/" s) + (string-drop-right s 1) + s)) + +;;; TODO: Extend to support the RPM and GNOME version schemes? +(define %version-rx "[0-9.]+") + +(define* (rewrite-url url version #:key to-version) + "Rewrite URL so that the URL path components matching the current VERSION or +VERSION-MAJOR.VERSION-MINOR are updated with that of the latest version found +by crawling the corresponding URL directories. Alternatively, when TO-VERSION +is specified, rewrite version matches directly to it without crawling URL. + +For example, the URL +\"https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz\" could be +rewritten to something like +\"https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz\"." + ;; XXX: major-minor may be #f if version is not a triplet but a single + ;; number such as "2". + (let* ((major-minor (false-if-exception (version-major+minor version))) + (to-major-minor (false-if-exception + (and=> to-version version-major+minor))) + (uri (string->uri url)) + (url-prefix (string-drop-right url (string-length (uri-path uri)))) + (url-prefix-components (string-split url-prefix #\/)) + (path (uri-path uri)) + ;; Strip a forward slash on the path to avoid a double slash when + ;; string-joining later. + (path (if (string-prefix? "/" path) + (string-drop path 1) + path)) + (path-components (string-split path #\/))) + (string-join + (reverse + (fold + (lambda (s parents) + (if to-version + ;; Direct rewrite case; the archive is assumed to exist. + (let ((u (string-replace-substring s version to-version))) + (cons (if (and major-minor to-major-minor) + (string-replace-substring u major-minor to-major-minor) + u) + parents)) + ;; More involved HTML crawl case. + (let* ((pattern (if major-minor + (format #f "(~a|~a)" version major-minor) + (format #f "(~a)" version))) + (m (string-match pattern s))) + (if m + ;; Crawl parent and rewrite current component. + (let* ((parent-url (string-join (reverse parents) "/")) + (links (url->links parent-url)) + ;; The pattern matching the version. + (pattern (string-append "^" (match:prefix m) + "(" %version-rx ")" + (match:suffix m) "$")) + (candidates (filter-map + (lambda (l) + ;; Links may be followed by a + ;; trailing '/' in the case of + ;; directories. + (and-let* + ((l (strip-trailing-slash l)) + (m (string-match pattern l)) + (v (match:substring m 1))) + (cons v l))) + links))) + ;; Retrieve the item having the largest version. + (if (null? candidates) + (error "no candidates found in rewrite-url") + (cons (cdr (first (sort candidates + (lambda (x y) + (version>? (car x) + (car y)))))) + parents))) + ;; No version found in path component; continue. + (cons s parents))))) + (reverse url-prefix-components) + path-components)) + "/"))) + (define* (import-html-release base-url package #:key - (version #f) + rewrite-url? + version (directory (string-append "/" (package-upstream-name package))) file->signature) @@ -534,11 +621,19 @@ (define* (import-html-release base-url package When FILE->SIGNATURE is omitted or #f, guess the detached signature file name, if any. Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source file URL and must return the corresponding signature URL, or #f it signatures -are unavailable." - (let* ((name (package-upstream-name package)) +are unavailable. + +When REWRITE-URL? is #t, versioned components in BASE-URL and/or DIRECTORY are +also updated to the latest version, as explained in the doc of the +\"rewrite-url\" procedure used." + (let* ((current-version (package-version package)) + (name (package-upstream-name package)) (url (if (string-null? directory) base-url (string-append base-url directory "/"))) + (url (if rewrite-url? + (rewrite-url url current-version #:to-version version) + url)) (links (map (cut canonicalize-url <> url) (url->links url)))) (define (file->signature/guess url) @@ -877,6 +972,7 @@ (define* (import-html-updatable-release package #:key (version #f)) (dirname (uri-path uri))))) (false-if-networking-error (import-html-release base package + #:rewrite-url? #t #:version version #:directory directory)))) diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 516e02ec6a..196a6f9092 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm @@ -147,4 +147,47 @@ (define-module (test-gnu-maintenance) (equal? (list expected-signature-url) (upstream-source-signature-urls update)))))) +(test-equal "rewrite-url, to-version specified" + "https://download.qt.io/official_releases/qt/6.5/6.5.2/\ +submodules/qtbase-everywhere-src-6.5.2.tar.xz" + (rewrite-url "https://download.qt.io/official_releases/qt/6.3/6.3.2/\ +submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2")) + +(test-equal "rewrite-url, without to-version" + "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz" + (with-http-server + ;; First reply, crawling https://dist.libuv.org/dist/. + `((200 "\ + + +Index of dist + +../ +v1.44.0/ +v1.44.1/ +v1.44.2/ +v1.45.0/ +v1.46.0/ + +") + ;; Second reply, crawling https://dist.libuv.org/dist/v1.46.0/. + (200 "\ + + +Index of dist/v1.46.0 + +../ + + libuv-v1.46.0-dist.tar.gz +libuv-v1.46.0-dist.tar.gz.sign + + libuv-v1.46.0.tar.gz + + libuv-v1.46.0.tar.gz.sign + +")) + (rewrite-url "https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz" + "1.45.0"))) + (test-end) From patchwork Tue Aug 22 16:52:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53104 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 1482527BBEA; Tue, 22 Aug 2023 17:56:39 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, 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 B43BF27BBE2 for ; Tue, 22 Aug 2023 17:56:37 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfj-0004Xg-LV; Tue, 22 Aug 2023 12:56:03 -0400 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 1qYUfi-0004WS-IE for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:02 -0400 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 1qYUfi-0000v1-8f; Tue, 22 Aug 2023 12:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfj-0007jq-KS; Tue, 22 Aug 2023 12:56:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 09/10] gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272332629646 (code B ref 65230); Tue, 22 Aug 2023 16:56:03 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:26 +0000 Received: from localhost ([127.0.0.1]:60350 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUf7-0007i4-0O for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:26 -0400 Received: from mail-vk1-xa31.google.com ([2607:f8b0:4864:20::a31]:58826) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUet-0007gY-3C for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:12 -0400 Received: by mail-vk1-xa31.google.com with SMTP id 71dfb90a1353d-48d109dc6beso689072e0c.1 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723302; x=1693328102; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MK8+avJHldEMKEtrdNMDYNjuvXlDyay5MxaVdTs4+uM=; b=QYwSDiL5PTUU87/mxNJ/6Q5hCXDhft/7UQaIn7L3aGzZW5Yo0NR+Y4js2ADGgBxAqp 32IkAyjpnvAxN2J0xDJ7w12zLH87vV2wsMc1tMiqHCDD1jHlC6lKyQj9gUE/wpZ9BjOx h/1jjjKj7gJbtg38QHeVyFU4qicqlZXhqilklrKL6cVUN2LOCRydU5o9yni0766rleVB p2WREYcbxr0SFYvmit2xcEICRBZFTd/29WTsN54joJnW8XtD1g60sK2T20015SZFM/ho nUrwpjaCBdJBAu8tPb15PpRik+9iPkvRkvtL/R4ocmHVVh7jCxEvwEredXsTJZO/Le6b JI1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723302; x=1693328102; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MK8+avJHldEMKEtrdNMDYNjuvXlDyay5MxaVdTs4+uM=; b=GCyqu4DDQjkcpJKSbvKdPgkURV6noz91bliYkJWWMQTFH4M8kMIfeg2VDtM8LqkmKE Nq6qNNmyHz2/vUiGYsrsfUbKJq7qQuzTGoJGR0mtHFEN1UfPylF3LDOYcPbOfH5/mcJ/ 7PRq98aCVmRt5+pO3hffnOUuiu+yr/Ow98S+gPy51OhpFQnkxAfRlTUHzuwkcKefJmBa 00KkDVVqm/rDKcss3CBo+Kh/QuKUkJTPAutdRZGwD7kCbYHdPhjTmbBGTapF3sX3uNwo 8d03jcD2acufMJWS3FNyStENxYYQMldnMUR74SEIcOPZLnkzruNZ2OWSzcs7CUTq4QSY yOYw== X-Gm-Message-State: AOJu0Ywqix822/UbV67kEv4iMKYOOJMHcw/ROv+ylhdyg2bjSYRKme4p EWCMWReOfrDo5dvOLSd/JkDUTfdxN/U= X-Google-Smtp-Source: AGHT+IGqG7CiXo0xIx2uN9WuqDWfqsTxBJtoSZdarWscZNFqr7RmKJkdNkPwIrPN8oPe/apQccVnqw== X-Received: by 2002:a1f:4cc1:0:b0:48d:41c:7818 with SMTP id z184-20020a1f4cc1000000b0048d041c7818mr4330251vka.11.1692723302305; Tue, 22 Aug 2023 09:55:02 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.55.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:55:01 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:26 -0400 Message-ID: <516f8771fbf6d788f0e4be285724742065fb858e.1692723147.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (http-url?): Extract from html-updatable-package?, modify to return the HTTP URL, and support the mirror:// scheme. (%disallowed-hosting-sites): New variable, extracted from html-updatable-package. (html-updatable-package?): Rewrite a mirror:// URL to an HTTP or HTTPS one. * guix/download.scm (%mirrors): Update comment. --- Changes in v4: - Rebase and fix conflict Changes in v2: - Update %mirrors comment to mention speed-related exceptions guix/download.scm | 5 +++- guix/gnu-maintenance.scm | 65 ++++++++++++++++++++++++---------------- 2 files changed, 44 insertions(+), 26 deletions(-) diff --git a/guix/download.scm b/guix/download.scm index ce6ebd0df8..31a41e8183 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -51,7 +51,10 @@ (define-module (guix download) ;;; Code: (define %mirrors - ;; Mirror lists used when `mirror://' URLs are passed. + ;; Mirror lists used when `mirror://' URLs are passed. The first mirror + ;; entry of each set should ideally be the most authoritative one, as that's + ;; what the generic HTML updater will pick to look for updates, with + ;; possible exceptions when the authoritative mirror is too slow. (let* ((gnu-mirrors '(;; This one redirects to a (supposedly) nearby and (supposedly) ;; up-to-date mirror. diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 228a84bd4b..eb30b7874f 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -928,31 +928,43 @@ (define* (import-kernel.org-release package #:key (version #f)) #:directory directory #:file->signature file->signature))) -(define html-updatable-package? - ;; Return true if the given package may be handled by the generic HTML - ;; updater. - (let ((hosting-sites '("github.com" "github.io" "gitlab.com" - "notabug.org" "sr.ht" "gitlab.inria.fr" - "ftp.gnu.org" "download.savannah.gnu.org" - "pypi.org" "crates.io" "rubygems.org" - "bioconductor.org"))) - (define http-url? - (url-predicate (lambda (url) - (match (string->uri url) - (#f #f) - (uri - (let ((scheme (uri-scheme uri)) - (host (uri-host uri))) - (and (memq scheme '(http https)) - ;; HOST may contain prefixes, - ;; e.g. "profanity-im.github.io", hence the - ;; suffix-based test below. - (not (any (cut string-suffix? <> host) - hosting-sites))))))))) - - (lambda (package) - (or (assoc-ref (package-properties package) 'release-monitoring-url) - (http-url? package))))) +;;; These sites are disallowed for the generic HTML updater as there are +;;; better means to query them. +(define %disallowed-hosting-sites + '("github.com" "github.io" "gitlab.com" + "notabug.org" "sr.ht" "gitlab.inria.fr" + "ftp.gnu.org" "download.savannah.gnu.org" + "pypi.org" "crates.io" "rubygems.org" + "bioconductor.org")) + +(define (http-url? url) + "Return URL if URL has HTTP or HTTPS as its protocol. If URL uses the +special mirror:// protocol, substitute it with the first HTTP or HTTPS URL +prefix from its set." + (match (string->uri url) + (#f #f) + (uri + (let ((scheme (uri-scheme uri)) + (host (uri-host uri))) + (or (and (memq scheme '(http https)) + ;; HOST may contain prefixes, e.g. "profanity-im.github.io", + ;; hence the suffix-based test below. + (not (any (cut string-suffix? <> host) + %disallowed-hosting-sites)) + url) + (and (eq? scheme 'mirror) + (and=> (find http-url? + (assoc-ref %mirrors + (string->symbol host))) + (lambda (url) + (string-append (strip-trailing-slash url) + (uri-path uri)))))))))) + +(define (html-updatable-package? package) + "Return true if the given package may be handled by the generic HTML +updater." + (or (assoc-ref (package-properties package) 'release-monitoring-url) + ((url-predicate http-url?) package))) (define* (import-html-updatable-release package #:key (version #f)) "Return the latest release of PACKAGE. Do that by crawling the HTML page of @@ -960,6 +972,9 @@ (define* (import-html-updatable-release package #:key (version #f)) string to fetch a specific version." (let* ((uri (string->uri (match (origin-uri (package-source package)) + ((? (cut string-prefix? "mirror://" <>) url) + ;; Retrieve the authoritative HTTP URL from a mirror. + (http-url? url)) ((? string? url) url) ((url _ ...) url)))) (custom (assoc-ref (package-properties package) From patchwork Tue Aug 22 16:52:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53102 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 72EAE27BBEA; Tue, 22 Aug 2023 17:56:26 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS 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 9A9E227BBE2 for ; Tue, 22 Aug 2023 17:56:25 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYUfj-0004XY-EU; Tue, 22 Aug 2023 12:56:03 -0400 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 1qYUfi-0004WG-Du for guix-patches@gnu.org; Tue, 22 Aug 2023 12:56:02 -0400 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 1qYUfi-0000un-3y; Tue, 22 Aug 2023 12:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qYUfk-0007k4-2u; Tue, 22 Aug 2023 12:56:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65230] [PATCH v4 10/10] gnu-maintenance: Consider Qt source tarballs as "release files". Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 22 Aug 2023 16:56:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65230@debbugs.gnu.org Cc: Maxim Cournoyer , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 65230-submit@debbugs.gnu.org id=B65230.169272332629652 (code B ref 65230); Tue, 22 Aug 2023 16:56:04 +0000 Received: (at 65230) by debbugs.gnu.org; 22 Aug 2023 16:55:26 +0000 Received: from localhost ([127.0.0.1]:60352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUf8-0007i7-3K for submit@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:26 -0400 Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]:59461) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYUeu-0007gp-Mn for 65230@debbugs.gnu.org; Tue, 22 Aug 2023 12:55:13 -0400 Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-64bb576b8abso21736976d6.2 for <65230@debbugs.gnu.org>; Tue, 22 Aug 2023 09:55:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692723304; x=1693328104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/Tqp3zsF7Alq54SgeLifkC+ZNG4wmNBNo8AM6mJ5zvY=; b=WR3dKOMqtOp5z1/LCL9keoKKyK+N1K5dQcLEj48o0CVRdEtKviK6vUzyWTpIrwpknJ L3zTAL3FAvhJImCN44QDff5uKiLf7GWLcltZB0x9fxlSaMHLlRPYXt3CyfdPJh6NkwdA e4cQ6LXi4mkMPmfUOehPEHvxqz7CAPf+3sSO99xRTb6n0Bh6wHEktTUOL2A+Fyq/qIXf IZ0c7MfTV3vD6CqY8gwCF5T/D/ear2yVuxiuBLqV91cA/YedfulcPA5tZEf3Nl6cF5Dh 9gjW/AC9JQNSUzul1sCzF+LJfA9DPV4eKjasVcFuGI5KbxyabG2IioTAHU2W7yPXqOgp uSdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692723304; x=1693328104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/Tqp3zsF7Alq54SgeLifkC+ZNG4wmNBNo8AM6mJ5zvY=; b=OaKC63SmOHaCsx5AzirdyUkxuLngU0Qn8BgS/05/w4S99nHsXk+rPG5MtkpG1nF/H+ +339+ceb5PZxkFvDy+5RMFBPkw7QmovR1U3Phveof0X86wuWs7INSkyfnHxR5O2d5qRt D12LLyn4DJk5N6kRCBGgo8BN8X7U/0p5gjTliOnBYWxpOMJXQrZeoZOI6p/wP13gC5Zp MuW2XPx+QkFU+VWa1XJ/jsBXoSMXmKQdZlwuZ8XGbxW7CqeOwMRBXJVFQwe+zUb/Ln9m YSJgEofPY42mbsz+f+x2AWuHFdRR/4TwNrnNAg1VwEwr6Ab0LehiD7yITKz7HJTHV/sB TMpQ== X-Gm-Message-State: AOJu0Yz8PTCslU8drih0P2J1SU+obiRYP8KtTcNeURdc7lHDs7tdASSl tkVRNzujQHb+HVTVJMrHsCKcGecSCcY= X-Google-Smtp-Source: AGHT+IFriOxEDs2MF5rTL3ccV22iNzhXDJBhLd8tc3t8B3Nre3S33D8Rs61sFbYVPOfKw96RF6BZDA== X-Received: by 2002:ad4:559b:0:b0:64a:3073:e549 with SMTP id f27-20020ad4559b000000b0064a3073e549mr8856114qvx.59.1692723304046; Tue, 22 Aug 2023 09:55:04 -0700 (PDT) Received: from localhost.localdomain (dsl-158-129.b2b2c.ca. [66.158.158.129]) by smtp.gmail.com with ESMTPSA id p12-20020ae9f30c000000b007678973eaa1sm3336262qkg.127.2023.08.22.09.55.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Aug 2023 09:55:03 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 22 Aug 2023 12:52:27 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> References: <06b6c57b1af15b6ddca780182fc4a5e5264a67db.1692723147.git.maxim.cournoyer@gmail.com> 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/gnu-maintenance.scm (release-file?): Use positive logic in doc. Add a special case for Qt source archives. * tests/gnu-maintenance.scm ("release-file?"): Update test. --- (no changes since v3) Changes in v3: - Move a couple Qt-specific commits to the qt-updates branch Changes in v2: - Also special case release file of Qt Creator guix/gnu-maintenance.scm | 18 +++++++++++++----- tests/gnu-maintenance.scm | 5 ++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index eb30b7874f..ee6e0db747 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -258,8 +258,7 @@ (define %alpha-tarball-rx (make-regexp "^.*-.*[0-9](-|~|\\.)?(alpha|beta|rc|RC|cvs|svn|git)-?[0-9\\.]*\\.tar\\.")) (define (release-file? project file) - "Return #f if FILE is not a release tarball of PROJECT, otherwise return -true." + "Return true if FILE is a release tarball of PROJECT." (and (not (member (file-extension file) '("sig" "sign" "asc" "md5sum" "sha1sum" "sha256sum"))) @@ -268,12 +267,21 @@ (define (release-file? project file) ;; Filter out unrelated files, like `guile-www-1.1.1'. ;; Case-insensitive for things like "TeXmacs" vs. "texmacs". ;; The "-src" suffix is for "freefont-src-20120503.tar.gz". + ;; The '-everywhere-src' suffix is for Qt modular components. (and=> (match:substring match 1) (lambda (name) (or (string-ci=? name project) - (string-ci=? name - (string-append project - "-src"))))))) + (string-ci=? name (string-append project "-src")) + (string-ci=? + name (string-append project "-everywhere-src")) + ;; For older Qt releases such as version 5. + (string-ci=? + name (string-append + project "-everywhere-opensource-src")) + ;; For Qt Creator. + (string-ci=? + name (string-append + project "-opensource-src"))))))) (not (regexp-exec %alpha-tarball-rx file)) (let ((s (tarball-sans-extension file))) (regexp-exec %package-name-rx s)))) diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 196a6f9092..61ae295b96 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm @@ -40,7 +40,10 @@ (define-module (test-gnu-maintenance) ("exiv2" "exiv2-0.27.3-Source.tar.gz") ("mpg321" "mpg321_0.3.2.orig.tar.gz") ("bvi" "bvi-1.4.1.src.tar.gz") - ("hostscope" "hostscope-V2.1.tgz"))) + ("hostscope" "hostscope-V2.1.tgz") + ("qtbase" "qtbase-everywhere-src-6.5.2.tar.xz") + ("qtbase" "qtbase-everywhere-opensource-src-5.15.10.tar.xz") + ("qt-creator" "qt-creator-opensource-src-11.0.1.tar.xz"))) (every (lambda (project+file) (not (apply release-file? project+file))) '(("guile" "guile-www-1.1.1.tar.gz")