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’.

Reply via email to