Closed Bug 866618 Opened 11 years ago Closed 11 years ago

License L20n

Categories

(L20n :: JS Library, defect, P1)

x86_64
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED
1.0 beta

People

(Reporter: stas, Assigned: stas)

References

Details

Attachments

(1 file)

Two years ago Gandalf committed a LICENSE file in https://github.com/l20n/l20n.js/commit/dafdd79becca8df4d9d08010964bdd2f491d969b.  L20n was thus licensed on the BSD license.

According to http://www.mozilla.org/MPL/license-policy.html, we should likely relicense L20n to MPL 2.0.
The list of authors:

 - Zbigniew Braniecki
 - Axel Hecht
 - Stas Malolepszy

If we can all agree that MPL 2.0 is the license to go, then let's just switch it now.
I'm not sure I read the license policy as you do, as l20n.js isn't complete client side. We could also consider apache.

I don't mind either way, though.
I sent an email to licensing@mozilla.org and asked for guidance.
Stas wrote:

Hi,

Axel, Gandalf and I have been working on L20n, an innovative 
localization framework which makes it easier for localizers to create 
translations which sound natural in their languages.

L20n is really two things:

 - a very simple scripting language which localizers can use to codify 
   the grammatical rules of their natural languages,

 - an implementation of that scripting language which developers can 
   use in their projects.

We target L20n at all developers, not only the Mozilla ones.  We'd like 
to ask you for advice on which license to choose for the 
implementations that we're working on.

### The JavaScript Implementation

Developed in https://github.com/l20n/l20n.js, it is intended to be used 
in three settings:

 - server (node.js),
 - client (optimized, minified and compiled with Closure Compiler),
 - client (regular, non-optimized files)

This implementation makes use of one external dependency: promise.js 
avaiable at https://github.com/ondras/promise.  I've contacted the 
author and he told me that the code is in public domain.  I asked him 
to put a comment in the file to make this clear.


### The Python Implementation

In parallel, we're developing the Python implementation at 
https://github.com/l20n/l20n.py.  It's intented to be used on the 
server, with frameworks like Django (but not only), and with 
Python-based tools.


### The L20n.org website

Additionally, Matjaž has set up a website for the project at 
http://l20n.org.  The code is in https://github.com/l20n/l20n.org.

I've consulted the following documents on licensing:

    http://www.mozilla.org/MPL/license-policy.html
    http://www.mozilla.org/MPL/license-policy-flowchart.png

I'm not sure if I fully understand the preference for client-side code 
in case of MPL.  Given our target platforms outlined above, which 
license would you recommend for us?
The "preference for MPL in the case of client-side code" is really a "no-preference for MPL in the case of server-side code", because Apache 2 and MPL are basically equivalent for server-side code. This is because the MPL's copyleft does not have any effect if the user of the code does not distribute it.

I would say that people's alternative to using l20n is that they would use a less capable library, or no library at all - which is bad for users of languages with complex localization requirements. Therefore, logic like this:
http://lwn.net/2001/0301/a/rms-ov-license.php3
starts to come into play. So I suggest you use the Apache License for the code (and therefore also for the website, for consistency) in order to make it usable in as many projects as possible, thereby blessing users with good localizations.

Gerv
Would it make sense to dual-license it?
Summary: License L20n on MPL 2.0 → License L20n
Thanks Gerv, this is very helpful and makes perfect sense.

Can you take a look at the attached file and in particular, review the NOTICE file?

Also, should we mention somewhere explicitly that promise.js is in public domain?  The author added the notice in https://github.com/ondras/promise/commit/79124448889116ef39896c99569a104afd9b8d74.  Should we update our copy of the file to have the notice as well?   I'm not sure if I understand this correctly, but I'm assuming "in public domain" means that we can put any license on the file with our modifications?
Assignee: nobody → stas
Attachment #751718 - Flags: feedback?(gerv)
(In reply to Staś Małolepszy :stas (needinfo along with cc, please) from comment #7)
> Can you take a look at the attached file and in particular, review the
> NOTICE file?


That seems fine.
 
> Also, should we mention somewhere explicitly that promise.js is in public
> domain?  The author added the notice in
> https://github.com/ondras/promise/commit/
> 79124448889116ef39896c99569a104afd9b8d74.  Should we update our copy of the
> file to have the notice as well?

That sounds wise.

> I'm not sure if I understand this
> correctly, but I'm assuming "in public domain" means that we can put any
> license on the file with our modifications?

It does, but you are not obligated to. In order to make it possible to contribute improvements upstream, you should probably leave its licensing as it is, i.e. leave the PD header on it.

Gerv
(In reply to Gervase Markham [:gerv] from comment #8)

> > Also, should we mention somewhere explicitly that promise.js is in public
> > domain?  The author added the notice in
> > https://github.com/ondras/promise/commit/
> > 79124448889116ef39896c99569a104afd9b8d74.  Should we update our copy of the
> > file to have the notice as well?
> 
> That sounds wise.

I'll do it in bug 866620.

One last question:  should we put a mention about promise.js being in public domain in the NOTICE file?

> > I'm not sure if I understand this
> > correctly, but I'm assuming "in public domain" means that we can put any
> > license on the file with our modifications?
> 
> It does, but you are not obligated to. In order to make it possible to
> contribute improvements upstream, you should probably leave its licensing as
> it is, i.e. leave the PD header on it.

Gandalf, you are the author of the modifications in promise.js.  Are you ok giving all copyrights to the public domain?
(In reply to Staś Małolepszy :stas (needinfo along with cc, please) from comment #9)
> Gandalf, you are the author of the modifications in promise.js.  Are you ok
> giving all copyrights to the public domain?

I moved this to bug 866620.
Attachment #751718 - Flags: review?(gandalf)
Attachment #751718 - Flags: review?(gandalf) → review+
(In reply to Staś Małolepszy :stas (needinfo along with cc, please) from comment #9)
> One last question:  should we put a mention about promise.js being in public
> domain in the NOTICE file?

Again, seems like a good idea.

> Gandalf, you are the author of the modifications in promise.js.  Are you ok
> giving all copyrights to the public domain?

If he did it on work time, this is a question for Mozilla - and yes, we are ;-)

Gerv
Comment on attachment 751718 [details] [diff] [review]
License L20n.js on Aapache 2.0

Review of attachment 751718 [details] [diff] [review]:
-----------------------------------------------------------------

::: NOTICE
@@ +1,2 @@
> +
> +      Copyright 2013 Mozilla Foundation

Should this say:

    Copytright 2013 Mozilla Foundation and other contriutors

?
"and others" would be fine.

Gerv
I give my permission to license under the Apache License, Version 2.0, any contributions I have made to the L20n codebase.
Landed in https://github.com/l20n/l20n.js/commit/a1240f3ff8d0c604997a09a1a9e7f4c23d6e0017

L20n is now licensed under the Apache License, Version 2.0.    \o/
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Comment on attachment 751718 [details] [diff] [review]
License L20n.js on Aapache 2.0

Clearing the feedback? request, this has already landed.  Thanks again, Gerv, for your help.
Attachment #751718 - Flags: feedback?(gerv)
I followed up with a change to package.json, too:

https://github.com/l20n/l20n.js/commit/36701b4e2fe42b509cf108349823d6503164373d

Also published on npm:  https://npmjs.org/package/l20n
Blocks: 1565088
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: