ros / ros-overlay

Gentoo Overlay for ROS packages
33 stars 30 forks source link

joint state publisher has missing dependencies #262

Open MalcolmMielle opened 6 years ago

MalcolmMielle commented 6 years ago

It's a very small thing but I figure it's better to open it and have it closed if needed that not opening it. This happened during the desktop_full emerging:

>>> Emerging (9 of 147) ros-kinetic/joint_state_publisher-1.12.12::ros-overlay
 * joint_state_publisher-kinetic-release-1.12.12.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...                               [ ok ]
>>> Unpacking source...
>>> Unpacking joint_state_publisher-kinetic-release-1.12.12.tar.gz to /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work
>>> Source unpacked in /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work
>>> Preparing source in /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12 ...
>>> Working in BUILD_DIR: "/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build"
cmake -C /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/gentoo_common_config.cmake -G Unix Makefiles -DCMAKE_INSTALL_PREFIX=/usr no -DCATKIN_BUILD_BINARY_PACKAGE=1 -DCMAKE_PREFIX_PATH=/opt/ros/kinetic -DCMAKE_INSTALL_PREFIX=/opt/ros/kinetic -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_USER_MAKE_RULES_OVERRIDE=/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/gentoo_rules.cmake -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/gentoo_toolchain.cmake  /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12
loading initial cache file /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/gentoo_common_config.cmake
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc
-- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++
-- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/kinetic
-- This workspace overlays: /opt/ros/kinetic
-- Found PythonInterp: /usr/bin/python (found version "3.4.6") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using default Python package layout
-- Found PY_em: /usr/lib64/python3.4/site-packages/em.py  
-- Using empy: /usr/lib64/python3.4/site-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Skip enable_testing() when building binary package
-- Using CATKIN_TEST_RESULTS_DIR: /var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/test_results
-- Found gtest: gtests will be built
-- Using Python nosetests: /usr/bin/nosetests
-- catkin 0.7.6
CMake Warning at CMakeLists.txt:12 (find_package):
  By not providing "Findrostest.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "rostest", but
  CMake did not find one.

  Could not find a package configuration file provided by "rostest" with any
  of the following names:

    rostestConfig.cmake
    rostest-config.cmake

  Add the installation prefix of "rostest" to CMAKE_PREFIX_PATH or set
  "rostest_DIR" to a directory containing one of the above files.  If
  "rostest" provides a separate development package or SDK, be sure it has
  been installed.

CMake Error at CMakeLists.txt:13 (add_rostest):
  Unknown CMake command "add_rostest".

-- Configuring incomplete, errors occurred!
See also "/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/CMakeFiles/CMakeOutput.log".
See also "/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build/CMakeFiles/CMakeError.log".
 * ERROR: ros-kinetic/joint_state_publisher-1.12.12::ros-overlay failed (configure phase):
 *   cmake failed
 * 
 * Call stack:
 *     ebuild.sh, line  124:  Called src_configure
 *   environment, line 4331:  Called ros-cmake_src_configure
 *   environment, line 4230:  Called cmake-utils_src_configure
 *   environment, line 1112:  Called die
 * The specific snippet of code:
 *       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
 * 
 * If you need support, post the output of `emerge --info '=ros-kinetic/joint_state_publisher-1.12.12::ros-overlay'`,
 * the complete build log and the output of `emerge -pqv '=ros-kinetic/joint_state_publisher-1.12.12::ros-overlay'`.
 * The complete build log is located at '/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/temp/environment'.
 * Working directory: '/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12_build'
 * S: '/var/tmp/portage/ros-kinetic/joint_state_publisher-1.12.12/work/joint_state_publisher-1.12.12'

>>> Failed to emerge ros-kinetic/joint_state_publisher-1.12.12, Log file:

Which was easily solved by doing emerge rostest --ask. It's probably a very small thing missing somewhere saying that rostest needs to be emerged before the joint state publisher.

allenh1 commented 6 years ago

Looks like they listed rostest as a test dependency, so superflore didn't pick it up. I'll have to make superflore aware of test dependencies, probably adding them under RDEPEND (I'd do the fancy USE flag logic if they have test set, but it seems this is critical to compilation).

tfoote commented 6 years ago

At a quick glance this looks like a bug upstream. Either it should be a build depend or it should be conditionally disabled unless testing is enabled in the CMakeLists.

And when emerging, if you're enabling testing you need to add the test depends as well as the build depends.