Last Comment Bug 659686 - Re-license GCLI to a more liberal license
: Re-license GCLI to a more liberal license
Status: RESOLVED FIXED
[fixed-in-fx-team]
:
Product: Firefox
Classification: Client Software
Component: Developer Tools: Console (show other bugs)
: Trunk
: All All
: P2 normal (vote)
: Firefox 16
Assigned To: Joe Walker [:jwalker] (needinfo me or ping on irc)
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-05-25 10:32 PDT by Joe Walker [:jwalker] (needinfo me or ping on irc)
Modified: 2012-06-30 15:16 PDT (History)
8 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Upload 1 (64.80 KB, patch)
2012-06-19 12:29 PDT, Joe Walker [:jwalker] (needinfo me or ping on irc)
dcamp: review+
Details | Diff | Review
Upload 2 (65.86 KB, patch)
2012-06-22 06:43 PDT, Joe Walker [:jwalker] (needinfo me or ping on irc)
dcamp: review+
Details | Diff | Review

Description Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-05-25 10:32:16 PDT
I've followed the repo history back to a time before Cockpit existed [1] and found the following authors:

* Joe Walker (Moz)
* Julian Viereck
* Bruce Mitchener (Trivial change)
* Irakli Gozalishvili (Moz)
* Kevin Dangoor (Moz)
* Fabian Jakobs

My understanding is that Mozilla owns the contributions of Joe, Irakli and Kevin, and that Mozilla are OK with this. Also that Julian and Fabian are also OK with this and that Bruce's one contribution of 5 character changes (https://github.com/joewalker/gcli/commit/d28bc46ae69ffa309a8d78bf0b6f1e8847df0146) is not significant.

I suspect that the contributions of Kevin, Irakli and Fabian are mostly to do with Ace in some way, so may not affect GCLI files, however I've not checked this out.

It would be good to get Julian and Fabian to comment on this bug saying that they're happy with the re-license.
Comment 1 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-05-25 10:35:17 PDT
[1] Originally the Cockpit code went into the Ace repo, then I deleted all the Ace code and it became a subrepo.
Comment 2 Fabian Jakobs 2011-06-08 03:36:24 PDT
The code I contributed is owned by ajax.org and ajax.org is OK with the relicensing.
Comment 3 Julian Viereck 2011-06-08 04:25:19 PDT
I'm okay with relicensing my contributed code.
Comment 4 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-06-08 08:16:59 PDT
thanks guys - Kevin: do we have the new header boilerplate?
Comment 5 Fabian Jakobs 2011-06-09 01:49:30 PDT
Joe, could you do the same for Pilot?
Comment 6 Kevin Dangoor 2011-06-09 11:19:30 PDT
(In reply to comment #4)
> thanks guys - Kevin: do we have the new header boilerplate?

I'm confirming the new license with Ajax.org (because we want GCLI and Ace to have the same in the end)
Comment 7 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-06-09 11:38:44 PDT
(In reply to comment #5)
> Joe, could you do the same for Pilot?

Fabian - OK.
Comment 8 Kevin Dangoor 2011-08-02 10:31:32 PDT
I'm going to suggest the following license info. We can put a header like this on each file:

// Copyright 2009-2011 Mozilla Foundation and contributors
// Licensed under the New BSD license. See LICENSE.txt or:
// http://opensource.org/licenses/BSD-3-Clause


and LICENSE.txt:

Copyright (c) 2009-2011, Mozilla Foundation and contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the names of the Mozilla Foundation, Ajax.org nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Comment 9 Kevin Dangoor 2011-08-02 10:33:29 PDT
Oops... the formatting got messed up, and there was an Ajax.org that slipped in there (not necessary in this case, since GCLI does not have Ajax.org contributions in the code)

Copyright (c) 2009-2011, Mozilla Foundation and contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

* Neither the names of the Mozilla Foundation nor the names of project contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Comment 10 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-08-03 02:29:30 PDT
Thanks Kevin.

I wonder if it makes sense to use /* ... */ for the headers rather than // ...
Maybe more editors that support folding will allow folding for /* ... */ than // ...?

All the editors that I have access to that support folding of /* ... */ also support folding of // ... so this could easily be a red hearing.

The extra 2 lines is irrelevant to me so I have a slight leaning towards the /* ... */ version, but happy for more data - if it arrives soon!

/*
 * Copyright 2009-2011 Mozilla Foundation and contributors
 * Licensed under the New BSD license. See LICENSE.txt or:
 * http://opensource.org/licenses/BSD-3-Clause
 */
Comment 11 Kevin Dangoor 2011-08-03 05:40:12 PDT
I don't think it's particularly important. That license header is only 3 lines – not even much benefit in folding it because it's so small!
Comment 12 Gervase Markham [:gerv] 2011-08-08 04:42:03 PDT
I'd want Luis to sign off on not putting the license text in every file.

If we go this way, I would prefer the URL given not to be to the opensource.org version, because it has placeholders in it. I would go for:

Copyright 2009-2011 Mozilla Foundation and contributors
Licensed under the 3-clause BSD license - see the LICENSE file.

The traditional name for a licensing file is LICENSE (no extension). 

Gerv
Comment 13 Luis Villa [Outside Counsel; for non-law use luis@tieguy.org] 2011-08-09 10:17:00 PDT
MPL 2 does not put the full license text in every file, so I'm OK with that.

That said, I would like to at least have a URL, in case the source code and LICENSE get separated. The URL could be a pointer to the LICENSE file in Mozilla hg, or could be a pointer to OSI; it's not ideal to point to a template, but the information in the header file is sufficient (especially when combined with LICENSE) to resolve the ambiguity.

Tangentially, I should have raised this earlier with the Ajax people, but is there some reason they're using BSD instead of Apache? Apache is really the better license.
Comment 14 Kevin Dangoor 2011-08-09 18:51:41 PDT
(In reply to Luis Villa [Outside Counsel; for non-law use luis@tieguy.org] from comment #13)
> Tangentially, I should have raised this earlier with the Ajax people, but is
> there some reason they're using BSD instead of Apache? Apache is really the
> better license.

Actually, we put forth the BSD option. Brendan had mentioned to me that Mozilla has some other projects that are BSD.

Why should we prefer Apache? That could be useful knowledge, because Ajax.org told me they want to speak a bit more about the specific license.
Comment 15 Luis Villa [Outside Counsel; for non-law use luis@tieguy.org] 2011-08-09 19:11:44 PDT
Apache has more explicit trademark protections for contributors, and more explicit patent protections for users. 

That said, there may be some policy reasons not to use Apache here; I'll send Gerv a separate email about that (since we were already discussing that a few weeks ago, in a related but different context.)
Comment 16 Rob Campbell [:rc] (:robcee) 2011-08-10 07:29:22 PDT
I was under the impression that we weren't able to use Apache licensing in mozilla product.

We've successfully imported BSD code into Mozilla before with no issues. BSD-like is considered acceptable, according to my previous discussions with legal.
Comment 17 Luis Villa [Outside Counsel; for non-law use luis@tieguy.org] 2011-08-10 08:15:29 PDT
Rob: yes, that's always been the policy, but MPL 2 changes some of the issues at play.
Comment 18 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-08-11 11:00:01 PDT
> I would like to at least have a URL, in case the source code and LICENSE get
> separated. The URL could be
> - a pointer to the LICENSE file in Mozilla hg,

I've got a couple of issues with this:
1. The repo URLs are always long and ugly
2. The primary repo for the code in question is git/github

> - or could be a pointer to OSI; it's not ideal to point to a template, but the
> information in the header file is sufficient (especially when combined with
> LICENSE) to resolve the ambiguity.

It sounds like Luis is OK-ish with the header as it stands, although we all agree that the template version isn't ideal.
So I don't see a legal problem, in the short term, with what we have now (example: https://github.com/mozilla/gcli/blob/master/lib/gcli/index.js)

In the longer term, we could link to this: https://raw.github.com/mozilla/gcli/master/LICENSE
Although I agree with Gerv that it would be better on mozilla.org,
however:
https://encrypted.google.com/search?q=%27PROCUREMENT+OF+SUBSTITUTE%27+%27used%20to%20endorse%27+site%3Awww.mozilla.org

It doesn't exist there already.

So I'm going to raise a bug 'mozilla.org/BSD should be a copy of the 3 clause BSD license': Bug 678243

Feel free to close if you disagree.
Comment 19 Gervase Markham [:gerv] 2011-08-15 06:31:04 PDT
(Luis: ping, re: the email mentioned in comment #15.)

<sigh> The issue here is that the MPL 2 is just about to come out, and one of the things it will allow is for us to relax our policy to allow Apache licensed code, and once we do that, there may well be a push to make that the default non-copyleft licence for Mozilla-published stuff, due to the reasons Luis mentions in comment 15. And if we do that, I'd rather not have a www.mozilla.org/BSD hanging around confusing the issue, to support one project. 

You can sidestep all this by just shipping the licence text in every file, which is AIUI normal for BSDed projects across the globe anyway. If not, our preferred option would be to wait a few weeks until the above situation has shaken out (we just released MPL 2 release candidate 1 today), in the mean time finding out whether anyone with a stake in this would object to Apache instead of BSD.

Gerv
Comment 20 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-08-15 06:50:21 PDT
Interesting fact: the first mention of BSD in this bug is comment 8, which is after everyone gave permission for a 'more liberal license'. So I think we've got permission to use Apache 2 already. We should, explain what's going on to everyone, but I think we've got permission for either.

Personal opinion: I'd far rather this used Apache 2 for comment 15 reasons, and because it seems more common for new projects anyway.

Proposal:

1. Close bug 678243 with WONTFIX, or change it to refer to the ASFv2 license

2. Inform the relevant people that we intend to use ASFv2 rather than BSD

3. Wait for a MPLv2 to come out: Gerv - do you have a guess at how long this will be?

4. I will change the headers to be

/*
 * Copyright 2011, Mozilla Foundation and contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

And LICENSE to be the standard ASFv2 text.
Comment 21 Kevin Dangoor 2011-08-15 07:40:17 PDT
(In reply to Joe Walker from comment #20)
> 3. Wait for a MPLv2 to come out: Gerv - do you have a guess at how long this
> will be?

I'll just add a note that we should not only wait for MPLv2 to come out, but also to be applied to Firefox. The MPL explicitly allows for use of newer versions, but I don't wan there to be an issue with landing GCLI code because of the Apache license.
Comment 22 Gervase Markham [:gerv] 2011-08-15 08:18:50 PDT
The RC1 announcement says we hope to publish in the next few weeks.

Gerv
Comment 23 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-11-18 10:00:51 PST
Moving GCLI bugs to Developer Tools: Console. Filter on 'baked beans are off'.
Comment 24 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-01-13 09:30:54 PST
Triage. Filter on PEGASUS.
Comment 25 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-01-13 09:32:09 PST
Triage. Filter on PEGASUS.
Comment 26 Gervase Markham [:gerv] 2012-06-14 10:10:46 PDT
This bug should be fixed by implemented comment #20.

Gerv
Comment 27 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-14 12:58:18 PDT
(In reply to Gervase Markham [:gerv] from comment #26)
> This bug should be fixed by implemented comment #20.

Thanks Gerv.

It's my intention to check to see that we've told everyone that we need to tell and then got ahead with the header change as soon as possible.
Comment 28 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-19 12:29:41 PDT
Created attachment 634546 [details] [diff] [review]
Upload 1

It might be nice to tweak the packaging tool to strip out duplicate headers, but that's not for now.
Comment 29 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-19 12:30:17 PDT
See also: https://github.com/campd/gcli/pull/50
Comment 30 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-22 06:43:26 PDT
Created attachment 635728 [details] [diff] [review]
Upload 2

Sorry - I forgot the header from the template engine, which comes from the same place.
Comment 31 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-24 04:52:33 PDT
https://tbpl.mozilla.org/?tree=Try&rev=a19299c02568
Comment 32 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-25 02:41:15 PDT
Gerv, I'm having second thoughts about the header I proposed in Comment 20. I've got 4 problems:
1. It contains the date, so it's almost inevitably wrong
2. It claims that all code is copyright assigned to Mozilla Foundation,
   which I'm fairly sure is not correct (?)
3. The Apache Foundation no longer recommend that text [1] and the text they
   recommend fails 1 and 2.
4. It's lengthy

I'm thinking that we should be able to use the form of header that mozilla-central uses, adapted to fit. To whit:

/* This Source Code Form is subject to the terms of the Apache Public License,
 * version 2.0. If a copy of the license was not distributed with this file,
 * you can obtain one at http://www.apache.org/licenses/LICENSE-2.0 */

What do you think?

[1] https://www.apache.org/legal/src-headers.html#headers
Comment 33 Gervase Markham [:gerv] 2012-06-25 06:29:02 PDT
(In reply to Joe Walker from comment #32)
> 1. It contains the date, so it's almost inevitably wrong

That's an unfortunate thing about copyright statements - they need to be dated. However, given the ridiculous length of copyright terms, there is no significant problem with the date drifting by a few years. So I wouldn't stress about it.

> 2. It claims that all code is copyright assigned to Mozilla Foundation,
>    which I'm fairly sure is not correct (?)

Actually, it says "Mozilla Foundation and contributors", which seems to cover everyone. 

> 3. The Apache Foundation no longer recommend that text [1] and the text they
>    recommend fails 1 and 2.

The link you give is the link to the header text to be used for files released by the ASF themselves, and has interactions with their contributor license agreement, which gives the ASF very broad rights. It's not appropriate for other entities, such as us, who are simply using the Apache License 2.0 for our code. The Apache License 2.0 document itself has an appendix saying "How to apply the Apache License to your work":
http://www.apache.org/licenses/LICENSE-2.0.html#apply

That's the standard way of using Apache 2.0, and that's the boilerplate in comment #20. I think rolling our own license boilerplate for a well-known license is not an awesome idea.

> 4. It's lengthy

If this is the real problem :-), then you could make it 2 lines shorter trivially by moving the start and end comment markers onto the first and last lines of text, and another 2 lines shorter by removing the blank lines around the URL.

The MPL 2's quest for short boilerplate has clearly spoiled you ;-)

Gerv
Comment 34 Luis Villa [Outside Counsel; for non-law use luis@tieguy.org] 2012-06-25 08:57:20 PDT
(In reply to Gervase Markham [:gerv] from comment #33)
> (In reply to Joe Walker from comment #32)
> > 1. It contains the date, so it's almost inevitably wrong
> 
> That's an unfortunate thing about copyright statements - they need to be
> dated. 

They don't need to be; it's just convention and good practice.

That said, using standard boilerplate where such boilerplate is available and widely used is a really good idea and it would be best to stick to it here.
Comment 35 Gervase Markham [:gerv] 2012-06-25 09:01:35 PDT
Luis: are you sure?

http://fairuse.stanford.edu/Copyright_and_Fair_Use_Overview/chapter0/0-b.html#2

Also:
http://en.wikipedia.org/wiki/Copyright#Copyright_notices_in_the_U.S.
which notes that notices are now optional, but implies that if you have them, you need a date.

Gerv
Comment 36 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-27 06:28:31 PDT
Aside from debates about if dates are needed (given the effort we've put into taking them out of the standard header, I'd hope it's possible) I'm shortly going to commit this change _with_ dates, in the standard format as in comment 20, as agreed.

Thanks for everyone's help in getting this done.
Comment 37 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-06-28 07:09:30 PDT
https://tbpl.mozilla.org/?tree=Fx-Team&rev=ec2861c9baa6
Comment 38 Tim Taubert [:ttaubert] 2012-06-30 15:16:31 PDT
https://hg.mozilla.org/mozilla-central/rev/ec2861c9baa6

Note You need to log in before you can comment on or make changes to this bug.