#562 Bundling exception for MongoDB
Closed: Fixed None Opened 3 years ago by mskalick.

Hi, I would like to request permission to bundle WiredTiger library into MongoDB database.

Version 3.0 of MongoDB announced new storage engine WiredTiger. It was separate project which have joined MongoDB company. So one company develop them but they are still standalone projects.

MongoDB uses code from separate branch. From the beginning it was consistent with WiredTiger version 2.5.3 - so MongoDB worked with this system WT version. With newer version WT 2.6.x some tests fails but I was able to patch it. However since last minor MongoDB upgrade (3.0.5) MongoDB is working with neither WT 2.5.3 nor WT 2.6.x. It works only with code from WT branch "mongodb-3.0".

MongoDB upstream don't plan to change anything about that. Also they are both developed by same company and security issues should be first in MongoDB and then there is a new version of WT. So in my opinion it best to use bundled version of WT. It would be very hard to find a patch to allow MongoDB to use system version of WT for even minor upgrades of MongoDB - for information MongoDB 3.0.5 is not build-able in Fedora now (tests are failing).

See discussion in MongoDB mailing list - https://groups.google.com/forum/#!topic/mongodb-dev/31FQSo4KVCI

WiredTiger main page - http://www.wiredtiger.com/
WiredTiger code - https://github.com/wiredtiger/wiredtiger

MongoDB main page - https://www.mongodb.org/
MongoDB code - https://github.com/mongodb/mongo

Is this expected to be a permanent situation? Or is there a plan for eventually a newer version of WT to be released which could be used by MongoDB? Or do they plan on just not doing proper software engineering forever?

From the upstream discussions, it appears that they really don't seem to understand the reasons why we unbundle things.

I don't have a particular issue with MongoDB bundling WT (though obviously I'd prefer it didn't) because they're developed by the same upstream and a security issue in WT is likely to result in an immediate update to MongoDB. But I'd like to see an answer to the first question first. There's an alternate solution which involves simply packaging the upstream mongodb-3.0 branch of WT, but I'm not sure that this actually helps.

Upstream seems to think everyone should bundle WT, which is crazy. Any exception should apply to MongoDB only.

We discussed this at this weeks meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-09-03/fpc.2015-09-03-16.00.txt):

  • 562 Bundling exception for MongoDB (geppetto, 16:06:17)

  • LINK: https://fedorahosted.org/fpc/ticket/562 (geppetto, 16:06:17)
  • ACTION: Need answer to tibbs question about permanence of this
    bundling. (geppetto, 16:17:36)
  • ACTION: Do we know of anything else that uses WT, as other wise it
    seems pretty simple to remote WT and make it a sub-package of
    mongoDB and just ship whatever they ship. (geppetto, 16:18:15)
  • ACTION: Please fix the FTBFS for mongoDB, as this also seems
    related. (geppetto, 16:18:41)

I think it is a permanent situation and upstream don't want to change this. See the mentioned google-groups discussion.

I am not aware of any other project using WiredTiger. However this project is standalone because its developers expects that it should/could be used be different projects than MongoDB.
So packaging mongodb-3.0 branch into Fedora WiredTiger package is not the best option in my point of view. Then Fedora won't have the latest version packaged and the name won't correspond with the upstream project and its version. Also packaging WT in sub-package of MongoDB won't solve this problem because it also won't correspond with upstream and potential developers will think it is only part of MongoDB.

The size of WT packages is really small (~0.5MB) so I think it should not be problem to bundle it into MongoDB.

As of the FESCo vote which just happened, FPC is no longer in the business of approving or disapproving bundling of packages which aren't in the critical path, so feel free to bundle what you like. Please do follow the existing guidelines and add Provides: bundled(wiredtiger) to the packages which bundle this.

Metadata Update from @tibbs:
- Issue assigned to tibbs

2 years ago

Login to comment on this ticket.