Hello,
On Thu, 22 Dec 2011, Johannes Meixner wrote:
On Dec 22 02:53 David Haller wrote (excerpt):
... usually[1] all "Requires:" are required by "BuildRequires:"
No.
No.
"Requires" and "BuildRequires" are independent of each other.
Yes.
In other words: "Requires" and "BuildRequires" define two sets of packages where the intersecting set is usually non-empty but usually none is a superset of the other.
I know quite well.
[1] can't think of a counter example right now
Think about a package which requires executables (also scripts) or whatever other files which are provided by another package.
For example?
I've packaged _a lot_ of packages (a couple of hundred, most for my ex-SUSE 6.2 over 10 years (ISTR >>500 RPMs of packages by me installed), from small to quite a bunch like most of gnome). Usually, there's _very_ little you need to explicitly have in Requires that is not picked up automatically by "AutoReqProv" or via a require of the corresponding -devel packages (which you need to have in BuildRequires). And most if not all (well it should be all) configure-scripts (and alike) will check for those executables to be available for build, and so they'll get pulled into the Build and usually picked up as a Require for the Package.
Basically I know only 2 cases:
a) BuildRequires: libfoo-devel ### => autoReq: libfoo.so.* b) BuildRequires: foo\nRequires: foo
I do not recall a
c) Requires: bar
where bar is not automatically (indirectly pulled into the "Build" and picked up as a Req). So, in my experience at least for the majority of packages BuildRequires *is* a superset of (implicit) automatic Requires and (often redundant) explicit Requires.
Name me an example, where there's a needed explicit "Requires" that's not also needed for the build of the package. It may well be, that rpm does not automatically add the "Requires", so you'd have to write it in you specfile, but one _not needed for build_ would be a new one to me.
I can't think of such an example, but I guess there are those, esp. in the area you're muckin' about. I've not printed a page from any of my boxen since about 2005 and the last one was still from Win95[1] ;)
Most of my packages have "Requires" which are not in "BuildRequires".
Exactly my point. You don't need to specify the implicit Requires that the BuildRequires automatically pull in.
I *am* curious though for an example which needs an explicit "Requires" which is _not_ also "pulled" into the build, so, if you could name an example ...
Some foo-ppd-<ver>.rpm would be lame. You just need to repackage some files from tarball to rpm and add Requires like cups. No building or testing involved. That ("just repackaging") would be those exceptions I meant. That's "garnishing the tarball with requires" ;)
-dnh
PS: I'll pay you a beer or two somehow if you come up with something I deem a "valid" example (actually: for what you've been doing on the suse-linux/opensuse-de MLs for years ;)
PPS: I'll be off the PC for a few days and don't expect an answer soonish (depending on when I read you again elsewhere ;)
[1] I never got my printers work from Linux beyond a testpage and then my need for printing just went away. In the last 5 years I think I printed about 10 pages for myself, maybe 5 pages RMAs/Labels, 4 pages domain KK stuff, and the one odd other page I think. And of course, the ink in my respective "Tintenrotzer" was _always_ dried solid. So, I printed at my mum's, at my neighbours, at a PC shop (I payed them).