4

I have written a program that uses several open source components. First off, it's written in python. Second, I use the modules subprocess, argparse, os and datetime. Since my work asked me to find a way to do what the program does and we plan to deploy that program on the PCs of our customers, I guess it's in a commercial context.

The way I understand the PSFL, I am allowed to propietarize derivations. My goal is to disallow any use, modification or distribution of that program that is not explicitly allowed by our company. May I use a simple, standarized EULA for that? And if yes, who's the Licenser? Me or my workplace?

On a different note, would I be allowed to distribute the program if I left the company? My contract does not cover anything regarding code I've written during my time there.

Edit: I forgot to mention: When I compile the .py-script into a .exe, the modules and my code get bundled into a single file.

2
  • 1
    I vote to close this question. This is asking for advice on the creation of a proprietary license, which is out of scope. OP should seek legal advice from a lawyer. Jan 18 at 7:07
  • "My contract does not cover anything regarding code I've written" - If you wrote it at the company, for the company, using the company's equipment, network, etc. it is normally considered to belong to the company. Just like if you write a report for your company, that report belongs to your company. And so on.
    – Brandin
    Jan 18 at 14:00

2 Answers 2

5

I have written a program that uses several open source components. First off, it's written in python. Second, I use the modules subprocess, argparse, os and datetime. […] My goal is to disallow any use, modification or distribution of that program that is not explicitly allowed by our company. May I use a simple, standarized EULA for that?

Yes, you may do this. According to the Python Software Foundation License FAQ:

Can I bundle Python with my non-open-source application?

Yes. Unlike some open source licenses, the PSF License allows Python to be included in non-open applications, either in unmodified or modified form. See also this more detailed overview.

The only requirement is that you include some licensing and trademark related boilerplate text in your documentation:

If I bundle Python with my application, what do I need to include in my software and/or printed documentation?

You must retain all copyright notices found in the code you are redistributing and include a copy of the PSF License and all of the other licenses in the Python "license stack" with the software distribution. The "license stack" is a result of the history of Python's development as described here (this page also lists all licenses in the stack).

Separate from the issue of copyright, the name “Python” is also a trademark. You should include the notice “"Python" is a registered trademark of the Python Software Foundation” in the appropriate part of your documentation or About box and place the “®” symbol after the first mention of “Python” in your documentation. (For example: “Python® is used as the scripting language for...”)


And if yes, who's the Licenser? Me or my workplace?

Whoever owns the copyright to the code being licensed.

Usually, if you're working as a programmer and writing the code as part of your job, it should be fairly safe to assume that it's your employer, either because the code counts as work for hire under your local laws or because there's an explicit copyright transfer agreement included in your employment contract.

That said, weird edge cases do occasionally come up, e.g. in cases involving poorly written (or completely missing!) employment contracts, code written by people not primarily employed as programmers, or code that an employee has originally written for personal use in their free time and later used at work. And those cases can sometimes end up being really messy. If you're still not sure who owns the copyright to your code, all I can suggest is asking either the folks over at Law Stack Exchange or (for a more reliable answer) a local lawyer.


On a different note, would I be allowed to distribute the program if I left the company? My contract does not cover anything regarding code I've written during my time there.

If you, rather than your employer, really own the copyright to your code, and haven't signed an agreement transferring the copyright to your employer or granting them an exclusive license to it, then yes, you can do whatever you want with your code after (or even before!) leaving the company.

However, that would generally be a rather bad situation for your employer, since without a copyright transfer or a license, they wouldn't be legally allowed to use the code they paid you to write without asking you for permission. So, unless your employer seriously messed up, this is unlikely to actually be the case. Again, if you suspect that it might be, I'd recommend consulting a lawyer familiar with the relevant copyright and employment laws in your jurisdiction before trying to do anything your (former) employer might object to.

Note that, as I mentioned above, in some cases code written as part of your job might be considered "work for hire", with its copyright belonging to your employer, even in the absence of an explicit contract saying so. However, the conditions for this to apply vary a lot between different jurisdictions, so my suggestion to consult a local lawyer still applies.

2

You want to use standard library in closed-source products. It's a normal thing and it's allowed by the PSF. PSFL is free license and non-copyleft. It requires to do some things like give credits or place that license text in your program as a notice (no as license for your software). You can do that making file "THIRD-PARTY-NOTICES.TXT". I recommend you to read python license: Source: https://docs.python.org/3/license.html

May I use a simple, standarized EULA for that?

Yes, you can

And if yes, who's the Licenser? Me or my workplace?

If you distribute the software, you are the licensor. If your company do that, they are licensors. But to distribute code, you/company must have permission to do that or hold copyright to the code.

On a different note, would I be allowed to distribute the program if I left the company? My contract does not cover anything regarding code I've written during my time there.

(In most countries) No contract may restrict you for using YOUR code when you are in the company. So if you make program at home (NOT IN COMPANY) but at the same time you are an employee, the code is your, so you're the licensor. But if you make program in company as a part of product produced by You in the company, company holds copyright and you can use that product under the EULA or work on it in company ONLY.

THIS POST IS NOT LEGAL ADVICE

PSFL:

1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and
   the Individual or Organization ("Licensee") accessing and otherwise using Python
   3.10.2 software in source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
   grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
   analyze, test, perform and/or display publicly, prepare derivative works,
   distribute, and otherwise use Python 3.10.2 alone or in any derivative
   version, provided, however, that PSF's License Agreement and PSF's notice of
   copyright, i.e., "Copyright © 2001-2022 Python Software Foundation; All Rights
   Reserved" are retained in Python 3.10.2 alone or in any derivative version
   prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on or
   incorporates Python 3.10.2 or any part thereof, and wants to make the
   derivative work available to others as provided herein, then Licensee hereby
   agrees to include in any such work a brief summary of the changes made to Python
   3.10.2.

4. PSF is making Python 3.10.2 available to Licensee on an "AS IS" basis.
   PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  BY WAY OF
   EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
   WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
   USE OF PYTHON 3.10.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.10.2
   FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
   MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.10.2, OR ANY DERIVATIVE
   THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material breach of
   its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any relationship
   of agency, partnership, or joint venture between PSF and Licensee.  This License
   Agreement does not grant permission to use PSF trademarks or trade name in a
   trademark sense to endorse or promote products or services of Licensee, or any
   third party.

8. By copying, installing or otherwise using Python 3.10.2, Licensee agrees
   to be bound by the terms and conditions of this License Agreement.

Note that this license applies only to python v.3.10.2. For previous versions see source link.

3
  • 1
    A few quibbles: 1) It doesn't really matter who distributes the software, but who owns the copyright. Of course, only the copyright holder or someone licensed to do so by them is legally allowed to distribute the software, so in that sense the copyright holder and the (original) distributor are (usually) the same. But your answer seems to put the cause and the effect backwards: (legally or illegally) distributing the company's code won't make OP the copyright holder, or vice versa. […] Jan 17 at 21:45
  • 1
    2) Companies can certainly try to claim copyright to all code an employee writes, whether "on the clock" or not, or restrict use of such code e.g. with non-compete clauses. Whether and to what extent such attempts are legal and enforceable is another matter, and one that has been litigated many times in various jurisdictions. Still, without reviewing local law and precedent, I would not make a blanket claim that the OP's employer has no say in what OP does with code written in their spare time. Maybe in a fair and just world they shouldn't, but that may not be the world OP lives in. Jan 17 at 21:49
  • @IlmariKaronen 1) It's not a fail, because if person A is copyright owner, but don't redistribute the app, he is not licensor. But A may permit B to redistribute it under the terms of x license, then B will be licensor. 2) You are right, but it's not legally in most countries (including mine), so it's my perspective. As you wrote "Companies may TRY".
    – Maniues
    Jan 17 at 21:53

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.