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