Hi Carlo,

On Mon, Feb 10 2025, Carlo Ascani via wrote:
> ----8<----8<----8<----
>
> (use-modules (guix channels))
>
> (list (channel
>         (name 'guix)
>         (url "https://git.savannah.gnu.org/git/guix.git";)
>         (branch "master")
>         (commit
>           "7f3313341caf844d9fb6919f6cdc28fdcaf06c6d")
>         (introduction
>           (make-channel-introduction
>             "9edb3f66fd807b096b48283debdcddccfea34bad"
>             (openpgp-fingerprint
>               "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
>
> (specifications->manifest '("make@4.4.1" "elm@0.19.1"))
>
> ----8<----8<----8<----
>
> This way I am sure that my collegues that run `guix shell`
> will get the same exact make and elm.
>
> Am I correct?

Not quite, but it's close! As other replies have mentioned, this
declares a list of channels, but it doesn't actually use it for
anything.

Here's my attempt, using inferiors:

--8<---------------cut here---------------start------------->8---
(use-modules (guix inferior) (guix channels))

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git";)
         (branch "master")
         (commit
          "7f3313341caf844d9fb6919f6cdc28fdcaf06c6d")
         (introduction
          (make-channel-introduction
           "9edb3f66fd807b096b48283debdcddccfea34bad"
           (openpgp-fingerprint
            "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"))))))

(define inferior
  (inferior-for-channels channels))

(packages->manifest
 (append (lookup-inferior-packages inferior "make" "4.4.1")
         (lookup-inferior-packages inferior "elm" "0.19.1")))
--8<---------------cut here---------------end--------------->8---

With this, it should be enough to run "guix shell -m manifest.scm" or,
even just "guix shell" if you have an appropriate entry in
~/.config/guix/shell-authorized-directories.

I hope that helps,

Carlo

Reply via email to