-
Notifications
You must be signed in to change notification settings - Fork 171
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
homebrew: rosdep assumes location of desired packages #444
Comments
Yeah, possibly. Unfortunately, it looks like many of the rosdep rules encapsulate the tap, i.e. @NikolausDemmel do you have any ideas for how to make this easier? |
I think that the fully qualified names are correct as the default as you don't want to accidentally have different systems depending on potentially different versions of the package which could lead to potentially unreasonable dependency conflicts that are not detectable apriori. The custom rosdep rules are a way to override the specific rosdep rule for the case that you want to use your fork instead of the default one is a reasonable solution. |
Well the problem is that currently the installation process fails because of dependency conflicts in the parent homebrew! I've manually gotten things to work now for myself, but the maintainer of homebrew-science isn't yet willing to support older versions of vtk for pcl... so the situation is likely dire for anyone trying to install ROS on OS X without extensive package maintenance / homebrew / general fixing skills... |
I agree it's not a good user experience, but I'm not sure how to improve the situation. It seems to me it would be I'm not opposed to adding some functionality to help ease the issue in the meantime, but it's not clear to me how it should change or what the tool would do. I don't think it's the right thing to remove the explicit Rather than saying Can you suggest what a better workflow would be? (in terms of new options or behaviors from @mikepurvis do you have any input on this? Should we just change the rosdep keys to point to a patched version of things? We've done that in the past: https://github.com/ros/homebrew-deps But the risk is always that those formula get out of date... |
I'm curious to know how other rolling release systems like Arch deal with this kind of thing. Homebrew is always on the bleeding edge of everything, which basically guarantees some level of brokenness, at least as far as new major versions with breaking changes. That said, a disproportionate number of issues seem to come up around bottled versions of things with baked-in paths to their dependencies, that then go stale when those depended-upon packages move on— we've seen this with Python, VTK, PCL, CMake, and probably others. It feels like there's a fundamental issue there with Homebrew, that it should have a dependency type for "rebottle when this dependency updates". In any case, if upstream Homebrew can't commit to a satisfactory level of stability across the rather large base of packages upon which we depend, then I don't see much choice other than to maintain at least some of the system in taps. Random assorted thoughts on this direction:
|
I've started the ball rolling and the homebrew people are at least thinking about some of these issues, and they are planning to address at least some aspects. To help get a good result for our use cases I suggest sending them feedback while the getting's hot! |
It seems there has been some movement upstream (thanks to @ahundt for getting things going over there). I don't think there is anything left for rosdep to do though, so I'm going to close this. I can reopen if needed. |
I'm dealing with breakage on OS X and homebrew administrative issues. To work around them I need to use my own fork/tap of homebrew components, however it seems rosdep assumes specific versions and can't deal when more than one version of a specific package is available.
The original problem with a change to vtk:
mikepurvis/ros-install-osx#32
The recommendation that I maintian my own tap:
Homebrew/brew#62
Would it make sense for rosdep to include some kind of support for this situation? I believe there needs to be something so that ROS on OS X can be as stable as possible. Thanks!
The text was updated successfully, but these errors were encountered: