From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id qMIuBxa7Q2JxQAEAgWs5BA (envelope-from ) for ; Wed, 30 Mar 2022 04:06:14 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id 6F+vAxa7Q2J8MAEAauVa8A (envelope-from ) for ; Wed, 30 Mar 2022 04:06:14 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 73AE8203F0 for ; Wed, 30 Mar 2022 04:06:13 +0200 (CEST) Received: from localhost ([::1]:55308 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nZNiu-00055k-2M for larch@yhetil.org; Tue, 29 Mar 2022 22:06:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51520) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZNik-00055I-Az for bug-guix@gnu.org; Tue, 29 Mar 2022 22:06:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40110) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nZNik-0002rj-3I for bug-guix@gnu.org; Tue, 29 Mar 2022 22:06:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nZNij-0006RH-Sz for bug-guix@gnu.org; Tue, 29 Mar 2022 22:06:01 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#54631: Unable to determine system origin when configuration stored in guix channel Resent-From: "Collin J. Doering" Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 30 Mar 2022 02:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 54631 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 54631@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.164860590324672 (code B ref -1); Wed, 30 Mar 2022 02:06:01 +0000 Received: (at submit) by debbugs.gnu.org; 30 Mar 2022 02:05:03 +0000 Received: from localhost ([127.0.0.1]:34007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZNhm-0006Pq-Ud for submit@debbugs.gnu.org; Tue, 29 Mar 2022 22:05:03 -0400 Received: from lists.gnu.org ([209.51.188.17]:53182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZNhk-0006PM-I8 for submit@debbugs.gnu.org; Tue, 29 Mar 2022 22:05:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZNhk-00050h-35 for bug-guix@gnu.org; Tue, 29 Mar 2022 22:05:00 -0400 Received: from out2.migadu.com ([188.165.223.204]:52969) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZNhg-0002W5-EG for bug-guix@gnu.org; Tue, 29 Mar 2022 22:04:58 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rekahsoft.ca; s=key1; t=1648605893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qdBRW+o8KEOcbj3GlLZqgeCqmpCZaODi+aHf7mYEE14=; b=eYGk4x0fiPc7nNshoMCQAsOvyWBqs6e8SIrnZkk8mlSxDV9T0H3j0CTU6CX5vZI+7PWZo9 29Ftr7QPIrCUWAgfPYL5r54RVKn7aLBU7xrvTm4IoTOgp7+dLS1YzYhb/9AYquOLky824v JaXD+FQUjCgt+lsU4Kopg27jHaLogHs= Date: Tue, 29 Mar 2022 22:03:36 -0400 Message-ID: <87k0cc2o1q.fsf@rekahsoft.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=188.165.223.204; envelope-from=collin@rekahsoft.ca; helo=out2.migadu.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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" Reply-to: "Collin J. Doering" From: "Collin J. Doering" via Bug reports for GNU Guix X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1648605973; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=qdBRW+o8KEOcbj3GlLZqgeCqmpCZaODi+aHf7mYEE14=; b=gABVoKl9jCGqnC/pBgaLtTDmIv6g/qtX1T1mcQ4I1NNvRnivjXMfbNglWOJrJcOJl6Jzc+ iQIN88rbxSl5IBMVorORL5S87e+yzolR/A/pazmMP7G7SXgqGIk60h0uICy4Js99aCyrPs dYgHghr06OiYf8ytVMI1dWEz/KNHQ0t6gU3YihsMEhMNPEqN8InwqLkP3sX4eOQSn+TzSO 20SDWH9SmX4WbLdl6ZJNLGfqgnCmw+hJU8OOP79nSOAtQX3B5ms8XEiShWb96EsYDMAF8I hZeJgOnQ+xEljB1DhypbXWApXhg+CWmM2CDFy7YPv9rioXfm8fPI+2o57FfpPA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1648605973; a=rsa-sha256; cv=none; b=sKqhnPuLefSC4WBI21oXVMy60nYDduqDsww19v476hKeERwOWjoHAc+RakgPeD4sJbeAbl wLDIp0+nnoxljwCIwfADUSytFVV0C8LdUOg23MRqCbyGqArkjlpdMBxG8DyZ8xXeyfdQnl GacW6yjKR+yaa+JLYBpxdRWZWDowkXcALxGmR+yt2p0n44/bHBslZVse3MAZIzjnlrANbQ 3nXjzx48034iyGdcVnZxqk4n3c0ayrBQ87q2w85/Nu9hgxtvrolFby6z+aeszULrnMC5GQ J2eac8quiCSJyn3KQi4g/OwshlQdMFXr1qSOLAphFcW612jQhyP63DcAvhzvPQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=rekahsoft.ca header.s=key1 header.b=eYGk4x0f; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.17 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=rekahsoft.ca header.s=key1 header.b=eYGk4x0f; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 73AE8203F0 X-Spam-Score: -5.17 X-Migadu-Scanner: scn0.migadu.com X-TUID: abo67ktBKEHZ Hi, I recently converted my guix configuration to be stored in a channel, prima= rily to allow me to reference files in the repository but yet still have a = self-contained configuration. It also allows me to easily build packages an= d images from my local guix instance. I also like how the specification of= my system (or home) is precisely defined by a set of channels, and an expr= ession which evaluates to the operating-system (or home-configuration) that= I'm deploying. As per the guix manual: --8<---------------cut here---------------start------------->8--- If you want configuration.scm to be self-contained, we recommend that modul= es or files it refers to be part of a channel. --8<---------------cut here---------------end--------------->8--- This all being said, I noticed an issue in that I'm unable to determine the= provenance of a system when my configuration is stored in a guix channel. Specifically, if I have a guix channel that contains two modules, each of w= hich exports a %system variable of type operating-system, I cannot tell whi= ch one was used to instantiate the system. This is due to two issues. The f= irst is because when `-e|--expression` arguments are used, `configuration-f= ile` is set to `#f` in the generations provenance file but the expression i= tself is not stored in the provenance file, and is not listed in `guix syst= em describe`, `guix system list-generations`, etc.. commands. --8<---------------cut here---------------start------------->8--- sudo -i guix system reconfigure -e '(@ (my config system-a) %system)' --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- =E2=9E=9C guix system describe=20=20=20=20=20=20=20=20 Generation 30 Mar 28 2022 22:50:55 (current) file name: /var/guix/profiles/system-30-link canonical file name: /gnu/store/886xwflic0dnf86d460yf7n5wg3jng7w-system label: GNU with Linux 5.16.16 bootloader: grub-efi root device: label: "root" kernel: /gnu/store/44hi9qg3mrp6c6cb1rqwx47xhg1663d9-linux-5.16.16/bzImage channels: guix: repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: e584a093f943be216fdc93895281fde835836b8d my-config-channel: repository URL: https://not-yet-on-the-internet.com branch: master commit: 918a3bf799038a019c7394cda480ee67db8a0009 --8<---------------cut here---------------end--------------->8--- Change the system to 'system-b': --8<---------------cut here---------------start------------->8--- sudo -i guix system reconfigure -e '(@ (my config system-b) %system)' --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- =E2=9E=9C guix system describe=20=20=20=20=20=20=20=20 Generation 31 Mar 28 2022 23:10:01 (current) file name: /var/guix/profiles/system-31-link canonical file name: /gnu/store/jpkxxyh6zi3gh8pbml3r9l1iccibw5mk-system label: GNU with Linux 5.16.16 bootloader: grub-efi root device: label: "root" kernel: /gnu/store/jpkxxyh6zi3gh8pbml3r9l1iccibw5mk-linux-5.16.16/bzImage channels: guix: repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: e584a093f943be216fdc93895281fde835836b8d my-config-channel: repository URL: https://not-yet-on-the-internet.com branch: master commit: 918a3bf799038a019c7394cda480ee67db8a0009 --8<---------------cut here---------------end--------------->8--- Notice how there is no way to see which configuration was used to create th= e system. The second issue is that when `-L|--load-path` is used along with either a = file or expression to specify the operating-system or home-configuration, i= t essentially 'tarnishes' the provenance of the system, in that the followi= ng deployment is not differentiable from the preceding one/s, despite them = being different. --8<---------------cut here---------------start------------->8--- sudo -i guix system reconfigure -L my-local-channel-but-with-changes -e '(@= (my config system-a) %system)' --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- =E2=9E=9C guix system describe=20=20=20=20=20=20=20=20 Generation 32 Mar 28 2022 23:10:01 (current) file name: /var/guix/profiles/system-32-link canonical file name: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-system label: GNU with Linux 5.16.16 bootloader: grub-efi root device: label: "root" kernel: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-linux-5.16.16/bzImage channels: guix: repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: e584a093f943be216fdc93895281fde835836b8d my-config-channel: repository URL: https://not-yet-on-the-internet.com branch: master commit: 918a3bf799038a019c7394cda480ee67db8a0009 --8<---------------cut here---------------end--------------->8--- Thank you for reading --=20 Collin J. Doering http://rekahsoft.ca http://blog.rekahsoft.ca http://git.rekahsoft.ca