Quick question: I would like to publish a software under a self-written BSD-like license, and under the GPLv3. So far so good.

If somebody would fork said project according to the GPL, I would, in my understanding, have the right to use the code of the fork as GPLv3 in return. But I would not have the right to use that part in my BSD-version, even if my software is still available as GPLv3, am I right? So I would have to disable features I got from the fork.

So, what if I would only license my software under the GPLv3, provided that they too would let me access this fork under a BSD-style-license? I would not modify the GPL license per se, just add a condition to the header, like that:

Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3 as published by the Free Software Foundation. Additionally, if you choose to use (part of) this program in you own works, you grant me the right to use the source code of the program under -my BSD-style license-.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

The clause is of course not water-proof, but I think you get the idea.

1 Answer 1


GPLv3 s7 is clear about permissible additional restrictions that can be applied to GPLv3. I would argue that your clause is in fact a restriction, because it restricts people from conveying their modifications under pure-GPLv3, and thus can be ignored by any recipients of the fork, under GPLv3 s10. If you edit your requirement into the licence to make it an integral part rather than an additional clause, you can't call it GPLv3; it becomes Yet Another Crayon Licence, and nearly nobody will use that code.

I accept that's not a slam-dunk argument, but as I say, I think the case can be made. Whether or not you agree with the above, I think you're going about this the wrong way.

I think you should add a clear Contributor Licensing Agreement to your project, saying that contributions to your fork are made under BSD. If you're going to accept contributions from other people, a CLA is a good idea, anyway. People who are happy for their contributions to be circulated under BSD won't have an issue with that, Conversely, those who do have an issue have presumably chosen to work on the GPL fork for a reason and are likely people who would much prefer their work be under the GPL.

Basically, BSD is a non-copyleft licence, which doesn't require people to keep code freely available, and under it. If you want those outcomes, you should pick a copyleft licence which does require them.

  • ok thanks, appreciate it, looks like it's going to be the MPL then ;-)
    – thejack
    Commented Apr 28, 2020 at 15:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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