On 10.12.2017 17:58, Sebastian wrote:
Hi,
For the package python-termstyle[0] I want to deactivate the tests because of problems with the default encoding which I can't solve. The requirement of the project maintainers is to not comment them out but change the `%bcond_without tests` to `%bcond_with tests`. But now I have a problem inside %check, which looks like this:
%if %{with tests} %check export LANG=C.UTF-8 %ifpython2 python2 setup.py test -s test2 %endif %ifpython3 python3 setup.py test -s test3 %endif %endif
%ifpython2 / %ifpython3 don't work like this, in the first place. what you want is instead: %if 0%{?have_python2} / have_python3 difference being: %ifpython2/3 applies to parts that are different between subpackages. That is: %package, %description, %files, %pre, %post etc. it does nothing for parts that are *common*: %prep, %build, %install, %check that is because %ifpython2 is a rewrite-time check: "should this part of the spec go into a python2 subpackage"? whereas %have_python2 is asking "is a python2 present in the environment?" (*) In addition, %ifpython2/3 can't be nested within other ifs, due to the way RPM parses it. That is what Neal said, for nested conditions you need to use the longer form, "%if %python_flavor". (*) Which is not even the right question to ask, it should be "is python2 in the build set?". There is currently no good way to ask that. I've been working on it but I don't have a good solution yet. Also it would be nice if there was a way to do both without the "two spellings" confusion. I'm not convinced that it is possible though, without even worse magic that is already used.
With `%bcond_without tests`, rpm does not complain (the checks fail, but we know that already), but when I use `%bcond_with tests` I get:
[ 52s] error: /home/abuild/rpmbuild/SOURCES/python-termstyle.spec:72: Got a %endif with no %if Where lne 72 is the last %endif in that section. If I comment out both %ifpythons, then it works.
Does someone maybe has a clue why this is happening?
Sebastian
[0]: https://build.opensuse.org/package/show/home:sebix:branches:devel:languages:...