On Thu, Nov 7, 2024 at 4:03 PM Theodore Ts'o <tytso@mit.edu> wrote:
On Thu, Nov 07, 2024 at 01:59:18PM -0700, Marc Rochkind wrote:
>
> Somebody here likened this to the GPL, in the sense that if you add
> anything to a GPL-licensed thing, the whole thing, including your stuff, is
> covered by the GPL. I don't know enough about the GPL to say for sure that
> that's actually how the GPL works.

Well, it is certainly possible to insert dual-licensed code --- for
exaple, there are some WiFi drivers which are dual-licensed under the
BSD and GPL licenses, and the file is very clearly marked as being
dual licensed.  This means that if someone contributes changes to the
file, their are agreeing that their changes are also similarly
dual-licensed --- and so those changes can be take and merged into a
driver that might be part of (for example) FreeBSD.

Now, if you take code which was originally under a weak FOSS license which
is GPL compatible, and you don't mark it as dual licensed when you
incorporate it into a GPL project, the presumption is that the code in
the GPL project is GPL licensed.  So if there are changes made to that
codebase as it exists in the GPL code bases, those changes are
presumed to be GPL-licened, and hence can't be contributed back to the
BSD-licensed code base.

This caused a certain aount of unhappiness by BSD partisans, since
they viewed it unfair the GPL project to take code from the BSD
project, but they couldn't do the reverse.  There were two responses
to this.

The first was, "well, if you were OK with a weak free software
license, and you were presumably happy allowing NetAPP or Sun to take
your code and make $$$ off of it, why are you whining about a GPL
project doing essentilly the same thing as NetAPP or Sun?  In both
cases, you aren't getting improveents back from your code.  Deal with
it."

Part of the problem, though, in some of these cases was that the entire
license was removed, rather than the GPL being just added...  The BSDL
is quite permissive, true, but not quite that permissive...
 
The second resonse was to work with the BSD folks, and to maintain
certain drivers as dual-licensed, as described earlier.

Which is always a better choice...
 
In some other, related cases, such as Linux's /dev/random driver, or
the UUID library in userspace, I *wanted* the code to get used in as
may places as possible, and so I was **happy** that Apple adopted my
UUID library in MacOS, something that was only possible because I had
dual-licensed the UUID library under the GPL and BSD-style license
from the get-go.  As far as I know no took the /dev/random driver from
Linux and put in their BSD-style licensed OS.  But it certainly worked
as-designed in the case of the UUID library.  (Not that it was a huge
amount of code, but I was passionate about promulgating the use of
UUID's as far and as wide as possible.)

That's a good outcome...

Warner
 
Cheers,

                                        - Ted