Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New license request: glibc startup code (LGPL with exception), take two #2128

Closed
fweimer-rh opened this issue Sep 8, 2023 · 7 comments · Fixed by #2189
Closed

New license request: glibc startup code (LGPL with exception), take two #2128

fweimer-rh opened this issue Sep 8, 2023 · 7 comments · Fixed by #2189

Comments

@fweimer-rh
Copy link

How license meets inclusion principles

This is an extremely widely used OSI-approved permissive license, mostly found in glibc's start.S startup file. The resulting machine code is statically linked into every program that is linked against glibc.

Example text (from sysdeps/x86_64/start.S).

/* Startup code compliant to the ELF x86-64 ABI.
   Copyright (C) 2001-2023 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   In addition to the permissions in the GNU Lesser General Public
   License, the Free Software Foundation gives you unlimited
   permission to link the compiled version of this file with other
   programs, and to distribute those programs without any restriction
   coming from the use of this file. (The GNU Lesser General Public
   License restrictions do apply in other respects; for example, they
   cover modification of the file, and distribution when not linked
   into another program.)

   Note that people who make modified versions of this file are not
   obligated to grant this special exception for their modified
   versions; it is their choice whether to do so. The GNU Lesser
   General Public License gives permission to release a modified
   version without this exception; this exception also makes it
   possible to release a modified version which carries forward this
   exception.

   The GNU C Library 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
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

This is LGPL-2.1-or-later WITH GCC-exception-2.0 (see #2055), with the Note paragraph added.

The Note paragraph is sometimes used in conjunction with a GPL linking for OpenSSL exception. If SPDX supports multiple WITH specifiers, it may make sense to separate this exception from the GCC-exception-2.0 text.

License Name

LGPL-2.1-or-later WITH GCC-exception-2.0-optional

Suggested short identifier

LGPL-2.1-or-later WITH GCC-exception-2.0-optional

URL to license text

https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/start.S

OSI Status

Approved

License author or steward

FSF

URL to project(s) that use license

https://www.gnu.org/software/libc/libc.html
https://www.uclibc-ng.org/
https://github.com/cminyard/ser2net

@richardfontana
Copy link
Contributor

@fweimer-rh notes:

If SPDX supports multiple WITH specifiers, it may make sense to separate this exception from the GCC-exception-2.0 text.

I think I brought the issue of multiple WITHs in some other issue a while ago. I don't think the SPDX license expression grammar supports this, but it probably should (off topic for this issue and repo I realize).

@jlovejoy
Copy link
Member

re: the multiple WITH operators - I think you mean that the exception in #2055 sometimes appears in place as was accepted there, and sometimes appears in other places along with the "note" second part as above, is that right

both variants don't appear together (which would seem repetitive) in the same file?

@jlovejoy
Copy link
Member

as for acceptance, I think when we discussed #2055, we kind of implicitly also accepted this variant, but needed a separate issue to track it. @swinslow - is that what you recall?

@Pizza-Ria
Copy link
Contributor

+1 to cataloguing the exception. Also +1 to the above suggestion ( If SPDX supports multiple WITH specifiers, it may make sense to separate this exception from the GCC-exception-2.0 text.).

@jlovejoy
Copy link
Member

I think we decided to add this as a new exception with this additional note paragraph?

In which case, should we call it: GCC-exception-2.0-note?

@jlovejoy
Copy link
Member

As for using multiple WITH operators in one string: that is a bigger change that we are not going to be able to address quickly.

At the file level, I wouldn't think you'd see both - it'd be one or the other.

If you are identifying license info at the package level, then you could simply represent this with:
(LGPL-2.1-or-later WITH GCC-exception-2.0) AND (LGPL-2.1-or-later WITH GCC-exception-2.0-note) for example

@swinslow
Copy link
Member

swinslow commented Sep 28, 2023

+1 to add as a separate exception from #2055

Agree that this one shouldn't include markup at this time, unless / until another example shows up

Good with GCC-exception-2.0-note as ID

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants