Skip to content

Propeller Object License (MIT)

Parallax Git Administrator edited this page Jul 9, 2020 · 10 revisions

All source code in the libraries* folder of the Parallax Propeller Repository is provided under the MIT License. Submission of objects to, and downloading of objects from, this repository constitutes your understanding of the MIT License and acceptance of its terms of use.

The terms of the license should be included in all newly submitted and revised objects.

* The libraries folder is also known as the "Propeller Object Exchange," or simply, "the exchange."

MIT License

The Copyright Statement and Terms Of Use may be copied/pasted into source. Variations of formatting/spacing are acceptable as long as terms of use wording remains the same.

Copyright Statement

{{
Copyright (c) <year> <copyright_holders>
See end of file for terms of use.
}}
Remember to replace bracketed items "<items>" with appropriate info.
We recommend placing the copyright statement near the top of source code. The nearby "See end of file..." statement reduces top-of-code clutter and allows placement of terms of use at the end of the file.

Terms Of Use

{{
+─────────────────────────────────────────────────────────────────────────────────────────+
│                                TERMS OF USE: MIT License                                │
+─────────────────────────────────────────────────────────────────────────────────────────+
│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: │
│                                                                                         │
│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, EXPRESSED 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.                                                                │
+─────────────────────────────────────────────────────────────────────────────────────────+
}}
We recommend placing the terms of use statement at the very end of source code.

What does it mean? (The 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.

License FAQs

Still unsure? These frequently asked questions may help.

Q: I am submitting a new object or resubmitting an existing object; 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.

Q: My object submission uses one or more unmodified objects already in the exchange; do I need to include the MIT License of these included object(s) in my parent object?

  • 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 doesn't already include the MIT License, it must be added into the child object.

Q: Instead of placing the license in every object, can I include a separate license file in the package or provide a link to the license agreement?

  • A: No, the license should be in the same file as the code so that if an individual object is removed from the package it will still have the license contained within. A link to this wiki page may break at some point in the future, so it should not be relied upon to communicate the license agreement.

Q: I want to use just a few lines of code from an object on the exchange; am I required to insert the original license agreement in my code?

  • A: No, the point of the 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.

Q: 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.

Q: I need to modify an object I obtained from the exchange 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 license 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 exchange then it must be redistributed under the MIT License as the exchange's terms of use require.

Q: I have downloaded an object from the 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 license copyright and terms of use into the object and fill in the copyright year 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).

Q: Is the MIT License compatible with the GNU GPL?

  • 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 must not be submitted to the exchange.

Q: I have created an object which uses code released under GPL; can I submit my object to the exchange?

  • A: No, all work derived from GPL code must itself be GPL. Since GPL prohibits proprietary use, it must not be released under the MIT License which is a requirement for all objects on the exchange.

Q: I have submitted an object to the exchange; if I make the object available through an alternate means, am I required to release it under the MIT License as well?

  • A: No, you may distribute your object under whatever license you would like; only those objects on the exchange have the requirement for being released under the MIT License.