Variable for version/release?
Ignacio Valdes
ivaldes at hal-pc.org
Sat Oct 17 17:00:19 UTC 2009
Great! It all works, that one has been vexing me for months. -- IV
On Sat, Oct 17, 2009 at 11:44 AM, Jos Vos <jos at xos.nl> wrote:
> On Sat, Oct 17, 2009 at 11:16:40AM -0500, Ignacio Valdes wrote:
>
>> Thanks! Say I get the following message: /var/tmp/rpm-tmp.42695: line
>> 6: [: %{arch_switch}: integer expression expected
>> with the following code but I do not know why this does not work?
>>
>> %ifarch x86_64
>> $define arch_switch 1
>> %endif
>>
>> if [ %{arch_switch} -eq 1 ]; then
>> actual_gtm_path="/opt/lsb-gtm/V5.3-004A_x86_64"
>> else
>> actual_gtm_path="/opt/lsb-gtm/V5.3-004A_i686"
>> fi
>
> This does not work because %{arch_switch} is not always defined.
> In case it isn't, rpm gives an error (although you describe a
> shell/test error -- I'd think rpm would also given an error).
> There are multiple ways to solve this:
>
> (1)
>
> Make sure %{arch_switch} is always defined:
>
> %ifarch x86_64
> $define arch_switch 1
> %else
> $define arch_switch 0
> %endif
>
> OR:
>
> (2)
>
> Change the evaluation so that this always succeeds:
>
> if [ 0%{?arch_switch} -eq 1 ]; then
> actual_gtm_path="/opt/lsb-gtm/V5.3-004A_x86_64"
> else
> actual_gtm_path="/opt/lsb-gtm/V5.3-004A_i686"
> fi
>
> Here, %{?arch_switch} evaluates to its value ("1" in your case) when
> it is defined, or to the empty string otherwise (because of the "?"
> there will be no rpm evaluation error). Because teh concatenation
> of "0" with your value, this will be "0" or "01", which is always
> an integer.
>
> --
> -- Jos Vos <jos at xos.nl>
> -- X/OS Experts in Open Systems BV | Phone: +31 20 6938364
> -- Amsterdam, The Netherlands | Fax: +31 20 6948204
> _______________________________________________
> Rpm-list mailing list
> Rpm-list at lists.rpm.org
> http://lists.rpm.org/mailman/listinfo/rpm-list
>
More information about the Rpm-list
mailing list