1cfbec5 SPEC: Use macro python_provide conditionally

Authored and Committed by lslebodn 6 years ago
    SPEC: Use macro python_provide conditionally
    
    The rpm macro python_provide is defined only in fedora and epel.
    This is the reason why we have fallback definition in the beginning of
    spec file otherwise build on rhel would fail.
    
    This macro is defined in file /usr/lib/rpm/macros.d/macros.python
    provided by package python-rpm-macros.
    
      sh$ rpm -qf /usr/lib/rpm/macros.d/macros.python
      python-rpm-macros-3-20.fc26.noarch
    
      sh$ grep python_provide /usr/lib/rpm/macros.d/macros.python
      %python_provide() %{lua:
          print("%python_provide: ERROR: ")
    
    But this package is not installed in minimal chroot and therefore
    build dependencies cannot be extracted from spec file.
    
      sh$ mock --clean --shell 'rpm -q python-rpm-macros' 2>/dev/null
      package python-rpm-macros is not installed
    
      sh$ mock --shell 'rpm --eval "%{python_provide python-test}"' 2>/dev/null
      %{python_provide python-test}
    
      sh$ mock --resultdir . --rebuild sssd-1.15.3-0.fc26.src.rpm
      ...
      error: line 295: Unknown tag: %{python_provide python2-sssdconfig}
      ...
    
    This is the reason why it has to be used conditionally in fedora as it is shown
    in example common spec file in python fedora packaging guidelines
      http://fedoraproject.org/wiki/Packaging:Python#Example_common_spec_file
    
      sh$ rpm -q --whatrequires python-rpm-macros
      python2-devel-2.7.13-5.fc26.x86_64
      python3-devel-3.6.0-22.fc26.x86_64
    
    This patch reduce differences between upstream and fedora spec file.
    
    Reviewed-by: Fabiano FidĂȘncio <fidencio@redhat.com>
    
        
file modified
+10 -10