cairo-dock-data is missing a dependency on gnome-settings-daemon

Bug #1464517 reported by Sergio Gelato on 2015-06-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cairo-dock (Ubuntu)
Undecided
Matthieu Baerts

Bug Description

/usr/share/gnome-session/sessions/cairo-dock.session lists gnome-settings-daemon (on trusty; may be unity-settings-daemon for some releases of Ubuntu) as a required component. This is a real requirement: when gnome-session-bin is installed but gnome-settings-daemon isn't, attempts to log in to a cairo-dock desktop session fail with the following messages in .xsession-errors:

gnome-session[17624]: WARNING: Unable to find required component 'gnome-settings-daemon'
gnome-session[17624]: CRITICAL: We failed, but the fail whale is dead. Sorry....

Installing gnome-settings-daemon is sufficient to cure this symptom. That makes me think that cairo-dock-data (which provides cairo-dock.session) ought to have an explicit Depends: gnome-settings-daemon (or possibly a Recommends:, but definitely nothing less than that).

I see that cairo-dock-core has a Recommends: gnome-session | <other stuff>, but that's so likely to be satisfied by one of the other choices to be almost useless. A survey of my trusty desktops indicates that systems upgraded from precise have gnome-session installed but fresh trusty installs only have gnome-session-bin. gnome-session depends on gnome-settings-daemon but gnome-session-bin does not.

Matthieu Baerts (matttbe) wrote :

Hello Sergio and sorry for the delay!

Yes, you are right! The problem is that we cannot simply add gnome/unity-settings-daemon as required component because it will force installing almost all GNOME/Unity packages on other sessions (e.g. it can be annoying for KUbuntu users).
But it can be interesting to only install it on GNOME/Unity sessions, e.g.:

    unity-settings-daemon | e17 | kde-workspace | openbox | lxsession | xfce4-session | mate-session-manager | razorqt-session | cinnamon-session

(or gnome-settings-daemon for Trusty)
What do you think about that?

> A survey of my trusty desktops indicates that systems upgraded from precise have gnome-session installed but fresh trusty installs only have gnome-session-bin. gnome-session depends on gnome-settings-daemon but gnome-session-bin does not.

Yes, it seems we missed that :-/

Changed in cairo-dock (Ubuntu):
status: New → Incomplete

* Matthieu Baerts [2015-08-06 11:55:05 +0000]:
> Yes, you are right! The problem is that we cannot simply add gnome/unity-settings-daemon as required component because it will force installing almost all GNOME/Unity packages on other sessions (e.g. it can be annoying for KUbuntu users).
> But it can be interesting to only install it on GNOME/Unity sessions, e.g.:
>
> unity-settings-daemon | e17 | kde-workspace | openbox | lxsession |
> xfce4-session | mate-session-manager | razorqt-session | cinnamon-
> session
>
> (or gnome-settings-daemon for Trusty)
> What do you think about that?

That it has the same problem I alluded to about cairo-dock-core: *any*
of the packages in the list will satisfy the dependency, so if I for
example install both gnome-session and xfce4-session on the same system
(so that users may have a choice of desktop environments) xfce4-session
will satisfy the dependency and unity-settings-daemon will not be pulled in.
So that's no good.

How about moving /usr/share/gnome-session/sessions/cairo-dock.session
to a separate package and making *that* depend on unity-settings-daemon?

> ** Changed in: cairo-dock (Ubuntu)
> Status: New => Incomplete

Why incomplete? We may not have found a fully satisfactory solution yet,
but the statement of the problem doesn't seem incomplete to me.

Matthieu Baerts (matttbe) wrote :

> if I for example install both gnome-session and xfce4-session on the same system (so that users may have a choice of desktop environments) xfce4-session will satisfy the dependency and unity-settings-daemon will not be pulled in. So that's no good.

Yes, it's true but on the other hand, a KDE user doesn't need and doesn't want all GNOME specific packages just to have the dock.
We also guess that a user which has installed both GNOME and XFCE sessions will be more able to fix the problem than a KUbuntu user which just wants to install the dock without installing a new DE. And we guess that there are more users with only one DE which wants to upgrade their system. It's a dilemma, we didn't found a solution to satisfy both solutions and we prefer to be "Desktop Environment-agnostic" :-)

> How about moving /usr/share/gnome-session/sessions/cairo-dock.session to a separate package and making *that* depend on unity-settings-daemon?

Yes, it's maybe more clear but it will not fix the problem. This package cannot be marked as required by other Cairo-Dock packages.

> Why incomplete?

Sorry, wrong status, a reflex action :-)

Changed in cairo-dock (Ubuntu):
status: Incomplete → Confirmed
Sergio Gelato (sergio-gelato) wrote :

* Matthieu Baerts [2015-08-06 14:46:00 +0000]:
> Yes, it's true but on the other hand, a KDE user doesn't need and doesn't want all GNOME specific packages just to have the dock.

That KDE-only user doesn't need /usr/share/gnome-session/. Splitting off
cairo-doc.session to a package she doesn't need to install may be just
the right thing for her.

> > How about moving /usr/share/gnome-session/sessions/cairo-dock.session
> to a separate package and making *that* depend on unity-settings-daemon?
>
> Yes, it's maybe more clear but it will not fix the problem. This package
> cannot be marked as required by other Cairo-Dock packages.

Who said that it should be? I was thinking of doing it the other way around:
make it (cairo-dock-gnome-integration, or whatever it will be called)
require the core cairo-dock packages. People who want to use Cairo-Dock with
GNOME would ask for this package only, and everything else they need would
follow. Ditto for cairo-dock-kde-integration, cairo-dock-xfce4-integration,
etc. as appropriate.

I've also been thinking about the Enhances header, but as that is a reverse
Suggests rather than a reverse Recommends I don't think it will help much
in this case. (Maybe dpkg needs to grow conditional dependencies, that are
activated only if a combination of several packages is installed; but I
haven't done the math to see if this could actually be made to work, and
in any case it would have to be filed as a wishlist bug against dpkg first.)

Matthieu Baerts (matttbe) wrote :

> That KDE-only user doesn't need /usr/share/gnome-session/. Splitting off
> cairo-doc.session to a package she doesn't need to install may be just
> the right thing for her.

Yeah, this is cleaner to do that. I'll try to do that ASAP.

> People who want to use Cairo-Dock with
> GNOME would ask for this package only, and everything else they need would
> follow. Ditto for cairo-dock-kde-integration, cairo-dock-xfce4-integration,
> etc. as appropriate.

That would be the best solution except that it will work only for the power users or the ones who read the messages/suggestions. We think that most users will use the Software Center (or apt-get without reading the suggestions or using/knowing '--no-install-recommends' option) and they will just install 'cairo-dock' package. This meta-package also installs the core and all plugins including GNOME/KDE/XFCE-integration ones.

These GNOME/KDE/XFCE-integration plugins don't have any dependences to other packages. It's not necessary because they will be enabled only if you're using GNOME, KDE or XFCE. You don't need to install XFCE stuff if you'll not use them.

That's really what we want with the session: we offer a Cairo-Dock session but it needs some GNOME tools. We would like that new users (using GNOME/Unity) are able to test it without installing extras stuff because if they have to install any extra packages, only a few people will do that. But we also don't want to add hundred of MB of packages for those who are not using GNOME and Unity.

Then, recommending the new 'cairo-dock-session' package as well as KDE/XFCE/LXDE/MATE/Cinnamon/e17/RazorQT sessions to not force installing this package with all GNOME stuff is for me the best compromise that we can do. If a XFCE user wants to install test Cairo-Dock session, it will have to install this new package. Of course, this new 'cairo-dock-session' package will have two dependences: gnome-session-bin and unity-settings-daemon (for Ubuntu 15.10).
What do you think about that?

Changed in cairo-dock (Ubuntu):
status: Confirmed → Triaged
assignee: nobody → Matthieu Baerts (matttbe)
milestone: none → ubuntu-15.09
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers