Skip to content
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

Closed
vrabaud opened this issue May 24, 2015 · 21 comments
Closed

failure on Utopic and above #20

vrabaud opened this issue May 24, 2015 · 21 comments

Comments

@vrabaud
Copy link
Contributor

vrabaud commented May 24, 2015

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.

@mikeferguson
Copy link
Contributor

This appears to be quite complex, and quite the mess:

@mikeferguson
Copy link
Contributor

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

@tfoote
Copy link

tfoote commented Jun 1, 2015

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

@vrabaud
Copy link
Contributor Author

vrabaud commented Jun 1, 2015

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.

@wjwwood
Copy link

wjwwood commented Jun 1, 2015

@vrabaud You can just insert a CMakeLists.txt file which in turn calls Scons.

@vrabaud
Copy link
Contributor Author

vrabaud commented Jun 1, 2015

@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 scons), get the FindMongoDB.cmake to behave the same, except that when it fails to find the 2.4 headers, it tries to find the 2.6.

Then, we just add a dependency on this cxx driver. That means it need to be released in indigo and jade. Any objection ?

@mikeferguson
Copy link
Contributor

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....

@vrabaud
Copy link
Contributor Author

vrabaud commented Jun 1, 2015

@vrabaud
Copy link
Contributor Author

vrabaud commented Jun 1, 2015

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 !

@tfoote
Copy link

tfoote commented Jun 2, 2015

@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.

@wjwwood
Copy link

wjwwood commented Jun 2, 2015

@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 opt.

@mikeferguson
Copy link
Contributor

@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

@mikeferguson
Copy link
Contributor

If that branch seems reasonable, I'll get a new jade release of warehouse_ros going tomorrow afternoon.

@vrabaud
Copy link
Contributor Author

vrabaud commented Jun 2, 2015

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.

@tfoote
Copy link

tfoote commented Jun 2, 2015

@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.

@vrabaud
Copy link
Contributor Author

vrabaud commented Sep 15, 2015

Any news on that ? mongo_cxx_driver has been out for a while. Or do we split like in #22 ?

@wjwwood
Copy link

wjwwood commented Feb 27, 2016

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.

@vrabaud
Copy link
Contributor Author

vrabaud commented Feb 28, 2016

I think the chosen solution was #22.

@nikhilkalige
Copy link

nikhilkalige commented May 27, 2016

Just a note to anyone who stumbles across this issue on how to compile mongodb

git clone -b master https://github.com/mongodb/mongo-cxx-driver
cd mongo-cxx-driver/
git co 26compat
sudo scons install-mongoclient --sharedclient --full --use-system-boost --ssl --use-sasl-client --disable-warnings-as-errors

@130s
Copy link
Contributor

130s commented Jun 17, 2016

Just a heads-up; #32 (re-write of #22) passes on Travis for Jade and Kinetic. If anyone is interested please review #32.

@130s
Copy link
Contributor

130s commented Jun 18, 2016

#32 is merged so let's see if that fixes this issue once it's released out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants