I’m participating in Google Summer of Code (GSoC) to work on Slide Drive, an HTML5 slideshow tool using the Deck.js presentation library and Mozilla’s Popcorn.js media framework. One of my goals for the summer is to allow users to import LibreOffice presentations that have been exported as SVG, preserving the appearance of the original presentation as much as possible.

Marco Cecchetti implemented LibreOffice’s SVG export feature as a GSoC project last year. He’s participating again this summer with a proposal to continue working on it. One of his goals is to port LibreOffice’s presentation engine, used for animating the transitions between slides and “shape animations” within slides, from C++ to SVG-compatible JavaScript. The work he’s done so far looks great and I’m looking forward to making use of it, but while reading through the source I noticed a potential issue: it’s licensed under GPLv3.

All of the libraries we currently use are available under the MIT license1, which we are planning to use ourselves. LibreOffice itself is now released under the LGPLv3, which might not be an issue, but parts of Macro’s code are based on the GPLv3-licensed JessyInk library, requiring him to release his code under that same license.

So, is it possible for us to use Marco’s library without GPLing our own? My understanding is that distributing his code with our project (“propagation” in GPLv3 terms) would cause ours to be considered a derivative work and to be subject to the GPL.

A possible alternative is that somebody host a copy of the library on the server somewhere for pubic use, and our library attempts to load and use it if possible, without strict gratefully depending on it (we have some simpler but acceptable transition code of our own). I’m unsure whether this would be permitted; internet searches found any people asking similar questions, but no confident answers.

If you have any insight or references related to this, I’d be grateful to hear it. You can leave a comment below or email me at jeremy@jeremybanks.ca.


1. Popcorn.js and Butter are under the MIT license; Deck.js, jQuery and MediaElement are dual-licensed under MIT and GPLv2 and Modernizr is dual-licensed under MIT and BSD.