Closed
Bug 82339
Opened 23 years ago
Closed 22 years ago
Embedding samples probably shouldn't use boiler-plate licences
Categories
(Core Graveyard :: Embedding: APIs, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
Future
People
(Reporter: adamlock, Assigned: adamlock)
References
Details
(Keywords: embed, topembed-)
A lot of the source code in embedding has the NPL boiler plate. Shouldn't we be using the MPL-GPL dual licence instead?
What do people think? Should we be using NPL or dual MPL/GPL for embedding code?
Comment 2•23 years ago
|
||
This is a frequently asked question. I'm cc'ing hecker and mitchell for the best answers. /be
um, very silly question, how would it be useful for embedding to be GPL if the code it links against is MPL/NPL and therefore incompatible w/ GPL?
But what use it for our embedding samples such as mfcEmbed to be NPL when it compells anyone using them as a basis for their own apps to submit those changes back to Netscape? The samples should at least be dual MPL/GPL or perhaps we chould even strip the licence altogether (but leave the copyright) and call them public domain? Tell people they can do what they like with them. As for the other stuff, we should be using MPL unless - to paraphrase the URL below - "we know of some specific reason why they shouldn't". http://www.mozilla.org/MPL/boilerplate-1.1/
Comment 5•23 years ago
|
||
Per Brendan's request, here's my opinion: I haven't looked at this code specifically, but I presume that the code in general can be divided into two different categories: The first category covers code that is explicitly intended as sample code for people to use in creating their own applications. This code is not really part of Mozilla per se, instead it is code that users are expected to use as a base for applications embedding Mozilla -- they're going to add their own code to the sample code source files, or cut and paste fragments of the sample code into their own source files. IMO this sample code should be licensed with minimal restrictions. It's not technically possible to make it "public domain" (because the code still is implicitly copyrighted by somebody), but it could be released under something like the MIT license, or even something more minimal than that. The guide here should be the permissions granted for code samples distributed to developers by Netscape, Microsoft, etc. If for some reason the copyright holder(s) (e.g., Netscape and others) don't want to release this sample code under such a minimal license, IMO it still shouldn't be released under the NPL, because that would give Netscape excessive and unnecessary rights to customer-created applications into which developers cut and paste fragments of sample code. Instead I'd recommend the MPL (or MPL/GPL). The second category of code is code that really is part of Mozilla and not just sample code. IMO this code should be handled just like any other Mozilla code: Existing code should be licensed the same way it's being licensed now, new code written by non-Netscape developers should be under the MPL (unless the existing code is dual-licensed, in which case it should be under the MPL/GPL), and for new code written by Netscape developers Netscape should be encouraged to use the MPL (or MPL/GPL) instead of the NPL (or NPL/GPL) if possible. (Of course, Netscape make take this advice or not.)
s/make/may ? the MIT license sounds good, http://www.opensource.org/licenses/mit-license.html
Looks like a lot of this is covered by bug 98089. Just the issue of what licence for the samples to sort out now.
Depends on: 98089
Updated•23 years ago
|
QA Contact: mdunn → bmartin
Summary: Boiler-plate licences in embedding is probably wrong → Embedding samples probably shouldn't use boiler-plate licences
Specifically I'm talking about TestGtkEmbed, PPEmbed & MFCEmbed sample code here and not the GTK Widget, ActiveX control or the PowerPlant backend if that can be considered seperate from PPEmbed.
I'm looking at the MIT licence and I don't think it's adequate either in its present form. I think this section should be deleted. ", subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software" I believe the samples should be totally public domain for anyone to do what they like with. At the same time I think we need to make it crystal clear, that this right only extends to the sample code, not to anything else in Mozilla. Here is a sample header modified from the MIT licence. I would like consensus on the form this should take and then I'll go in and change all the headers. BTW do I need to put in the "BEGIN/END LICENSE BLOCK" bits that the MPL boiler plate has? /* * Copyright (c) 2002 Mozilla.org * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this Mozilla sample software and associated documentation files * (the "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so, subject to the * following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Contributor(s): * */
Comment 10•22 years ago
|
||
I don't think that there's any harm in removing the condition about keeping the copyright notice, but then I'm not a lawyer; it may be that removing the condition might cause problems if a "downstream" licensee received the code without the disclaimer and then proceeded to sue somebody over problems with the code. However if you do remove that condition, I think you can remove the phrase "subject to the following conditions" as well. I don't believe that the warranty disclaimer is a "condition" in the sense meant here, since it is not a requirement imposed on licensees, but rather a statement by the licensor. But again, I am not a lawyer and Mitchell or others may disagree with me here. Another point: "mozilla.org" is not a legal entity and cannot copyright anything. The copyright holder should be whatever entity or individual created the code, whether that's Netscape Communications Corporation, John Doe, or whoever. Finally, yes I think you should use the "license block", as it makes it much easier for automated scripts to recognize the license headers when we audit the Mozilla source tree for proper licenses. Here is a revised version of the proposed license, incorporating my suggestions above: /* ***** BEGIN LICENSE BLOCK ***** * Version: Mozilla-sample-code 1.0 * * Copyright (c) <year(s)> <name of copyright holder> * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this Mozilla sample software and associated documentation files * (the "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Contributor(s): * * ***** END LICENSE BLOCK ***** */
Assignee | ||
Comment 11•22 years ago
|
||
New version looks fine to me but IANAL either. Jud, what's the best way to resolve this?
Assignee | ||
Comment 12•22 years ago
|
||
Mitchell & Brendan can you comment on the proposed licence and give approval for the change if appropriate? The licence would cover the contents of the embedding/test dir for the time being (i.e. winEmbed, mfcEmbed & cocoaEmbed) I will change the copyright notice to be Netscape if mozilla.org cannot be a copyright holder.
Comment 13•22 years ago
|
||
I would like to see this marked with the topembed keyword. It is very important for anyone building products on Mozilla. An NPL requirement to give source code to Netscape could be a serious obstacle to many embedding projects.
Assignee | ||
Comment 14•22 years ago
|
||
Adding topembed. Brendan & Mitchell - I still need a yay or nay regarding this licence change. Thanks
Keywords: topembed
Comment 15•22 years ago
|
||
First, was this code was written by someone who is a Netscape employee? If so, I have no idea who at Netscape needs to approve using a license other than the NPL or MPL for cod.e So I can't say whether an MIT license is OK. On the other hand, it was always intended that new code would be governed by the MPL, not the NPL. So an MPL/GPL combo makes sense. If this code was written by people not employed by Netscape, then of course an MIT style license can be chosen by the authors. If an MIT license is used, then engineers will need to keep in mind the disctinction between code used in samples and that which goes into Mozilla and should get the MPL/GPL. If the original contributor is Netscape (throught its employees) then the copyright notice should be Netscape. Mitchell mitchell
Comment 16•22 years ago
|
||
There's a difference between ordinary source files, which are meant to be used unmodified most of the time, and sample code source files, which are meant to almost always be modified and redistributed. The license for sample code should not impose restrictions on modification and redistribution. The license used for most source files is not suitable for sample code source files for that reason. See Frank's comment #5.
Assignee | ||
Comment 17•22 years ago
|
||
Mitchell, the embedding samples are intended to be used by anyone - commercial or otherwise - in any way they like so we want to stick a licence on that allows that. The GPL/MPL obviously makes that samples useless for anyone intending to produce a closed-source commercial product since it "infects" their code. So the purpose of this bug is to change the licences to this MIT derived one. Jud has already given the permission for us to change our own code, but I just want to confirm that its okay by you. If so, let me know and I'll push it through. As far as copyright is concerned, I intend to put Netscape since the winEmbed, mfcEmbed & cocoaEmbed were all written by Netscape employees.
Comment 18•22 years ago
|
||
topembed- per EDT, but added embed keyword to keep it on the radar.
Comment 19•22 years ago
|
||
I am currently working as a consultant on a proprietary cross-platform Mozilla embedding product for a large software developer. I will need to use embedding sample code to make this work; I am currently using embedding sample code and I expect to use more rather than less in the future. Either NPL or MPL on that sample code as they stand may cause this project to fail legal review, which will be starting soon. Those licenses do not seem to have been set up with sample code in mind. On reading the MPL carefully (on which the NPL is based) it appears to me that this could be taken care of with either a modification to the MPL that takes sample code into account, or a file-by-file waiver of the obligations in section 3.2 for Source Code Availability for modifications to sample source files. This should also be stated to apply to section 3.6 where it references section 3.2. In the MPL case that would look like this for C files. The new paragraph starts "This file contains Sample Code". /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (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.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * This file contains Sample Code and so license is granted to copy and * modify it without any obligation to make source code available. Section * 3.2 of the License is waived for this file and modifications to this file, * including the application of Section 3.2 in Section 3.6 or any other Section * of the License. * * The Original Code is __________________________________________. * * The Initial Developer of the Original Code is * ____________________________________________. * Portions created by the Initial Developer are Copyright (C) 2___ * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively.... [GPL/LGPL alternatives remain unchanged] * * ***** END LICENSE BLOCK ***** */ There would be a similar addition to the Netscape Public License boilerplate.
Comment 20•22 years ago
|
||
Well, I personally am not familiar enough with the code to be conviced that all conditions on use should be removed. But that doesn't matter, Netscape as the owner of the code is free to make this decision, and certainly has the people who understand the code best. mozilla.org has accepted code under the MIT license, so I don't see why we wouldn't take this under the MIT license. The suggested deletions allowing the liability disclaimer to be removed seem unwise to me. The MIT license is widely accepted, is this deletion really necessary? Futzing with accepted precedent is often alluring, but I wouldn't do it lightly. Note that I am not giving legal advice to anyone here. Mitchell
Comment 21•22 years ago
|
||
Mitchell writes: "The suggested deletions allowing the liability disclaimer to be removed seem unwise to me. The MIT license is widely accepted, is this deletion really necessary?" IMO it is not absolutely necessary to modify the MIT license for this use. It's my understanding that Adam suggested dropping the requirement to retain the notices basically as a way of making the sample code more "public domain" in nature, i.e., minimizing as much as possible the requirements placed upon the licensee. As Mitchell implied though, making code more "public domain" in nature can be a mixed blessing; in particular, as I understand it (from informal conversations with another attorney -- also not offering formal legal advice :-) someone releasing "public domain" code (i.e., disclaiming copyright, distributing the code without any license restrictions whatsoever, etc.) could still be sued (possibly successfully) by someone alleging that the code has caused them harm in some ways. Hence the use of warranty and liability disclaimers even in "minimal" licenses like the MIT license. Since the licensor in this case is Netscape, really AOL Time Warner, I think this is a concern that should be considered. So after thinking about it some more, I think the best and most prudent course is to use the vanilla MIT license, per the example below: /* ***** BEGIN LICENSE BLOCK ***** * Version: Mozilla-sample-code 1.0 * * Copyright (c) 2002 Netscape Communications Corporation and * other contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this Mozilla sample software and associated documentation files * (the "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so, subject to the * following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Contributor(s): * * ***** END LICENSE BLOCK ***** */ If people using the code want to remove the notice then they'll go ahead and do that anyway, but at least the basic legal niceties will have been observed.
Assignee | ||
Comment 22•22 years ago
|
||
Okay, I'll use the standard MIT licence.
Assignee | ||
Comment 23•22 years ago
|
||
Marking bug fixed. I've changed all the licenses in embedding/tests/
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 24•22 years ago
|
||
Thanks. That should work for me in those caszs. There's also the embedding/examples folder, which I think is entirely sample code, and some of the code in embedding/browser seems to be sample code as well. At least the embedding/examples files should also be changed. I will contact the owners of marbrow, the Mac OS Classic embedding sample, about this as well; they will probably want to use the MIT license rather than MPL. I still think that over the long term the MPL should be extended to cover this case, rather than use a different license. Perhaps I should file an enhancement request for that?
Comment 25•22 years ago
|
||
Tim MAroney writes "I still think that over the long term the MPL should be extended to cover this case, rather than use a different license. Perhaps I should file an enhancement request for that?" I understand your desire to modify the MPL in ways that would be more in keeping with your intended use of the software, as opposed to "us[ing] a different license". However an MPL with the changes you suggest, even as optional clauses in the license note, would in fact be a different license than the current MPL, one that just happens to share the same name. IMO it is better simply to use the MPL where it has been used traditionally and has been deemed appropriate (e.g., with the core Mozilla code) and to use other licenses like the MIT license in situations like sample code where the MPL is (IMO) not appropriate. The other issue with modifying the MPL for use with sample code is that the MPL explicitly requires that certain types of derivative works be also licensed under the MPL. (In particular, Modifications to an MPL-licensed file must be licensed under the MPL.) Your suggested changes do not eliminate this feature of the MPL; indeed, you include a similar feature in your proposed license notice: "Section 3.2 of the License is waived for this file **and modifications to this file** ..." [emphasis added]. I'm not speaking as a lawyer here, but I think this could cause potential problems in cases where one might want to combine Mozilla core code with Mozilla sample code, because both licenses can exert claims on the other code in the file. (In other words, the sample code in the file can be considered a Modification of the core Mozilla code in the file, and thus would have to be licensed under the traditional MPL, with source code made available. Similar, the core mozilla code could be considered a Modification of the sample Mozilla code, and thus could be distributed without source code being made available. Thus the two different licenses -- and they *are* two different licenses for this purpose -- would be in conflict.) Now it may be that one could argue around this potential, or try to tweak the proposed MPL revision to address it. However I suspect that other potential problems would still appear. Using the MIT license sidesteps this problem, because that license doesn't make explicit claims re licensing of code added to the original work. Plus many people (both developers and lawyers) are familar with the MIT license and comfortable with the way it works in a context like this. If you want to continue this discussion, I suggest taking it either to private email or the license newsgroup, new://news.mozilla.org/
Updated•5 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•