Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Updating for nvidia-docker2 #40

Closed
wants to merge 2 commits into from
Closed

Conversation

ruffsl
Copy link
Member

@ruffsl ruffsl commented Jun 27, 2018

This won't build yet for two reasons:

  • libglvnd0 is not yet released into trusy
  • catkin build errors about not find a package configuration file for prius_msgs

I'd like to bump this up to melodic to get libglvnd0, but fake-localization has not yet been released.

Here is the build issue, I'm not sure why catkin_make works here by catkin_tools doesn't.

Build errors
$ ./build_demo.bash 
Sending build context to Docker daemon  107.6MB
Step 1/19 : FROM osrf/ros:kinetic-desktop
 ---> 2046fd743c87
Step 2/19 : RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D2486D2DD83DB69272AFE98867170598AF249743
 ---> Using cache
 ---> e1767ad9da53
Step 3/19 : RUN . /etc/os-release     && echo "deb http://packages.osrfoundation.org/gazebo/$ID-stable `lsb_release -sc` main" > /etc/apt/sources.list.d/gazebo-latest.list
 ---> Using cache
 ---> 89207373b5f8
Step 4/19 : ENV CATKIN_WS=/root/catkin_ws
 ---> Using cache
 ---> c379ef55af9d
Step 5/19 : RUN mkdir -p $CATKIN_WS/src
 ---> Using cache
 ---> 1b4919ffc79b
Step 6/19 : WORKDIR $CATKIN_WS/src
 ---> Using cache
 ---> c51536569585
Step 7/19 : COPY prius_description .
 ---> Using cache
 ---> 8c734db0f937
Step 8/19 : COPY prius_msgs .
 ---> Using cache
 ---> 9aa9f9366496
Step 9/19 : COPY car_demo .
 ---> Using cache
 ---> 63a1b59b6fed
Step 10/19 : RUN apt-get -qq update &&     apt-get -qq install -y         python-catkin-tools &&     rosdep update &&     rosdep install -y       --from-paths .       --ignore-src       --rosdistro ${ROS_DISTRO}       --skip-keys=prius_msgs       --skip-keys=prius_description       --as-root=apt:false &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> c5a66f73f5e9
Step 11/19 : WORKDIR $CATKIN_WS
 ---> Using cache
 ---> e71eda23557c
Step 12/19 : ENV TERM xterm
 ---> Using cache
 ---> cb2c0f1ab8c0
Step 13/19 : ENV PYTHONIOENCODING UTF-8
 ---> Using cache
 ---> e0eb63dc3386
Step 14/19 : RUN catkin config       --extend /opt/ros/$ROS_DISTRO &&     catkin build
 ---> Running in 877d1f619a4c
NOTICE: Could not determine the width of the terminal. A default width of 80 will be used. This warning will only be printed once.
----------------------------------------------------
Profile:                     default
Extending:        [explicit] /opt/ros/kinetic
Workspace:                   /root/catkin_ws
----------------------------------------------------
Source Space:       [exists] /root/catkin_ws/src
Log Space:         [missing] /root/catkin_ws/logs
Build Space:       [missing] /root/catkin_ws/build
Devel Space:       [missing] /root/catkin_ws/devel
Install Space:      [unused] /root/catkin_ws/install
DESTDIR:            [unused] None
----------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
----------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
----------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
----------------------------------------------------
Workspace configuration appears valid.

Initialized new catkin workspace in `/root/catkin_ws`
----------------------------------------------------
NOTICE: Could not determine the width of the terminal. A default width of 80 will be used. This warning will only be printed once.
----------------------------------------------------
Profile:                     default
Extending:        [explicit] /opt/ros/kinetic
Workspace:                   /root/catkin_ws
----------------------------------------------------
Source Space:       [exists] /root/catkin_ws/src
Log Space:         [missing] /root/catkin_ws/logs
Build Space:        [exists] /root/catkin_ws/build
Devel Space:        [exists] /root/catkin_ws/devel
Install Space:      [unused] /root/catkin_ws/install
DESTDIR:            [unused] None
----------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
----------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
----------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
----------------------------------------------------
Workspace configuration appears valid.

NOTE: Forcing CMake to run for each package.
----------------------------------------------------
[build] Found '1' packages in 0.0 seconds.                                     
[build] Updating package table.                                                
Starting >>> catkin_tools_prebuild                                             
Finished <<< catkin_tools_prebuild                [ 2.4 seconds ]              
Starting >>> car_demo                                                          
_______________________________________________________________________________
Errors << car_demo:cmake /root/catkin_ws/logs/car_demo/build.cmake.000.log     
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
  Could not find a package configuration file provided by "prius_msgs" with
  any of the following names:

    prius_msgsConfig.cmake
    prius_msgs-config.cmake

  Add the installation prefix of "prius_msgs" to CMAKE_PREFIX_PATH or set
  "prius_msgs_DIR" to a directory containing one of the above files.  If
  "prius_msgs" provides a separate development package or SDK, be sure it has
  been installed.
Call Stack (most recent call first):
  CMakeLists.txt:9 (find_package)


CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "prius_msgs" with
  any of the following names:

    prius_msgsConfig.cmake
    prius_msgs-config.cmake

  Add the installation prefix of "prius_msgs" to CMAKE_PREFIX_PATH or set
  "prius_msgs_DIR" to a directory containing one of the above files.  If
  "prius_msgs" provides a separate development package or SDK, be sure it has
  been installed.
Call Stack (most recent call first):
  CMakeLists.txt:9 (find_package)


cd /root/catkin_ws/build/car_demo; catkin build --get-env car_demo | catkin env -si  /usr/bin/cmake /root/catkin_ws/src/. --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/root/catkin_ws/devel/.private/car_demo -DCMAKE_INSTALL_PREFIX=/root/catkin_ws/install; cd -
...............................................................................
Failed << car_demo:cmake                        [ Exited with code 1 ]         
Failed <<< car_demo                             [ 2.5 seconds ]                
[build] Summary: 1 of 2 packages succeeded.                                    
[build] Ignored: None.                                                         
[build] Warnings: None.                                                        
[build] Abandoned: No packages were abandoned.                                 
[build] Failed: 1 packages failed.                                             
[build] Runtime: 4.9 seconds total.                                            
[build] Note: Workspace packages have changed, please re-source setup files to use them.
The command '/bin/sh -c catkin config       --extend /opt/ros/$ROS_DISTRO &&     catkin build' returned a non-zero code: 1

ping @tfoote if you see a glaring error I made.

Dockerfile Outdated
--from-paths . \
--ignore-src \
--rosdistro ${ROS_DISTRO} \
--skip-keys=prius_msgs \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why --ignore-src doesn't resolve this, but rosdep complaints without these exceptions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it in your workspace? It's only finding one package in the build.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would also explain the compile error too.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But the prius_msgs package was copied into the source workspace directory in line 17: https://github.com/ruffsl/car_demo/blob/4449922ec4a23218d08a7626fe866d1cf3fcadff/Dockerfile#L17

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, this was an issue with how I was copying in the source. now fixed.

@tfoote
Copy link
Contributor

tfoote commented Jun 27, 2018

For the build error do you have the patch from #39 catkin tools vs catkin_make could have different execution order causing race conditions.

@ruffsl
Copy link
Member Author

ruffsl commented Jun 27, 2018

I pulled your patch and tried it again before I made this PR, as the parent of 4449922 is 4c43bbc . No change.

@ruffsl
Copy link
Member Author

ruffsl commented Jun 28, 2018

Ok, I got it to compile a further on 18.04 by roping in some missing packages from melodic just yet, but cmake is still not finding the gazebo_plugins/gazebo_ros_block_laser.h header file:

Errors << car_demo:make /root/catkin_ws/logs/car_demo/build.make.000.log       
/root/catkin_ws/src/car_demo/plugins/gazebo_ros_block_laser.cpp:26:10: fatal error: gazebo_plugins/gazebo_ros_block_laser.h: No such file or directory
 #include <gazebo_plugins/gazebo_ros_block_laser.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/gazebo_ros_block_laser.dir/plugins/gazebo_ros_block_laser.cpp.o] Error 1
make[1]: *** [CMakeFiles/gazebo_ros_block_laser.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
cd /root/catkin_ws/build/car_demo; catkin build --get-env car_demo | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed << car_demo:make                          [ Exited with code 2 ]  

<\details>

@tfoote
Copy link
Contributor

tfoote commented Jan 3, 2019

replaced by #47

@tfoote tfoote closed this Jan 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants