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): rpm-build-4.1-1.06 How Reproducible: always. Steps to Reproduce: 1. wget -N ftp://ftp.cs.utoronto.ca/pub/hugh/jove-dev/jove4.16.0.56.tgz 2. rpmbuild -ta jove4.16.0.56.tgz Actual Results: 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". Expected Results: successful build (with warning about two files not being packaged) Additional Information: It is possible that the %build in the comment is part of the problem.
This WORKSFORME. 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 time).