Closed
Bug 1155181
Opened 5 years ago
Closed 5 years ago
Servo source code licensing policy
Categories
(mozilla.org :: Licensing, task)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: larsberg, Assigned: gerv)
References
()
Details
Servo is a new web engine that we are building, similar to Gecko. - Source code in Servo itself is MPLv2 - Source code in any submodules / separate code repositories that we create is Apache v2 / MIT dual license Our questions are: 1) Are these the right license choices for Servo and for our submodules? 2) What are the permissible licenses for any additional submodules from the community that we link into Servo? Rust (which Servo is written in) statically links all code, if that makes any difference (it does not have a mature dynamic linking story today). Currently, we can see Rust code that we are using with the licenses: Apache-2.0, CC0-1.0, MIT, and MIT/Apache-2.0. There are also some C codebases that we statically link in that we have not yet assessed the license of. Thanks!
Comment 1•5 years ago
|
||
> - Source code in any submodules / separate code repositories that we create is Apache v2 / MIT dual license
Not always. Some are MPL2, some are just MIT. But that’s only because we’re unclear on what it *should* be.
(Apache 2 / MIT dual license is what Rust does.)| Assignee | ||
Comment 2•5 years ago
|
||
Before I answer your questions, help me with a few of my own: * When new code is written, how is it decided whether it is part of "Servo itself" or placed in a separate repo/submodule? * Can you give me some examples of submodules that you use, and what they do? * How much of the code in a) Servo itself, and b) the submodules you use was written by Mozilla employees? * Does Servo yet have any equivalent of about:license? * Do you have specific goals with your licensing, in terms of things you want people to be able to do, or not do? Gerv
| Reporter | ||
Comment 3•5 years ago
|
||
1) Code is generally placed into a submodule if it could be reused independently. We have done this not just for things like Rust wrappers for Cocoa libraries (https://github.com/servo/rust-cocoa) but also for core components such as our HTML parser (https://github.com/servo/html5ever). 2) Along with those two examples, there are a total of 84 submodules that Servo depends on today, which are all listed in the file https://github.com/servo/servo/blob/master/components/servo/Cargo.lock. Each of the [[package]] sections where there is also a `source` attribute represents an external submodule. 3) A little over half of the commits to Servo are by Mozilla employees. The breakdown for submodules varies from nearly 100% Mozilla employees to nearly nothing by Mozilla employees 4) We do not yet have an equivalent of about:license. 5) I believe that our goals with our licensing are: a) Protect Servo the browser in a manner similar to Gecko to enable building strong partnerships b) Maximize reuse and especially contributions in submodules where we do not need additional "leverage" from the MPL. e.g. I have CC'd dherman for additional feedback on #5, as I know he has strong opinions there.
| Assignee | ||
Comment 4•5 years ago
|
||
The right license choice depends on your goals. Mozillians are not of one mind about the right approach to licensing - so when you say "maximise reuse and contributions", you will find different people advocating different approaches to doing that. Some say liberal licensing maximises reuse; others says some form of copyleft encourages comunity and sharing, and maximises contributions. Anyway, if Gecko is taken as a model, then code _we_ write should all be MPLed, even if we import third party code under Apache, BSD or the like. If code could one day become part of Rust, it would make sense for it to be under the Rust dual license. The major permissible licenses for code linked into Servo would be: MIT, BSD, Apache, and MPL 2. For anything else, ask. Gerv
| Reporter | ||
Updated•5 years ago
|
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•