how to satisfy rpm user and group dependencies that already exist?

169 Views Asked by At

I was installing an rpm and satisfied the other needed rpm dependencies but still had a dependencie requiring a user and group entry (name=lp). I already have user and group named 'lp', so why doesn't rpm recognize them? More importantly how can I get rpm to recognize that the user+group dependencies are already satisfied?

If I am creating a spec file for an rpm, how can I specify in a spec file, that installation of said spec file satisfies some user and/or group dependency?

This doesn't seem to be something I would put in a %pre (that used to be how I might do it), but seems to be a dependency that is inserted (or detected) in the rpm database. I don't want to try to create a user/group on the system, only detect (or satisfy the need for such) in the rpm DB.

Here is the output of rpm, showing the "reqs" of the package.

rpm -q --requires  cups-config-2.3.3-3.1.x86_64.rpm
config(cups-config) = 2.3.3-3.1
group(lp) 
rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsZstd) <=> 5.4.18-1 
user(lp)
2

There are 2 best solutions below

3
Aaron D. Marasco On

RPMs don't natively handle users/groups, you need to have them in your scriptlets. See this answer.

Well... Today I Learned...

So it seems RPM version 4.19 will support users and groups. The problem is, that as of today, the latest version available on rpm.org says "RPM 4.19.0 BETA released (Aug 02 2023)". So I don't know where you got the RPM, but it was built with BETA software.

That version of rpm is not going to be supported (yet) by any traditional distributions (e.g. Fedora).

5
msuchy On

See Dynamic allocation section of Fedora Packaging Guidelines. You may even read a whole chapter.