ros / ros-overlay

Gentoo Overlay for ROS packages
33 stars 30 forks source link

missing ebuild for ros-bouncy/connext_cmake_module #687

Open CrawlerSpider opened 6 years ago

CrawlerSpider commented 6 years ago

Hi,

as i tried to build: emerge -va ros-bouncy/desktop

I got:

    merge: there are no ebuilds to satisfy "ros-bouncy/connext_cmake_module".
    (dependency required by "ros-bouncy/rosidl_typesupport_connext_c-0.5.3::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/rosidl_typesupport_c-0.5.0-r2::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/rosidl_default_runtime-0.5.0::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/rcl-0.5.1::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/rclpy-0.5.4::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/demo_nodes_py-0.5.1-r1::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/desktop-0.5.1::ros-overlay" [ebuild])
    (dependency required by "ros-bouncy/desktop" [argument])

After long search for an ebuild for ros-bouncy/connext_cmake_module, i must say, that I was unable to find one...

Regards

allenh1 commented 6 years ago

@CrawlerSpider this is not all that surprising. I need to clarify this in the README for the repo, I think.

The state of ROS 2 on Gentoo is very much not working yet. Though there are ebuilds generating, they are not all generating (that one, specifically, due to the fact that the rosdep keys are not yet implemented for one of its dependencies).

superflore-gen-ebuilds --only connext_cmake_module --ros-distro bouncy

would be the command to generate that package. If you can resolve that key for gentoo and pull request it into the ros/rosdistro repository, then the package will appear next I run superflore-gen-ebuilds.

There's still an issue, though: the eclass files for ROS 2 still remain incomplete. I will be working on this in the near future, because I would love to see it working. For the moment, you can try to build ROS 2 from source by hand (which is less than great, but still a result).

CrawlerSpider commented 6 years ago

@allenh1 i did what you suggested superflore-gen-ebuilds --only connext_cmake_module --ros-distro bouncy

but unfortently i get the following error:

Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.6/superflore-gen-ebuilds", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 3098, in <module>
    @_call_aside
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 3082, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 3111, in     _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 573, in _build_master
ws.require(__requires__)
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 891, in require
needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 777, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'argparse' distribution was not found and is required by rosinstall-generator

Since argparse is part of python, i don't really know how to solve it.

allenh1 commented 6 years ago
pkg_resources.DistributionNotFound: The 'argparse' distribution was not found and is required by rosinstall-generator

This tells me that something wants for argparse to be pip-installed. Not sure why this is the case.

Does this fix it?

pip3 install --user argparse
allenh1 commented 6 years ago

@CrawlerSpider this is what I get:

allenh1@hunter-laptop ~
$  superflore-gen-ebuilds --only connext_cmake_module --ros-distro bouncy
>>>> Working in temporary directory /tmp/tmpvan4u611
>>>> Creating new branch gentoo-bot-SBmKbiUEfm...
>>>> 
>>>> Regenerating package 'connext_cmake_module'...
!!!! Failed to resolve required dependencies for package connext_cmake_module!
!!!!  unresolved: "rti-connext-dds-5.3.1"
>>>> Pulling docker image 'allenh1/ros_gentoo_base:latest'...
>>>> Running docker image...
>>>> Generating manifests...
>>>> Working in temporary directory /tmp/tmpy1yr_3jo
>>>> Running container with command string 'bash -c 'cd /tmp/ros-overlay/ros-bouncy/connext_cmake_module &>> /tmp/tmpy1yr_3jo/log.txt && repoman manifest &>> /tmp/tmpy1yr_3jo/log.txt''...
!!!! Docker container exited with errors.
>>>> Cleaning up temporary directory /tmp/tmpy1yr_3jo
bash: line 0: cd: /tmp/ros-overlay/ros-bouncy/connext_cmake_module: No such file or directory

>>>> Cleaning up temporary directory /tmp/tmpvan4u611
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.5/superflore-gen-ebuilds", line 11, in <module>
    load_entry_point('superflore==0.2.1', 'console_scripts', 'superflore-gen-ebuilds')()
  File "/usr/lib64/python3.5/site-packages/superflore/generators/ebuild/run.py", line 133, in main
    overlay.regenerate_manifests(regen_dict)
  File "/usr/lib64/python3.5/site-packages/superflore/generators/ebuild/overlay_instance.py", line 72, in regenerate_manifests
    dock.run(show_cmd=True)
  File "/usr/lib64/python3.5/site-packages/superflore/docker.py", line 115, in run
    volumes=self.directory_map,
  File "/usr/lib64/python3.5/site-packages/docker/models/containers.py", line 795, in run
    container, exit_status, command, image, out
docker.errors.ContainerError: Command 'bash -c 'cd /tmp/ros-overlay/ros-bouncy/connext_cmake_module &>> /tmp/tmpy1yr_3jo/log.txt && repoman manifest &>> /tmp/tmpy1yr_3jo/log.txt'' in image 'sha256:9a46fe736d290ccd34f2239818868fec67a89f4e694a60065d37a2e94986982b' returned non-zero exit status 1: b''
allenh1 commented 6 years ago

@CrawlerSpider I've got a patch into catkin_pkg referenced above. You can apply it locally by doing the following.

# mkdir -p /etc/portage/patches/dev-python/catkin_pkg-0.4.8

Then create a file /etc/portage/patches/dev-python/catkin_pkg-0.4.8/0001-Remove-argparse-dependency.patch with the following contents.

From 174ebe4f661e21abe3e80171521568b166653f7a Mon Sep 17 00:00:00 2001
From: "Hunter L. Allen" <hunter@openrobotics.org>
Date: Thu, 4 Oct 2018 21:20:45 -0400
Subject: [PATCH] Remove argparse dependency

---
 setup.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/setup.py b/setup.py
index 604cbfd..1ba9271 100755
--- a/setup.py
+++ b/setup.py
@@ -1,9 +1,20 @@
 #!/usr/bin/env python

 import os
+import sys

 from setuptools import setup

+install_requires = [
+    'docutils',
+    'python-dateutil',
+    'pyparsing',
+]
+
+# argparse is part of the standard library since Python 2.7
+if sys.version_info[0] == 2 and sys.version_info[1] <= 7:
+    install_requires.append('argparse')
+
 kwargs = {
     'name': 'catkin_pkg',
     # same version as in:
@@ -34,12 +45,7 @@ kwargs = {
     'description': 'catkin package library',
     'long_description': 'Library for retrieving information about catkin packages.',
     'license': 'BSD',
-    'install_requires': [
-        'argparse',
-        'docutils',
-        'python-dateutil',
-        'pyparsing',
-    ],
+    'install_requires':install_requires,
 }
 if 'SKIP_PYTHON_MODULES' in os.environ:
     kwargs['packages'] = []
-- 
2.19.0

Next, just re-emerge dev-python/catkin_pkg and the user patch should be pulled in.

CrawlerSpider commented 6 years ago

Ok, things worked, but an ebuild to connext_cmake_module was not generated... could you confirm that superflore-gen-ebuilds does not generate it?

allenh1 commented 6 years ago

@CrawlerSpider that's correct. It won't generate it until that rosdep key is satisfied.

Glad to know you got it working, though.