touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #91943
[Bug 1477759] Re: pyqt5 misbuild with python3.5
This is a bug in either python3.5 or in dh-python, I'm not sure which.
dh-python inspects sysconfig for the interpreter version to determine
the filenames it should use. The code it runs is:
$ python3.5
>>> import sysconfig as s
>>> print("__SEP__".join(i or "" for i in s.get_config_vars("SOABI","MULTIARCH","INCLUDEPY","LIBPL","LDLIBRARY")))
cpython-35m-x86_64-linux-gnu__SEP__x86_64-linux-gnu__SEP__/usr/include/python3.5m__SEP__${prefix}/lib/python3.5/config-3.5m-x86_64-linux-gnu__SEP__libpython3.5m.so
>>>
on python3.4, this gives:
$ python3.4
>>> import sysconfig as s
>>> print("__SEP__".join(i or "" for i in s.get_config_vars("SOABI","MULTIARCH","INCLUDEPY","LIBPL","LDLIBRARY")))
cpython-34m__SEP__x86_64-linux-gnu__SEP__/usr/include/python3.4m__SEP__/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu__SEP__libpython3.4m.so
>>>
The difference between 3.4 and 3.5 is that the multiarch string is now
included as *part of* the SOABI variable; so concatenating the two
variables to form the filename means that the architecture name is
doubled when it shouldn't be.
This is bound to cause misbuilds of a number of python extensions, which
will need to be rebuilt once this is fixed.
Assuming the python3.5 behavior is a deliberate change that should not
be reverted, it seems it should be a simple thing to check that the
multiarch value isn't a substring of the SOABI.
** Changed in: dh-python (Ubuntu)
Importance: High => Critical
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to dh-python in Ubuntu.
https://bugs.launchpad.net/bugs/1477759
Title:
pyqt5 misbuild with python3.5
Status in dh-python package in Ubuntu:
Triaged
Status in pyqt5 package in Ubuntu:
Triaged
Status in python3.5 package in Ubuntu:
Triaged
Status in dh-python source package in Wily:
Triaged
Status in pyqt5 source package in Wily:
Triaged
Status in python3.5 source package in Wily:
Triaged
Bug description:
pyqt5 fails its autopkgtests after rebuild with python3.5, with a
failure to find the enginio module under python3.5:
testing python3.5
Traceback (most recent call last):
File "test_import.py", line 1, in <module>
from PyQt5.Enginio import EnginioClient
ImportError: No module named 'PyQt5.Enginio'
<http://d-jenkins.ubuntu-ci:8080/view/Wily/view/AutoPkgTest/job/wily-
adt-pyqt5/35/ARCH=i386,label=adt/console>
This is because the filename is wrong inside the package; the
architecture string is doubled:
$ dpkg -L python3-pyqt5.enginio | grep '\.so'
/usr/lib/python3/dist-packages/PyQt5/Enginio.cpython-35m-x86_64-linux-gnu-x86_64-linux-gnu.so
/usr/lib/python3/dist-packages/PyQt5/Enginio.cpython-34m-x86_64-linux-gnu.so
$
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dh-python/+bug/1477759/+subscriptions