I was getting frustrated because I really wanted to use a GPL Family license for a piece of software I am developing. However, some of my target audience, OS Developers, are closed source (looking at you Microsoft and Apple), and by using my software they would have to make their software open source, so they wouldn't even consider my software. Also, my software would have to be Apache if I want to submit it to AOSP.
The easy option would be to use Apache licensing, but I still want by other users to be bound by GPL.
However, I think I came up with a solution. I made by own boilerplate notice by snipping segments from different licenses, as well as adding my own wording. I want it to allow me to say several things:
- You can choose between GPL (v2 or later) or LGPL (v2.1 or later), whichever you prefer.
- If you are an Operating System Developer, you can also choose Apache.
- You must follow these conditions or not redistribute my software at all.
- If you send me code, no matter what license you got it under, you license it under my boilerplate notice.
This is my notice, sorry about the name, one of my co-devs loves ducks and made be call it 'Quack Open Source License':
Begin Quack Open Source License, herein referred to as QOSL.
Copyright (C) [NAMES OF DEVS] 2022
This software is free software.
"You" refers to a person or entity obtaining this software and corresponding source code
"Your Users" refers to any people or entities you distribute this software and corresponding source code
"The authors of this software" and "The Copyright Holders" refers to [NAMES OF DEVS]You may obtain this software and its corresponding source code under the General Public License, herein referred to as "GPL" for the purposes of this document, version 2, or at your option any later version.
You may also obtain this software, at your option, under the Lesser General Public License, herein referred to as "LGPL" for the purposes of this document, version 2.1, or at your option any later version.
YOU ARE GIVEN WORLDWIDE, NON-EXCULSIVE, ROYALTY-FREE PERMISSION TO OBTAIN AND REDISTRIBUTE THIS SOFTWARE AND CORRESPONDING SOURCE CODE BY THE COPYRIGHT HOLDERS UNDER THE GPL OR LGPL ONLY IF YOU ACCEPT AND AGREE TO THE QOSL CLAUSE 1, 2 AND ANY CONDITIONS INTRODUCED BY THE LICENSE YOU CHOOSE.
Clause 1: "If you obtain this software and corresponding source code under GPL or LGPL, you must also give your users the option to choose between the two by including the Quack Open Source License notice before any GPL or LGPL notices".
Clause 2: "If you release changes to the authors of this software, you release your changes under the Quack Open Source License, not the license you obtained this software and corresponding source code under."
You are not required to accept Clause 1 and Clause 2, as you have not signed them, however accepting them is the only way to obtain this software and corresponding source code under the GPL or LGPL, so by obtaining this software and corresponding source code, distrubuting it to your users or submitting changes to the authors of this software, you accept the Quack Open Source License Clause 1 and Clause 2.
For the purposes of Operating System Development, herein called "OS Development", you may obtain this software and corresponding source code under any of the licenses listed above, or at your option, any version of the Apache License.
YOU ARE GIVEN WORLDWIDE, NON-EXCULSIVE, ROYALTY-FREE PERMISSION TO OBTAIN AND REDISTRIBUTE THIS SOFTWARE AND CORRESPONDING SOURCE CODE BY THE COPYRIGHT HOLDERS UNDER THE APACHE LICENSE ONLY FOR THE PURPOSES OF OS DEVELOPMENT, AND ONLY IF YOU ACCEPT AND AGREE TO THE QOSL CLAUSE 2, 3 AND ANY CONDITIONS INTRODUCED BY THE APACHE LICENSE.
Clause 3: "If you obtain this software under the Apache License, for the purposes of OS Development, and redistribute it to your users or the authors of an Operating System, you must do so under the Apache License, NOT the Quack Open Source License. You MUST NOT include the Quack Open Source License notice before the Apache License declaration, regardless of if you have made modifications to the software. You may, at your option, include the following declaration, 'This software was obtained under the Quack Open Source License for the purposes of Operating System Development, and redistributed under the Apache License ONLY.'. This clause is overridden and superseded in any circumstance where it comes into conflict with the Quack Open Source License Clause 2."
You are not required to accept Clause 3 and Clause 2, however accepting them is the only way to obtain this software and corresponding source code, so by obtaining this software under the Apache License for the purposes of OS Development, distributing it to your users, sending it to the authors of an Operating System or submitting changes to the authors of this software, you accept the Quack Open Source License Clause 2 and 3.
End Quack Open Source License (QOSL) NOTICE
What I'm curious about – am I allowed to do something like this? I'll put it before any instances of GPL, LGPL and Apache, so is it legally binding? Or will I have to bite the bullet and use Apache?