-
Notifications
You must be signed in to change notification settings - Fork 114
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
ROS melodic updates #126
base: master
Are you sure you want to change the base?
ROS melodic updates #126
Conversation
this modified version requires intervention for force linking pyYaml.
I introduced -p flag during some tests under some other context, it's truly redundant.
Looks fantastic, thank you very much for getting this all into one place! |
install
Outdated
@@ -137,26 +142,32 @@ do_install() | |||
pushd src | |||
# Avoid downloading opencv3; we already installed it from homebrew. | |||
wstool merge file://$(pwd)/../${WS}.rosinstall | |||
wstool remove opencv3 | |||
#wstool remove opencv3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this stuff altogether vs just commenting it out— as of Melodic, opencv is back to using the system-packaged version with not entry in the rosdistro.
install
Outdated
if [ -d catkin ]; then | ||
curl https://raw.githubusercontent.com/ros/catkin/8a47f4eceb4954beb4a5b38b50793d0bbe2c96cf/cmake/catkinConfig.cmake.in > catkin/cmake/catkinConfig.cmake.in | ||
if [ -d bond_core ]; then | ||
curl curl https://raw.githubusercontent.com/ros/bond_core/1240bce50ca1538cdad07dc472d31797257e0851/bondcpp/src/bond.cpp > bond_core/bondcpp/src/bond.cpp | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This double curl
doesn't look quite right. Please fix that and put in a comment indicating what we're waiting on for the patch to go away (in this case, bond_core 1.8.3 to be released, since ros/bond_core#37 is already merged).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's weird it works like that. Will fix it and add comments indicating the releases.
install
Outdated
# https://github.com/ros-perception/image_common/pull/82 | ||
if [ -d image_common ]; then | ||
curl https://raw.githubusercontent.com/meyerj/image_common/51be08ba5dc352597a2ad5baabb7e92c6baa2634/camera_calibration_parsers/CMakeLists.txt > image_common/camera_calibration_parsers/CMakeLists.txt | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change looks super-gross. Basically any ROS package which wants to link to Python is going to have to do this dance on macOS. I'm fine to go this route for now just to get things moving along, but I wonder if perhaps a more transparent way might be to prepend CMAKE_PREFIX_PATH within ros-install-osx and have a small suite of wrapper CMake modules that provide the necessary indirection.
Thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed that my pull request links are wrong. @meyerj has a better idea on how to address this, which is independent of the OS.
* removed opencv3 removal * introduced comments on all the manual changes pending merge and/or release * eliminated the double curl
the pull request references for the updates addressing Boost Python library corrected.
works for me, but I have deleted line
because it would completely disable my handcrafted .profile. also my version has two extra options at the end of this line:
|
You shouldn’t need to skip those keys, the changes on `rosdeps.yaml` should
take care of that.
|
also, I would recommend moving your personal changes on |
…irectly through github.
DRAFT WALKTHROUGH:
and then run |
Unfortunately there is a quite recently emerged problem: ros-infrastructure/catkin_pkg#234 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, thanks. I added a few comments from my experience with just installing melodic on sierra.
curl https://raw.githubusercontent.com/ros/catkin/8a47f4eceb4954beb4a5b38b50793d0bbe2c96cf/cmake/catkinConfig.cmake.in > catkin/cmake/catkinConfig.cmake.in | ||
# Pending release https://github.com/ros/bond_core/pull/37 | ||
if [ -d bond_core ]; then | ||
curl https://raw.githubusercontent.com/ros/bond_core/1240bce50ca1538cdad07dc472d31797257e0851/bondcpp/src/bond.cpp > bond_core/bondcpp/src/bond.cpp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note: Maybe applying the patch instead of taking the files as is would be slightly more future proof, in case of a new release with other unrelated changes but this PR not merged. It also means just one line per PR and you get the latest version when the PR is updated.
curl https://patch-diff.githubusercontent.com/raw/ros/bond_core/pull/37.patch | patch -p1 --dir bond_core
Same for the other fixes from PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PS: overall I needed the following changes (from PRs) on Sierra for melodic:
# See: https://github.com/ros/catkin/pull/784
if [ -d catkin ]; then
curl https://patch-diff.githubusercontent.com/raw/ros/catkin/pull/784.patch | patch -p1 --dir catkin
fi
# See: https://github.com/ros/bond_core/pull/37
if [ -d bond_core ]; then
curl https://patch-diff.githubusercontent.com/raw/ros/bond_core/pull/37.patch | patch -p1 --dir bond_core
fi
# See: https://github.com/ros-perception/image_common/pull/85
if [ -d image_common ]; then
curl https://patch-diff.githubusercontent.com/raw/ros-perception/image_common/pull/85.patch | patch -p1 --dir image_common
fi
# See: https://github.com/ros-perception/vision_opencv/pull/239
if [ -d vision_opencv ]; then
curl https://patch-diff.githubusercontent.com/raw/ros-perception/vision_opencv/pull/239.patch | patch -p1 --dir vision_opencv
fi
# See: https://github.com/ros/actionlib/pull/111
# See: https://github.com/ros/actionlib/pull/105
if [ -d actionlib ]; then
curl https://patch-diff.githubusercontent.com/raw/ros/actionlib/pull/111.patch | patch -p1 --dir actionlib
curl https://patch-diff.githubusercontent.com/raw/ros/actionlib/pull/105.patch | patch -p1 --dir actionlib
fi
# See: https://github.com/ros-perception/laser_assembler/pull/16
if [ -d laser_assembler ]; then
curl https://patch-diff.githubusercontent.com/raw/ros-perception/laser_assembler/pull/16.patch | patch -p1 --dir laser_assembler
fi
# based on https://stackoverflow.com/questions/45693149/openssl-aes-h-file-not-found-on-mac | ||
cd /usr/local/include | ||
ln -fs ../opt/openssl/include/openssl . | ||
cd - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had fixed this with adding some find_package(OpenSSL)
in the cmake lists. But it is not clean yet (doesn't propagate to depending packages), so I'm not sure if it is worth the effort if this also works just as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PS: I noticed another issue with this. Since you only set the include path, the linker still links to the system ssl and crypto libraries. I guess that might lead to wired issues...
$ otool -L /opt/ros/melodic/lib/librosbag_storage.dylib | grep /usr/lib
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
/usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got around that by passing -DCMAKE_CXX_FLAGS="-I/usr/local/opt/openssl/include"
to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Karsten1987, you mean as an alternative to ln -fs ...
or adding find_package ...
? I guess it doesn't address the linker issue still?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As an alternative to the ln -fs
. For finding the library in the first place, I added the openssl to my DYLD_LIBRARY_PATH
:
export DYLD_LIBRARY_PATH=`brew --prefix openssl`/lib:$DYLD_LIBRARY_PATH
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes that would fix it also for dynamic linking. Thanks! 👍
|
||
# temporary fix for catkin_pkg issue with unicode characters reported in https://github.com/ros-infrastructure/catkin_pkg/issues/234 | ||
if [ -d roslisp ]; then | ||
curl https://raw.githubusercontent.com/berkaydeniz/roslisp/03826c6dd92fd348ffd7a74de1f361c13a92346c/manifest.xml > roslisp/manifest.xml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this has been fixed.
Hi @berkaydeniz, First I had this error:
Then I run again your script but I have the next error:
But I don't know how to solve it. Thank you, |
I ran through this this weekend and a few comments which might help someone:
I also had to manually link the openssl headers for cmake to find them during the build.
I had an issue with yaml-cpp and gtest conflicts. yaml-cpp tried installing its own version of gtest. I had to modify the yaml-cpp homebrew formula:
and build from source:
|
Hi @kdorsel,
I try to install again today, and still getting stuck here. Also, if I try to install manually python-gnupg, it says that I have it already install it.
Finally, I tried to install python-gnupg, but still having the same error. |
@grafoteka No, I did not have any of those issues. I had other smaller errors of brew/pip conflicting and not linking, but that's a quick fix. Do you have the following packages installed in brew? gnupg, gazebo9, gpgme |
@kdorsel, yes I have installed those packages I don't know where is the problem... |
Can you maybe make a gist of the all the terminal output when running this scrript? |
@kdorsel, here is the terminal output Also, I don't know if I should have a problem with CMake, I have this warnings when installing Gazebo and gnupg:
|
This current version requires intervention for force linking pyyaml. No intervention needed on catkin build.