[PyQt] sip-build --debug and wheels on a Raspberry Pi

Kyle Altendorf sda at fstab.net
Wed Apr 8 13:03:25 BST 2020


On 2020-04-08 07:29, Phil Thompson wrote:
> On 08/04/2020 04:10, Kyle Altendorf wrote:
>> I've got a couple issues related to building PyQt.  I glanced around
>> quickly at them and they seemed likely trivial to identify (even if
>> solutions always take non-trivial amounts of work).  If needed I can
>> go back through and provide some reproduction steps and logs.
>> 
>> 1) sip-build --debug doesn't seem to set either the Designer or QML
>> plugins to be built with debug symbols intact.  When I added debug to
>> the CONFIG lines in the .pro-in files I did get debug symbols.
>> 
>> Backstory: This came up while debugging my issues with segfaults in
>> GitHub Actions Linux.  I don't know the root cause of what I was
>> debugging but I did see what seemed to be two None instances...  I
>> switched to official CPython docker images and the segfaults went
>> away.  :|
> 
> Should be fixed in tonight's PyQt snapshot.

Thanks.

>> 2) Building a wheel with pip on an ARM Raspberry Pi results in a file
>> with manylinux2014_x86_64 in the name.  Perhaps something based on
>> distutils.util.get_platform() (plus pep425 described modification of
>> the value) and replacing linux with manylinux<whatever>?  Or you'd
>> think some official library would expose this calculation for you to
>> use.
>> 
>>     PyQt5-5.14.2-cp35.cp36.cp37.cp38-abi3-manylinux2014_x86_64.whl
>> 
>> Backstory: I'm trying to help piwheels get a build going for PyQt5.
> 
> <whatever> is chosen according to the glibc requirements of Qt. It is
> specified using 'minimum-glibc-version' in ...
> 
> https://www.riverbankcomputing.com/static/Docs/sip/pyproject_toml.html#tool-sip-project-section

Sorry, I added to my description and it became less clear.  The concern 
is the x86_64 part, I have no knowledge of errors in the manylinux part. 
  Raspberry Pi are armv7l.  PEP425 describes building the platform tag, 
albeit without the manylinux part.

https://www.python.org/dev/peps/pep-0425/#platform-tag

So maybe distutils.util.get_platform().replace('-', '.').replace('.', 
'_').replace(sys.platform, the_selected_manylinux_tag).  Or maybe the 
wheel package has something, etc.  I haven't looked at what this does in 
macOS so I certainly may still be way off.

     >>> distutils.util.get_platform().replace('-', '.').replace('.', 
'_').replace(sys.platform, 'manylinux2014')
     'manylinux2014_x86_64'

     >>> distutils.util.get_platform().replace('-', '.').replace('.', 
'_').replace(sys.platform, 'manylinux2014')
     'manylinux2014_armv7l'

Cheers,
-kyle


More information about the PyQt mailing list