On Tue, Aug 26, 2008 at 1:47 PM, Axel Thimm <Axel.Thimm@xxxxxxxxxx> wrote: > On Tue, Aug 26, 2008 at 01:39:00PM -0400, Michel Salim wrote: >> On Tue, Aug 26, 2008 at 7:46 AM, Rex Dieter <rdieter@xxxxxxxxxxxx> wrote: >> > Michel Salim wrote: >> >> >> >> At the risk of asking the obvious, why does this fail: >> >> >> >> %define nunitver %(gacutil -l nunit.core | tail -n 2 | grep nunit.core >> >> | cut -d "=" -f 2 | cut - >> >> d "," -f 1) >> >> >> >> Requires: mono(nunit.core) = %{nunitver} >> > >> > I'll venture because our buildsys needs to (re)generate the srpm, and at >> > that time, no BR's are installed and gacutil isn't available => failure. >> > To protect against that, do something like: >> > >> > %define nunitver %(gacutil -l nunit.core 2>& /dev/null | ...) >> > >> > %if "x%{?nunitver}" != "x" >> > Requires: mono(nunit.core) = %{nunitver} >> > %endif >> > >> Axel: It fails by being empty. >> >> Tom, Rex: as Rex said, it is because BRs are not installed when the >> SRPM is regenerated (perhaps we need a different directive, like >> PreBuildRequires: ? Hmm) >> >> So in this case, nunitver will *always* be empty, so I'm not sure how >> the test will help. > > This idiom is often used with perl/python/php etc. The first phase > creating the src.rpm will be giving you some warnings, but the second > phase, the actual building of the binaries will have the bits in place > due to the BuildRequires, so it will not be empty then. Aha! Yes, cute. The Requires: that end up in the binary package will actually be the proper values, then, not the values that end up in the source RPM? -- Michel Salim http://hircus.jaiku.com/ -- Fedora-packaging mailing list Fedora-packaging@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-packaging