diff mbox series

[bug#50231] gnu: emacs-desktop-environment: Include runtime dependencies

Message ID 87pmtyrayf.fsf@reilysiegel.com
State New
Headers show
Series [bug#50231] gnu: emacs-desktop-environment: Include runtime dependencies | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Reily Siegel Aug. 27, 2021, 6:36 p.m. UTC
* gnu/packages/emacs-xyz.scm (emacs-desktop-environment): Include runtime
dependencies.
---
 gnu/packages/emacs-xyz.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Nicolas Goaziou Sept. 6, 2021, 9:17 a.m. UTC | #1
Hello,

Reily Siegel <mail@reilysiegel.com> writes:

> * gnu/packages/emacs-xyz.scm (emacs-desktop-environment): Include runtime
> dependencies.

Thank you.
> +    (propagated-inputs
> +     `(("alsa-utils" ,alsa-utils)
> +       ("brightnessctl" ,brightnessctl)
> +       ("scrot" ,scrot)
> +       ("slock" ,slock)
> +       ("upower" ,upower)
> +       ("tlp" ,tlp)
> +       ("playerctl" ,playerctl)))

I don't think we should propagate all of them. It's up to the user to
provide its own tools, which are not necessarily those.

WDYT?

Regards,
Reily Siegel Sept. 7, 2021, 7:19 p.m. UTC | #2
Hello,

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> I don't think we should propagate all of them. It's up to the user to
> provide its own tools, which are not necessarily those.

The emacs package can be configured to use other tools. However, unless
the package is specifically configured otherwise, it will not work when
installed. Without either these propagated inputs or special
configuration, this package cannot perform any of its functions. Perhaps
these could be included in a separate output?

Reily Siegel
Nicolas Goaziou Sept. 7, 2021, 8:15 p.m. UTC | #3
Hello,

Reily Siegel <mail@reilysiegel.com> writes:

> The emacs package can be configured to use other tools. However, unless
> the package is specifically configured otherwise, it will not work when
> installed. Without either these propagated inputs or special
> configuration, this package cannot perform any of its functions. 

I know, but this Emacs library is not supposed to provide the features
itself. I assume you use it on top of installed executables, as
explained in the package description:

  The package depends on the availability of shell commands to do the
  hard work for us.

Pulling all of them from an Emacs package sounds backward.

> Perhaps these could be included in a separate output?

Outputs are distinct part of the package output. Here, propagated
executables are not part of the Emacs library, so the suggestion does
not hold.

Maybe Guix is missing a "suggested depedencies" flag, somehow.

Anyhow, I think the status quo is fine. WDY (and others) T?

Regards,
Simon Tournier Sept. 8, 2021, 9:33 a.m. UTC | #4
Hi,

On Tue, 07 Sep 2021 at 22:15, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:

>> The emacs package can be configured to use other tools. However, unless
>> the package is specifically configured otherwise, it will not work when
>> installed. Without either these propagated inputs or special
>> configuration, this package cannot perform any of its functions. 

Indeed.  However, “guix install emacs-foo” does not install the package
’emacs’, i.e., ’emacs-foo’ cannot perform any of its functions. ;-)

> I know, but this Emacs library is not supposed to provide the features
> itself. I assume you use it on top of installed executables, as
> explained in the package description:
>
>   The package depends on the availability of shell commands to do the
>   hard work for us.
>
> Pulling all of them from an Emacs package sounds backward.

On the other side, I remember discussions about ’git’ as inputs in
’emacs-magit’.  Or ’the-silver-searcher’ for ’emacs-ag’.  Maybe it is
worth to improve section about Emacs packages in the manual.  Rough
draft:

«The external tools required by the package are not included as inputs,
except if they are required at compile or test time.»

Well, I am sure someone will find a better wording. ;-)



> Maybe Guix is missing a "suggested depedencies" flag, somehow.

Yeah, maybe.

One way should to add a ’properties’ as ’suggest’.  Well, from my
experience with Debian, I am not convinced that this suggest field
really helps.  Maybe for discovery.

The easiest way is to provide a sentence in the ’description’ field
about such.

Cheers,
simon
Ludovic Courtès Sept. 24, 2021, 11:56 a.m. UTC | #5
Hi,

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> Reily Siegel <mail@reilysiegel.com> writes:
>
>> The emacs package can be configured to use other tools. However, unless
>> the package is specifically configured otherwise, it will not work when
>> installed. Without either these propagated inputs or special
>> configuration, this package cannot perform any of its functions. 
>
> I know, but this Emacs library is not supposed to provide the features
> itself. I assume you use it on top of installed executables, as
> explained in the package description:
>
>   The package depends on the availability of shell commands to do the
>   hard work for us.
>
> Pulling all of them from an Emacs package sounds backward.

How about:

  1. Providing only those tools for which there’s no choice, like
     ‘alsa-utils’ and ‘brightnessclt’.

  2. Patching file names instead of propagating.

Thoughts?

Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 7672168a0e..ed18692b29 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -160,6 +160,7 @@ 
   #:use-module (gnu packages networking)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages suckless)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages tex)
@@ -20259,6 +20260,14 @@  autosuggestions with:
         (base32
          "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
     (build-system emacs-build-system)
+    (propagated-inputs
+     `(("alsa-utils" ,alsa-utils)
+       ("brightnessctl" ,brightnessctl)
+       ("scrot" ,scrot)
+       ("slock" ,slock)
+       ("upower" ,upower)
+       ("tlp" ,tlp)
+       ("playerctl" ,playerctl)))
     (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
     (synopsis "Control your GNU/Linux desktop environment from Emacs")
     (description