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
failure on Utopic and above #20
Comments
This appears to be quite complex, and quite the mess:
|
Also, it isn't clear that libmongo-clients C interface will actually work with mongodb 2.6 (which is what ships with utopic/vivid), see https://github.com/algernon/libmongo-client/issues/34 |
That sounds like we've kind of been left in the lurch. This might be a good candidate to consider us trying out using bloom for non-ros packaging for specific ubuntu distros. (ala a utopic "rosdistro" configured to used "debian" packaging not "rosdebian") And keep it as a "system" dependency. There's been several times when this would have been nice, though we don't want to start becoming our own linux distro, I see this as more of a way to backfill. @wjwwood FYI |
remember something funky: the C++ client is using Scons .... which means we would need a specific plugin for bloom. That leaves with two realistic changes: copy the code in the repo and compile it there (yes, ugly but why not), or switch to using the pure C interface (which is still in utopic). The first one is the easiest while the second more future-proof and cleaner. |
@vrabaud You can just insert a |
@wjwwood : agreed. So the easiest seems to release https://github.com/mongodb/mongo-cxx-driver as a third party package with bloom (by adding a CMake file that calls Then, we just add a dependency on this cxx driver. That means it need to be released in indigo and jade. Any objection ? |
Sounds good to me.... Long term I would like to refactor this package so that warehouse_ros does not depend on any particular database and then we can select a database access plugin (and a simple one could just write to files or something), since mongodb is a fairly humongous dependency for what we are using it for.... |
ok, I am blooming cxx tonight. For the plugin-based database thingy, well, that's how ORK was conceived: http://wg-perception.github.io/object_recognition_core/infrastructure/couch.html#object-recognition-core-db . https://github.com/wg-perception/object_recognition_core/blob/master/include/object_recognition_core/db/db.h#L64 |
I was able to create a proper package locally so it should be fine (if I did not mess the dependencies). First try for Jade here: ros/rosdistro#8594 If that works, I'll try to compile on my Vivid machine. Good night ! |
@vrabaud Did you hack this to go into /opt/ros/distro somehow? Otherwise it cannot go into the rosdistros since it will collide with itself on the overlapping targets. We need to make separate rosdistros which target only one ubuntu distro like a PPA, thus we'll be able to build system dependencies. |
@tfoote it looks like it should respect the install target: ros-gbp/mongo_cxx_driver-release@fbbd4d2#diff-af3b638bc2a3e6c650974192a53c7291R7 And since he used the rosdebian / rosfedora generators, it should go into the ros prefix in |
@vrabaud Looks like mongo-cxx-driver is now building -- I create a jade-devel branch on my fork which currently builds against mongo-cxx-driver -- https://github.com/mikeferguson/warehouse_ros/commit/3ed35b6208e060e709d8a271ee63bb1447c1984a |
If that branch seems reasonable, I'll get a new jade release of warehouse_ros going tomorrow afternoon. |
yop, it's all in /opt/ros/DISTRO and packages are built so it's fine :) Headers and shared + static libraries are at the right place. Only on jade for now, I'll push to Indigo too. And Hydro I guess (I don't see why it would not build there, dependencies are basic (boost basically)). If Ubuntu creates a package for that client one day and there is a conflict with the naming, well, we'll just rename the one we build until we deprecate :) Next step: get the FindMongoDB.cmake to find the 2.6 headers. Should be fine as the include folder is named differently (mongo/client). I hope the header files / API have not changed much. |
@vrabaud I wouldn't make the effort to backport to hydro/indigo. It is working there with the old system, and we don't want to add more work on the older systems. Definitely not Hydro which as reached EOL. |
Any news on that ? mongo_cxx_driver has been out for a while. Or do we split like in #22 ? |
The Utopic and Vivid jobs for this package are still failing on the Jade farm, e.g.: http://build.ros.org/job/Jbin_uU64__warehouse_ros__ubuntu_utopic_amd64__binary/ It would be great if we could get some people to help @isucan with the maintenance of this package. |
I think the chosen solution was #22. |
Just a note to anyone who stumbles across this issue on how to compile mongodb
|
#32 is merged so let's see if that fixes this issue once it's released out. |
http://www.ros.org/debbuild/jade.html?q=diff
Starting from MongoDB 2.6, C++ client libraries are not included anymore in Ubuntu. They are at https://github.com/mongodb/mongo-cxx-driver . This is SCons: we would need to bloom it ....
BUT, the libmongo-clients packages actually contains the C client library. So, we could also switch to it. Your call.
The text was updated successfully, but these errors were encountered: