Bug 785236 - option -D does not work for --define
Summary: option -D does not work for --define
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: rpm
Version: 6.2
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Panu Matilainen
QA Contact: Patrik Kis
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-27 18:18 UTC by Nate Straz
Modified: 2012-06-20 14:23 UTC (History)
3 users (show)

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.
Clone Of:
Environment:
Last Closed: 2012-06-20 14:23:24 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2012:0909 0 normal SHIPPED_LIVE rpm bug fix and enhancement update 2012-06-19 20:46:44 UTC

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


Note You need to log in before you can comment on or make changes to this bug.