On Tue, Aug 26, 2008 at 05:33:13PM -0400, Michel Salim wrote:
On Tue, Aug 26, 2008 at 1:47 PM, Axel Thimm
<Axel.Thimm(a)atrpms.net> 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(a)math.unl.edu> 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?
Yes, the values at the binary build, not at the src.rpm build.
--
Axel.Thimm at
ATrpms.net