15

I would like to write some software, in my free time, and release it under GPLv3. As I understand it, this would imply that any software that uses that code must also abide by the terms of GPLv3.

I work on a project which is closed source, and while I would like it to be free software, I certainly do not have the power to make it that way. But the code I write would be helpful for my work (in fact my motivation for writing it is to help at work, but I am being careful to avoid writing it in a professional capacity as I know that this sometimes can cede the copyright to my employer).

As I understand it, if my organisation were to adopt my code without my permission, it would be a clear violation of the license terms. My question is: Am I free to give an exception in this case, given that I hold the copyright for this program? Either explicitly, or by simply never mentioning that the software is free in the first place.

I'm guessing the answer is "yes", since I think that the burden of enforcing a license is probably on the person who owns it. But I'm not sure. Could someone clarify?

4
  • 4
    FYI, this is why some people, including myself, really dislike the GPL, and you could solve your issues by just releasing your code under a permissively open source license, like MIT or one of the BSD variants. Then, your closed source project could include it as a library rather than copying the code over, and then it would benefit from future changes. Sep 4, 2020 at 20:29
  • 6
    It's important to note that you don't hold the license; you're the one offering (extending, granting) the license. The other people who use the software hold a license (specifically, the GPL) from you and have no authority to make exceptions. Sep 5, 2020 at 9:16
  • @GregSchmit Indeed, that would be the path of least resistance. I have unfortunately been bitten by the copyleft bug, and would really like to inconvenience developers of non-free programs. I just don't want to inconvenience the ones I work with :) Sep 7, 2020 at 21:50

4 Answers 4

21

Generally, yes, if you hold the copyright to some code, you may issue simultaneous licenses for others to make use of that code under different terms.

But the code I write would be helpful for my work (in fact my motivation for writing it is to help at work, but I am being careful to avoid writing it in a professional capacity as I know that this sometimes can cede the copyright to my employer).

Ensure you have not already signed a blanket agreement to transfer copyright of all work you create (that is germane to your responsibilities as an employee), whether created on company time or not. This is extremely common practice for employment that involves creative work.

Even if you do own the copyright free and clear, you would be putting yourself in a position of simultaneously being an employee and an external vendor. Management might look askance at licensing code from an employee: they might not wish to be left asking, "If we need to fire him, what's our strategy to get continued updates?" Even if they do agree, your project would then be directly involved in your work, so doing continued work as "outside employment" for which you retain the copyright could become impossible (unless you work out an explicit agreement about this in advance).

As I understand it, if my organisation were to adopt my code without my permission, it would be a clear violation of the license terms

If your organization plans to distribute a piece of software which includes your GPL'd work, yes. If they plan to only use it internally (e.g., to run computations internally, or to run a public Web service) then the GPL imposes no responsibilities.

2
  • 3
    Some companies actually have rules prohibiting them from treating an employee as a supplier, as a way to protect against conflicts of interest and extortion (e.g., make your invention indispensable to key products and then suddenly charge exorbitant amounts for them). OP should tread these waters very carefully.
    – bta
    Sep 4, 2020 at 21:06
  • Even if you have not signed such an agreement, if the work is created "within the scope of his or her employment", then it's a work for hire under US law, and the employer owns it automatically. Some employers will argue that any code which is reasonably related to your job is "within the scope" of your employment regardless of how and when it is written.
    – Kevin
    Oct 3, 2022 at 18:11
10

As long as you are the only contributor, yes.

However, the nature of Open Source is that it attracts contributions from other people.

One option is to simply refuse contributions. If people want changes, they have to fork the project.

Alternatively, you can maintain two versions, one under GPL and one for the company.

For big contributions, it is easy. You include them in the GPL version and not in the company version.

The problem is small bug fixes. Somebody sends you a patch that fixes a bug. As is often the case, the hard part was finding the bug, the fix is obvious.

You dutifully patch the GPL version and leave the company version alone.

But now you know about a bug in the company version. You know where it is, you know how to fix it. And the contributors patch is really the only sensible way of fixing it.

What do you do?

This is the headache that makes dual licence projects so hard.

2
  • 4
    A way out of this headache is to use a Contributor License Agreement (CLA) that gives you additional rights on contributions made to the GPL version to use those contributions also in the non-GPL version(s). Sep 4, 2020 at 9:23
  • 1
    Hm, seems like that should be the subject to a separate question... Sep 4, 2020 at 12:21
7

A clear 'yes', your reasoning is sound in its entirety.

You are the (sole) author, you decide who gets the software under which license. If that means that everyone gets it under GPL and your employer under a special license with additional rights (and possibly obligations), that's totally in your power to do.

You don't give any indication for this, so it likely does not apply: The only thing you will need to care about is, that your software does not depend on nor is derived from other software where you are NOT the sole copyright holder. In that case, you would not have the permission to re-license it so freely, but it would depend on the license of what you built on.

4
  • It is almost certain that the software does depend on software copyrighted to others - the platform's standard libraries if nothing else. Sep 3, 2020 at 22:06
  • 4
    @PhilipKendall: The GPL (v3, anyway) has an explicit exception for system libraries. glibc is LGPL'd, gcc has a runtime library exception, the Linux kernel has a syscall "exception" (which is really more of a clarification), and so on. In general, it is actually quite unusual for standard libraries to cause a problem.
    – Kevin
    Sep 4, 2020 at 3:28
  • "you decide who gets the software under which license" - This might be false under the contract OP is with his employer currently.
    – Mołot
    Sep 4, 2020 at 13:53
  • That depends... depends on jurisdiction, and only then maybe on the contract. And in the end it's still his choice - a choice he might have made on signing the work contract. Sep 4, 2020 at 17:44
2

I am being careful to avoid writing it in a professional capacity as I know that this sometimes can cede the copyright to my employer

My question is: Am I free to give an exception in this case, given that I hold the copyright for this program? Either explicitly, or by simply never mentioning that the software is free in the first place.

If you want to retain the copyright and keep the code available under the GPL, you should talk to your employer about it. You are definitely allowed to license the code under a different license as long as you are the sole copyright holder, i.e. you haven't accepted code from anyone else who expects their changes to be available under the GPL as well.

However your employer will NOT want to have code in their software that is copyrighted by someone else and that they do not have a valid license for. They will be assuming the code you write will be copyrighted by them. If you try to sneak it in without mentioning it then at the least you are setting yourself up for an angry manager or executives. If your library is available on github, it's possible they will find out about the code copying. There are automated tools available that check for just this sort of thing, where employees might copy code from open source projects. The copying could be inadvertent or just well-intentioned by employees that don't know or care much about licensing, but it can cause problems for a company.

I doubt your employer could be in trouble for you copying code you own into their product. Since you were the copyright holder at the time and you are the one that incorporated the code into their product, they could rely on your employment contract. If you ever came after them for money, they could show how it was done in bad faith, and possibly have the copyright transferred. There's always the case where you die in a car accident and they no longer have any sort of relationship to whoever owns the copyright.

These are things managers and executives don't want to worry about and they will probably be pissed if they find out.

Your Answer

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

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