[darcs-users] darcs patch: relicense Darcs.Commands.GZCRCs as BSD3

Stephen J. Turnbull stephen at xemacs.org
Sun Sep 20 12:41:44 UTC 2009

Jason Dagit writes:

 > My only question about doing this is: Can you really license your
 > changes to Darcs as BSD3 where they are changes to existing GPL'd
 > code?

If he makes inline changes (eg, a token replace patch to make
identifiers conform to stated Darcs style guides), no, in practice.
Those changes cannot be separated from the GPLed Darcs code.

If he makes a more generically usable change (eg, writes a completely
new function NewFunction, and then calls it from existing Darcs code),
then to the extent that the source to NewFunction is completely
original, yes, indeed *NewFunction's source* can be licensed as BSD3.
(Note that in an ed-style patch, the new code will be *quoted*, but
the deletions from Darcs will be cited as line numbers and *no GPLed
code is quoted* -- as long as the patch contains only entirely
original lines, you could apply a Microsoft EULA to the patch itself!)

Of course third parties may find this rather risky; they would really
have to look at *all* of Darcs to be sure that the supposedly original
code wasn't partly copied from existing code in Darcs.

However, this is definitely usable on the module (rather than the
function) level, especially for new functionality not previously
present in Darcs.  I know of two core GNU projects (Emacs and the
HURD) which include files from third parties which are licensed
permissively or are in the public domain, and their permissions
notices state those terms, not the GPL's.  Of course, the fact that
those uses are "GPL compatible" means that Darcs can relicense and
redistribute them under the GPL.  It doesn't have to, though, and
existing GNU practice seems to be to respect the intent of the
original authors unless substantial new code is mixed in.

 > Another case I'm unclear about is when you are the OA (original author) of a
 > chunk and then someone who hasn't agreed to relicense as BSD3 changes
 > something in your code.  In that case, I think you'd have to revert (and
 > rewrite) instead of just rewriting if you want to keep it BSD3.

Yes.  Somebody who wants BSD3 code from Ganesh would be safest getting
it from the added lines in his patches themselves.

More information about the darcs-users mailing list