[Fedora-packaging] Re: Using %global instead of %define in conditionalized macro expressions

Axel Thimm Axel.Thimm at ATrpms.net
Tue Apr 24 15:33:27 UTC 2007


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-packaging/attachments/20070424/2e18d9aa/attachment.sig>


More information about the Fedora-packaging mailing list