Opened 7 years ago
Closed 7 years ago
#55014 closed defect (fixed)
py35-poppler-qt4 @0.24.0_1: error: ordered comparison between pointer and zero
Reported by: | avysk (Alexey Vyskubov) | Owned by: | dliessi (Davide Liessi) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | highsierra | Cc: | |
Port: | py-poppler-qt4 py-poppler-qt5 |
Description
Relevant part of the build log:
:info:build types.sip:30:56: error: ordered comparison between pointer and zero ('PyObject *' (aka '_object *') and 'int') :info:build if (obj == NULL || PyList_SET_ITEM (l, i, obj) < 0) :info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~ :info:build 5 warnings and 1 error generated. :info:build error: command '/usr/bin/clang' failed with exit status 1
Change History (8)
comment:1 Changed 7 years ago by mf2k (Frank Schima)
Owner: | set to dliessi |
---|---|
Port: | py-poppler-qt4 added; py35-poppler-qt4 removed |
Status: | new → assigned |
comment:2 Changed 7 years ago by dliessi (Davide Liessi)
Reported upstream: https://github.com/wbsoft/python-poppler-qt4/issues/17
comment:3 Changed 7 years ago by kencu (Ken)
Newer clangs are increasingly strict on this. You can most likely reproduce this on any system if you try building it with clang-4.0. See #54183 for another example of a similar error, and how we fixed it there.
comment:4 Changed 7 years ago by kencu (Ken)
Summary: | py35-poppler-qt4 @0.24.0_1: build failure on High Sierra → py35-poppler-qt4 @0.24.0_1: error: ordered comparison between pointer and zero |
---|
comment:5 Changed 7 years ago by mneilly
I'm not familiar with CPython but from what I see PyList_SET_ITEM is a macro that does not return a value while PyList_SetItem is a function that potentially returns -1. This looks like an error in types.sip in that PyList_SetItem appears to be what should have been used.
I've been able to get the py-poppler-qt5 port to compile and install by modifying /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/python/py-poppler-qt5/files/patch-fix-qt-dirs.diff as follows:
--- setup.py +++ setup.py @@ -137,10 +137,10 @@ class build_ext(build_ext_base): build_ext_base.initialize_options(self) self.poppler_version = None - self.qmake_bin = 'qmake' + self.qmake_bin = '%%QMAKE%%' self.qt_include_dir = None - self.pyqt_sip_dir = None + self.pyqt_sip_dir = '%%PYQTSIPDIR%%' self.pyqt_sip_flags = None def finalize_options (self): @@ -382,6 +382,6 @@ project['cmdclass']['build_ext'] = build_ext setup( - ext_modules = [Extension("popplerqt5", ["poppler-qt5.sip"], **ext_args)], + ext_modules = [Extension("popplerqt5", ["poppler-qt5.sip"], extra_compile_args=["-std=c++11"], **ext_args)], **project ) --- types.sip +++ types.sip @@ -27,7 +27,7 @@ foreach (Poppler::Document::RenderBackend value, set) { PyObject *obj = PyLong_FromLong ((long) value); - if (obj == NULL || PyList_SET_ITEM (l, i, obj) < 0) + if (obj == NULL || PyList_SetItem (l, i, obj) < 0) { Py_DECREF(l);
comment:6 Changed 7 years ago by kencu (Ken)
I did something like this patch
--- types.sip.orig 2017-10-16 20:31:11.000000000 -0700 +++ types.sip 2017-10-16 20:31:30.000000000 -0700 @@ -27,7 +27,7 @@ foreach (Poppler::Document::RenderBackend value, set) { PyObject *obj = PyLong_FromLong ((long) value); - if (obj == NULL || PyList_SET_ITEM (l, i, obj) < 0) + if (obj == (void *)NULL || !(PyList_SET_ITEM (l, i, obj))) { Py_DECREF(l);
to build it
$ port -v installed | grep poppler poppler @0.57.0_0 (active) platform='darwin 17' archs='x86_64' date='2017-10-16T20:11:02-0700' poppler-data @0.4.8_0 (active) platform='darwin 17' archs='noarch' date='2017-10-16T20:09:23-0700' poppler-qt4-mac @0.57.0_0 (active) platform='darwin 17' archs='x86_64' date='2017-10-16T20:12:36-0700'
but I haven't been confident enough about it to actually recommend it so far.
comment:7 Changed 7 years ago by mojca (Mojca Miklavec)
Port: | py-poppler-qt5 added |
---|
Reference to the PR: https://github.com/macports/macports-ports/pull/1064
There's exactly the same error present in py-poppler-qt5
.
comment:8 Changed 7 years ago by dliessi (Davide Liessi)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
In the future, please Cc the port maintainers (
port info --maintainers py35-poppler-qt4
), if any.