[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Installing some packages results in "incomplete deployment"
From: |
Ludovic Courtès |
Subject: |
Re: Installing some packages results in "incomplete deployment" |
Date: |
Mon, 04 Dec 2017 10:18:41 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hi Chris,
Chris Marusich <address@hidden> skribis:
> Some Guix packages exist which are not intended to be installed into a
> user's profile. For example, android-udev-rules's description says:
>
> _Simply installing this package will not have any effect._ It is
> meant to be passed to the `udev' service.
>
> Still other packages do not work if they are installed by themselves.
> For example, xscreensaver (and other screen lockers [1]) does not work
> if you just install it into your profile; you need to add an instance of
> the screen-locker-service-type to your operating system declaration to
> ensure that xscreensaver gets installed as a setuid-root program. Even
> after you do this, to be able to configure xscreensaver using the
> xscreensaver-demo program, you ALSO need to remember to install
> xscreensaver either into the system profile or into your user profile.
>
> Is there anything we can do about this situation?
[...]
> * Document packages like these - like android-udev-rules already does.
>
> * Don't display these packages by default in tools like "guix package
> --search" (but maybe provide an option for displaying them if needed).
>
> * Don't export packages like these as public variables - hide them in
> appropriate services. For example, instead of requiring a user to
> install both a service of the screen-locker-service-type configured to
> use xscreensaver and also the xscreensaver package, modify the
> screen-locker-service-type so that it automatically installs the
> package into the system profile by extending the profile-service-type.
> In short, make it impossible to install an xscreensaver screen locker
> service incorrectly.
>
> What do you think?
I think adding a line in descriptions is often not very helpful—few
people are going to read that line.
Hiding those packages from the UI would be trivial: see ‘hidden-package’
in (guix packages).
We could do that, but it might be confusing: people will have a hard
time finding which screensavers are available, which is problematic.
Perhaps we could offer an option for packages to display hints at
installation time. Like
(package
(name "xscreensaver")
;; …
(properties
`((installation-notice
. ,(G_ "Please see the documentation of
@code{screen-locker-service-type} in the manual on how to use this
screen saver.")))))
Or maybe something higher level, like:
'((use-with-service . screen-locker-service-type))
Thoughts?
Ludo’.