Malcontent package dependency setting

I am currently trying to deploy Fedora 35 with GNOME onto a few workstations. These machines will not have any relationship with parental control, and I am trying to remove the malcontent package to minimize the surface.

However, this package cannot be removed directly using dnf, as its dependency has been set to gnome-control-center, which is in turn the dependency of gnome-shell. Thus, it becomes impossible to remove this package individually without rpm --nodep, which does not prevent it from installing back whenever an update of gnome-shell lands. Nor will it be possible to block install via exluding from dnf.conf.

I researched a bit into them and cannot find a reason why the dependency relationship is being set like this. Is this something intentional or just wrong interpretation? I would say that the better way to manage it shall be making it a weak dependency to gnome-software.

Thanks.

Loc

Looks like its required by polkit so I doubt you will be able to remove it.

$ dnf repoquery --requires malcontent
Last metadata expiration check: 0:08:45 ago on Mon 14 Feb 2022 05:53:56 PM EST.
polkit

Nope, I believe you made it the opposite way.

If my knowledge is correct, what your command shows is that the malcontent package depends on polkit, not the other way around. To inquire the packages which requires malcontent, you should use the following command:

$ dnf repoquery --whatrequires malcontent
gnome-control-center

I have been looking at a few other distros for their dependency relationship on malcontent, and it seems that none of them takes it as dependency of gnome-control-center. It is kinda meaningless to me that this thing is forced as a hard requirement of gnome-shell. On the other hand, removing it with rpm --nodep does not cause any issue currently.

As we can see from the spec file for gnome-control-center here, malcontent is required to build it, and then also pulled in explicitly as a Requires:

https://src.fedoraproject.org/rpms/gnome-control-center/blob/rawhide/f/gnome-control-center.spec#_63

https://src.fedoraproject.org/rpms/gnome-control-center/blob/rawhide/f/gnome-control-center.spec#_106

I guess, one could think of malcontent as an optional dependency, but in this case, the maintainers clearly feel that it is an important enough feature/function to be treated as a necessary dependency. Maintainers (and developers) have to choose defaults, and sometimes defaults may not work for every use case. You can discuss this with the maintainers directly by filing a bug, or you could speak to the workstation SIG. They discussed its inclusion here, for example:

https://pagure.io/fedora-workstation/issue/186

This has come up before too. See:

https://discussion.fedoraproject.org/t/fedora-35-beta-malcontent/76319/2

The thing here is: it seems that the gnome-control-center is not explicitly using this malcontent. This dependency relationship looks a bit weird on my side, and I shall fill a bug ticket later to discuss about it.

1 Like

I think it’s used in “users” there where an administrator account can enable parental controls for other accounts.

It’s a dependency when gnome control center is built with malcontent support

https://src.fedoraproject.org/rpms/gnome-control-center/blob/rawhide/f/gnome-control-center.spec