#298 Bundling exception request for watchman (to bundle jansson)
Closed: Fixed None Opened 7 years ago by codeblock.

I'd like to request a (temporary, but I have no timeframe, unfortunately) bundling exception for watchman (https://github.com/facebook/watchman/) to bundle jansson.

I'm requesting this exception under this section of the guidelines: https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Modified_beyond_a_certain_extent

why can't these changes go back to the upstream for the library?

These changes are specific to watchman. They offer "bser" functionality, which provides wire compression. This is explained here: https://github.com/facebook/watchman/blob/master/BSER.markdown

Why isn't this library forked and released in such a way that others can benefit from the changes as well?

I've been talking via twitter with the author of watchman, and he says that in the future, he will likely do a legitimate fork of jansson, as he will need it for another project he is working on, once it he open sources it. Until then, he would like to keep this bundled because the changes are no good to any other project right now.

I've asked him about submitting the changes upstream, and he explained that because of how specific they are to watchman, they wouldn't make sense for the upstream jansson project.

tldr; We need more information. Why aren't the changes generally useful (could be a confusion in terms here... it seems like providing wire compression would be generally useful. However, from reading the docs, it might be more akin to providing a new protocol). We probably also want the other Standard questions answered: https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Standard_questions

The modified beyond a certain extent section specifically says: "Modification of a library should not be the only reason given to justify a bundled copy" :-)

More depth:

The argument about the changes not being generally useful doesn't quite ring true if it's just about wire compression. OTOH, reading that document makes it seem like they may really be implementing a whole different protocol. If that's the case, it might not make sense to add it to jansson upstream but would make a whole lot of sense to pull it out into its own library (to make it easy for other people to talk to the watchman server using the more efficient protocol).

Side note: Integers section of BSER https://github.com/facebook/watchman/blob/master/BSER.markdown#integers says "All integers are [..] transmitted in the host byte order of the system running the watchman daemon." which seems like an infinite source of bug reports. The protocol doesn't have a way to specify the host's byte order so there doesn't appear to be a way for the client to accurately determine what an int_16 or higher represent.

The packaging committee is still awaiting additional information before it can properly address your request. Please provide that within the next month or this ticket will be closed. (Of course, you can always reopen it if the situation changes) Thanks!

No response; closing. Feel free to reopen if you have more information to add.

Login to comment on this ticket.