License Boilerplates

CCAN is supposed to be about the code, so I’ve avoided the standard GPL boilerplate comment at the top of each source file.  I reluctantly include a symlink to the full license text in each directory now, since lawyers approached me to clarify the single “License:” line in _info.  A useful discussion on the samba-technical mailing list has reinforced my view that it’s marginal clutter, but most CCAN modules now have a one-line courtesy comment such as “/* Licensed under LGPLv2.1+ – see LICENSE file for details */” at the top of each .c and .h file.

Please make a conscious choice here: if license enforcement is a high priority for your project you probably want copyright assignments, license boilerplates and click-through agreements for everyone who downloads your source code.  But if you’re spending significant time or effort on legal issues for your little coding project, you’re probably doing it wrong…

(ccanlint now scans for common license boilerplates, as well as those comments; this means we can also detect use of incompatible licenses inside modules, or dependent modules.  The former test noticed that I’d labelled the md4 module as LGPL, yet it’s actually GPL.  The latter spotted that ccan/likely (LGPL) depends on ccan/htable (GPL): legal (the whole thing is actually GPL), but misleading, as Michael Adam noted).  Automating this stuff is a clear win for a project like CCAN.  I also re-licensed a bunch of useful-but-trivial modules from LGPL to public domain, as I want the BSD modules to use them).

4 replies on “License Boilerplates”

  1. Thanks Rusty! My biggest beef with CCAN was the abundance of GPL/LGPL code where I feel BSD, MIT or such makes more sense for this level of library code. I’ll scan through it again and see if there are pieces I’d like to use.

  2. Russel, does it possible to relax license for cast.h to LGPLv2.1+ ? I want to use it for libgit2, but LGPLv3 is not compatible.

  3. @Kevin: I recently released some of my simpler modules to public domain. For example, when the code is just a header, do we really want a license at all? I figured that if people really had licensing issues, then they would reimplement things with a BSD license. But perhaps they don’t get involved due to a perceived bias?

    @Kirill: That one’s mine, but it’s at least morally derived from Jan Engelhardt’s libhx, so I just checked. His code is LGPL2+, so I can relicense it for you. Though these days I don’t see any reason to avoid (L)GPL3, myself; it seems to work fine.

Comments are closed.