Red Hat Bugzilla – Bug 74949
%foo substitutions occur in .spec file comments; multiline %foo breaks out of a comment
Last modified: 2008-05-01 11:38:04 EDT
Description of Problem:
A spec file that has worked for years does not work on RHL8.0.
The reason appears to be that rpmbuild looks inside comments and gets confused.
In particular, the following comment in the %install section caused
the rpmbuild to fail.
# This can be different from JOVEHOME for %build's make.
If I change the ' to _, the rpmbuild succeeds!
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. wget -N ftp://ftp.cs.utoronto.ca/pub/hugh/jove-dev/jove22.214.171.124.tgz
2. rpmbuild -ta jove126.96.36.199.tgz
fails because it treats a large part of the script as if it
were a single file name!?! The name starts with "'s make.".
The error message is "No such file or directory".
successful build (with warning about two files not being packaged)
It is possible that the %build in the comment is part of the problem.
However, watchout for redhat-rpm-config,
which, if installed, may be overloading %build.
Yes %foo tokens are expanded everywhere, including comments
and within single and double quoted strings.
My problem was that %build was expanded inside a comment, and expanded to a
multi-line thing, so it "broke out" of the comment.
This is a really bad/surprising feature. I guess I should read the
documentation. Oh, there is none that is current. Oh well :-)
This needs to be documented or fixed.
It is as well documented as any other part of RPM (as in, not really at all).
Macros have to be expanded everywhere in order for many aspects of spec files to work,
so this can't really be changed (rpm has no concept of comment lines at macro expansion