From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id KJztJfez3l6bYQAA0tVLHw (envelope-from ) for ; Mon, 08 Jun 2020 21:56:07 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 4PK6Ifez3l4xDwAAbx9fmQ (envelope-from ) for ; Mon, 08 Jun 2020 21:56:07 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 49E12940308 for ; Mon, 8 Jun 2020 21:56:07 +0000 (UTC) Received: from localhost ([::1]:46912 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiPkU-0005fc-94 for larch@yhetil.org; Mon, 08 Jun 2020 17:56:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50362) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiPjW-0004ZD-4h for bug-guix@gnu.org; Mon, 08 Jun 2020 17:55:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:46570) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiPjV-0008Ck-SA for bug-guix@gnu.org; Mon, 08 Jun 2020 17:55:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiPjV-0006XF-RU; Mon, 08 Jun 2020 17:55:05 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#22883: [PATCH 7/9] channels: Automatically add introduction for the official 'guix' channel. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 08 Jun 2020 21:55:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22883 X-GNU-PR-Package: guix X-GNU-PR-Keywords: security To: 22883@debbugs.gnu.org Received: via spool by 22883-submit@debbugs.gnu.org id=B22883.159165329825034 (code B ref 22883); Mon, 08 Jun 2020 21:55:05 +0000 Received: (at 22883) by debbugs.gnu.org; 8 Jun 2020 21:54:58 +0000 Received: from localhost ([127.0.0.1]:58104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiPjO-0006Vb-9B for submit@debbugs.gnu.org; Mon, 08 Jun 2020 17:54:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42196) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiPjK-0006U7-L7 for 22883@debbugs.gnu.org; Mon, 08 Jun 2020 17:54:54 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57663) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiPjF-00083F-BG; Mon, 08 Jun 2020 17:54:49 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=56818 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jiPjE-0007OP-IR; Mon, 08 Jun 2020 17:54:49 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Mon, 8 Jun 2020 23:54:13 +0200 Message-Id: <20200608215415.2871-7-ludo@gnu.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200608215415.2871-1-ludo@gnu.org> References: <20200608215415.2871-1-ludo@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Spam-Score: 3.99 X-TUID: iPRaZ2SXPg+9 This is useful when people run "guix time-machine -C channels.scm", where 'channels.scm' misses channel introductions. * guix/channels.scm (%default-channel-url): New variable. (%default-channels): Use it. (ensure-default-introduction): New procedure. (latest-channel-instance): Call it. --- guix/channels.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index 6047b51010..43ddff6f7c 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -148,18 +148,32 @@ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))) #f)) ;TODO: Add an intro signature so it can be exported. +(define %default-channel-url + ;; URL of the default 'guix' channel. + "https://git.savannah.gnu.org/git/guix.git") + (define %default-channels ;; Default list of channels. (list (channel (name 'guix) (branch "master") - (url "https://git.savannah.gnu.org/git/guix.git") + (url %default-channel-url) (introduction %guix-channel-introduction)))) (define (guix-channel? channel) "Return true if CHANNEL is the 'guix' channel." (eq? 'guix (channel-name channel))) +(define (ensure-default-introduction chan) + "If CHAN represents the \"official\" 'guix' channel and lacks an +introduction, add it." + (if (and (guix-channel? chan) + (not (channel-introduction chan)) + (string=? (channel-url chan) %default-channel-url)) + (channel (inherit chan) + (introduction %guix-channel-introduction)) + chan)) + (define-record-type (channel-instance channel commit checkout) channel-instance? @@ -386,7 +400,9 @@ their relation." (and (string=? (basename file) ".git") (eq? 'directory (stat:type stat)))) - (let-values (((checkout commit relation) + (let-values (((channel) + (ensure-default-introduction channel)) + ((checkout commit relation) (update-cached-checkout (channel-url channel) #:ref (channel-reference channel) #:starting-commit starting-commit))) -- 2.26.2