Bug 47778

Summary: incorrect handling of "%define pre 3"
Product: [Retired] Red Hat Linux Reporter: j. alan eldridge <alane>
Component: rpm-buildAssignee: Jeff Johnson <jbj>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-07-07 13:22:08 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description j. alan eldridge 2001-07-07 13:19:03 UTC
Description of Problem:

In a kernel spec file, to represent the "pre?" version component of one 
of Linus's test kernels, I defined the symbol:

%define pre 3

which I then used like:

%if "%{pre}" == ""
%define ver 2.4.%{sublevel}
%else
%define ver 2.4.%{sublevel}pre%{pre}
%endif

So, an rpm build dies because I have:

%clean
rm -f $RPM_BUILD_ROOT

%pre
# pre-install actions

which rpm-build dutifully translates to"

3
# pre-install actions

Either don't allow defining that variable, or recognize that %pre is a 
directive and handle it differently.

Comment 1 j. alan eldridge 2001-07-07 13:22:05 UTC
I think this should apply to %post, %dir, and whatever else rpm may need to 
distinguish on a context basis, or else disallow defining.



Comment 2 Jeff Johnson 2001-07-07 13:38:37 UTC
This is a feature, not a bug, as it permits overloading other uses
of % (like the %pre section marker as you describe) with a macro
expansion. This permits, for example, all %build sections in a spec
file to include a per-buildsystem preface if necessary.