Hi all,
as many of you know, the fbthrift and Apache Thrift projects share a common
history to some extent, also the original contributor (Facebook) is the same
in both cases and last mot least both are licensed under Apache 2.0 license.
We do not only share a good portion of the history, both projects also do
maintain a good relationship that already lead to certain pieces of code
being contributed in (IIRC) both directions.
Hence, the question raised multiple times, if and how this process could be
made smoother, while maintaining and respecting all the legal considerations
that need to be considered. The discussion was brought to the attention of
the legal-discuss mailing list and the recommendation was made to create a
HOW-TO that covers the process.
To legally protect users using ASF code from IP-related surprises, the ASF
acts very careful about the code that goes into ASF projects, i.e. code must
be contributed to the ASF and CLAs must be signed. In the particular case
of fbthrift fortunately we are in a good position, because the fbthrift
project already requires CLAs to be signed before code is merged into
fbthrift master.
In detail, the following points emerged from the debate:
--------------------8<--------------------------
⦁ Only use code that has been merged to fbthrift/master. This is to
ensure that only properly licensed code with valid CLAs that has been
accepted by fbthrift ever is merged into ASF code.
⦁ Clearly state that fbthrift source is incorporated in Apache Thrift
source
a) in the LICENSE file,
b) in the svn/git commits and
c) in the source files themselves (by incorporating fbthrift's source
header).
⦁ Ideally there should be a template to ensure a common format for b) and
possibly also for c)
⦁ Inform fbthrift about code that is about to be copied into ASF code.
This point requires some fine tuning abou the how / when / by whom / by what
means / etc.
⦁ The code covered by this HowTo MUST come directly from the fbthrift
code base, without any other extra modifications made that are not reflected
in the fbthrift master branch. If that is not the case (example: someone
forks fbthrift, makes changes and sends a pull request) this HowTo does not
apply and cannot be used.
⦁ To keep things simple, legally safe and adhering to ASF practices, the
Committer must diligently ensure that no licenses other than Apache 2.0 are
involved in any code portion merged into Apache Thrift. This requirement
should be made explicitly clear and thus added to the commit templates we
are going to use as a constant reminder for any fbthrift code.
--------------------8<--------------------------
At this stage, this is nothing more than a proposal, based on input I got
from several people at legal-discuss [2]. Any input you may come up with is
appreciated, and we also need to refine certain details outlined above
before we can even consider this to be ready for review. As the next step
after completing that stage should be to sending our final draft to
legal-discuss again to get their review, before we put it to use.
Have fun,
JensG
PS. There has been some discussion about whether NOTICE or LICENSE is more
appropriate. After consulting [1] again my personal viewpoint is that
LICENSE seems to be the right one.
[1] http://www.apache.org/dev/licensing-howto.html#mod-notice
[2]
http://mail-archives.apache.org/mod_mbox/www-legal-discuss/201904.mbox/browser