ASL 2.0 based software contribution to FreeBSD code base
rwatson at FreeBSD.org
Thu Mar 12 00:54:40 PDT 2009
On Wed, 11 Mar 2009, Saifi Khan wrote:
> Is Apache Software License (ASL) 2.0 based software contributions accepted
> in FreeBSD code base ?
> Specific case to consider would be:
> a. device driver code released under ASL 2.0
> b. code contributed to kernel (eg. scheduler implementation)
> under ASL 2.0
> c. code contributed to userland (eg. new implementation of
> ctags) under ASL 2.0
> Can some of the experienced members share how things work
> within the context of FreeBSD project ?
Four points, really:
(0) One of the important goals of the FreeBSD Project is to produce a
BSD-licensed operating system.
(1) The FreeBSD Project is concerned about the level of license proliferation
in the tree, and would like to avoid adding new licenses where it can
possibly be avoided. There has been some recent effort to consolidate
under the simplified (two-clause) BSD license for this reason, but
tracking down all license holders on more-clause licenses is non-trivial.
We are no longer accepting new code with the advertising clause in the
general case, and we are not aware of any major producers of code still
using that clause. The advent of licenses such as GPLv3 and CDDL has cost
the project real developer time and real money to resolve, and that's
really rather a waste.
(2) Licenses such as ASL, APSL, and CDDL are significantly more complicated
than most existing licenses in the tree, and as such risk being in
conflict with each other. For example, can you combine code under
arbitrary combinations of two or three of these licenses? Lawyers have to
get involved to answer questions of these sorts. We would like not to
invoke (expensive) lawyers frequently or at all.
(3) In general, base kernel components to be included in the GENERIC kernel
cannot be under non-BSD/MIT/ISC licenses. We do have non-BSD licensed
code in the base tree, but generally under "exceptional" circumstances --
a truly compelling technical need (we require a compiler, but there are
currently only GPL compilers in open source, so we have one). There is a
concerted ongoing effort to remove or replace non-BSD licensed components
in the system with BSD-licensed ones.
The only recent exceptions in this arena have been CDDL code from OpenSolaris
-- ZFS and DTrace, and with DTrace there was a significant delay in importing
the code while we worked through license issues and made sure that the GENERIC
kernel did not include any CDDL code. Several of our large corporate
consumers have policies that CDDL code does not ship in their products and so
we also have careful source tree separation.
So in short: we would heavily discourage code being submitted under non-BSD
licenses on the basis that our goal is to produce a BSD-licensed system,
license proliferation has real-world overhead especially in terms of
constrained developer and lawyer time, makes it harder for FreeBSD end-users
to understand their rights and whether or not they can combine components, and
when other licenses are used they require very special handling.
Robert N M Watson
University of Cambridge
More information about the freebsd-current