From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id KJw8BBKlJmSU6gAASxT56A (envelope-from ) for ; Fri, 31 Mar 2023 11:17:06 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 9q9SBBKlJmRtfwAA9RJhRA (envelope-from ) for ; Fri, 31 Mar 2023 11:17:06 +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 A802B3FD75 for ; Fri, 31 Mar 2023 11:17:05 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1piAsD-0005wC-Rv; Fri, 31 Mar 2023 05:16:42 -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 1piAsA-0005vR-Tp for guix-devel@gnu.org; Fri, 31 Mar 2023 05:16:38 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1piAs8-0000OH-S4 for guix-devel@gnu.org; Fri, 31 Mar 2023 05:16:38 -0400 Received: by mail-wr1-x434.google.com with SMTP id l12so21679532wrm.10 for ; Fri, 31 Mar 2023 02:16:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680254194; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tQGGSRW5pKlPn0zqxgYAm8JEKykd7fL8pycIyyLOt2E=; b=ZSHhCkNqwsugfg0M/ptuMAB+2BGpOL+UfKVaD66b92weE6V9t0q14g96a4uWZmGtox Jjmze1nJGr/7wvVPFoSlSbxRP8Z1rcmYmQ5yA7tLtfv0byOl6rDczyJxt1RngA6WgC3F 2vffLKt2vwX5Oy2PGw7Dr3KouJ1tEnvjXFD7nvt8niSBwO3rgCqsRTdQ/GYwsQX58p3M Tez9YsWLOFLiZLGo0NHQ2d5gslovfVFGDQq3rUgJzLLZqIgHSkgSyaf293qEKk65fecf VoVU3xA/vFT9RmpBU9LblNlKMtHgwzEzrqVlGB1i3k/V5qvotrftU5WvfQ8WSfAxK43G XwEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680254194; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tQGGSRW5pKlPn0zqxgYAm8JEKykd7fL8pycIyyLOt2E=; b=0xBRUWZ4/jOjZAFLQ6P1kSckdI+cJw/VEG5jxRNZG8QxqACBU4dnzLkCZbPU6JviBk YFsRRp9xO68KS3faeI/dWNG83dxx6MEt2gymxJvy1yzpIAAv0R/N+Jv43g6Sr8YQ34tt qa57GPxxv/kjitt3WAU1Y3SmbGnNH7R5ZPv4YZdObad7QsoOzaF2KY8+GYKJ81imFhPy js3N2v+lRC2NMvlxSuxYrzLiv5g6uCHHkzuo2fClq7HqIE2lw4poZmC6VBHR/WUa/BbJ SxFZ3WGjBgN/QZJ1Iovw3OKw8apKWgsqtkE6T7nWWGZZJnnJ6T51d9XwKq0D/+0+Opr2 kGHg== X-Gm-Message-State: AAQBX9f34p/2GntiLbiGklZCDW6dorbWGl63umgwVoVcYTeI7398NX8Y ubst2/AW6874L56rd6qJGIdWNSA7jemjOHqLfx4= X-Google-Smtp-Source: AKy350a6K0pBjHcU+/YKb1AiDZRt1pNbMNdQHOHHQBw7sZ6+K3j6mkU+CUudL9NpP7BRthSYDSNgRIsa+JieMP+hJLM= X-Received: by 2002:adf:ed09:0:b0:2e4:cbfe:da50 with SMTP id a9-20020adfed09000000b002e4cbfeda50mr973393wro.1.1680254194328; Fri, 31 Mar 2023 02:16:34 -0700 (PDT) MIME-Version: 1.0 References: <86sfdnrhn1.fsf@posteo.net> In-Reply-To: <86sfdnrhn1.fsf@posteo.net> From: Shivam Madlani Date: Fri, 31 Mar 2023 14:46:21 +0530 Message-ID: Subject: Re: Hello GUIX To: pukkamustard Cc: Attila Lendvai , guix-devel@gnu.org, Christopher Baines Content-Type: multipart/alternative; boundary="00000000000062a6dc05f82eaae2" Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=shivammadlani5@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1680254225; a=rsa-sha256; cv=none; b=JqjKwv2UlkMU5iID64WQUSpMPtn50f0GEu5OFXMhLQGmaCf5/McAP7d+vDvvzjqvLgS9u+ nkgKQS1Uxha6rM3bYMIHj2h5OOY/9fuiubm5xIa3nY4S/3cv44ILQVwcInNtifaqQsjJ5e ib4PDPEeS86VLzPTuyK55qTC077Y92Hve9K7K3hd2+MQTL4l4BC/Tm8dNEIZx/7YSolMx9 1zaeTIzUarAcBXzlGUTVK8P2Sx8SYoaUVcFzud5o9/V/ynl0C2ePV0/eyPwIgjFeSBAQM+ 0op4TOLxjuNu0FOybBAFoNc76u/o120XZlUedWHmQi4eX8wGsMyxpbQ6EyG+tA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ZSHhCkNq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1680254225; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=tQGGSRW5pKlPn0zqxgYAm8JEKykd7fL8pycIyyLOt2E=; b=EmTHCC6HzjG1+Ee6gdKubTanpPBkGRxwBybp4J9dhQXnq69ADwsYQyPrKM3R0qKtQnLbsL EBfixeXos8ruEhJ9W6mQBX/0KefmIAoBW45rPBfKXh3MXOuBDDI67B121qqsuDbU3EUDmp RbfZduNShMVG4F5lcEhUgBnwGPi8l0CVF4a6Xn728miUP5sCD9H2T/EJ1cXO06tKrggMLA 7k0Zsvcm1AqOUhKjSwxzS87/Bkmg12tWV7nJ0So3vugxb6xp/NtaOWb3+qlRKNHua/3t7e VFQMKvGuKColvDuwzwMMViI3mRjs7EXJzKgEUrz/uvtG8L7zYKWRqSu2njBPFw== X-Migadu-Spam-Score: -6.45 X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ZSHhCkNq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Spam-Score: -6.45 X-Migadu-Queue-Id: A802B3FD75 X-TUID: WC81ZRkj4U4O --00000000000062a6dc05f82eaae2 Content-Type: text/plain; charset="UTF-8" Thanks a lot for the feedback!! > Reading from a disk maybe should happen automagically if it can be > detected (and is enabled in some configuration). This might also > require some integration with udisks. The complexity of this should > not be underestimated. We can set it up in such a way that on running `guix install {xyz}` it will first check for mounted drives in /media directory and install {xyz} if it's present in the drive. > Writing packages to a USB stick seems to be closer to a `guix > publish` or `guix deploy`. Maybe you can read up on those commands > and think of a nice way to publish or deploy a set of packages to a > USB stick. This is also relevant for publishing to other p2p > networks (IPFS, GNUnet, etc.). Perhaps, We can introduce a new utility? (maybe something like `guix sneak`). This will scan for external drives and on detecting a drive it will encode and store the nars into it. The size of the drive can cause an issue here in case the content to be encoded is very large. In this case an appropriate error message will be displayed. Although this is rare as flash drives/hard drives have a lot of storage capacity these days but it's still a thing to consider. Another way would be to use `guix publish` itself to do all of this. We can introduce a flag `--sneak` which instead of spawning an HTTP server, encodes and stored into the drive. But i don't think we should modify an already existing utility for this. I would like to hear your thoughts on this. > Maybe the Narinfos also need to packed onto the USB drive? How would > an air-gapped computer otherwise know which substitute to get? Also > have a look at the nar-herder tool > (https://git.cbaines.net/guix/nar-herder) by Christopher Baines (in > CC). Yes, we will be introducing a manifest file in the drive while writing to it. It would contain the narinfos of all the packages in the drive. Apologies for not mentioning in the proposal. I have made the above mentioned changes to my proposal as per the suggestions. If i can further improve it in any way please do let me know. :) -Shivam On Wed, 29 Mar 2023 at 15:42, pukkamustard wrote: > > Hi Shivam, > > Welcome to Guix! I think that Sneakernet-esque distribution of > substitutes is very interesting and something that was also talked about > at the Guix Days before FOSDEM 23 (Guix with no internet and air-gapped > machines). > > Some comments on the proposal: > > - You might want to refer to the document "SQLite for ERIS block > storage" (https://eris.codeberg.page/eer/sqlite.xml). > > - I think the user experience as described in the proposal could be > improved/might not quite work as expected: > > - Reading from a disk maybe should happen automagically if it can be > detected (and is enabled in some configuration). This might also > require some integration with udisks. The complexity of this should > not be underestimated. > > - Writing packages to a USB stick seems to be closer to a `guix > publish` or `guix deploy`. Maybe you can read up on those commands > and think of a nice way to publish or deploy a set of packages to a > USB stick. This is also relevant for publishing to other p2p > networks (IPFS, GNUnet, etc.). > > - Maybe the Narinfos also need to packed onto the USB drive? How would > an air-gapped computer otherwise know which substitute to get? Also > have a look at the nar-herder tool > (https://git.cbaines.net/guix/nar-herder) by Christopher Baines (in > CC). > > -pukkamustard > > Shivam Madlani writes: > > > Hey everyone! > > I am Shivam Madlani, an undergraduate at DAIICT, India. I want to > participate in GSoC'23 for The GNU > > organization. The project "Decentralized substitute distribution" in > GUIX amused me and I want to > > apply for the same. I have been in touch with the project mentor > -pukkamustard for over a month > > now and started learning more about the project. I'm very excited to > work on this project as it lies in > > my interests. > > > > I've drafted a proposal on this project and I aim to add a transport > protocol-Sneakernet. This will allow > > the substitutes to be air-gappable. My approach is to use SQLite to > store the ERIS encoded substitute > > in the external drive using a custom schema. This is just a brief > overview of the project and more > > details are included in the attached proposal. > > > > I would love to hear your thoughts and reviews on my proposal and > hopefully improve it by filling in > > any missing key points. > > > > Thank you, > > Shivam > > > > [4. application/pdf; GSoC'23 GUIX proposal.pdf]... > > --00000000000062a6dc05f82eaae2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks a lot for the feedback!!

>=C2= =A0 Reading from a disk maybe should happen automagically if it can be>=C2=A0 detected (and is enabled in some configuration). This might als= o
>=C2=A0 require some integration with udisks. The complexity of thi= s should
>=C2=A0 not be underestimated.

We can set= it up in such a way that on running `guix install {xyz}` it will first che= ck for mounted drives in /media directory and install {xyz} if it's pre= sent in the drive.=C2=A0

> Writing packages to = a USB stick seems to be closer to a `guix
>=C2=A0 publish` or `guix= deploy`. Maybe you can read up on those commands
>=C2=A0 and think o= f a nice way to publish or deploy a set of packages to a
>=C2=A0 USB = stick. This is also relevant for publishing to other p2p
>=C2=A0 netw= orks (IPFS, GNUnet, etc.).

Perhaps, We can introduce a n= ew utility? (maybe something like `guix sneak`). This will scan for externa= l drives and on detecting a drive it will=C2=A0encode and store the nars in= to it.
The size of the drive can cause an issue here in case the = content to be encoded is very large. In this case an appropriate error mess= age will be displayed. Although this is rare as flash drives/hard drives ha= ve a lot of storage capacity these days but it's still a thing to consi= der.

Another way would be to use `guix publish` it= self to do all of this. We can introduce a flag `--sneak` which instead of = spawning an HTTP server, encodes and stored into the drive. But i don't= think we should modify an already existing utility for this. I would like = to hear your thoughts on this.

> Maybe the Nari= nfos also need to packed onto the USB drive? How would
> an air-gap= ped computer otherwise know which substitute to get? Also
> have a lo= ok at the nar-herder tool
> (https://git.cbaines.net/gu= ix/nar-herder) by Christopher Baines (in
> CC).

Yes, we will be introducing a manifest file in the drive while writing to= it. It would contain the narinfos of all the packages in the drive. Apolog= ies for not mentioning in the proposal.


=
I have made the above mentioned changes to my proposal as per the sugg= estions. If i can further improve it in any way please do let me know. :)

-Shivam

<= div dir=3D"ltr" class=3D"gmail_attr">On Wed, 29 Mar 2023 at 15:42, pukkamus= tard <pukkamustard@posteo.net= > wrote:
=
Hi Shivam,

Welcome to Guix! I think that Sneakernet-esque distribution of
substitutes is very interesting and something that was also talked about at the Guix Days before FOSDEM 23 (Guix with no internet and air-gapped
machines).

Some comments on the proposal:

- You might want to refer to the document "SQLite for ERIS block
=C2=A0 storage" (https://eris.codeberg.page/eer/sqlite= .xml).

- I think the user experience as described in the proposal could be
=C2=A0 improved/might not quite work as expected:

=C2=A0 - Reading from a disk maybe should happen automagically if it can be=
=C2=A0 =C2=A0 detected (and is enabled in some configuration). This might a= lso
=C2=A0 =C2=A0 require some integration with udisks. The complexity of this = should
=C2=A0 =C2=A0 not be underestimated.

=C2=A0 - Writing packages to a USB stick seems to be closer to a `guix
=C2=A0 =C2=A0 publish` or `guix deploy`. Maybe you can read up on those com= mands
=C2=A0 =C2=A0 and think of a nice way to publish or deploy a set of package= s to a
=C2=A0 =C2=A0 USB stick. This is also relevant for publishing to other p2p<= br> =C2=A0 =C2=A0 networks (IPFS, GNUnet, etc.).

- Maybe the Narinfos also need to packed onto the USB drive? How would
=C2=A0 an air-gapped computer otherwise know which substitute to get? Also<= br> =C2=A0 have a look at the nar-herder tool
=C2=A0 (https://git.cbaines.net/guix/nar-herder) by Chris= topher Baines (in
=C2=A0 CC).

-pukkamustard

Shivam Madlani <shivammadlani5@gmail.com> writes:

> Hey everyone!
> I am Shivam Madlani, an undergraduate at DAIICT, India. I want to part= icipate in GSoC'23 for The GNU
> organization. The project "Decentralized substitute distribution&= quot; in GUIX amused me and I want to
> apply for the same. I have been in touch with the project mentor -pukk= amustard for over a month
> now and started learning more about the project. I'm very excited = to work on this project as it lies in
> my interests.
>
> I've drafted a proposal on this project and I aim to add a transpo= rt protocol-Sneakernet. This will allow
> the substitutes to be air-gappable. My approach is to use SQLite to st= ore the ERIS encoded substitute
> in the external drive using a custom schema. This is just a brief over= view of the project and more
> details are included in the attached proposal.
>
> I would love to hear your thoughts and reviews on my proposal and hope= fully improve it by filling in
> any missing key points.
>
> Thank you,
> Shivam
>
> [4. application/pdf; GSoC'23 GUIX proposal.pdf]...

--00000000000062a6dc05f82eaae2--