[scl.org] Question about generating RPMs that depend on SCLs (like python27)

Honza Horak hhorak at redhat.com
Wed Jul 16 08:01:27 UTC 2014


On 07/16/2014 06:29 AM, Alan Robertson wrote:
> So, I'm trying to take the page you pointed at seriously - so I added
> this line from that page:
>
> BuildRequires: scl-utils-build
>
>
> There is no such package.  What was intended here?

This package is included in optional channel, but you shouldn't need it, 
because you are preparing non-SCL package and scl-utils-build is 
intended only for building SCL packages.

Anyway, what is obviously wrong in your case is generating the python 
requirements. These generators are delivered in python-devel and 
python27-python-devel packages. So, if I'm not mistaken, your package 
(and building environment) must include python27-python-devel but not 
python-devel. In spec file you should have:
   BuildRequires: python27-python-devel

But be careful about packages installed during building (if you build in 
your working environment), since I'm not sure which package gets 
preference in case both python-devel and python27-python-devel are 
installed.

Regards,
Honza

>
>
> On 07/15/2014 04:09 PM, Orion Poplawski wrote:
>> On 07/15/2014 04:06 PM, Orion Poplawski wrote:
>>> On 07/15/2014 03:55 PM, Alan Robertson wrote:
>>>> OK.  It was pointed out to me off-list that I was comparing the
>>>> wrong thing.
>>>> I should have been looking at python27-python.  Here's what that
>>>> package shows:
>>>>
>>>> bash-4.1# *rpm -q --provides python27-python*
>>>> python27-python-abi = 2.7
>>>> python27-python(abi) = 2.7
>>>> python27-Distutils
>>>> python27-python2 = 2.7.5
>>>> python27-python-sqlite = 2.3.2
>>>> python27-python-ctypes = 1.0.1
>>>> python27-python-hashlib = 20081120
>>>> python27-python-uuid = 1.31
>>>> python27-python-argparse = 2.7.5-7.el6.centos.alt
>>>> python27-python = 2.7.5-7.el6.centos.alt
>>>> python27-python(x86-64) = 2.7.5-7.el6.centos.alt
>>>> bash-4.1#
>>>>
>>>> Either I'm failing to do something to appease the automagical
>>>> python-version
>>>> detection (which I have no idea how it figures that out), or the
>>>> property
>>>> names in python27-python should not have the "python27-" prefix.
>>>>
>>>> Anyone know which it is - and how to deal with it?
>>>>
>>>> It seems to me like the attributes of the provides should not be
>>>> prefixed by
>>>> python27.  But I'm new to this SCL stuff...
>>>
>>> FWIW - they "python(abi) = ##" requires is added by
>>> /usr/lib/rpm/pythondeps.sh
>>> as part of the standard rpm dependency generation.  So yes, for this
>>> to work
>>> with the scl, either the scl needs to provide "python(abi) = 2.7" or
>>> you will
>>> need to disable the automatic requires generation or filter out the
>>> python(abi) line.
>>>
>>> We're all new to this SCL stuff.... :)
>>>
>>>
>>
>> Here's the magic from
>> https://access.redhat.com/documentation/en-US/Red_Hat_Developer_Toolset/2/html/Software_Collections_Guide/sect-Extending_the_python27_and_python33_Software_Collections.html
>>
>>
>> # Similarly, override __python_requires for automatic dependency
>> generator
>> %global __python_requires %{%{scl_python}_python_requires}
>>
>>
>
>
> --
>      Alan Robertson<alanr at unix.sh>  - @OSSAlanR
>
> "Openness is the foundation and preservative of friendship...  Let me claim from you at all times your undisguised opinions." - William Wilberforce
>




More information about the SCLorg mailing list