Hi Hilton, Hilton Chain <[email protected]> skribis:
> Nix flake has a convenient URL-like syntax to represent flake references and I > wonder if something similar can be implemented in Guix. I think one approach > is > to transform .guix-channel into a channels.scm, and to do so will require more > information to be included in .guix-channel. In this mail I'll explain why. What’s the end goal? To support single-command program execution like in the ‘nix shell’ examples you gave? (I’m asking because there’s nothing equivalent to “flake references” in Guix, AIUI.) > The natural approach I can think of is to use the existing interfaces and > transform .guix-channel into channels.scm, so we can do something like > > --8<---------------cut here---------------start------------->8--- > guix time-machine -C git+https://example.com/channel -- shell patchelf -- > patchelf --help > --8<---------------cut here---------------end--------------->8--- > > Then I realized that .guix-channel doesn't contain enough information for the > channel itself. Yes, and ‘.guix-channel’ is fundamentally something very different from what one specifies in ‘channels.scm’. Now, there’s one thing we can perhaps draw inspiration from, and that’s SWHID; we can refer to a full-blown channel file by its SWHID already: guix time-machine \ -C swh:1:cnt:ae02d8ba3538a385ee799e61cdd0dfc5e14a8d1b \ -- describe This only works because a channel file happened to be archived by SWH, though. Ludo’.
