On Mon, Apr 23, 2007 at 12:11:35PM +0200, Axel Thimm wrote:
Or to place it more explicit make
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print get_python_lib()")}
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
[%{!?foo: %define foo ...}]
to
%{!?python_sitelib:%global python_sitelib %(%{__python} -c "from distutils.sysconfig
import get_python_lib; print get_python_lib()")}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
[%{!?foo:%global foo ...}]
Otherwise using parametrized macros can mess things up (#237448). The
nesting levels seems to get mixed up and the conditionalized
definition above get swallowed away. The %global ensures that this
bug doesn't happen.
OK, looks like the bug is indeed in using this construct with %define
inside. rpm's lazy garbage collection pollutes the global macor
namespace until a more involved nesting construct appears which
properly cleans up.
So we really need to change %defines within a %{...} to %globals.
Let's vote on this today unless s/o thinks he needs to investigate
further.
It may also be cleaner to remove the space between the colon and the
percent sign.
--
Axel.Thimm at
ATrpms.net