public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
* libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
@ 2020-05-23 19:30 P. -
  2020-05-23 22:13 ` Jonathan Wakely
  0 siblings, 1 reply; 7+ messages in thread
From: P. - @ 2020-05-23 19:30 UTC (permalink / raw)
  To: libstdc++

Hello, everybody! Libstdc++ (I took libstdc++-v3 with last changelog date
2019-12-30) contains comments like:
 * Copyright (c) 1994
 * Hewlett-Packard Company
 * Permission to use, copy <...> both that copyright notice and this
permission notice appear in supporting documentation <...>
 * Copyright (c) 1996
 * Silicon Graphics Computer Systems, Inc.
 * Permission to use, copy <...> both that copyright notice and this
permission notice appear in supporting documentation <...>
in header files <vector>, <memory> and etc.

While the current license of libstdc++ is the GNU GPLv3 + GCC Runtime
Exception, I still have to copy "Copyright (c) 1994 Hewlett-Packard
Company", "Copyright (c) 1996 Silicon Graphics Computer Systems, Inc." and
the license text (because <vector>, <memory> contain templated code that
will end up in my binary) in documentation, is that right?

Alternatively, I saw on the internet that the *entirety* of the library is
under GNU GPLv3 + GCC Runtime Exception now and those license notices are
meaningless today. However, in the FAQ (
https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.sgi_stl) it still
says that libstdc++ contains code from SGI STL. Which is correct: do I have
to follow the quoted (in part) licenses on top of GPLv3+Exception's
conditions or GPLv3+Exception has overriden this? Did the original
copyright holder contributed the code under GPLv3+Exception and the license
notices are just left in error (because a third-party can't relicense the
code they don't own under a different license, but can, with compatible
license, add additional conditions to combination of original code with
their modifications)?

Best regards and sorry for my English - I'm not a native speaker.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-23 19:30 libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right? P. -
@ 2020-05-23 22:13 ` Jonathan Wakely
  2020-05-24  1:08   ` P. -
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Wakely @ 2020-05-23 22:13 UTC (permalink / raw)
  To: P. -; +Cc: libstdc++

On Sat, 23 May 2020 at 20:43, P. - via Libstdc++ <libstdc++@gcc.gnu.org> wrote:
>
> Hello, everybody! Libstdc++ (I took libstdc++-v3 with last changelog date
> 2019-12-30) contains comments like:
>  * Copyright (c) 1994
>  * Hewlett-Packard Company
>  * Permission to use, copy <...> both that copyright notice and this
> permission notice appear in supporting documentation <...>
>  * Copyright (c) 1996
>  * Silicon Graphics Computer Systems, Inc.
>  * Permission to use, copy <...> both that copyright notice and this
> permission notice appear in supporting documentation <...>
> in header files <vector>, <memory> and etc.
>
> While the current license of libstdc++ is the GNU GPLv3 + GCC Runtime
> Exception, I still have to copy "Copyright (c) 1994 Hewlett-Packard
> Company", "Copyright (c) 1996 Silicon Graphics Computer Systems, Inc." and
> the license text (because <vector>, <memory> contain templated code that
> will end up in my binary) in documentation, is that right?

You should talk to a lawyer if you're concerned, but the notices say
they apply to "this software and its documentation" not to your
software.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-23 22:13 ` Jonathan Wakely
@ 2020-05-24  1:08   ` P. -
  2020-05-26  8:27     ` Jonathan Wakely
  0 siblings, 1 reply; 7+ messages in thread
From: P. - @ 2020-05-24  1:08 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: libstdc++

вс, 24 мая 2020 г. в 02:14, Jonathan Wakely <jwakely.gcc@gmail.com>:

> You should talk to a lawyer if you're concerned, but the notices say
> they apply to "this software and its documentation" not to your
> software.
>

The mentioned header files are full of templates, which will be included in
the object files if used. So, a partial copy of "this software" (if it
actually covers any templates) is very likely to end up in my binaries. In
fact, I'm 99% sure that I'm bound by those license agreements and can't use
libstdc++ without including a copy of those copyright notices and licenses
in documentation - and that would be fine, I'm OK with that - but
everywhere I go I can't find anyone who would mention it. It is as if usage
of libstdc++ is ONLY bound by GPLv3 + GCC Runtime Exception, and those
additional terms around it-is-going-to-end-up-in-the-binary-code do not
exist - even on stackexchange I got "GPLv3 + Exception only" answer.

There are a few ways where ignoring those licenses is possible:
1) Hewlett-Packard and Silicon Graphics Computer Systems, Inc. has
voluntarily contributed their code to be distributed under GCC's license
and the notices are there for historical reason - can't find anything about
that;
2) FSF/libstdc++ maintainers has obtained special permissions from
Hewlett-Packard and Silicon Graphics Computer Systems, Inc. to distribute
their code under GCC's license - again, can't find anything;
3) The license actually covers only notes and comments that exist only in
header files - the libstdc++'s FAQ contradicts that (see the link in the
original email);
4) The code that is covered by those licenses exists only in compile time
and is thrown away when compiled.

The lawyer can't answer those 4 questions - only the libstdc++
maintainers/authors can.
To reiterate, I'm completely fine with those additional conditions (albeit
it's not very convenient to extract them with regular expressions and gcc
-E -C), but I just can't find any mention of "the libstdc++ is licensed
under GPLv3 + GCC Runtime Exception, but some of its components have
3rd-party licenses that have additional terms" everywhere else apart from
the headers. I even saw an opinion that GCC Runtime Exception exempts me
from complying with those licenses, but such an exemption simply can't
apply to an included 3rd-party code!

Best regards, thanks for replying.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-24  1:08   ` P. -
@ 2020-05-26  8:27     ` Jonathan Wakely
  2020-05-26  9:03       ` Bo Persson
  2020-05-26 17:00       ` P. -
  0 siblings, 2 replies; 7+ messages in thread
From: Jonathan Wakely @ 2020-05-26  8:27 UTC (permalink / raw)
  To: P. -; +Cc: libstdc++

On Sun, 24 May 2020 at 02:09, P. - <pressbuttonsharder@gmail.com> wrote:
>
> вс, 24 мая 2020 г. в 02:14, Jonathan Wakely <jwakely.gcc@gmail.com>:
>>
>> You should talk to a lawyer if you're concerned, but the notices say
>> they apply to "this software and its documentation" not to your
>> software.
>
>
> The mentioned header files are full of templates, which will be included in the object files if used. So, a partial copy of "this software" (if it actually covers any templates) is very likely to end up in my binaries.

I'm not convinced that is required by those licenses, but you should
ask a lawyer if you're concerned.

> In fact, I'm 99% sure that I'm bound by those license agreements and can't use libstdc++ without including a copy of those copyright notices and licenses in documentation - and that would be fine, I'm OK with that - but everywhere I go I can't find anyone who would mention it. It is as if usage of libstdc++ is ONLY bound by GPLv3 + GCC Runtime Exception, and those additional terms around it-is-going-to-end-up-in-the-binary-code do not exist - even on stackexchange I got "GPLv3 + Exception only" answer.

Maybe because the "it-is-going-to-end-up-in-the-binary-code" terms
don't exist for those licenses. The terms make no mention of object
code. Contrast that with the GPL, Apache, BSD-3-clause, and XFree86
licences which specifically talk about object code or binary form.

> There are a few ways where ignoring those licenses is possible:
> 1) Hewlett-Packard and Silicon Graphics Computer Systems, Inc. has voluntarily contributed their code to be distributed under GCC's license and the notices are there for historical reason - can't find anything about that;
> 2) FSF/libstdc++ maintainers has obtained special permissions from Hewlett-Packard and Silicon Graphics Computer Systems, Inc. to distribute their code under GCC's license - again, can't find anything;
> 3) The license actually covers only notes and comments that exist only in header files - the libstdc++'s FAQ contradicts that (see the link in the original email);
> 4) The code that is covered by those licenses exists only in compile time and is thrown away when compiled.
>
> The lawyer can't answer those 4 questions - only the libstdc++ maintainers/authors can.

Those aren't question, they're statements, and I don't even know what
the fourth one means. But anyway, my personal understanding is that
none of them is true. It seems silly to assume that the licence terms
stated in the file are only there accidentally, or some other
convoluted assumption that contradicts the actual text in the files. A
much simpler explanation is that you've misinterpreted the license
terms. Talk to a lawyer if you're concerned.


> To reiterate, I'm completely fine with those additional conditions (albeit it's not very convenient to extract them with regular expressions and gcc -E -C), but I just can't find any mention of "the libstdc++ is licensed under GPLv3 + GCC Runtime Exception, but some of its components have 3rd-party licenses that have additional terms" everywhere else apart from the headers. I even saw an opinion that GCC Runtime Exception exempts me from complying with those licenses, but such an exemption simply can't apply to an included 3rd-party code!
>
> Best regards, thanks for replying.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-26  8:27     ` Jonathan Wakely
@ 2020-05-26  9:03       ` Bo Persson
  2020-05-26 17:00       ` P. -
  1 sibling, 0 replies; 7+ messages in thread
From: Bo Persson @ 2020-05-26  9:03 UTC (permalink / raw)
  To: libstdc++

On 2020-05-26 at 10:27, Jonathan Wakely via Libstdc++ wrote:
> On Sun, 24 May 2020 at 02:09, P. - <pressbuttonsharder@gmail.com> wrote:
>>
>> There are a few ways where ignoring those licenses is possible:
>> 1) Hewlett-Packard and Silicon Graphics Computer Systems, Inc. has voluntarily contributed their code to be distributed under GCC's license and the notices are there for historical reason - can't find anything about that;
>> 2) FSF/libstdc++ maintainers has obtained special permissions from Hewlett-Packard and Silicon Graphics Computer Systems, Inc. to distribute their code under GCC's license - again, can't find anything;
>> 3) The license actually covers only notes and comments that exist only in header files - the libstdc++'s FAQ contradicts that (see the link in the original email);
>> 4) The code that is covered by those licenses exists only in compile time and is thrown away when compiled.
>>
>> The lawyer can't answer those 4 questions - only the libstdc++ maintainers/authors can.
> Those aren't question, they're statements, and I don't even know what
> the fourth one means. But anyway, my personal understanding is that
> none of them is true. It seems silly to assume that the licence terms
> stated in the file are only there accidentally, or some other
> convoluted assumption that contradicts the actual text in the files. A
> much simpler explanation is that you've misinterpreted the license
> terms. Talk to a lawyer if you're concerned.
>

Another prespective for P.:

Suppose Hewlett-Packard were to defend their copyright. They would then 
have so sue just about every software developer in the world. Who would 
then buy their products?!

My guess (I am not a lawyer :-) is that they are not that stupid.


    Bo Persson





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-26  8:27     ` Jonathan Wakely
  2020-05-26  9:03       ` Bo Persson
@ 2020-05-26 17:00       ` P. -
  2020-05-26 17:18         ` Jonathan Wakely
  1 sibling, 1 reply; 7+ messages in thread
From: P. - @ 2020-05-26 17:00 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: libstdc++

> Maybe because the "it-is-going-to-end-up-in-the-binary-code" terms
> don't exist for those licenses. The terms make no mention of object
> code. Contrast that with the GPL, Apache, BSD-3-clause, and XFree86
> licences which specifically talk about object code or binary form.

Ah, that's how you interpret it. I see, since the license in the header
files is akin to the "Old style" MIT (see
https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#Old_Style ),
and MIT-alikes normally don't talk about the object code, there seem to be
a difference in interpretation of MIT and MIT-alike licenses as to whether
to include the license/notices with the binaries (Jonathan, the links are
included for someone who will stumble upon this post while searching; I
believe you know what I'm talking about and don't suggest you to sift
through them):
https://github.com/github/choosealicense.com/issues/257#issuecomment-183517808
https://opensource.stackexchange.com/questions/8161/license-that-requires-attribution-to-end-users
https://opensource.stackexchange.com/questions/4058/what-is-the-point-of-including-the-mit-copyright-text-if-you-use-someones-code
https://www.quora.com/Does-the-MIT-license-require-attribution-in-a-binary-only-distribution
https://llvm.org/docs/DeveloperPolicy.html#legacy-license-structure
https://news.ycombinator.com/item?id=12560056
and so on. Both Chrome and Firefox (under windows) include MIT-licenses for
various libraries in their binary distributions and I saw one Huawei's PDF
also doing this (one of them was for STLPort: document "HUAWEI
ME906s-158&ME909s Series Module Open Source Software Notice" if anyone is
interested). As for myself I'm on the "'this software'/'copy' covers
derivative works/objective code"-side, but there doesn't seem to be any
authoritative source on this so we, indeed, go into "talk to your lawyer"
territory and I'm going to leave it at that.

> Those aren't question, they're statements, and I don't even know what
> the fourth one means.
Thank you for understanding what I was trying to say anyway - it was poor
wording on my part. As for the fourth one - imagine function declarations,
std::enable_if, something like factorial<4>::value in constexpr and so on:
things that usually don't result in a meaningful code generations by
themselves.

> But anyway, my personal understanding is that
> none of them is true.
I started with this premise as well, but was met with "you only have to
follow GPLv3 + GCC Runtime Exception" view. Now that's settled, I have no
more questions; there seems to be only two possible conclusions:

a) If your interpretation is correct then the only license to follow with
binary distribution with dynamic linking is GPLv3+GRE;
b) If "this software" covers objective code, then the inclusion of HP/SGI's
copyrights and text is necessary.

Thank you for your time!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right?
  2020-05-26 17:00       ` P. -
@ 2020-05-26 17:18         ` Jonathan Wakely
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Wakely @ 2020-05-26 17:18 UTC (permalink / raw)
  To: P. -; +Cc: libstdc++

On Tue, 26 May 2020 at 18:00, P. - <pressbuttonsharder@gmail.com> wrote:
>
> > Maybe because the "it-is-going-to-end-up-in-the-binary-code" terms
> > don't exist for those licenses. The terms make no mention of object
> > code. Contrast that with the GPL, Apache, BSD-3-clause, and XFree86
> > licences which specifically talk about object code or binary form.
>
> Ah, that's how you interpret it. I see, since the license in the header files is akin to the "Old style" MIT (see https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#Old_Style ), and MIT-alikes normally don't talk about the object code, there seem to be a difference in interpretation of MIT and MIT-alike licenses as to whether to include the license/notices with the binaries (Jonathan, the links are included for someone who will stumble upon this post while searching; I believe you know what I'm talking about and don't suggest you to sift through them):
> https://github.com/github/choosealicense.com/issues/257#issuecomment-183517808
> https://opensource.stackexchange.com/questions/8161/license-that-requires-attribution-to-end-users
> https://opensource.stackexchange.com/questions/4058/what-is-the-point-of-including-the-mit-copyright-text-if-you-use-someones-code
> https://www.quora.com/Does-the-MIT-license-require-attribution-in-a-binary-only-distribution
> https://llvm.org/docs/DeveloperPolicy.html#legacy-license-structure
> https://news.ycombinator.com/item?id=12560056
> and so on. Both Chrome and Firefox (under windows) include MIT-licenses for various libraries in their binary distributions and I saw one Huawei's PDF also doing this (one of them was for STLPort: document "HUAWEI ME906s-158&ME909s Series Module Open Source Software Notice" if anyone is interested). As for myself I'm on the "'this software'/'copy' covers derivative works/objective code"-side, but there doesn't seem to be any authoritative source on this so we, indeed, go into "talk to your lawyer" territory and I'm going to leave it at that.

As one of your links above says, the libc++ library in LLVM was
previously dual-licensed with the LLVM license (which *does* require
notices to appear in documentation for redistribution in binary form)
and "the MIT license" (not actually the same one as the HP/SGI ones,
but similar) in order to ensure that users don't have to add copyright
notices when compiling binaries using the libc++ headers.

So your interpretation of MIT-alikes is more paranoid than the
interpretation of Apple and Google and other LLVM stakeholders with
very large legal teams that are very cautious about licensing. They
specifically used an MIT-alike to work around the binary
redistribution clause of the standard LLVM license.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-05-26 17:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-23 19:30 libstdc++ still has license conditions of SGI STL on top of GNU GPLv3+GCC Runtime Exception, right? P. -
2020-05-23 22:13 ` Jonathan Wakely
2020-05-24  1:08   ` P. -
2020-05-26  8:27     ` Jonathan Wakely
2020-05-26  9:03       ` Bo Persson
2020-05-26 17:00       ` P. -
2020-05-26 17:18         ` Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).