On 12/24/2015 10:01 PM, Jason L Tibbitts III wrote:
To satisfy my curiosity, I grepped the convenient tarball of
specfiles
(
http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz) for lines
matching "(?<!%)%define" (%define but not %%define). To my surprise,
there were more than 1900 hits.
Your message would have benefited from a link to the relevant rule from
the package guidelines. :)
http://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_ov...
However, the text is self-contradictory: “The two macro defining
statements behave the same when they are a the top level of rpm's
nesting level” vs “%define and %global differ in more ways than just scope”.
It seems that the key difference is that %define evaluates the macro
body at evaluation time, and %global evaluates it at definition time.
It would be nice to fix the description above to reflect that.
Florian