* Marguerite Su <i@marguerite.su> [2012-10-30 11:08]:
On Tue, Oct 30, 2012 at 4:38 PM, Guido Berhoerster <gber@opensuse.org> wrote:
%define xulrunner_version %(rpm -q --queryformat '%%{VERSION}' xulrunner-devel)
should work. "%()" is expanded together with the macros before building so you can use the %xulrunner_version for %if blocks, two "%" escape the version macro. Needless to say that this isn't really pretty.
Hi, Guido
It didn't work...
%if %{xulrunner_version} >= 16 <== line 237 %patch -p1 %endif
error: parse error in expression error: /home/abuild/rpmbuild/SOURCES/gpac.spec:237: parseExpressionBoolean returns -1
seems "%define xulrunner_version %(rpm -q --queryformat '%%{VERSION}' xulrunner-devel)" returns 0 or the return is not a number but a warning string.
Numeric comparisons only work with integers, if you only need to compare the major version you can get away with: %define xulrunner_major_ver %(rpm -q --queryformat %'%%{VERSION}\\n' xulrunner-devel | sed 's|\\..*$||') [...] %if %xulrunner_major_ver >= 16 [...] %endif If you need a full rpm version string comparison you need a lua macro: %{lua: if rpm.vercmp(rpm.expand("%(rpm -q --queryformat '%%{VERSION}' xulrunner-devel)"), "16.0.0") >= 0 then rpm.define("xulrunner_ge_16_0_0 1") else rpm.define("xulrunner_ge_16_0_0 0") end } %if %xulrunner_ge_16_0_0 [...] %endif Not sure if so much black magic would pass a Factory review... -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org