On Sun, 25 Aug 2013 13:52:27 +0200, Mario Blättermann wrote:
> Uncommented Requires don't give a hint about why they have been added and
> what inside a package is needed (with obvious exceptions, such as one
> Python based package requiring another Python based package). What inside
> a package is required? An executable? A directory? A datadir? A DBus
> service? JavaScript files?
>
If rpm adds its requirements due to library calls, it even doesn't comment
this ;) But I agree with you, it would be helpful to have some explanation
what a dependency is for.
Well, the automatic Requires rpmbuild adds are strict dependencies and are
only added for stuff that is really detected as being required. Especially
for libraries. The library may move to a different package without breaking
the dependency.
On the contrary, a manually added dependency on a package name is a weak
dependency. What part of the package is needed? A library perhaps? If that
library gets moved into a -libs subpackage, that breaks the dependency.
In most cases we can consult the docs in the tarball
or the project homepage, but sometimes the packager stumbles upon a missing
dep during the tests. At least in that case, the dep should be commented.
Good catch. I've missed that scenario.
I even think we've had it before that a packager dropped a comment-less
Requires again at some point, reintroducing a missing dependency, and a good
comment in the spec file would have prevented that (with a hint/explanation
about why the dep is needed).