Bug 1323949

Summary: Regression with recursive conditional macro
Product: Red Hat Enterprise Linux 6 Reporter: Karel Srot <ksrot>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED NOTABUG QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: medium Docs Contact:
Priority: high    
Version: 6.7   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1246746 Environment:
Last Closed: 2016-06-28 12:53:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Karel Srot 2016-04-05 07:17:29 UTC
According to my testing the bug is present also on RHEL-6, tested with
rpm-4.8.0-55.el6 and rpm-4.8.0-37.el6.

+++ This bug was initially created as a clone of Bug #1246746 +++

Description of problem:
Recursively and conditionally defined macro behave differently in RHEL-6 (4.8) and RHEL-7 (4.11).
Fedora (version 4.12) behaves like RHEL-6, which seems correct)

Version-Release number of selected component (if applicable):
  rpm-build-4.11.1-25.el7

How reproducible:
  Always

Steps to Reproduce:
  Use in the spec 

  %if "%{?scl}" == "rh-php56"
  %global sub_prefix more-php56-
  %else
  %global sub_prefix %{?scl_prefix}
  %endif

  Name: %{?sub_prefix}php-pecl-%{pecl_name}

During SCL build, and %SCL = "php56"

Actual results:
  RHEL-6 and Fedora 21+
  Name is php56-php-pecl-name (correct)

  RHEL-7
  Name is php-pecl-name  (missing prefix)


Expected results:
  Name always php56-php-pecl-name


Additional info:
Example spec file : https://raw.githubusercontent.com/remicollet/remirepo/master/php/pecl/php-pecl-apfd/php-pecl-apfd.spec

Workaround: less conditionally defined macro (used in previous spec)
  %if 0%{?scl:1}
  %if "%{scl}" == "rh-php56"
  %global sub_prefix more-php56-
  %else
  %global sub_prefix %{scl_prefix}
  %endif
  %endif

Used to build https://www.softwarecollections.org/en/scls/remi/php56more/

Comment 1 Karel Srot 2016-06-28 12:53:34 UTC
Closing as NOTABUG, justification in bug 1246746#c8