Standard third party imports

jfd jfd at nospam.com
Sat Nov 13 11:43:13 PST 2010


== Quote from Adam D. Ruppe (destructionator at 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.


More information about the Digitalmars-d mailing list