start-jsk / hrpsys

An OpenRTM-aist-based robot controller. This package is the most tailored for humanoid (dual-arm and/or biped) robots for historical reason.
2 stars 10 forks source link

315.1.8 source build fails locally #25

Closed 130s closed 10 years ago

130s commented 10 years ago

Using 9e9818f383e243b66d737edcc3879562c4d2fe87, catkin fails on both Groovy and Hydro. Is now not a good time to build?

$ catkin_make
:
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.85
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 1 packages in topological order:
-- ~~  - hrpsys
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'hrpsys'
-- ==> add_subdirectory(hrpsys)
CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package openrtm_aist.

  Set openrtm_aist_DIR to the directory containing a CMake configuration file
  for openrtm_aist.  The file will have one of the following names:

    openrtm_aistConfig.cmake
    openrtm_aist-config.cmake

Call Stack (most recent call first):
  hrpsys/catkin.cmake:6 (find_package)
  hrpsys/CMakeLists.txt:2 (include)

CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package openhrp3.

  Set openhrp3_DIR to the directory containing a CMake configuration file for
  openhrp3.  The file will have one of the following names:

    openhrp3Config.cmake
    openhrp3-config.cmake

Call Stack (most recent call first):
  hrpsys/catkin.cmake:6 (find_package)
  hrpsys/CMakeLists.txt:2 (include)
$ dpkg -p ros-hydro-openrtm-aist|grep Ver
Version: 1.1.0-0precise-20140228-2212-+0000
$ dpkg -p ros-hydro-openhrp3|grep Ver
Version: 3.1.5-1precise-20140228-2219-+0000
k-okada commented 10 years ago

catkin_make install create following file install/share/openrtm_aist/cmake/openrtm_aistConfig.cmake, which I changed from last summer's release, in order for hrpsys to know the location of openhrp3. so that we may have to wait new-release of openrtm_aist is out. we're using oepnhrp_DIR/lib/pkgconfig.

[1] https://github.com/start-jsk/openrtm_aist_core/blob/87dec9cb1606c0ef6601b5a43809900a44106d26/openrtm_aist/catkin.cmake

130s commented 10 years ago

I see then I'll try again once openrtm_aist_core and openhrp3 become available from shadow-fixed.

130s commented 10 years ago

Now with updated .debs, catkin still returns error.

$ dpkg -p ros-hydro-openhrp3|grep Ver
Version: 3.1.5-2precise-20140303-0930-+0000
$ dpkg -p ros-hydro-openrtm-aist|grep Ver
Version: 1.1.0-1precise-20140303-0921-+0000
$ catkin_make
:
#### Running command: "cmake /home/rosuserrr/cws_proof/src -DCATKIN_DEVEL_PREFIX=/home/rosuserrr/cws_proof/devel -DCMAKE_INSTALL_PREFIX=/home/rosuserrr/cws_proof/install" in "/home/rosuserrr/cws_proof/build"
####
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /home/rosuserrr/cws_proof/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/hydro
-- This workspace overlays: /opt/ros/hydro
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Python version: 2.7
-- Using Debian Python package layout
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/rosuserrr/cws_proof/build/test_results
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.85
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 1 packages in topological order:
-- ~~  - hrpsys
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'hrpsys'
-- ==> add_subdirectory(hrpsys)
svn co  http://hrpsys-base.googlecode.com/svn/tags/315.1.8 build/hrpsys-base-source
A    build/hrpsys-base-source/test
A    build/hrpsys-base-source/test/test_RobotHardware.cpp
:
A    build/hrpsys-base-source/util/ProjectGenerator/ProjectGenerator.cpp
A    build/hrpsys-base-source/util/CMakeLists.txt
 U   build/hrpsys-base-source
Checked out revision 1015.
if test -z "" -o "x" != "x-r `svn info build/hrpsys-base-source | grep Revision | cut -d " " -f 2,2`"; then \
      cd build/hrpsys-base-source && svn up ; \
        fi
At revision 1015.
touch rospack_nosubdirs
touch patched
(mkdir -p build/hrpsys-base && cd build/hrpsys-base && PKG_CONFIG_PATH=/opt/ros/hydro/lib/pkgconfig:/opt/ros/hydro/lib/pkgconfig cmake -DCMAKE_INSTALL_PREFIX=/home/rosuserrr/cws_proof/devel -DOPENRTM_DIR='' -DENABLE_INSTALL_RPATH=ON -DCOMPILE_JAVA_STUFF=OFF -DEXTRA_RTC_DIRS= -DEXTRA_IDL_FILES= -DENABLE_INSTALL_RPATH_TO_SELF=ON -DENABLE_DOXYGEN=OFF  /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base-source && make -j4 && make install) 2>&1 | tee /home/rosuserrr/cws_proof/build/hrpsys/compile.log
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found OpenRTM-aist 1.1.0 in 
-- Found OpenHRP 3.1.5 in /opt/ros/hydro
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so 
-- Found Qhull in /usr
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- checking for module 'opencv'
--   found opencv, version 2.4.6.1
-- checking for module 'glew'
--   found glew, version 1.6.0
-- Looking for Eigen - found
CMake Warning (dev) at CMakeLists.txt:150 (add_definitions):
  Policy CMP0005 is not set: Preprocessor definition values are now escaped
  automatically.  Run "cmake --help-policy CMP0005" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

Check if /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base-source/idl/DataLoggerService.idl exists
:
Check if /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base-source/idl/ServoControllerService.idl exists
Check if /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base-source/idl/TorqueControllerService.idl exists
Check if /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share/OpenHRP-3.1/idl/OpenHRP/ClockGenerator.idl exists
CMake Error at idl/CMakeLists.txt:120 (message):
  ERROR:
  /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share/OpenHRP-3.1/idl/OpenHRP/ClockGenerator.idl
  is not present

-- Configuring incomplete, errors occurred!
#
touch installed
grep: /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base/install_manifest.txt: No such file or directory
CMake Error at hrpsys/catkin.cmake:44 (message):
  grep :
  /home/rosuserrr/cws_proof/build/hrpsys/build/hrpsys-base/install_manifest.txt
  0
Call Stack (most recent call first):
  hrpsys/CMakeLists.txt:2 (include)

-- Configuring incomplete, errors occurred!
Invoking "cmake" failed

I checked if a folder /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930 was generated while catkin was running, which turned out no. I found ClockGenerator.idl in /opt/ros/hydro/share/openhrp3/share/OpenHRP-3.1/idl/OpenHRP instead.

k-okada commented 10 years ago

can you check lib/pkgconfig/openhrp3.1.pc? it has something link idl_dir=/home/k-okada/catkin_ws/ws_hrpsys/src/rtm-ros-robotics/openrtm_common/openhrp3/share/OpenHRP-3.1/idl and that contains /tmp/buildd... path.

thats should be fixed in following lines of openhrp3/catkin.cmake, so if you have debianize log, please check lines containg openhrp3.pc/openhrp3.1.pc

install(CODE
  "execute_process(COMMAND echo \"fix \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}/pkgconfig/openhrp3.pc ${CATKIN_DEVEL_PREFIX} -> ${CMAKE_INSTALL_PREFIX}\")
   execute_process(COMMAND sed -i s@${CATKIN_DEVEL_PREFIX}@${CMAKE_INSTALL_PREFIX}@g \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}/pkgconfig/openhrp3.1.pc) # basic
   execute_process(COMMAND sed -i s@{prefix}/bin@{prefix}/lib/openhrp3@g \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}/pkgconfig/openhrp3.1.pc) # basic
   execute_process(COMMAND sed -i s@{prefix}/share@{prefix}/share/openhrp3/share@g \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}/pkgconfig/openhrp3.1.pc) # basic
")
k-okada commented 10 years ago

I look into http://packages.ros.org/ros-shadow-fixed/ubuntu/pool/main/r/ros-hydro-openhrp3/ and found openhrp3.1.pc contains

idl_dir=/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share/OpenHRP-3.1/idl

that need to be fixed in catkin_make install process, that is originally

idl_dir=${prifex}/share/OpenHRP-3.1/idl

but changed to

idl_dir=/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share/OpenHRP-3.1/idl

by https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L50, this mean while catkin_make, the CATKIN_DEVEL_PREFIX is set to /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/

and in catkin_make install, it should be fixed by

   execute_process(COMMAND sed -i s@${CATKIN_DEVEL_PREFIX}@${CMAKE_INSTALL_PREFIX}@g \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}/pkgconfig/openhrp3.1.pc) # basic

which I mentioned at previous comment.

I'd like to know if https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L128 is working, where is the log file?

k-okada commented 10 years ago

I found the log -> http://jenkins.ros.org/job/ros-hydro-openhrp3_binarydeb_precise_amd64/37/console

and it said follows: seems ok?

fix /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/debian/ros-hydro-openhrp3//opt/ros/hydro/lib/pkgconfig/openhrp3.pc /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/obj-x86_64-linux-gnu/devel -> /opt/ros/hydro
k-okada commented 10 years ago

CATKIN_DEVEL_PREFIX is

/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/obj-x86_64-linux-gnu/devel 

at https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L128, but idl_dir is

/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share/OpenHRP-3.1/idl

/obj-x86_64-linux-gnu/devel is missing

k-okada commented 10 years ago

another interesting log is here. it would be output from https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L48

move binary files /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/obj-x86_64-linux-gnu/devel/lib/openhrp3/openhrp-ut-dynamics-simulator
sed -i s@${prefix}/share@/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/share@g /tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/obj-x86_64-linux-gnu/devel/lib/pkgconfig/openhrp3.1.pc

at this point

PROJECT_SOURCE_DIR=/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/

and

CATKIN_DEVEL_PREFIX=/tmp/buildd/ros-hydro-openhrp3-3.1.5-2precise-20140303-0930/obj-x86_64-linux-gnu/devel/
k-okada commented 10 years ago

aha, https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L129, might be wrong. we have to use ${PROJECT_SOURCE_DIR}@${CMAKE_INSTALL_PREFIX}@ instead of ${CATKIN_DEVEL_PREFIX}@${CMAKE_INSTALL_PREFIX}@, @130s , can you try this?

130s commented 10 years ago

https://github.com/start-jsk/openhrp3/blob/master/catkin.cmake#L129, might be wrong. we have to use ${PROJECT_SOURCE_DIR}@${CMAKE_INSTALL_PREFIX}

On top of openhrp3 with this change, I confirmed that hrpsys, rtmros_common builds locally. I'll send a patch right now.

130s commented 10 years ago

patch accepted

k-okada commented 10 years ago

My explanation is not correct, I have fixed the install process again and commit along with test code, https://github.com/start-jsk/openhrp3/pull/23