jfd wrote:
> == Quote from Adam D. Ruppe (destructiona...@gmail.com)'s article
>> The problem with BSD/GPL code in the main Phobos is any D program will link 
>> with
>> it, and thus the license goes viral to all D programs.
>> But since this is just interface files, separate from the stdlib aside from
>> sharing a distribution zip, no compiled code will be shoved into Phobos 
>> proper,
>> the copyright restrictions shouldn't affect anyone who is not specifically 
>> using
>> that library anyway.
>> If we're concerned that merely importing the file may cause license
>> taint, we could add pragma(msg, "License Taint Warning: etc.c.mylib is GPL
> licensed");
> 
> Question 1. Nearly-Verbatim Translation:  Make nearly one-to-one translation, 
> for
> example, use a D function for a .h macro, and a D const for a .h #define of a
> constant.  That looks close to the original .h, in visual form and style.  
> Does
> that fall under the .h license?
> 
> And that is the example on the D web site!  One doesn't usually consider that
> subject to the .h license terms.  Or is that assumption wrong?
> 
> Question 2. Preprocessing .h: If one preprocesses the .h, instead of verbatim
> one-to-one translation, would that be still subject to the .h license?  It 
> doesn't
> look very much like the original .h, in terms of visual style and form, 
> certainly
> less than the "verbatim" way above.
> 
> Question 3. Automation: If a program produces a .di file that is identical to 
> what
> would write by hand, then does automation make any difference in license terms
> than a hand-written one?
> 
> I'm not a lawyer, but I tend to think that a translation of .h is not subject 
> to
> the original license.  If I'm not mistaken, I seem to recall that some libc
> headers on some platforms (Mac?) are pretty much re-written glibc headers, 
> and the
> new headers are under proprietary license.
> 
> It's good to clarify that, before I start spending lots of time building 
> headers.
>  Thank you for bringing this up.

        I am not a lawyer either, but I believe that from a strictly legal
standpoint, the original license applies in all three cases.

        From a practical standpoint, there are two possible situations:

 * The header file contains only interface declarations. In that
case, the important license to consider is that of the actual
library it is an interface for. Nobody will blame you for
translating the header in order to access the library provided you
respect the license of the library. Moreover, a good lawyer would
probably be able to argue the case convincingly if it came to that
(but as I said, IANAL);

 * The header file contains implementation (for a C++ template-heavy
library for example). In that case, the header license definitely
applies to any translation. The situation is complicated by the fact
that most open source licenses do not take this situation into
account (AIUI, it is one of the big differences between LGPLv2 and
LGPLv3).

                Jerome
-- 
mailto:jeber...@free.fr
http://jeberger.free.fr
Jabber: jeber...@jabber.fr

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to