Bug 1319131

Summary: incorrect use of Requires(pre)?
Product: [Fedora] Fedora Reporter: Honza Silhan <jsilhan>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-03-21 11:53:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Honza Silhan 2016-03-18 15:54:12 UTC
We've identified your package for having `Requires(pre)` RPM flag without `Requires` [1]. `Requires(pre)` rpm tag could be interpreted wrongly, so to prevent any harm to Fedora users I am notifying you about this fact.

Any package that is specified in `Requires(pre)` could be freely removed. Citing from RPM pages:
```
If there are no other dependencies on the package providing /usr/sbin/useradd, that package is permitted to be removed from the system after installation(!)
``` [2]

If you really rely on dependency just during the installation process and your package don't necessary require the dependency for the proper run of your application then ignore this bug report and close it as NOTABUG. Otherwise add to your spec file additional `Requires` for the dependency, please.


[1] paste.fedoraproject.org/341611/82208431
[2] http://www.rpm.org/wiki/PackagerDocs/MoreOnDependencies

Comment 1 Josh Boyer 2016-03-18 18:58:03 UTC
Thanks for the report.  I believe the kernel usage here is mostly correct.  I'll address each Requires(pre).

linux-firmware: The kernel will boot without this and it is not required at runtime from a strictly technical point of view.  The ability to remove it is actually desired in many cases, such as cloud images.

dracut: This is technically OK.  The kernel needs dracut at install time, so the Requires(pre) will enforce that.  After a kernel is installed, dracut can be removed.  If another kernel is installed, the Requires(pre) should bring it back because kernels are always RPM installed and not RPM updated.

fileutils: This should probably be changed to coreutils anyway, given that fileutils as a package doesn't exist.  Aside from that, same reasoning as dracut above.

/usr/bin/find: I'll change this to findutils.  This one should actually be changed to Requires, as it is in the -devel subpackage.

Comment 2 Josh Boyer 2016-03-21 11:53:27 UTC
I made the noted changes in rawhide last week.