Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nothing provides 'group(greeter)' needed by the to be installed openSUSEway-0.16.0-1.2.noarch #136

Closed
FilippoBonazziSUSE opened this issue Feb 5, 2024 · 4 comments
Assignees

Comments

@FilippoBonazziSUSE
Copy link
Collaborator

As already reported by users on our Telegram channel, trying to update openSUSEway fails since a few Tumbleweed snapshots with the errors:

Problem: nothing provides 'group(greeter)' needed by the to be installed openSUSEway-0.16.0-1.2.noarch
Problem: nothing provides 'group(greeter)' needed by the to be installed greetd-0.9.0-1.6.x86:64

This is caused by new rpm features introduced in 4.19.0. A warning was posted on the openSUSE Factory mailing list, but I had missed it.

Here is the description of the issue and the suggested fixes:

Any non-root ownership in the %files section (through %attr() or
%defattr()) now generates an automatic dependency on the named user and/or
group. This dependency can be satisfied by another package shipping a
sysusers.d(5) file or the /etc/passwd and /etc/group files themselves.
Existing packages shipping any of these files will have to be rebuilt with
RPM 4.19 in order for them to carry the respective user and/or group
provides. This may require distro-level coordination to ensure proper
installation of all the affected packages. For more information, please
consult the manual.
The story around the users can be trickier to be identified, as the build
might succeed, but the package not being installable at the end due to
missing dependencies reported. This usually happens when users are
generated in %pre scripts using useradd. Either convert those packages to
use sysusers.d (
https://en.opensuse.org/openSUSE:Packaging_guidelines#Users_and_Groups) or,
as a quickest measure, usually helpful if no other package relies on the
same users, manually add the respective Provides: user(USERNAME) and
Provides: group(GROUPNAME) to the package generating the relevant user (as
done for example in cluster-glue,
https://build.opensuse.org/request/show/1138101 for reference)

I am planning to look into the first solution (using sysusers.d).

@FilippoBonazziSUSE FilippoBonazziSUSE self-assigned this Feb 5, 2024
@FilippoBonazziSUSE
Copy link
Collaborator Author

@FilippoBonazziSUSE
Copy link
Collaborator Author

Submitted to Factory in https://build.opensuse.org/request/show/1144470

@FilippoBonazziSUSE
Copy link
Collaborator Author

Also related: remove greeter user creation from the greetd spec file (https://build.opensuse.org/request/show/1144676) and add the home directory and video group that it had there to system-user-greeter (https://build.opensuse.org/request/show/1144674).

@FilippoBonazziSUSE
Copy link
Collaborator Author

I think all issues related to this have been solved. I have updated my TW without problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant