moggi's blog about Libreoffice hacking

Why I contribute my changes to Libreoffice and won’t re-license them to a non-copyleft license?


So after reading several times on another mailing list that Libreoffice developers should relicense their patches to make them available to other descendents in the ecosystem I’m indirectly responding in this blog post and explaining why I contribute to the Libreoffice project and license my changes only as LGPLv3+/MPL. This reflects of course only my personal opinion.

Of course the main reason for contributing to Libreoffice is our amazing community. I started about 2 years ago working on Libreoffice when the project was still very young and Oracle required a copyright assignment. However in the Libreoffice community I was immediately welcome and got amazing help, encouragement and found great new friends. It is this community that I want to support and not another project that is spreading rumors and tries to undermine our community.

No company is dominating the development process
Another major point is that I don’t trust the big company in the background of the other project asking for the re-licensing. In my opinion it just feels wrong if a single company is more or less dominating the development of an open source project without even revealing its plans or making clear which of the members are actually being paid for their work on the project. At TDF we have rules that limit the influence of a single company in the Board of Directors and the Engineering Steering Committee. We keep track of the employer and even for single developers these information are kept in our wiki. Our regular commit stats show that not a single company is dominating the development.  This independence from a single company and the transparency are one of the great achievements of TDF and I don’t plan to support a project that is not following similar rules.

TDF as organization
In my last point I already indirectly mentioned another feature of the Libreoffice community. The Document Foundation, as meritocratic foundation, provides a stable environment around the Libreoffice community. Through the foundation we can concentrate on our main task: Making the best office suite. Compared to other office suites that are part of larger foundations TDF’s main goal is providing support to the Libreoffice community and therefore neither the development community nor any other part of the project has to adapt to an external set of rules. Additionally all legal entities of TDF (Board of Directors and Membership Committee) are elected by a STV election from all members.

Amazing framework for developers
So lets finally come to some development related topics. The Libreoffice project provides an incredible framework of tools for developers. I’ll try to list the most important ones with links but I will surely miss some of our cool toys. So lets begin with one of the most important tools, git as version control system, allowing our high commit volume with more than 1500 commits per month to the main development branch ( that does not include commits to the stable branch ). Additionaly we have now gerrit which allows easy review of patches and makes it as easy as possible for new developers so commit their first patch. Tinderboxes building Libreoffice automatically several times a day and automatically notifying all committers who are possibly guilty of breaking the build (While writing this blog post 12 machines are building the master branch with different settings on several platforms: Linux (with clang and gcc), Mac, Windows, Android, iOS).  Let’s not forget being able to crosscompile from Linux to Windows.  This allows quickly to build for the Windows platform without needing to set-up a new virtual machine or worry about our difficult build process on Windows. In the last 2+ years of the project we have cleaned the code from ancient container structure and old string classes, introduced cleaner string handling, transformed nearly our whole build system to gbuild and have done many more clean-ups that are invisible to the user. These improvements are not directly visible but will allow us in the future to focus on the difficult problems instead of worrying about technical debt. Other great tools that developers use every day are automatic bugzilla notifications for bug fixes, static source code analysis reports, a compiler plugin for refactoring, gdb pretty printers, a large set of automatic tests with test coverage reports and much more. I’m sorry for every missing tool in my list. And last but not least one of the coolest things we have are our easy hacks.  They allow new contributors to start with a small task and an assigned mentor and are a great way to help new developers getting started.

So I believe that supporting the Libreoffice project is a good way to support the FOSS community. However I will not agree with people suggesting that re-licensing your commits for another project is a good idea. The Libreoffice project has chosen a free and open source license and anybody implying that refusing to re-license commits is against the FOSS ideas or trying to force developers to re-license by threatening that the changes will be otherwise rewritten disqualifies for any further discussions. In my opinion similar tactics are used by some of our closed-source competition and I feel ashamed that I know about a project using these in the open source world. Respecting the license of a project is a key part of open source development.

Finally I’d like to thank all members of the community who make working on Libreoffice so much fun.