Unfortunately, python_qt_binding
requires SIP 4, so the PKGBUILD skips all packages depending on that one, as per the macOS instructions.
I'm currently investigating PySide2 as an option, but building the package takes time.
Git Clone URL: | https://aur.archlinux.org/ros2-iron.git (read-only, click to copy) |
---|---|
Package Base: | ros2-iron |
Description: | A set of software libraries and tools for building robot applications |
Upstream URL: | https://docs.ros.org/en/iron/ |
Licenses: | Apache-2.0 |
Submitter: | 14mRh4X0r |
Maintainer: | None |
Last Packager: | 14mRh4X0r |
Votes: | 0 |
Popularity: | 0.000000 |
First Submitted: | 2023-05-30 08:03 (UTC) |
Last Updated: | 2024-07-02 16:01 (UTC) |
Unfortunately, python_qt_binding
requires SIP 4, so the PKGBUILD skips all packages depending on that one, as per the macOS instructions.
I'm currently investigating PySide2 as an option, but building the package takes time.
The missing sip
dependency has been added to ros2-arch-deps
.
Please kindly try the build again.
(Or preferably, try to build the latest release-iron-20230717 tag.)
In re @kistlin's comment from 2023-08-08 02:02 (UTC):
On a relatively fresh Arch install, this fails at
Starting >>> qt_gui_cpp --- stderr: qt_gui_cpp CMake Warning (dev) at ros2-iron/src/install/share/python_qt_binding/cmake/shiboken_helper.cmake:1 (find_package): Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): src/qt_gui_cpp_shiboken/CMakeLists.txt:43 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at ros2-iron/src/install/share/python_qt_binding/cmake/shiboken_helper.cmake:37 (find_package): Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): src/qt_gui_cpp_shiboken/CMakeLists.txt:43 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Error at CMakeLists.txt:67 (message): No Python binding generator found. ... ==> ERROR: A failure occurred in build(). Aborting... error: failed to build 'ros2-iron-2023.05.23-1': error: packages failed to build: ros2-iron-2023.05.23-1
It seems that ROS' confusing Python Qt bindings configuration (using either sip or shiboken, PyQt or PySide) has been raised as issue #114.
Just a heads up: I'm working on the update, I just want to make sure it's correct.
This latest version of sip (6.7) should be compatible with both Qt 5 and the newest Qt 6 as well.
It is not sip4
that is missing, so you should be safe installing the current version of sip
.
I've mentioned this to the maintainer of ros2-arch-deps, and asked them to add 'sip' as an explicit dependency to that package.
After installing sip4 python-sip4
I got past that point.
Now I have Qt6 dependency issues.
/usr/sbin/ld: warning: libQt6Test.so.6, needed by /usr/lib/libopencv_highgui.so.4.8.0, not found (try using -rpath or -rpath-link)
/usr/sbin/ld: warning: libQt6OpenGLWidgets.so.6, needed by /usr/lib/libopencv_highgui.so.4.8.0, not found (try using -rpath or -rpath-link)
/usr/sbin/ld: warning: libQt6Widgets.so.6, needed by /usr/lib/libopencv_highgui.so.4.8.0, not found (try using -rpath or -rpath-link)
/usr/sbin/ld: warning: libQt6Gui.so.6, needed by /usr/lib/libopencv_highgui.so.4.8.0, not found (try using -rpath or -rpath-link)
/usr/sbin/ld: warning: libQt6Core.so.6, needed by /usr/lib/libopencv_highgui.so.4.8.0, not found (try using -rpath or -rpath-link)
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QWidget::focusNextPrevChild(bool)@Qt_6'
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QLayout::geometry() const@Qt_6'
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QString::toUtf8_helper(QString const&)@Qt_6'
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QPainter::setFont(QFont const&)@Qt_6'
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QWidget::dragEnterEvent(QDragEnterEvent*)@Qt_6'
/usr/sbin/ld: /usr/lib/libopencv_highgui.so.4.8.0: undefined reference to `QFutureInterfaceBase::isCanceled() const@Qt_6'
I'm currently trying to compile with Qt6 installed.
And after installing qt6-base
everything compiled successful.
Based on ros2-iron/src/install/share/python_qt_binding/cmake/sip_helper.cmake
sip
cannot be found I think.
When installing for example python-sip4
. And then executing python -c "import sipconfig; print(sipconfig.Configuration().sip_bin)"
it prints /usr/bin/sip
.
Then I get a different error.
Traceback (most recent call last):
File "/home/user/.cache/paru/clone/ros2-iron/src/install/share/python_qt_binding/cmake/sip_configure.py", line 123, in <module>
subprocess.check_call(cmd)
File "/usr/lib/python3.11/subprocess.py", line 408, in check_call
retcode = call(*popenargs, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/subprocess.py", line 389, in call
with Popen(*popenargs, **kwargs) as p:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/subprocess.py", line 1024, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.11/subprocess.py", line 1917, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/sip'
make[2]: *** [src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/build.make:103: sip/qt_gui_cpp_sip/Makefile] Error 1
make[1]: *** [CMakeFiles/Makefile2:253: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
python-pyqt5-sip4
looks like it was not installed, and it seems to be a dependency of ros2-arch-deps
and there of python-pyqt5
. But after installing it was still not working.
Something with this sip
is wrong.
@MarsSeed I don't think it's the warnings. It's
CMake Error at CMakeLists.txt:67 (message):
No Python binding generator found.
It is maybe in some CMake file searching for sip
or so. I'll have to dig later on.
Warnings should not be treated as errors. Is such configured on your system? (Does CPPFLAGS contain "-Werror" in your
makepkg.conf`?)
Pinned Comments
14mRh4X0r commented on 2024-07-02 16:03 (UTC)
I tried getting 2024.04.23 working with
python_qt_binding
without success (none of the backends built in a clean chroot), but after the upgrade to Python 3.12, none of them will build even in my host environment. This, combined with long build times and the faster update pace of Arch compared to ROS causing dependency issues, has led me to decide to disown this package.