7

As far as I know, LGPL mandates that the respective licenses are featured in file and in app visual representation.

The former is a simple distribution matter, but the latter is a gui feature.

Assume the software product is in beta version, and the respective gui facilities are not yet implemented.

In such a scenario, it ok to provision licensing information via a simple runtime mention ("uses X library, for more information see license file"), with only the file as a source for the full license text?

0
11

Compliance stuff isn't a nice-to-have feature. The LGPL provides no exceptions for beta releases. However, the LGPL is technology-neutral and does not directly require you to implement a GUI.

You must reasonable notices about the open source components that you use. How to do this depends on the nature of your software.

For a graphical application: Moving license notices to a separate screen or file is fine if the user has the actual ability to access these. I'd have doubts about that for a mobile app, though it's probably fine in a desktop context. In essence, I would expect this test case to pass:

Given that I am an end user
And I am on the copyright notice screen
When I click on the license notice link
Then a window with the license notices appears

In a mobile context, showing a plaintext file with a web view is probably the easiest way to get this done.

It's worth emphasizing that you must provide the license notices alongside the app. Unless this is a web app, it's not sufficient to load the license notices from a web server. This should work fully offline.

For a non-graphical application: If the software provides an interactive user interface (e.g. a REPL or command line) then it should show a short message about license information to the user. For example, the GDB debugger is a GPLv3 program that shows the following message upon starting:

Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.

(With respect to notice requirements GPLv3 and LGPLv3 are generally equivalent.)

If the software is non-interactive, you don't need such notices. It would likely be sufficient to include the license notices in a file, but to inform the user how to find this file. That means, I would expect the license notices to be part of the included documentation files that are shipped with the program. E.g. if you release your software as a ZIP archive that users can unpack, having a LICENSE file in the archive would be an obvious way to store such information.

The LGPL also requires much more than just showing the license notices. You must offer the source-code for the LGPL-covered components. You must make it possible for the end user to modify the LGPL-covered components. In a desktop context, this is most easily achieved by distributing the LGPL-covered component as a separate library (e.g. DLL on Windows).

7
  • 1
    I don't disagree with anything you've said above, but with respect to the OP's question I can't find any provision in LGPL (either v2.1 or v3) that refers specifically to GUIs. The closest are the requirements to "give prominent notice", but they don't specify any particular method, so I'm not sure that a piece of software that doesn't (yet) have GUI features is obliged to worry about what future versions might have, in terms of giving prominent notice. Sufficient unto the day are the notification channels thereof, surely?
    – MadHatter
    Dec 31 '21 at 8:47
  • 1
    @MadHatter Yes, if a plaintext file is sufficient then it is sufficient, regardless of beta status. In case of the LGPLv3/GPLv3 there are terms relating to GUIs but I don't think they would apply here. Nevertheless, there must be prominent notice. For a consumer-focused GUI app, it would be difficult to give prominent notice through a medium other than the GUI. For the specific case of the mobile app, normal users have no ways to inspect the app's files so the app's user interface must facilitate access to the license notice.
    – amon
    Dec 31 '21 at 9:17
  • 2
    If it's not too much trouble, could I ask for section number(s) of those "terms relating to GUIs", since I couldn't immediately find them? Re your point about the difficulty of inspecting anything in the context of mobile apps, I concur. You made that point in your original answer, and as I hoped I'd said, I don't disagree with anything you wrote there: only with its precise applicability to the question "I'll have a GUI later, does that mean LGPL obliges me to have one now".
    – MadHatter
    Dec 31 '21 at 9:20
  • @MadHatter that last bit pretty much sums it up. Or if you will, should putting licenses in a gui be our first and foremost pre-release technical priority?
    – dtech
    Dec 31 '21 at 9:26
  • 3
    @MadHatter GUIs are e.g. discussed under the umbrella term “interactive user interfaces” in section 5.d of the GPLv3, which is part of the terms of the LGPLv3. But I don't think it applies here because the Program (i.e. the LGPL-covered library) is unlikely to already have a GUI showing Appropriate Legal Notices. I understood the question to mean that a GUI exists, just not the GUI component for license notices.
    – amon
    Dec 31 '21 at 9:26
4

As far as I know, LGPL mandates that the respective licenses are featured in file and in app visual representation.

It doesn't say that exactly. LGPL-2.1 says:

You must give prominent notice with each copy of the work that the library is used in it. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to a copy of this license.

(emphasis mine). It doesn't say you have to put the whole license text in the GUI, and if there are no copyright notices in the GUI at all then it doesn't obligate you to add one — only, if there is a place in the UI that displays a copyright notice, then it has to include the notice for the library

LGPL-3.0 says effectively the same thing in a less easily quotable format: you need "prominent notice" of the use of the library, you need to include the license (both LGPL-3 and GPL-3) and let the user know how to find it, and you need to include the library's copyright notice in your UI if and only if there is some part of the UI that displays a copyright notice.

0

If it's not conveyed to end users outside your organization, you don't need any legal information. (L)GPL gives you the right to do anything as long as it counts as "private use."

-3

As far as I know, LGPL mandates that the respective licenses are featured in file and in app visual representation.

On Linux, the same executable can act as a command line application, a GUI application, or some web service. For example, RefPerSys. And I believe the LGPL does not mandate showing licensing info at every run. GCC does not do so. It can accept plugins (LGPL licensed) like Bismon.

With X11 applications, you need to use getenv("DISPLAY") to find out at runtime if your executable is running with or without a GUI (e.g. an X11 server).

And /lib/libc.so.6 is both a shared library and some LGPL licensed executable.

License info should be easily shown. GNU sed gives it with sed --version. Frama-C (LGPL licensed) gives it only on its website - but not thru the command line. GCC gives it with gcc --help -v

I am not a lawyer, and you need legal advice. Details are country specific (different in Amsterdam, in Paris, in Moscow, in San Francisco) and may depend upon your work contract.

Assume the software product is in beta version, and the respective gui facilities are not yet implemented.

Implementing a program argument like --help or --license is very easy. It probably could be helpful in a lawsuit. My habit is to implement that first (with a --version option).

I believe that the license info is not required to be given with a GUI interface. But Qt has classes to help so.

Feel free to contact me by email.

1
  • 1
    This is also just not a good answer to the question that was asked. The question asks generally what disclosure is required for license compliance. It does not make sense to open with platform-specific implementation details (Linux, X, Qt).
    – nobody
    Jan 1 at 15:02

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.