Bug 785236

Summary: option -D does not work for --define
Product: Red Hat Enterprise Linux 6 Reporter: Nate Straz <nstraz>
Component: rpmAssignee: Panu Matilainen <pmatilai>
Status: CLOSED ERRATA QA Contact: Patrik Kis <pkis>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: ddumas, pkis, pknirsch
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rpm-4.8.0-20.el6 Doc Type: Bug Fix
Doc Text:
Previously, the -D shortcut option for --define was incorrectly taken as a shortcut for --predefine, which would lead to incorrect macro evaluation when attempting to override macros from system configuration. The -D shortcut option now equals --define as intended and documented.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 14:23:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Nate Straz 2012-01-27 18:18:03 UTC
Description of problem:

The -D option does not work while --define does.

$ rpm --help | grep define
  -D, --define='MACRO EXPR'        define MACRO with value EXPR
$ rpm --eval "%{dist}"
.el6
$ rpm -D "dist foo" --eval "%{dist}"
.el6
$ rpm --define "dist foo" --eval "%{dist}"
foo


Version-Release number of selected component (if applicable):
rpm-4.8.0-19.el6.x86_64

How reproducible:
Every time

Steps to Reproduce:
See steps above
  
Actual results:
-D does not change defines

Expected results:
-D should work the same as --define.

Additional info:

Comment 3 Panu Matilainen 2012-01-30 08:08:04 UTC
Yup, for a long long time -D has been erronously been alias for --predefine instead of --define. The difference matters when trying to override macros that are defined in the macro configuration files, like dist is. This was patched in rhel-4 back in the day (bug 166311) but has been broken in rhel-5 and rhel-6 throughout their lifetimes.

Anyway, the fix is trivial: http://rpm.org/gitweb?p=rpm.git;a=commitdiff;h=3d657d5cc22652c71bc15a56b6b4462e228526d6

Comment 9 Panu Matilainen 2012-05-24 12:46:07 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Previously, the -D shortcut option for --define was incorrectly taken as a shortcut for --predefine, which would lead to incorrect macro evaluation when attempting to override macros from system configuration. The -D shortcut option now equals --define as intended and documented.

Comment 10 errata-xmlrpc 2012-06-20 14:23:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0909.html