Subject: [bug#64861] [PATCH] guix: Add lint check for guix as propagated-input

From: Simon Tournier <[email-masked]>
Date: Thu, 07 Sep 2023 16:22:14 +0200

Hi,

On Sun, 20 Aug 2023 at 22:58, Ludovic Courtès <[email-masked]> wrote:

> Maybe ‘guile-imanifest’ should be made a Guix extension, which Guix
> searches for in $GUIX_EXTENSIONS_PATH?

And probably renamed ’guix-imanifest’?

Back to the submission, I think that the propagation of the package guix
means something is wrong.  From my point of view, there is two cases:

 1. The package uses the stable library API and thus it makes sense to
    rely on the package ’guix’.  That’s the case for ’gwl’,
    ’guix-data-service’ for example.

 2. The aim of package is to collaborate with the current Guix and thus
    there is no point to have the package ’guix’ as inputs.  Instead,
    the package must rely on GUIX_EXTENSIONS_PATH.  That’s the case for
    ’guix-modules’ or ’guile-imanifest’ (so that needs a fix ;-))

Therefore, I think this new checker makes sense.  WDYT?

About #1, IMHO, this is expected:

--8<---------------cut here---------------start------------->8---
$ guix shell -C gwl -- guix --version
guix shell: error: guix: command not found

        (define-public gwl
            (inputs
        [...]
               (list guix
--8<---------------cut here---------------end--------------->8---

and this is not expected:

--8<---------------cut here---------------start------------->8---
$ guix shell -C guix-data-service -- guix --version
guix (GNU Guix) 1.4.0-10.4dfdd82
Copyright (C) 2023 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

        (define-public guix-data-service
        [...]
              (propagated-inputs
               (list guix
--8<---------------cut here---------------end--------------->8---

Cheers,
simon