comp.lang.ada
 help / color / mirror / Atom feed
* License of that GNAT patch ?
@ 2011-10-05 15:00 Yannick Duchêne (Hibou57)
  2011-10-05 15:37 ` Ludovic Brenta
  2011-10-06  7:13 ` Simon Wright
  0 siblings, 2 replies; 10+ messages in thread
From: Yannick Duchêne (Hibou57) @ 2011-10-05 15:00 UTC (permalink / raw)


Hi all,

For some test, I wanted to use a Static_Predicate for a subtype (Ada  
2012), but GNAT complained “file.adb:n:n: aspect identifier expected”. So  
I searched the web for GNAT and Static_Predicate, and found this:

http://old.nabble.com/-Ada--Implement-new-aspects-Dynamic_Predicate-and-Static_Predicate-td32168561.html

Seems this patch must be applied in order to have GNAT to support  
Static_Predicate and Dynamic_Predicate. However, the patch contains no  
license information, and I would like to know how I should handle such a  
case and any future similar cases. The GNAT compiler I use is one with the  
GCC Runtime Exception, which I wish to preserve. Is a patch like this to  
be considered part of runtime or not ? It is part of the compiler from  
some point of view, but also supposed to drive generation of runtime code,  
so I feel dubious.

I don't know Arnaud Charlet. Member of AdaCore staff ?

After that, may also have to seek for any other relevant patches, as it  
seems there are some.

With thanks for any track


-- 
“Syntactic sugar causes cancer of the semi-colons.”  [Epigrams on  
Programming — Alan J. — P. Yale University]
“Structured Programming supports the law of the excluded muddle.” [Idem]
Java: Write once, Never revisit



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

* Re: License of that GNAT patch ?
  2011-10-05 15:00 License of that GNAT patch ? Yannick Duchêne (Hibou57)
@ 2011-10-05 15:37 ` Ludovic Brenta
  2011-10-05 20:02   ` Georg Bauhaus
  2011-10-06  7:13 ` Simon Wright
  1 sibling, 1 reply; 10+ messages in thread
From: Ludovic Brenta @ 2011-10-05 15:37 UTC (permalink / raw)


Yannick Duchêne wrote on comp.lang.ada:
> Hi all,
>
> For some test, I wanted to use a Static_Predicate for a subtype (Ada  
> 2012), but GNAT complained “file.adb:n:n: aspect identifier expected”. So  
> I searched the web for GNAT and Static_Predicate, and found this:
>
> http://old.nabble.com/-Ada--Implement-new-aspects-Dynamic_Predicate-a...

Surely you meant to say:
http://gcc.gnu.org/ml/gcc-patches/2011-08/msg00026.html

Why use an imperfect copy when the original is available?

> Seems this patch must be applied in order to have GNAT to support  
> Static_Predicate and Dynamic_Predicate. However, the patch contains no  
> license information, and I would like to know how I should handle such a  
> case and any future similar cases. The GNAT compiler I use is one with the  
> GCC Runtime Exception, which I wish to preserve. Is a patch like this to  
> be considered part of runtime or not ? It is part of the compiler from  
> some point of view, but also supposed to drive generation of runtime code,  
> so I feel dubious.

- This patch belongs to the FSF.
- All the files affected by this patch belong to the FSF.
- The patch does not change the license of the files.

Therefore, the license that applies is the license of each file
affected by the patch.

sinfo.ad[bs]: GPLv3 with Runtime Library Exception.
aspects.ad[bs]: GPLv3 with Runtime Library Exception.
sem_ch13.adb: GPLv3.
snames.ads-tmpl: GPLv3 with Runtime Library Exception.

> I don't know Arnaud Charlet. Member of AdaCore staff ?

Yes.  One of his roles at AdaCore is to submit the patches written by
other members of the company (in this case Robert Dewar himself) to
the FSF, with copyright assignment.

> After that, may also have to seek for any other relevant patches, as it  
> seems there are some.

Your best bet is to grab a copy of the Git repository containing the
sources of GCC along with their entire history.  git will allow you to
browse the changelog, bisect, annotate etc. to find the patches of
interest.  You can even create your own private branch if you like.

--
Ludovic Brenta.
The Chief Management Office Officer innovates challenges.



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

* Re: License of that GNAT patch ?
  2011-10-05 15:37 ` Ludovic Brenta
@ 2011-10-05 20:02   ` Georg Bauhaus
  2011-10-05 20:11     ` Ludovic Brenta
  0 siblings, 1 reply; 10+ messages in thread
From: Georg Bauhaus @ 2011-10-05 20:02 UTC (permalink / raw)


On 05.10.11 17:37, Ludovic Brenta wrote:

>> Seems this patch must be applied in order to have GNAT to support  
>> Static_Predicate and Dynamic_Predicate. However, the patch contains no  
>> license information, and I would like to know how I should handle such a  
>> case and any future similar cases. The GNAT compiler I use is one with the  
>> GCC Runtime Exception, which I wish to preserve. Is a patch like this to  
>> be considered part of runtime or not ? It is part of the compiler from  
>> some point of view, but also supposed to drive generation of runtime code,  
>> so I feel dubious.
> 
> - This patch belongs to the FSF.
> - All the files affected by this patch belong to the FSF.
> - The patch does not change the license of the files.
> 
> Therefore, the license 

(which is the GPL (even when with exception))

> that applies is the license of each file
> affected by the patch.

I understand that this specific patch belongs to the FSF
and that, therefore, FSF has the right to make an exception?

Is it correct that changing GMGPLed software, e.g.
when creating a derivative work, still means that
the GPL applies to it without exception?  ("If you link
*this* unit ...")

I'm thinking of the following scenario:

A has published some software X, under the GMGPL.

B modifies X, on behalf of C.

B "wishes" to keep the exception. (Well, because C asked
B that it be kept). Therefore C can later use the X that B
has modified, which would still be GMGPLed, for making proprietary
closed source software products that includes original X
with B's modifications. (No longer linking *this* unit...)




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

* Re: License of that GNAT patch ?
  2011-10-05 20:02   ` Georg Bauhaus
@ 2011-10-05 20:11     ` Ludovic Brenta
  2011-10-05 23:10       ` Georg Bauhaus
  0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Brenta @ 2011-10-05 20:11 UTC (permalink / raw)


Georg Bauhaus writes on comp.lang.ada:
> I understand that this specific patch belongs to the FSF and that,
> therefore, FSF has the right to make an exception?

The FSF is not making an exception, the FSF decides on the license of
each file.

> Is it correct that changing GMGPLed software, e.g.  when creating a
> derivative work, still means that the GPL applies to it without
> exception?  ("If you link *this* unit ...")

No.  If you receive a file under the GPLv3 with Runtime Library
Exception, you may:

- incorporate this file into proprietary software and distribute that
- redistribute the file with unchanged license
- redistribute the file under pure GPLv3

at your choice.

> I'm thinking of the following scenario:
>
> A has published some software X, under the GMGPL.
>
> B modifies X, on behalf of C.
>
> B "wishes" to keep the exception. (Well, because C asked B that it be
> kept). Therefore C can later use the X that B has modified, which
> would still be GMGPLed, for making proprietary closed source software
> products that includes original X with B's modifications. (No longer
> linking *this* unit...)

Correct.  In this scenario, the license of the file is GMGPL all along,
permitting inclusion into proprietary software.  What is your point?

-- 
Ludovic Brenta.
The reporting unit should proactively connect the dots, while the
stakeholders prioritize the flexible, underlying, soft cycle issues.



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

* Re: License of that GNAT patch ?
  2011-10-05 20:11     ` Ludovic Brenta
@ 2011-10-05 23:10       ` Georg Bauhaus
  2011-10-05 23:51         ` Yannick Duchêne (Hibou57)
  2011-10-06  7:40         ` Ludovic Brenta
  0 siblings, 2 replies; 10+ messages in thread
From: Georg Bauhaus @ 2011-10-05 23:10 UTC (permalink / raw)


On 05.10.11 22:11, Ludovic Brenta wrote:
> Georg Bauhaus writes on comp.lang.ada:
>> I understand that this specific patch belongs to the FSF and that,
>> therefore, FSF has the right to make an exception?
>
> The FSF is not making an exception, the FSF decides on the license of
> each file.

Which is, as stated, the GPLv3 with a special exception described
in the GCC Runtime Library Exception.

>> Is it correct that changing GMGPLed software, e.g.  when creating a
>> derivative work, still means that the GPL applies to it without
>> exception?  ("If you link *this* unit ...")
>
> No.  If you receive a file under the GPLv3 with Runtime Library
> Exception, you may:
>
> - incorporate this file into proprietary software and distribute that
> - redistribute the file with unchanged license
> - redistribute the file under pure GPLv3
>
> at your choice.

My question was referring to a changed library, in this case a patched
library. The library would, therefore, not just be incorporated, but
would be changed. Only then is this different library to be incorporated.

>> I'm thinking of the following scenario:
>>
>> A has published some software X, under the GMGPL.
>>
>> B modifies X, on behalf of C.
>>
>> B "wishes" to keep the exception. (Well, because C asked B that it be
>> kept). Therefore C can later use the X that B has modified, which
>> would still be GMGPLed, for making proprietary closed source software
>> products that includes original X with B's modifications. (No longer
>> linking *this* unit...)
>
> Correct.  In this scenario, the license of the file is GMGPL all along,
> permitting inclusion into proprietary software.  What is your point?

The point is changing software that is licensed under GPLv3 with
exception.

Neither the GMGPL (its exception) nor the GCC Runtime Library Exception,
unlike the Java classpath exception, say something about making changes
to the software they cover. The exception of the GMGPL is about instances
and linking. The GCC Runtime Library Exception is about target code that
GCC produces from its own library and independent modules.
It does not itself say something about changing the library.
(And then doing things mentioned above.)

Consider a library that is based on the GCC runtime library
by being a (sufficiently) patched version thereof.

When does patching imply "based on"?

Who has the right to say how to use this new, patched library?

What if there is no assignment of copyright to settle ownership
of this new work?

If this isn't a a legal issue, wow, then I imagine that any Ada shop
can take whatever they need from the whole of the FSF Ada body,
modify it in whichever way they like, and distribute binaries
made from the result, without any obligation regarding sources.
(They have been patching sources to which a linking exception applies...
I can't help but think that a linking permission does not imply
more far reaching permissions.)
Sounds like a general presumption in the sense of weakening copyleft,



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

* Re: License of that GNAT patch ?
  2011-10-05 23:10       ` Georg Bauhaus
@ 2011-10-05 23:51         ` Yannick Duchêne (Hibou57)
  2011-10-06  7:40         ` Ludovic Brenta
  1 sibling, 0 replies; 10+ messages in thread
From: Yannick Duchêne (Hibou57) @ 2011-10-05 23:51 UTC (permalink / raw)


Le Thu, 06 Oct 2011 01:10:54 +0200, Georg Bauhaus  
<rm.dash-bauhaus@futureapps.de> a écrit:

> Who has the right to say how to use this new, patched library?
Oops, just hope I'm OK (red-face)

> What if there is no assignment of copyright to settle ownership
> of this new work?
Don't know for GMGPL or GPL with GCC Runtime Exception, but if you want to  
be sure, you may consider one of Simplified BSD or MIT licenses, which are  
explicit about this case (providing I've understood your requirements).


-- 
“Syntactic sugar causes cancer of the semi-colons.”  [Epigrams on  
Programming — Alan J. — P. Yale University]
“Structured Programming supports the law of the excluded muddle.” [Idem]
Java: Write once, Never revisit



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

* Re: License of that GNAT patch ?
  2011-10-05 15:00 License of that GNAT patch ? Yannick Duchêne (Hibou57)
  2011-10-05 15:37 ` Ludovic Brenta
@ 2011-10-06  7:13 ` Simon Wright
  1 sibling, 0 replies; 10+ messages in thread
From: Simon Wright @ 2011-10-06  7:13 UTC (permalink / raw)


"Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr> writes:

> Seems this patch must be applied in order to have GNAT to support
> Static_Predicate and Dynamic_Predicate. However, the patch contains no
> license information, and I would like to know how I should handle such
> a case and any future similar cases. The GNAT compiler I use is one
> with the GCC Runtime Exception, which I wish to preserve. Is a patch
> like this to be considered part of runtime or not ? It is part of the
> compiler from some point of view, but also supposed to drive
> generation of runtime code, so I feel dubious.

Section 5 of GPLv3[1] seems pretty clear to me! (but IANAL).

The GCC Runtime Library Exception applies to the runtime library, not to
compiler frontend internals, so I expect that the files concerned (which
you could check) don't have the exception anyway and are subject to the
full GPL.

[1] http://www.gnu.org/licenses/gpl-3.0.html



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

* Re: License of that GNAT patch ?
  2011-10-05 23:10       ` Georg Bauhaus
  2011-10-05 23:51         ` Yannick Duchêne (Hibou57)
@ 2011-10-06  7:40         ` Ludovic Brenta
  2011-10-06 12:24           ` Georg Bauhaus
  1 sibling, 1 reply; 10+ messages in thread
From: Ludovic Brenta @ 2011-10-06  7:40 UTC (permalink / raw)


Georg Bauhaus wrote on comp.lang.ada:
>> No.  If you receive a file under the GPLv3 with Runtime Library
>> Exception, you may:
>>
>> - incorporate this file into proprietary software and distribute that
>> - redistribute the file with unchanged license
>> - redistribute the file under pure GPLv3
>>
>> at your choice.
>
> My question was referring to a changed library, in this case a patched
> library. The library would, therefore, not just be incorporated, but
> would be changed. Only then is this different library to be incorporated.

I thought this was clear for anyone who has been near GNAT or GCC.
This case is foreseen and allowed in the GPLv3 with Runtime Library
Exception.

>> Correct.  In this scenario, the license of the file is GMGPL all along,
>> permitting inclusion into proprietary software.  What is your point?
>
> The point is changing software that is licensed under GPLv3 with
> exception.

This is allowed.  The whole point of free software is that people can
change it.  I still don't understand what you are driving at.

> Neither the GMGPL (its exception) nor the GCC Runtime Library Exception,
> unlike the Java classpath exception, say something about making changes
> to the software they cover. The exception of the GMGPL is about instances
> and linking. The GCC Runtime Library Exception is about target code that
> GCC produces from its own library and independent modules.
> It does not itself say something about changing the library.
> (And then doing things mentioned above.)

I think you need to re-read the GPLv3...

> Consider a library that is based on the GCC runtime library
> by being a (sufficiently) patched version thereof.
>
> When does patching imply "based on"?

When the patch refers to copyrighted material.

> Who has the right to say how to use this new, patched library?

The owner of the copyright of the original work.

> What if there is no assignment of copyright to settle ownership
> of this new work?

In this case, the copyright on the derivative work belongs to all
contributors and you enter license hell as Linux illustrates.

The FSF requires copyright assignment precisely to avoid this license
hell.

> If this isn't a a legal issue, wow, then I imagine that any Ada shop
> can take whatever they need from the whole of the FSF Ada body,
> modify it in whichever way they like,

Yes

> and distribute binaries
> made from the result, without any obligation regarding sources.

This is true only of the subset of the Ada sources that are covered by
the GPLv3 with Runtime Library Exception.  The compiler is covered by
the pure GPL.

> (They have been patching sources to which a linking exception applies...
> I can't help but think that a linking permission does not imply
> more far reaching permissions.)
> Sounds like a general presumption in the sense of weakening copyleft,

Are you trying to say that the Runtime Library Exception weakens the
GPL?  Of course it does, and this is the whole point of the Runtime
Library Exception, and that's why it is called an Exception!  But the
political reason for weakening the GPL is not to encourage
freeloaders, but to encourage the switch from proprietary compilers
and runtime libraries to free ones, even if the software built on top
of the runtime library is proprietary.

--
Ludovic Brenta.



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

* Re: License of that GNAT patch ?
  2011-10-06  7:40         ` Ludovic Brenta
@ 2011-10-06 12:24           ` Georg Bauhaus
  2011-10-06 13:02             ` Simon Wright
  0 siblings, 1 reply; 10+ messages in thread
From: Georg Bauhaus @ 2011-10-06 12:24 UTC (permalink / raw)


On 06.10.11 09:40, Ludovic Brenta wrote:

> This is allowed.  The whole point of free software is that people can
> change it.  I still don't understand what you are driving at.

Indeed. Change it with the proviso that .... Not just change it.


>> What if there is no assignment of copyright to settle ownership
>> of this new work?
> 
> In this case, the copyright on the derivative work belongs to all
> contributors and you enter license hell as Linux illustrates.

I wanted to emphasize ownership issues.


>> If this isn't a a legal issue, wow, then I imagine that any Ada shop
>> can take whatever they need from the whole of the FSF Ada body,
>> modify it in whichever way they like,
> 
> Yes
> 
>> and distribute binaries
>> made from the result, without any obligation regarding sources.
> 
> This is true only of the subset of the Ada sources that are covered by
> the GPLv3 with Runtime Library Exception.

I doubt that said exception allows the creation and distribution
of derivative works, including substantial changes to said library
itself, with additional permissions added again, but without agreement
on additional permissions.  The exception says it is about linking
and such only, not changing.

>> (They have been patching sources to which a linking exception applies...
>> I can't help but think that a linking permission does not imply
>> more far reaching permissions.)
>> Sounds like a general presumption in the sense of weakening copyleft,
> 
> Are you trying to say that the Runtime Library Exception weakens the
> GPL? 

No, quite the opposite. Roughly speaking, the Runtime Library
Exception enforces the GPL by being an exception, saying you
have "exceptional rights" only in certain circumstances.
For example, when yours is an Eligible Compilation Process.

I'm saying that thinking that exceptions allow others to change
the software and re-apply the exception is (a) something the
Java classpath exception talks about, but (b) neither the GMGPL nor
the GPL Runtime Exception talk about: do the same exceptional
permissions apply if you *change* the GPLed work to which the
exception (expressly for linking and such) applies.
 The GPLv3 says something about the *removal* of additional
permissions. When it talks about *adding* additional
permissions, then only for the material that some someone has
added. In the non-Java case, one cannot simply add permissions to
the entire patched work unless there is permission to do so, that's
my point (and question). And since said exceptions say: *this*
software, not any changed software...

My understanding is that, in general, if you instantiate or link
units from, e.g., GMGPLed software, you can distribute closed source
products. If you change GMGPLed software, you cannot do the same,
because that is not what the exceptional permission says.

Yannick said,

"the patch contains no license information, and I would like to know
 how I should handle such a case and any future similar cases.
 The GNAT compiler I use is one with the GCC Runtime Exception,
 which I wish to preserve."

I don't see how the GCC Runtime Exception can be re-applied by
anyone to any changed runtime without agreements.

My comment, admittedly, tries to be more general:

If B takes A's software and that software carries a linking(!) exception,
then B modifies A's software,
then B sends the modified software to C (but not to A and no assignment),
then C produces proprietary software P,
then C distributes P in closed source form,
then everything that the GPL is about is ineffective and IMHO not the
intent of an exceptional permission to link A's software as is.

All of this hinges on whether or not the GCC Runtime Exception
allows, without copyright assignment, linking privately *changed*
runtimes into proprietary binary products and distributing closed
source only.  I don't think so, and be stunned if I'm wrong.



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

* Re: License of that GNAT patch ?
  2011-10-06 12:24           ` Georg Bauhaus
@ 2011-10-06 13:02             ` Simon Wright
  0 siblings, 0 replies; 10+ messages in thread
From: Simon Wright @ 2011-10-06 13:02 UTC (permalink / raw)


Georg Bauhaus <rm.dash-bauhaus@futureapps.de> writes:

> All of this hinges on whether or not the GCC Runtime Exception allows,
> without copyright assignment, linking privately *changed* runtimes
> into proprietary binary products and distributing closed source only.
> I don't think so, and be stunned if I'm wrong.

When GPLv3(5) says "You may convey a work based on the Program, or the
modifications to produce it from the Program" it's talking about (in
this case) the GCC compiler and the Ada RTS. (c) adds "This License will
therefore apply, along with any applicable section 7 additional terms,
to the whole of the work, and all its parts".

So there's some sort of case that the section 7 additional terms aren't
removed by patching the RTS.



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

end of thread, other threads:[~2011-10-06 13:02 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-05 15:00 License of that GNAT patch ? Yannick Duchêne (Hibou57)
2011-10-05 15:37 ` Ludovic Brenta
2011-10-05 20:02   ` Georg Bauhaus
2011-10-05 20:11     ` Ludovic Brenta
2011-10-05 23:10       ` Georg Bauhaus
2011-10-05 23:51         ` Yannick Duchêne (Hibou57)
2011-10-06  7:40         ` Ludovic Brenta
2011-10-06 12:24           ` Georg Bauhaus
2011-10-06 13:02             ` Simon Wright
2011-10-06  7:13 ` Simon Wright

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox