2

Where I have exactly to put the LGPL copyright notice? I mean, I know I have to put on the code, but do I have to put in the program interface? Or I can just put it on the file of code? And do I have to have a file with the copyrights notices?

I'm using Pygame and PySimpleGUI, both licensed under LGPL.

PS.: I’m creating a new project, not just modifying another one that already exist.

2
  • Are you making your own source code files (i.e. other than Pygame and PySimpleGUI) or are you modifying someone else's source code and including that in your project? Although it's common practice to mention the license somewhere in each source code file, this is not required by any license that I know of, unless there's already a copyright notice there (usually then you must preserve that notice if it is there already).
    – Brandin
    Oct 17, 2022 at 6:12
  • I’m doing an new project. So, don’t I have to put the copyright notice on the interface, but it’s good to put in the code file? Thank u Oct 23, 2022 at 10:13

1 Answer 1

3

Although it is not specifically required(*) by the license itself, the recommended practice is to include a file in your source code repository with a name that is easy to find such as LICENSE, LICENSE.GPL, COPYING, COPYING.GPL, etc. For example:

COPYING
README
source0.c
source0.h
subdir1/
    source1_1.c
    source1_1.h
    ...
component1/
    ...
component2/
    ...

In the above example, you would conventionally place general information about your main program in the file README, and you would place the license terms in the file COPYING. This is only one possible convention -- you should adapt the convention if doing so is convenient for your particular program or programming environment.

If component1 and component2 are third-party components under some other license (e.g. LGPL, MIT, etc.) then normally you would include the licensing information of those components in those directories in the same manner that those components did to begin with (i.e. I would not change anything if it's not necessary). It may also be a good idea to mention in your own README or COPYING file the fact that your projects also includes subcomponents that are licensed under their own terms. To make your own maintenance easier, I wouldn't go into unnecessary detail here -- you can mostly leave it up to an interested reader to go into those subdirectories and investigate the specific licenses of those components if she chooses to do so.

It's also a good idea to include a notice similar to the following in a comment inside each substantial source code file (of your own code) notifying readers of the copyright and license:

// This file is part of Project FOO, a program for computing the BAR of BAZ.
// Copyright (C) 2022  Max Mustermann
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, ___either version 3 of the License, or
// (at your option) any later version.___
//
// 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/>.

I copied that snippet from the bottom of the GPL license text itself, from the section entitled "How to Apply These Terms to Your New Programs". Notice that that part is outside of the license itself, so it is a suggestion, not a requirement of the license, to include such a comment. You could also reword the above comment to a shorter version if you wish, and many developers do that.

If you include the above notice, then you should look carefully at the portion in between underscores ___ in the above text: "either version 3 of the License, or (at your option) any later version." If you include that phrase, then recipients will be allowed to copy your code and then relicense it under GPL version 4 or later if such versions are ever published by the FSF in the future. Some developers don't want that, and would prefer to license their software only under a particular version of the license (e.g. Version 3). In that case, a more appropriate wording for that part might be:

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License Version 3 as 
// published by the Free Software Foundation.

It's also possible to leave out the comment entirely, since technically, nothing in Copyright law nor in the GPL itself requires you to include such notices in your own code, neither a copyright notice, nor a license notification. However, if you omit the copyright notice completely from your source code, it may create confusion for a redistributor, especially if he copies only a subset of the source code files from your project (which is generally allowed).

The possible problem with including no comment at all is that the GPL requires a redistributor of your code to "conspicuously and appropriately publish on each copy an appropriate copyright notice" (See Section 4 of the GPLv3), and if the original files didn't have any notice at all in the first place, then it may be less than clear how to fulfil that requirement if the particular files that he wishes to copy had no notice originally. So, at the very minimum, I'd recommend that you at very least include a minimal copyright notice such as "Copyright (C) 2022 Max Mustermann" in a source code comment near the top.

I'm using Pygame and PySimpleGUI, both licensed under LGPL.

Since those components are licensed under the LGPL, it means that you are free to include them in your program and then license your main program itself under any terms that you wish (i.e. your program can be GPL licensed if you want, or licensed in some other way, including closed-source), as long as you comply with the LGPL terms for the LGPL components.

... do I have to put [a copyright notice] in the program interface?

You may do so, but it is not required. If you decide to do that, then the GPL will require that further redistributors also preserve that notice in their version. The GPL calls this notice information "Appropriate Legal Notices". The meaning of that phrase is defined in the GPL itself at the top of the license text.

As for PyGame and PySimpleGUI, as far as I know, neither of those has an "appropriate legal notices" portion in their code, so it means that you are not specifically obligated to mention them specifically in your GUI. However, it may be polite or informative for you to do this in an appropriate place, e.g. in an "About" dialog box in your program.

If you add such a notice, then my reading of the GPL is that those notices would then themselves would then be considered "Appropriate Legal Notices" and would therefore need to be preserved in future versions (e.g. if someone forks your project).

See also: https://www.gnu.org/licenses/gpl-3.0.txt, the section entitled "How to Apply These Terms to Your New Programs".

(*) - If you read the GPL literally in Section 4, it's never explicitly required for the very first distribution of a program (i.e. the original distribution) to include the license itself with the program. However, you should really do so, because if you don't, then it will put a redistributor in a difficult position -- if the program is GPL licensed (e.g. if you have stated elsewhere, not as part of the source distribution itself, that the program is licensed under those terms), then the license clearly intends to allow him to distribute a verbatim copy under Section 4, but if he does this without adding a file (to attach the license itself), then it would become a technical violation of Section 4. (I think this technicality has come up in the past on the Open Source SE and was explained previously, but I cannot find the link at the moment).

4
  • Thank u, helped me a lot! So I also don't need to put the copyright notice of Pygame and PySimpleGUI on my program? Oct 26, 2022 at 20:04
  • Basically, you only need to include the original notices that came with those components. For example, if you open up some of the PyGame .py files, probably some of them will say something like "Copyright (c) xxyy Max Mustermann". Normally, open source licenses (and LGPL) just say that you must keep those copyright notices there; you can't remove them. That means that if you want to add your own changes, for example, you'd have to keep that notice there, but you could add your own Copyright notice additionally as well.
    – Brandin
    Oct 27, 2022 at 7:33
  • For the program GUI itself, there's no requirement to write anywhere a message like "this program uses PyGame, Copyright (c) xxyy The PyGame authors." You can add such a notice if you want, though. And if you do that, then the GPL gives special protection to those notices ("Appropriate Legal Notices"), in the sense that those notices must then be retained in derivative works. So, for example, if someone forked your program, she would be required to retain the feature(s) which showed those copyright notices in the program.
    – Brandin
    Oct 27, 2022 at 7:35
  • For a simple GUI, a common place to put such information (if you want to do so), is in an "About" screen, conventionally as part of the "Help" menu. If you open the Help menu of Firefox or Chrome, for example, both of those programs have such screens which show notices for the various open source components that those browsers make use of.
    – Brandin
    Oct 27, 2022 at 7:38

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.