Hi, I''d like to add coverage support to Xen. I imported some headers from Linux kernel which mainly came from gcov-io.h and the structures used internally by GCC. Our problem is currently about the license. In gcov-io.h is stated that license is mainly GPL2 which the exception that linking the "library" with other files does not cause these files to be GPL2. Now however I''m not linking to any library but just using the structure declaration inside the header to produce a blob that is currently converted into GCC files by an external utility (Xen has not file system so we extract coverage information). It''s not a problem to use these headers/structure from Xen (which is GPL2) but we''d like to have these defines in our public include headers. The license however of these headers is quite open and allow to be used for instance in commercial programs. How the license would affect these programs? Another question we have is the stability of these structures. Can we just check the version field of gcov_info to make sure that the internal structure is not changed or is it expected that even this field would change (for instance position or size inside the structure) ? Regards, Frediano
On Mon, Feb 4, 2013 at 6:54 AM, Frediano Ziglio <frediano.ziglio@citrix.com> wrote:> > I imported some headers from Linux kernel which mainly came from > gcov-io.h and the structures used internally by GCC. > > Our problem is currently about the license. In gcov-io.h is stated that > license is mainly GPL2 which the exception that linking the "library" > with other files does not cause these files to be GPL2. Now however I''m > not linking to any library but just using the structure declaration > inside the header to produce a blob that is currently converted into GCC > files by an external utility (Xen has not file system so we extract > coverage information). > > It''s not a problem to use these headers/structure from Xen (which is > GPL2) but we''d like to have these defines in our public include headers. > The license however of these headers is quite open and allow to be used > for instance in commercial programs. How the license would affect these > programs? > > Another question we have is the stability of these structures. Can we > just check the version field of gcov_info to make sure that the internal > structure is not changed or is it expected that even this field would > change (for instance position or size inside the structure) ?You neglected to say which version of GCC you are using. In current GCC the header file gcov-io.h is under GPLv3 with the GCC Runtime Library Exception 3.1 (http://www.gnu.org/licenses/gcc-exception-3.1.html). I don''t fully grasp the situation in which a user of xen would want to #include this header file. But if a program does #include the header file, then in the strictest possible reading that program would be covered by GPLv3 plus the GCC Runtime Library Exception. That would impose certain requirements on the program, basically that if it is compiled by a version of GCC with a proprietary extension, the program may not be distributed in binary form. Those requirements already apply to essentially any program compiled by a current version of GCC. Inciuding the header file gcov-io.h should not add any additional requirements. Hope this helps. This is of course not legal advice, but you are unlikely to get good legal advice in this area. Ian
>>> On 04.02.13 at 17:46, Ian Lance Taylor <iant@google.com> wrote: > On Mon, Feb 4, 2013 at 6:54 AM, Frediano Ziglio > <frediano.ziglio@citrix.com> wrote: >> >> I imported some headers from Linux kernel which mainly came from >> gcov-io.h and the structures used internally by GCC. >> >> Our problem is currently about the license. In gcov-io.h is stated that >> license is mainly GPL2 which the exception that linking the "library" >> with other files does not cause these files to be GPL2. Now however I''m >> not linking to any library but just using the structure declaration >> inside the header to produce a blob that is currently converted into GCC >> files by an external utility (Xen has not file system so we extract >> coverage information). >> >> It''s not a problem to use these headers/structure from Xen (which is >> GPL2) but we''d like to have these defines in our public include headers. >> The license however of these headers is quite open and allow to be used >> for instance in commercial programs. How the license would affect these >> programs? >> >> Another question we have is the stability of these structures. Can we >> just check the version field of gcov_info to make sure that the internal >> structure is not changed or is it expected that even this field would >> change (for instance position or size inside the structure) ? > > You neglected to say which version of GCC you are using. In current > GCC the header file gcov-io.h is under GPLv3 with the GCC Runtime > Library Exception 3.1 > (http://www.gnu.org/licenses/gcc-exception-3.1.html). > > I don''t fully grasp the situation in which a user of xen would want to > #include this header file. But if a program does #include the header > file, then in the strictest possible reading that program would be > covered by GPLv3 plus the GCC Runtime Library Exception. That would > impose certain requirements on the program, basically that if it is > compiled by a version of GCC with a proprietary extension, the program > may not be distributed in binary form.You probably meant "binary only form" here? Jan> Those requirements already > apply to essentially any program compiled by a current version of GCC. > Inciuding the header file gcov-io.h should not add any additional > requirements. > > Hope this helps. This is of course not legal advice, but you are > unlikely to get good legal advice in this area. > > Ian > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
On Mon, Feb 4, 2013 at 9:05 AM, Jan Beulich <JBeulich@suse.com> wrote:>>>> On 04.02.13 at 17:46, Ian Lance Taylor <iant@google.com> wrote: >> On Mon, Feb 4, 2013 at 6:54 AM, Frediano Ziglio >> <frediano.ziglio@citrix.com> wrote: >>> >>> I imported some headers from Linux kernel which mainly came from >>> gcov-io.h and the structures used internally by GCC. >>> >>> Our problem is currently about the license. In gcov-io.h is stated that >>> license is mainly GPL2 which the exception that linking the "library" >>> with other files does not cause these files to be GPL2. Now however I''m >>> not linking to any library but just using the structure declaration >>> inside the header to produce a blob that is currently converted into GCC >>> files by an external utility (Xen has not file system so we extract >>> coverage information). >>> >>> It''s not a problem to use these headers/structure from Xen (which is >>> GPL2) but we''d like to have these defines in our public include headers. >>> The license however of these headers is quite open and allow to be used >>> for instance in commercial programs. How the license would affect these >>> programs? >>> >>> Another question we have is the stability of these structures. Can we >>> just check the version field of gcov_info to make sure that the internal >>> structure is not changed or is it expected that even this field would >>> change (for instance position or size inside the structure) ? >> >> You neglected to say which version of GCC you are using. In current >> GCC the header file gcov-io.h is under GPLv3 with the GCC Runtime >> Library Exception 3.1 >> (http://www.gnu.org/licenses/gcc-exception-3.1.html). >> >> I don''t fully grasp the situation in which a user of xen would want to >> #include this header file. But if a program does #include the header >> file, then in the strictest possible reading that program would be >> covered by GPLv3 plus the GCC Runtime Library Exception. That would >> impose certain requirements on the program, basically that if it is >> compiled by a version of GCC with a proprietary extension, the program >> may not be distributed in binary form. > > You probably meant "binary only form" here?Yes. Thanks. It is (of course) OK to distribute in binary form if sources are also included, or made available. Ian
Il 04/02/2013 17:46, Ian Lance Taylor ha scritto:> On Mon, Feb 4, 2013 at 6:54 AM, Frediano Ziglio > <frediano.ziglio@citrix.com> wrote: >> >> I imported some headers from Linux kernel which mainly came from >> gcov-io.h and the structures used internally by GCC. >> >> Our problem is currently about the license. In gcov-io.h is stated that >> license is mainly GPL2 which the exception that linking the "library" >> with other files does not cause these files to be GPL2. Now however I''m >> not linking to any library but just using the structure declaration >> inside the header to produce a blob that is currently converted into GCC >> files by an external utility (Xen has not file system so we extract >> coverage information). >> >> It''s not a problem to use these headers/structure from Xen (which is >> GPL2) but we''d like to have these defines in our public include headers. >> The license however of these headers is quite open and allow to be used >> for instance in commercial programs. How the license would affect these >> programs? >> >> Another question we have is the stability of these structures. Can we >> just check the version field of gcov_info to make sure that the internal >> structure is not changed or is it expected that even this field would >> change (for instance position or size inside the structure) ? > > You neglected to say which version of GCC you are using. In current > GCC the header file gcov-io.h is under GPLv3 with the GCC Runtime > Library Exception 3.1 > (http://www.gnu.org/licenses/gcc-exception-3.1.html).Would it make sense to release the header file under a permissive license or even public domain? The information there is just ABI, it''s dubious that it is copyrightable at all. If two colleagues of Frediano''s did a clean-room reverse engineering, the result would really be indistiguishable from the original. Paolo
On Mon, Feb 4, 2013 at 12:56 PM, Paolo Bonzini <bonzini@gnu.org> wrote:> > Would it make sense to release the header file under a permissive > license or even public domain? > > The information there is just ABI, it''s dubious that it is copyrightable > at all. If two colleagues of Frediano''s did a clean-room reverse > engineering, the result would really be indistiguishable from the original.I agree that the information in gcov-io.h is almost certainly uncopyrightable. But since it''s under the GCC Runtime Library Exception, which applies to approximately every program compiled by GCC, I don''t think it makes much difference one way or another. I''m not opposed to asking the FSF to relicense the file, I just don''t think it matters. Ian
On Mon, 2013-02-04 at 13:24 -0800, Ian Lance Taylor wrote:> On Mon, Feb 4, 2013 at 12:56 PM, Paolo Bonzini <bonzini@gnu.org> wrote: > > > > Would it make sense to release the header file under a permissive > > license or even public domain? > > > > The information there is just ABI, it''s dubious that it is copyrightable > > at all. If two colleagues of Frediano''s did a clean-room reverse > > engineering, the result would really be indistiguishable from the original. > > I agree that the information in gcov-io.h is almost certainly uncopyrightable. > > But since it''s under the GCC Runtime Library Exception, which applies > to approximately every program compiled by GCC, I don''t think it makes > much difference one way or another. I''m not opposed to asking the FSF > to relicense the file, I just don''t think it matters. > > IanHi, some updated. I used an header from Linux which is derived from this GCC header when GCC was still GPL2 so GPL3 does not apply. Xen is GPL2 too so there is no problem using this header in Xen. The problem is including in the public headers. Actually I changed patch to use the header only privately in Xen. I wrote a new header with the format that Xen export. However somebody could complaint that the format I used to export came from GCC ABI documented in the header. Am I too paranoid? Frediano
Il 06/02/2013 12:22, Frediano Ziglio ha scritto:> > I used an header from Linux which is derived from this GCC header when > GCC was still GPL2 so GPL3 does not apply. Xen is GPL2 too so there is > no problem using this header in Xen. The problem is including in the > public headers. > > Actually I changed patch to use the header only privately in Xen. I > wrote a new header with the format that Xen export. However somebody > could complaint that the format I used to export came from GCC ABI > documented in the header.ABIs are not copyrightable. Or at least widely thought not to be so, IANAL etc. Paolo