Shop OBEX P1 Docs P2 Docs Learn Events
Object Exchange Licensing — Parallax Forums

Object Exchange Licensing

Paul BakerPaul Baker Posts: 6,351
edited 2008-01-28 22:26 in Propeller 1
I have been working on the Licensing for the Object Exchange, we are nearly to the point of implementing it. I am posting it here to get some feedback from our customers. Now let me make this clear, we are not interested in your opinion on which licensing agreement we chose, we are happy with what we have chosen·and we are sticking with it. What we are intested in is your thoughts on how it's presented, whether it's clear what you can and can't do under the license, and if there are any questions you have which haven't been answered.

Important note to all people with objects on the exchange: When this License takes effect we are going to invite all of our object authors to revise thier objects to include the MIT license. We ask that you do not make this change until you are asked. We want to be able to track which objects have been revised and which haven't and having it so the revisions don't occur until after our implementation date will make it easier to track. -Thanks

Object Exchange License Agreement says...


All software on the Parallax Propeller Object Exchange is provided under the MIT License (what the Free Software Foundation calls the X11 License). This license supersedes any license which may be stated by the individual author and any other statements of licensing made by Parallax Inc., such as the 2007 and 2008 catalogs stating the code on the Object Exchange is provided as public domain. Submission of objects to and downloading of objects from the Object Exchange constitutes the understanding of the MIT License and acceptance of its terms and use. The license template is presented below and should be included in all newly submitted and revised objects:
·
[color=#000000]Copyright (c) <year> <copyright holders>[/color]
 
[color=#000000]Permission is hereby granted, free of charge, to any person obtaining a copy of this 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:[/color]
 
[color=#000000]The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.[/color]
 
[color=#000000]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.[/color]


We recommend placing the copyright line at the top of the source code followed by the statement “See end of file for terms of use.” Then place the remaining license text at the end of the file. We recommend this to reduce clutter at the beginning of the file.
·
MIT License Paraphrased in Layman’s Terms
·
Whoever uses this code may use it free of charge in any manner they choose, both for commercial and non-commercial uses, so long as the copyright of the code is maintained. The copyright holder assumes no liability for any use of the code.
·
Licensing Frequently Asked Questions
·
1.·· I am submitting a new object or resubmitting an existing object to the Object Exchange; do I need to include the MIT License in my code?
·
A. Yes, all objects submitted, whether new or revised, must include the MIT License in the source code.
·

[list=2][*]My object submission uses one or more unmodified objects from the Object Exchange; do I need to include the MIT license of these included object(s) in my parent object?[/list]
A.· No, each object should contain its own license. There is no need to have the child object’s license in the parent object. However if the child object is redistributed along with the parent object and the MIT license is not already in the child object, it must be added in the child object as described in question 7.


[list=3][*]I want to use a few lines of code from an object on the Object Exchange; am I required to insert the original license agreement in my code?·[/list]
A.···· No, the point of the Object Exchange is to share and learn programming techniques between users. As long as the few lines do not constitute a “substantial portion of the Software” no indication of copyright is required. However, acknowledgement of the source is recommended and encouraged.
·

4.·· Do I need to include a copy of the license in the binary image of my application?
·
A.· No, only the source needs to contain the license.
·

5.·· I need to modify an object I obtained from the Object Library and would like to redistribute the modified object; am I required to release the modified object under the MIT License?
·
A.· No, you may release the modified object under any licensing agreement which is compatible with the MIT license. The code must still contain the MIT license for the base code. The modified code under a different license should be clearly indicated so that a user can determine which code belongs to which license. However, if the modified object is submitted to the Object Exchange then it will be redistributed under the MIT license as the Object Exchange’s terms of use require.
·

6.·· I developed an application using objects from the Object Exchange before the MIT license was applied to all objects in the Object Exchange; am I required to modify my application in any way?·
·
A.· No, prior to the posting of this license agreement on INSERT CURRENT DATE HERE all code on the Object Exchange was provided as public domain, meaning no assertion of copyright has been made. Objects previously downloaded are still public domain. The only significant difference between public domain and the MIT License is that under the MIT license the author maintains their copyright (but waives all other rights).


7.·· I have downloaded an object from the Object Exchange and the object does not contain the license in the code; what should I do?
·
A. It depends on your use of the object. If you are using the object for a personal project and not publishing your source code, you may use the object as-is. If you are developing a commercial product or redistributing the code in original or modified form, you must insert the licensing template into the object and fill in the copyright date and author’s name (or screen name if that is the only information on the author’s identity, though for commercial applications an attempt should be made to contact the author to obtain their real name).


[list=8][*]Is the MIT License compatible with the GNU GPL?·[/list]
A.· Yes, you may incorporate MIT licensed code and GNU GPL code within the same application. The MIT license is retained on that code which uses the license, but GPL rules for the overall application apply, such as the requirement to release the application under GPL. However, since the application must be released under GPL, it may not be submitted to the Object Exchange.
·

[list=9][*]I have created an object which uses code released under GPL; can I submit my object to the Object Exchange?[/list]
A.· No, all work derived from GPL code must itself be GPL. Since GPL prohibits proprietary use, it may not be released under the MIT license which is a requirement for all objects on the Object Exchange. ·······
·

[list=10][*]I have submitted an object to the Object Exchange; if I make the object available through an alternate means am I required to release it under the MIT license as well?·[/list]
A.···· No, you may distribute your object under whatever license you would like; only those objects on the Object Exchange have the requirement for being released under the MIT License.
·

[list=11][*]I have read elsewhere that Parallax Inc. provides the code on the Object Exchange as public domain and has no copyright, is this correct?··[/list]
A.···· No; while this used to be the case, as of INSERT CURRENT DATE HERE all code has been relicensed under the MIT License.
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer

Parallax, Inc.

Post Edited (Paul Baker (Parallax)) : 1/28/2008 6:10:47 PM GMT

Comments

  • RaymanRayman Posts: 14,162
    edited 2008-01-28 18:06
    Looks good to me! One question: Does this mean one cannot put public domain code there?
  • deSilvadeSilva Posts: 2,967
    edited 2008-01-28 18:11
    I think this is fine. I anticipate no change of habit wrt submissions , however some uncertainties are resolved now.

    I like the idea to paste the full disclaimer at the end of the file!

    I understand that this refers to the granularity level of objects only, i.e. when I publish an object needing specific other objects from the OBEX, I need not refer to their copyright situation in the main program?
    Or do I?
    Or does it depend on whether I include them in a zip file, rather than let the user retrieve them himself?
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 18:11
    All code is released under the MIT license, public domain is less restrictive so it can be re-released under MIT, therefore public domain software can be placed on the object exchange, but it will become MIT once on it. The only difference between public domain and MIT that the average person needs to worry about is that under the MIT license the author maintains his copyright (but has waived all other rights normally afforded a copyright holder).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • Mike GreenMike Green Posts: 23,101
    edited 2008-01-28 18:13
    I'm glad you're doing this. It ensures that the contributors retain credit (acknowledgement) for the work they've done, yet allow others to use the code as they need to, whether to publish articles or build products, without worrying about licensure.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 18:18
    deSilva said...

    I understand that this refers to the granularity level of objects only, i.e. when I publish an object needing specific other objects from the OBEX, I need not refer to their copyright situation in the main program?
    Or do I?
    Or does it depend on whether I include them in a zip file, rather than let the user retrieve them himself?
    No mention of a child object's·licensing is needed in a parent object, even if it's your own child object. The child object should have it's own license, otherwise you may find yourself having to insert many·licensing agreements, then it becomes confusing as to which code each license pertains to. So unless you are including code from another author in substantial quantities in the object you are writing (the object itself, not objects included), there should only be one license agreement in each object.

    We·want the authors to place the license·in each object of thier own which is submitted to the exchange, this way the license stays with what is being licensed (the code).·We recommend using the documenting feature "{{ .. }}" so the license shows up in the documentaion pane, but this is only a suggestion.


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.

    Post Edited (Paul Baker (Parallax)) : 1/28/2008 6:24:08 PM GMT
  • RaymanRayman Posts: 14,162
    edited 2008-01-28 18:21
    Could another option be, instead of having the full license text in every source file, a seperate license file included in the package or linked to on the OBEX site?
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 18:23
    No we want the license in each object, this way if the files get split up the license still remains with the code it pertains to. Linking to our page isn't the best option, because at some point that link may break and we want the user to understand fully what the license is without having to make external references.

    This is why we suggest placing the "fine print" at the end of the file, so it's out of the way.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.

    Post Edited (Paul Baker (Parallax)) : 1/28/2008 6:28:34 PM GMT
  • RaymanRayman Posts: 14,162
    edited 2008-01-28 18:32
    What do you think about using this same license on code posted in the forum?
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 18:38
    We are not going to impose the MIT license on code posted to the forum because some people do not want to release thier code under MIT, but rather GPL (or some other license). And we don't want to exclude thier·ablilty to post thier code to the forum. However an individual author may choose to provide the code they post on the forum under the MIT license.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.

    Post Edited (Paul Baker (Parallax)) : 1/28/2008 6:49:13 PM GMT
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 18:45
    I'll add a question to the FAQ clarifying how we expect the license to be included (basically posing Rayman's question posted 11:21)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • potatoheadpotatohead Posts: 10,260
    edited 2008-01-28 18:50
    Looks good to me. I'll get the edits to the relevant wiki page done this week.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
  • Martin HebelMartin Hebel Posts: 1,239
    edited 2008-01-28 19:16
    If you could post a 'template' object that includes the licensing, I think it would help more than drawn out explanations of how to do it correctly.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    SelmaWare Solutions - StampPlot GUI for controllers, XBee and Propeller Application Boards

    Southern Illinois University Carbondale, Electronic Systems Technologies

    American Technical Educator's Assoc. Conference·- April, Biloxi, MS. -- PROPELLER WORKSHOP!
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-01-28 19:32
    Paul,

    Good work! It strikes a nice balance between Parallax's need to provide unencumbered code and the author's desire to retain the rights to it.

    Although I usually favor the GPL, since it requires that sharing entail further sharing as a quid pro quo, that encumbrance alone would undermine Parallax's ultimate objective with the OBEX, which is to make the Propeller hardware as attractive as possible to potential customers. So I'm in complete concurrance with your choosing the MIT license.

    And, yes, the terms are spelled out with more than sufficient detail and clarity.

    Thanks for the effort to make this a reality!

    -Phil

    Post Edited (Phil Pilgrim (PhiPi)) : 1/28/2008 7:59:31 PM GMT
  • hippyhippy Posts: 1,981
    edited 2008-01-28 21:36
    Paul Baker (Parallax) said...
    Copyright (c) <year> <copyright holders>

    ....

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    If I take an MIT licensed object, modify it to add functionality and re-submit it as a new object; what would I do about the Copyright Notice ?

    The original cannot be removed as it is substantially the same code, but I would not necessarily want to assign my Copyright rights to the original author. Would I simply add my own Copyright Notice and create joint Copyright ?
  • mirrormirror Posts: 322
    edited 2008-01-28 21:37
     &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
     &#9474;               Terms of use: MIT License                                   &#9474;
     &#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;           
     &#9474;  Permission is hereby granted, free of charge, to any person obtaining a  &#9474;
     &#9474; copy of this software and associated documentation files (the "Software"),&#9474;
     &#9474; to deal in the Software without restriction, including without limitation &#9474;
     &#9474; the rights to use, copy, modify, merge, publish, distribute, sublicense,  &#9474;
     &#9474;   and/or sell copies of the Software, and to permit persons to whom the   &#9474;
     &#9474;   Software is furnished to do so, subject to the following conditions:    &#9474;
     &#9474;                                                                           &#9474;
     &#9474;  The above copyright notice and this permission notice shall be included  &#9474;
     &#9474;          in all copies or substantial portions of the Software.           &#9474;
     &#9474;                                                                           &#9474;
     &#9474;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR &#9474;
     &#9474; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  &#9474;
     &#9474;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&#9474;
     &#9474;  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER   &#9474;
     &#9474; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   &#9474;
     &#9474;   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER     &#9474;
     &#9474;                      DEALINGS IN THE SOFTWARE.                            &#9474;
     &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
    

    Is this pretty enough?
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-28 22:26
    Hippy, you would include two copyright lines, one for the original code and one for the modified code, but you can get by with only one terms of use clause (if both are MIT). Ideally you would indicated which code belongs to which copyright, you could do this by only indicating one of the copyrights (probably the one with the fewest lines). If you use the superscripting numbers in the Parallax font, you could have upto three sources of copyright and have appropriate labels. In these situations we aren't going to check after you and ask you to do it a certain way, just use whatever method you are comfortable with and is clear, and you're good.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
Sign In or Register to comment.