public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* License compliance on updating gcc runtime libraries
@ 2019-02-27  9:06 hiraku.toyooka
  2019-02-27  9:32 ` Jonathan Wakely
  2019-02-27 12:41 ` Richard Kenner
  0 siblings, 2 replies; 10+ messages in thread
From: hiraku.toyooka @ 2019-02-27  9:06 UTC (permalink / raw)
  To: gcc

Hello,

I have questions about the GCC Runtime Library Exception.

When an equipment vendor distributes an update of shared gcc runtime
libraries (e.g. libgcc_s.so, libstdc++.so) to the shipped equipment
and when the equipment has applications which are dynamically linked to
older release of the shared libraries and which are being linked to
newer ones, in this case, is the exception applied to the newer ones?

I read the exception document(*) and FAQ(**).
I understood that "a work of Target Code formed by combining the Runtime
Library with Independent Modules" could be propagated as non-GPLv3
license, even if "the Runtime Library" was dynamically linked to
"Independent Modules".
I wonder if an update of the shared libraries are regarded as a part of
the "work of Target Code" or "independent library" in the above case.

Could anyone kindly tell me the intention of the exception?

(*) https://www.gnu.org/licenses/gcc-exception-3.1.en.html
(**) https://www.gnu.org/licenses/gcc-exception-3.1-faq.en.html

Best regards,
Hiraku Toyooka

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27  9:06 License compliance on updating gcc runtime libraries hiraku.toyooka
@ 2019-02-27  9:32 ` Jonathan Wakely
  2019-02-28 10:28   ` hiraku.toyooka
  2019-02-27 12:41 ` Richard Kenner
  1 sibling, 1 reply; 10+ messages in thread
From: Jonathan Wakely @ 2019-02-27  9:32 UTC (permalink / raw)
  To: hiraku.toyooka; +Cc: gcc

On Wed, 27 Feb 2019 at 09:06, <hiraku.toyooka@cybertrust.co.jp> wrote:
>
> Hello,
>
> I have questions about the GCC Runtime Library Exception.
>
> When an equipment vendor distributes an update of shared gcc runtime
> libraries (e.g. libgcc_s.so, libstdc++.so) to the shipped equipment
> and when the equipment has applications which are dynamically linked to
> older release of the shared libraries and which are being linked to
> newer ones, in this case, is the exception applied to the newer ones?

The exception applies to the application code, not to libgcc_s.so,
libstdc++.so etc.

Updating the runtime libraries doesn't change anything. If the
applications were covered by the exception when compiled, they are
still covered by the exception later when the runtime libraries are
updated.

> I read the exception document(*) and FAQ(**).
> I understood that "a work of Target Code formed by combining the Runtime
> Library with Independent Modules" could be propagated as non-GPLv3
> license, even if "the Runtime Library" was dynamically linked to
> "Independent Modules".
> I wonder if an update of the shared libraries are regarded as a part of
> the "work of Target Code" or "independent library" in the above case.
>
> Could anyone kindly tell me the intention of the exception?

The intention is that GCC can be used to build non-GPL software.
Updating the shared libraries doesn't change that.

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27  9:06 License compliance on updating gcc runtime libraries hiraku.toyooka
  2019-02-27  9:32 ` Jonathan Wakely
@ 2019-02-27 12:41 ` Richard Kenner
  2019-02-27 13:13   ` Simon Wright
  2019-02-28 10:33   ` hiraku.toyooka
  1 sibling, 2 replies; 10+ messages in thread
From: Richard Kenner @ 2019-02-27 12:41 UTC (permalink / raw)
  To: hiraku.toyooka; +Cc: gcc

> I have questions about the GCC Runtime Library Exception.

Note that nobody can give you definitive answers to questions like this
since they haven't been litigated.  So any answer is an "educated guess".
Having said that ...

> When an equipment vendor distributes an update of shared gcc runtime
> libraries (e.g. libgcc_s.so, libstdc++.so) to the shipped equipment
> and when the equipment has applications which are dynamically linked to
> older release of the shared libraries and which are being linked to
> newer ones, in this case, is the exception applied to the newer ones?
>
> I wonder if an update of the shared libraries are regarded as a part of
> the "work of Target Code" or "independent library" in the above case.

My view is that it's both, depending on the context.  Remember that, from
the perspective of copyright law, executing a program is making a "copy"
of that program.  The GPL (or the Runtime Exception) don't include those
copies in their specific restrictions and limitations, but when you
try to define terms, I think you need to reach the fact that these
are copies.

So:

When the new version of the library is distributed, it's an "independent
library" and (assuming it's GPL, not LGPL), the GPL rules apply to it:
the vendor needs to provide the ability to get source under the usual
GPL rules.

But when an application dynamically links with the (new) library, that
application remains a "work of Target Code" and the GPL+Exception rules
apply to any situation where that work is copied.

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 12:41 ` Richard Kenner
@ 2019-02-27 13:13   ` Simon Wright
  2019-02-27 13:20     ` Richard Kenner
  2019-02-28 10:33   ` hiraku.toyooka
  1 sibling, 1 reply; 10+ messages in thread
From: Simon Wright @ 2019-02-27 13:13 UTC (permalink / raw)
  To: Richard Kenner; +Cc: hiraku.toyooka, gcc

On 27 Feb 2019, at 12:41, Richard Kenner <kenner@vlsi1.ultra.nyu.edu> wrote:
> 
> Remember that, from the perspective of copyright law, executing a program is making a "copy"
> of that program.

Has that (rather extreme) view been litigated?

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 13:13   ` Simon Wright
@ 2019-02-27 13:20     ` Richard Kenner
  2019-02-27 14:22       ` Zan Lynx
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Kenner @ 2019-02-27 13:20 UTC (permalink / raw)
  To: simon; +Cc: gcc, hiraku.toyooka

>      Remember that, from the perspective of copyright law, executing a
>      program is making a "copy"
>      of that program.
> 
> Has that (rather extreme) view been litigated?

That's actually not extreme, but pretty accepted.  And yes, that has
been litigated.  And you can see that in the GPL in the definition of
"propagate": the exclusion of executing it on a computer wouldn't be
necessary if that weren't considered a copy under copyright law.

Much more extreme positions have been in course rulings.  I'm aware of
a case where a jury ruled that linking a program with a library made
the library a derivative work of the program in all cases (it clearly
is in some).  That case was never appealed, so it (luckily) doesn't
establish a precedent.

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 13:20     ` Richard Kenner
@ 2019-02-27 14:22       ` Zan Lynx
  2019-02-27 18:37         ` Richard Kenner
  0 siblings, 1 reply; 10+ messages in thread
From: Zan Lynx @ 2019-02-27 14:22 UTC (permalink / raw)
  To: gcc

On 2/27/19 6:20 AM, Richard Kenner wrote:
> That's actually not extreme, but pretty accepted.  And yes, that has
> been litigated.  And you can see that in the GPL in the definition of
> "propagate": the exclusion of executing it on a computer wouldn't be
> necessary if that weren't considered a copy under copyright law.

That depends on your local copyright law. Some, like the US, have
language saying that copies necessary for usual operation are *not*
covered under copyright.

-- 
                Knowledge is Power -- Power Corrupts
                        Study Hard -- Be Evil

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 14:22       ` Zan Lynx
@ 2019-02-27 18:37         ` Richard Kenner
  2019-02-27 19:26           ` Simon Wright
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Kenner @ 2019-02-27 18:37 UTC (permalink / raw)
  To: zlynx; +Cc: gcc

> That depends on your local copyright law. Some, like the US, have
> language saying that copies necessary for usual operation are *not*
> covered under copyright.

I'm refering to US law.  Where, precisely, is the language you are
referring to?  Note that there are two separate issues:

(1) Whether executing a program is considered making a copy under
copyright law.

(2) Whether somebody has an implicit right to make such a copy.

Which of these two are you addressing?

Note that there are cases where copyright law acknowleges that
something is a copy, but permits making that copy.  "Fair use" is
probably the best known of those.

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 18:37         ` Richard Kenner
@ 2019-02-27 19:26           ` Simon Wright
  0 siblings, 0 replies; 10+ messages in thread
From: Simon Wright @ 2019-02-27 19:26 UTC (permalink / raw)
  To: Richard Kenner; +Cc: zlynx, gcc

On 27 Feb 2019, at 18:37, Richard Kenner <kenner@vlsi1.ultra.nyu.edu> wrote:
> 
> 1) Whether executing a program is considered making a copy under
> copyright law.

I had a look through some of the published judgements, and it's clear that in the US at least copying into RAM (for whatever purpose, and provided the copy has more than fleeting duration) counts as copying for copyright purposes.

I can't help feeling (however useless feelings are in the face of the 9th Circuit) that a software publisher should be able to rely on other methods to retain control of their proprietary software. After all, ARM-based MCUs are capable of executing code directly from Flash, with no copying at all.

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27  9:32 ` Jonathan Wakely
@ 2019-02-28 10:28   ` hiraku.toyooka
  0 siblings, 0 replies; 10+ messages in thread
From: hiraku.toyooka @ 2019-02-28 10:28 UTC (permalink / raw)
  To: jwakely.gcc; +Cc: gcc

Thank you for your reply.

> The exception applies to the application code, not to libgcc_s.so,
> libstdc++.so etc.

I noticed my prerequisite might be wrong.
I thought that the shared runtime libraries are also included in the
"work of Target Code formed by combining the Runtime Library with
Independent Modules" when they are distributed with applications.
But I read the FAQ again. It says:

> Note that if you distribute libstdc++ as an independent library, you
> will need to follow the terms of the GPL when doing so. For example,
> if you distribute the library itself in object code form, you will
> need to provide source code to your recipients using one of the
> methods listed in section 6 of GPLv3.

So the update case is same. The vendor needs to follow the terms of the
GPL for the shared runtime libraries.

Best Regards,
Hiraku Toyooka

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

* Re: License compliance on updating gcc runtime libraries
  2019-02-27 12:41 ` Richard Kenner
  2019-02-27 13:13   ` Simon Wright
@ 2019-02-28 10:33   ` hiraku.toyooka
  1 sibling, 0 replies; 10+ messages in thread
From: hiraku.toyooka @ 2019-02-28 10:33 UTC (permalink / raw)
  To: kenner; +Cc: gcc

> Note that nobody can give you definitive answers to questions like this
> since they haven't been litigated.  So any answer is an "educated guess".

Yes. I understand I cannot get definitive answers for license interpretation.

> My view is that it's both, depending on the context.  Remember that, from
> the perspective of copyright law, executing a program is making a "copy"
> of that program.  The GPL (or the Runtime Exception) don't include those
> copies in their specific restrictions and limitations, but when you
> try to define terms, I think you need to reach the fact that these
> are copies.
>
> So:
>
> When the new version of the library is distributed, it's an "independent
> library" and (assuming it's GPL, not LGPL), the GPL rules apply to it:
> the vendor needs to provide the ability to get source under the usual
> GPL rules.
>
> But when an application dynamically links with the (new) library, that
> application remains a "work of Target Code" and the GPL+Exception rules
> apply to any situation where that work is copied.

Thank you for your clarification.
I understand the new version of the library will be an "independent library".

Best Regards,
Hiraku Toyooka

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

end of thread, other threads:[~2019-02-28 10:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-27  9:06 License compliance on updating gcc runtime libraries hiraku.toyooka
2019-02-27  9:32 ` Jonathan Wakely
2019-02-28 10:28   ` hiraku.toyooka
2019-02-27 12:41 ` Richard Kenner
2019-02-27 13:13   ` Simon Wright
2019-02-27 13:20     ` Richard Kenner
2019-02-27 14:22       ` Zan Lynx
2019-02-27 18:37         ` Richard Kenner
2019-02-27 19:26           ` Simon Wright
2019-02-28 10:33   ` hiraku.toyooka

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).