14

I'm the author of WorldPainter. It's licensed according to the GPL v3, but I am about to include some code (dynmap) that is licensed according to the Apache License version 2.0.

According to both Apache and the FSF, the APLv2 is compatible with the GPLv3 so I can include it. My question it, how does that work in practice? Specifically:

  1. I include dynmap binaries which I build myself. The code is not modified, but the binaries do omit a lot of code which I don't need, to make them smaller. Does this mean I need to provide access to the dynmap source code, or is it sufficient to refer to dynmap on GitHub?
  2. My code does include a handful of files copied from dynmap but heavily modified by me, mostly as glue to be able to invoke the dynmap code in ways it was never intended to. Are those files now GPLv3?
  3. Does the author of dynmap (Mike Primm) also retain copyright in the modified files? Should I list us both as copyright holders in those files? Should I list Mike as a copyright holder for the whole of WorldPainter? The files comprise a very small part of the code.
  4. Does any of the above imply that I should include a copy of the APLv2? Should I include a file explaining the situation with an overview of which license applies to which files? My estimation is that all the source code of WorldPainter proper, including the files copied from dynmap (since they are modified), is still GPLv3 and that it is therefore not necessary to include the APLv2. Is that correct?

I will of course give full credit, in the credits of the program and in the copied files. This is just about the technical situation regarding the licensing of the files and the resulting program as a whole.

  • 1
    I think you need to include the source code for dynmap. For one if you have included any GPL licenced code from third parties then you are are required to provide full source of your project on request, if not in the package. Secondly anyone who wants to redistribute Worldpainter is required by your GPLv3 licence to include full source, so they will need the dynmap source. – bdsl Jul 13 '15 at 18:13
  • Have you included any third party GPL code? – bdsl Jul 13 '15 at 18:14
7

The Apache License 2.0 states that:

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

emphasis mine

This essentially means that the Apache license imposes no share-alike restrictions: you don't have to redistribute the work under Apache 2.0. In turn, this means that you could just license the entire project under the GPL.

Now, to answer the direct questions:

  1. Does this mean I need to provide access to the dynmap source code, or is it sufficient to refer to dynmap on GitHub?

    You don't have to do either, actually. According to the APL:

    You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: ...

    Object form includes binaries. If the binaries are included in your project, you're distributing in Object form, which is still OK by the license.

  2. Are those files now GPLv3?

    Up to you. Those files are derivative works of the original dynmap code: re-read the first quote from the APL and it shows you can redistribute under any license. Thus, those files are GPLv3 if you choose, or not if you don't.

  3. Does the author of dynmap (Mike Primm) also retain copyright in the modified files?

    Long quote from the APL now:

    d. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

    If the dynmap project contains copyright notices, you must include them in the relevant files. This would include, for example, the files in (2) - those are derivatives of his code, and if they have copyright notices on (or the project copyright notice covers them) then you must include the notice. Primm will retain any copyrights on any code he wrote, he's just allowing you to use it, so you need to demonstrate that. However, he does not become a copyright holder for the whole of WorldPainter, because he didn't write it.

  4. ... Is that correct?

    Yes. Technically. You don't have to include the APL anywhere in your project if you don't want to, but it could be taken as courtesy: you're using someone else's work, so you should reference how they've made it available to you. If WorldPainter is any sort of size, including the license won't make much difference to the final package file. If it was me, I'd just include it.

  • Re 2.: If dynmap and those modified files are distributed as part of a GPLv3 project, then the GPL claims to apply to those parts as well. In that sense, they are GPLv3. – Bart van Ingen Schenau Jul 8 '15 at 12:21
  • @BartvanIngenSchenau Yep, just making the point that it's OP's choice of license. If he wants to make the project WTFPL instead, he can. – ArtOfCode Jul 8 '15 at 12:25
  • Yes, to be clear: I intend for WorldPainter to remain GPLv3. – Pepijn Schmitz Jul 8 '15 at 15:29
  • I'm leaning towards not including the text of the Apache license, just because it might be confusing. The consensus appears to be that it is not necessary since WorldPainter would still be completely GPLv3, and having the APLv2 present might give the impression that it is dual-licensed or something like that. – Pepijn Schmitz Jul 8 '15 at 15:31
  • @PepijnSchmitz Fair points, and that is indeed OK. – ArtOfCode Jul 8 '15 at 15:37
3
  1. If the code of the dynmap binaries only includes Apache licensed code you are not forced to make the source code available.

  2. If these files are included in your GPLv3 licensed project, they are GPLv3 licensed, too.

  3. The author of the original file is also (one) author of the modifed files. If the APL requires to name all authors, you will have to name him.

  4. Yes, you should. Yes, you should. Yes, but it is no problem to include a copy.

If in doubt, include all licenses and name all copyright holders. Easy.

3

The answers to the parts of the question.

1. I'm a bit confused about the details here. I understand you change the binaries to get rid of stuff you don't need. How does that work?

If you change the binaries directly, I would document how you do it and put a script into your sources that does that, so that others can from the sources of dynmap get to the binaries you use.

If you changed the sources or the buildfiles of dynmap to achieve that, you should release the changed sources. To be clear, Apache doesn't really demand that, the GPL does, as you combine it the GPL would work here. As long as you're the only author of all GPL-code used, you may be legally allowed to do that, but if you accept any contributions you have to release the changed sources even of the software you link. But all legal stuff aside, it is nice for everyone if you release the changed sources. Github isn't needed though, just an archive with the changed sources somewhere in your webspace should be enough.

2. Yes, they are GPL now. As you linked to your software that is GPL, you made an derivative work. That means the result is GPL-licensed. That Apache 2.0 is compatible with GPL 3.0 (no other combination of version by the way, be careful) just means that the Apache license allows the license change and the terms of both licenses don't conflict.

3. All authors of the files share the copyright. That includes the original author(s) and you as author of the changes. I think both involved licenses ask for proper attribution of the authors, so you probably have to include Mike Primm in the copyright-notice in WorldPainter. But many project make categories: main developer, other contributors, ... I would list him as: "author of dynmap used and modified in WorldPainter".

4. Through creating a derivate you made dynmap as used by you GPL licensed. I would still include a notice like that: includes and modifies dynmap from XY originally licensed under the terms of the APL.

  • Thanks! As to 1: I don't know yet. Currently I'm using hand-edited binaries but the feature is still in development and I have yet to decide on the final mechanism. – Pepijn Schmitz Jul 8 '15 at 15:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.