Re: Forcing a script to bomb, etc.
Philip Prindeville <[email protected]>
| Newsgroups | gmane.linux.redhat.rpm.general |
|---|---|
| Message-ID | <[email protected]> |
Michael Jennings wrote:
> On Friday, 12 October 2007, at 10:10:13 (-0700),
> Philip Prindeville wrote:
>
>
>> So... a few miscellaneous questions.
>>
>> First, where is the current authoritative documentation? I've not found
>> %{!? documented anywhere.
>>
>
> /usr/share/doc/rpm-*/conditionalbuilds
>
Ok, thanks. Looking at the example:
%if %{?_with_ssl:1}%{!?_with_ssl:0}
that's a little more complicated than it needs to be, isn't it?
I've seen:
%if 0%{?_with_ssl:1}
And that seems to work equally well...
>> Second, is there a guide to what macros are common on all platforms, like
>> %{with and %{without?
>>
>
> Not really, but the stuff in /usr/share/doc is a good start.
>
Sigh.
>> Third, can I force an RPM to error with a message is a standard
>> fashion, if it finds (for instance) that it's being built with a
>> combination of incompatible --with options?
>>
>
> It's a shell script. Do whatever you like.
>
Right, but I don't want to capture the shell exit value of %(...) as an
expression.... I want to bomb out.
I suppose I could have:
%prep
...
%if !<some sanity tests here>
echo "This can't possibly be correct." 1>&2
exit 1
%endif
>> Fourth, is it philosophically preferable to have a package build by
>> default with everything, but have the package turn stuff off with
>> --without xxx, or build the smallest supportable package, but turn
>> things on via rpmbuild --with arguments?
>>
>
> It's your package; do it however you want. I prefer to default to
> building everything and require manual intervention to turn things
> off. Makes things more autobuilder-friendly.
>
That's what I wanted to do, but it got slapped down.
We could add an AutobuilderHint: field to the header that wouldn't do
anything, but that autobuilders could grovel out and use as the default
set of arguments...
>> Lastly, where's the documentation on writing and using macros that take
>> arguments?
>>
>
> See above.
>
> Michael
>
>
doc/macros it looks like.
-Philip