#26 EPEL 7: Backport %py_provides
Merged 3 years ago by tdawson. Opened 3 years ago by churchyard.
rpms/ churchyard/epel-rpm-macros epel7-py_provides  into  epel7

file modified
+4 -1
@@ -1,6 +1,6 @@ 

  Name:           epel-rpm-macros

  Version:        7

- Release:        28

+ Release:        29

  Summary:        Extra Packages for Enterprise Linux RPM macros

  

  Group:          System Environment/Base
@@ -54,6 +54,9 @@ 

  

  

  %changelog

+ * Tue Nov 10 2020 Miro Hrončok <mhroncok@redhat.com> - 7-29

+ - Backport %%py_provides

+ 

  * Mon Oct 12 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 7-28

  - Add a Requires for lua-srpm-macros

  

file modified
+26
@@ -88,6 +88,32 @@ 

  %python3_platform_triplet %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))")

  %python3_ext_suffix %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")

  

+ %py_provides() %{lua:

+     local name = rpm.expand('%1')

+     if name == '%1' then

+         rpm.expand('%{error:%%py_provides requires at least 1 argument, the name to provide}')

+     end

+     local evr = rpm.expand('%2')

+     if evr == '%2' then

+         evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}')

+     end

+     print('Provides: ' .. name .. ' = ' .. evr .. '\\n')

+     -- NB: dash needs to be escaped!

+     if name:match('^python3%-') then

+       replaced = name:gsub('^python3%-', 'python36-')

+       print('Provides: ' .. replaced .. ' = ' .. evr .. '\\n')

+     elseif name:match('^python36%-') then

+       replaced = name:gsub('^python36%-', 'python3-')

+       print('Provides: ' .. replaced .. ' = ' .. evr .. '\\n')

+     elseif name:match('^python%-') then

+       replaced = name:gsub('^python%-', 'python2-')

+       print('Provides: ' .. replaced .. ' = ' .. evr .. '\\n')

+     elseif name:match('^python2%-') then

+       replaced = name:gsub('^python2%-', 'python-')

+       print('Provides: ' .. replaced .. ' = ' .. evr .. '\\n')

+     end

+ }

+ 

  # Backport from 4.15

  %_smp_build_ncpus %([ -z "$RPM_BUILD_NCPUS" ] \\\

    && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\

I don't have anything to test it with.
If someone can give this a test on something I totally agree with this.
I just would hate to find one of those "oh, RHEL7 does it different" moments.

RHEL7 doesn't have this macro at all.

For testing, I only has the command line:

<mock-chroot> sh-4.2# rpm --eval '%py_provides xxx 123'
Provides: xxx = 123

<mock-chroot> sh-4.2# rpm --eval '%py_provides xxx'
Provides: xxx = %{version}-%{release}

<mock-chroot> sh-4.2# rpm --eval '%py_provides python'
Provides: python = %{version}-%{release}

<mock-chroot> sh-4.2# rpm --eval '%py_provides python-xxx'
Provides: python-xxx = %{version}-%{release}
Provides: python2-xxx = %{version}-%{release}

<mock-chroot> sh-4.2# rpm --eval '%py_provides python2-xxx 123'
Provides: python2-xxx = 123
Provides: python-xxx = 123

<mock-chroot> sh-4.2# rpm --eval '%py_provides python3-xxx'
Provides: python3-xxx = %{version}-%{release}
Provides: python36-xxx = %{version}-%{release}

<mock-chroot> sh-4.2# rpm --eval '%py_provides python36-xxx'
Provides: python36-xxx = %{version}-%{release}
Provides: python3-xxx = %{version}-%{release}

<mock-chroot> sh-4.2# rpm --eval '%py_provides python34-xxx'
Provides: python34-xxx = %{version}-%{release}

LGTM
I'm a huge fan of keeping the macros consistent as possible across all the platforms.

Pull-Request has been merged by tdawson

3 years ago