diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..72fd2fb6 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,508 @@ +# The Modelica License 2 + +### Preamble. + +The goal of this license is that Modelica related model +libraries, software, images, documents, data files etc. can be used +freely in the original or a modified form, in open source and in +commercial environments (as long as the license conditions below are +fulfilled, in particular sections 2c) and 2d). The Original Work is +provided free of charge and the use is completely at your own risk. +Developers of free Modelica packages are encouraged to utilize this +license for their work. + +The Modelica License applies to any Original Work that contains the +following licensing notice adjacent to the copyright notice(s) for this +Original Work: + +**Licensed by \ under the Modelica License 2** + +### 1. Definitions. + +1. “License” is this Modelica License. +2. “Original Work” is any work of authorship, including software, + images, documents, data files, that contains the above licensing + notice or that is packed together with a licensing notice + referencing it. +3. “Licensor” is the provider of the Original Work who has placed this + licensing notice adjacent to the copyright notice(s) for the + Original Work. The Original Work is either directly provided by the + owner of the Original Work, or by a licensee of the owner. +4. “Derivative Work” is any modification of the Original Work which + represents, as a whole, an original work of authorship. For the + matter of clarity and as examples: + 1. Derivative Work shall not include work that remains separable + from the Original Work, as well as merely extracting a part of + the Original Work without modifying it. + 2. Derivative Work shall not include (a) fixing of errors and/or + (b) adding vendor specific Modelica annotations and/or (c) using + a subset of the classes of a Modelica package, and/or (d) using + a different representation, e.g., a binary representation. + 3. Derivative Work shall include classes that are copied from the + Original Work where declarations, equations or the documentation + are modified. + 4. Derivative Work shall include executables to simulate the models + that are generated by a Modelica translator based on the + Original Work (of a Modelica package). + +5. “Modified Work” is any modification of the Original Work with the + following exceptions: (a) fixing of errors and/or (b) adding vendor + specific Modelica annotations and/or (c) using a subset of the + classes of a Modelica package, and/or (d) using a different + representation, e.g., a binary representation. +6. "Source Code" means the preferred form of the Original Work for + making modifications to it and all available documentation + describing how to modify the Original Work. +7. “You” means an individual or a legal entity exercising rights under, + and complying with all of the terms of, this License. +8. “Modelica package” means any Modelica library that is defined with + the “`package  ... end ;`” Modelica language element. + +### 2. Grant of Copyright License. + +Licensor grants You a worldwide, +royalty-free, non-exclusive, sublicensable license, for the duration of +the copyright, to do the following: + +1. To reproduce the Original Work in copies, either alone or as part of + a collection. + +2. To create Derivative Works according to Section 1d) of this License. + +3. To distribute or communicate to the public copies of the Original + Work or a Derivative Work under this License. No fee, neither as a + copyright-license fee, nor as a selling fee for the copy as such may + be charged under this License. Furthermore, a verbatim copy of this + License must be included in any copy of the Original Work or a + Derivative Work under this License.\ + For the matter of clarity, it is permitted A) to distribute or + communicate such copies as part of a (possible commercial) + collection where other parts are provided under different licenses + and a license fee is charged for the other parts only and B) to + charge for mere printing and shipping costs. + +4. To distribute or communicate to the public copies of a Derivative + Work, alternatively to Section 2c), under any other license of your + choice, especially also under a license for commercial/proprietary + software, as long as You comply with Sections 3, 4 and 8 below. \ + For the matter of clarity, no restrictions regarding fees, either + as to a copyright-license fee or as to a selling fee for the copy as + such apply. + +5. To perform the Original Work publicly. + +6. To display the Original Work publicly. + +### 3. Acceptance. + +Any use of the Original Work or a Derivative Work, or +any action according to either Section 2a) to 2f) above constitutes Your +acceptance of this License. + +### 4. Designation of Derivative Works and of Modified Works. + +The identifying designation of Derivative Work and of Modified Work must be +different to the corresponding identifying designation of the Original +Work. This means especially that the (root-level) name of a Modelica +package under this license must be changed if the package is modified +(besides fixing of errors, adding vendor specific Modelica annotations, +using a subset of the classes of a Modelica package, or using another +representation, e.g. a binary representation). + +### 5. Grant of Patent License. + +Licensor grants You a worldwide, +royalty-free, non-exclusive, sublicensable license, under patent claims +owned by the Licensor or licensed to the Licensor by the owners of the +Original Work that are embodied in the Original Work as furnished by the +Licensor, for the duration of the patents, to make, use, sell, offer for +sale, have made, and import the Original Work and Derivative Works under +the conditions as given in Section 2. For the matter of clarity, the +license regarding Derivative Works covers patent claims to the extent as +they are embodied in the Original Work only. + +### 6. Provision of Source Code. + +Licensor agrees to provide You with a +copy of the Source Code of the Original Work but reserves the right to +decide freely on the manner of how the Original Work is provided.\ +       For the matter of clarity, Licensor might provide only a binary +representation of the Original Work. In that case, You may (a) either +reproduce the Source Code from the binary representation if this is +possible (e.g., by performing a copy of an encrypted Modelica package, +if encryption allows the copy operation) or (b) request the Source Code +from the Licensor who will provide it to You. + +### 7. Exclusions from License Grant. + +Neither the names of Licensor, nor +the names of any contributors to the Original Work, nor any of their +trademarks or service marks, may be used to endorse or promote products +derived from this Original Work without express prior permission of the +Licensor. Except as otherwise expressly stated in this License and in +particular in Sections 2 and 5, nothing in this License grants any +license to Licensor’s trademarks, copyrights, patents, trade secrets or +any other intellectual property, and no patent license is granted to +make, use, sell, offer for sale, have made, or import embodiments of any +patent claims.\ +       No license is granted to the trademarks of Licensor even if such +trademarks are included in the Original Work, except as expressly stated +in this License. Nothing in this License shall be interpreted to +prohibit Licensor from licensing under terms different from this License +any Original Work that Licensor otherwise would have a right to license. + +### 8. Attribution Rights. + +You must retain in the Source Code of the +Original Work and of any Derivative Works that You create, all author, +copyright, patent, or trademark notices, as well as any descriptive text +identified therein as an "Attribution Notice". The same applies to the +licensing notice of this License in the Original Work. For the matter of +clarity, “author notice” means the notice that identifies the original +author(s). \ +       You must cause the Source Code for any Derivative Works that You +create to carry a prominent Attribution Notice reasonably calculated to +inform recipients that You have modified the Original Work. \ +       In case the Original Work or Derivative Work is not provided in +Source Code, the Attribution Notices shall be appropriately displayed, +e.g., in the documentation of the Derivative Work. + +### 9. Disclaimer of Warranty. + +**The Original Work is provided under this License on an "as is" basis +and without warranty, either express or implied, including, without +limitation, the warranties of non-infringement, merchantability or +fitness for a particular purpose. The entire risk as to the quality of +the Original Work is with You.** This disclaimer of warranty constitutes +an essential part of this License. No license to the Original Work is +granted by this License except under this disclaimer. + +### 10. Limitation of Liability. + +Under no circumstances and under no +legal theory, whether in tort (including negligence), contract, or +otherwise, shall the Licensor, the owner or a licensee of the Original +Work be liable to anyone for any direct, indirect, general, special, +incidental, or consequential damages of any character arising as a +result of this License or the use of the Original Work including, +without limitation, damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages +or losses. This limitation of liability shall not apply to the extent +applicable law prohibits such limitation. + +### 11. Termination. + +This License conditions your rights to undertake +the activities listed in Section 2 and 5, including your right to create +Derivative Works based upon the Original Work, and doing so without +observing these terms and conditions is prohibited by copyright law and +international treaty. Nothing in this License is intended to affect +copyright exceptions and limitations. This License shall terminate +immediately and You may no longer exercise any of the rights granted to +You by this License upon your failure to observe the conditions of this +license. + +### 12. Termination for Patent Action. + +This License shall terminate +automatically and You may no longer exercise any of the rights granted +to You by this License as of the date You commence an action, including +a cross-claim or counterclaim, against Licensor, any owners of the +Original Work or any licensee alleging that the Original Work infringes +a patent. This termination provision shall not apply for an action +alleging patent infringement through combinations of the Original Work +under combination with other software or hardware. + +### 13. Jurisdiction. + +Any action or suit relating to this License may be +brought only in the courts of a jurisdiction wherein the Licensor +resides and under the laws of that jurisdiction excluding its +conflict-of-law provisions. The application of the United Nations +Convention on Contracts for the International Sale of Goods is expressly +excluded. Any use of the Original Work outside the scope of this License +or after its termination shall be subject to the requirements and +penalties of copyright or patent law in the appropriate jurisdiction. +This section shall survive the termination of this License. + +### 14. Attorneys’ Fees. + +In any action to enforce the terms of this +License or seeking damages relating thereto, the prevailing party shall +be entitled to recover its costs and expenses, including, without +limitation, reasonable attorneys' fees and costs incurred in connection +with such action, including any appeal of such action. This section +shall survive the termination of this License. + +### 15. Miscellaneous. + +1. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. +2. No verbal ancillary agreements have been made. Changes and additions + to this License must appear in writing to be valid. This also + applies to changing the clause pertaining to written form. +3. You may use the Original Work in all ways not otherwise restricted + or conditioned by this License or by law, and Licensor promises not + to interfere with or be responsible for such uses by You. + +* * * * * + +# How to Apply the Modelica License 2 + +At the top level of your Modelica package and at every important +subpackage, add the following notices in the info layer of the package: + +Licensed by \ under the Modelica License 2\ + Copyright © \-\, \. + +*This Modelica package is free software and the use is completely at +your own risk; it can be redistributed and/or modified under the terms +of the Modelica License 2. For license conditions (including the +disclaimer of warranty) see +[Modelica.UsersGuide.ModelicaLicense2](modelica://Modelica.UsersGuide.ModelicaLicense2) +or visit +[http://www.modelica.org/licenses/ModelicaLicense2](http://www.modelica.org/licenses/ModelicaLicense2).* + +Include a copy of the Modelica License 2 under +**\.UsersGuide.ModelicaLicense2** (use +[http://www.modelica.org/licenses/ModelicaLicense2.mo](http://www.modelica.org/licenses/ModelicaLicense2.mo)). +Furthermore, add the list of authors and contributors under +**\.UsersGuide.Contributors** or +**\.UsersGuide.Contact**. + +For example, sublibrary Modelica.Blocks of the Modelica Standard Library +may have the following notices: + +Licensed by Modelica Association under the Modelica License 2\ + Copyright © 1998-2008, Modelica Association. + +*This Modelica package is free software and the use is completely at +your own risk; it can be redistributed and/or modified under the terms +of the Modelica License 2. For license conditions (including the +disclaimer of warranty) see +[Modelica.UsersGuide.ModelicaLicense2](modelica://Modelica.UsersGuide.ModelicaLicense2) +or visit +[http://www.modelica.org/licenses/ModelicaLicense2](http://www.modelica.org/licenses/ModelicaLicense2).* + +For C-source code and documents, add similar notices in the +corresponding file. + +For images, add a “readme.txt” file to the directories where the images +are stored and include a similar notice in this file. + +In these cases, save a copy of the Modelica License 2 in one directory +of the distribution, e.g., +[http://www.modelica.org/licenses/ModelicaLicense2.html](http://www.modelica.org/licenses/ModelicaLicense2.html) +in directory +**\/Resources/Documentation/ModelicaLicense2.html**. + +* * * * * + +# Frequently Asked Questions + +This section contains questions/answer to users and/or distributors of +Modelica packages and/or documents under Modelica License 2. Note, the +answers to the questions below are not a legal interpretation of the +Modelica License 2. In case of a conflict, the language of the license +shall prevail. + +### Using or Distributing a Modelica Package under the Modelica License 2 + +**What are the main differences to the previous version of the Modelica +License?** + +1. Modelica License 1 is unclear whether the licensed Modelica package + can be distributed under a different license. Version 2 explicitly + allows that “Derivative Work” can be distributed under any license + of Your choice, see examples in Section 1d) as to what qualifies as + Derivative Work (so, version 2 is clearer). + +2. If You modify a Modelica package under Modelica License 2 (besides + fixing of errors, adding vendor specific Modelica annotations, using + a subset of the classes of a Modelica package, or using another + representation, e.g., a binary representation), you must rename the + root-level name of the package for your distribution. In version 1 + you could keep the name (so, version 2 is more restrictive). The + reason of this restriction is to reduce the risk that Modelica + packages are available that have identical names, but different + functionality. + +3. Modelica License 1 states that “It is not allowed to charge a fee + for the original version or a modified version of the software, + besides a reasonable fee for distribution and support”. Version 2 + has a similar intention for all Original Work under Modelica License + 2 (to remain free of charge and open source) but states this more + clearly as “No fee, neither as a copyright-license fee, nor as a + selling fee for the copy as such may be charged”. Contrary to + version 1, Modelica License 2 has no restrictions on fees for + Derivative Work that is provided under a different license (so, + version 2 is clearer and has fewer restrictions). + +4. Modelica License 2 introduces several useful provisions for the + licensee (articles 5, 6, 12), and for the licensor (articles 7, 12, + 13, 14) that have no counter part in version 1. + +5. Modelica License 2 can be applied to all type of work, including + documents, images and data files, contrary to version 1 that was + dedicated for software only (so, version 2 is more general). + +**Can I distribute a Modelica package (under Modelica License 2) as part +of my commercial Modelica modeling and simulation environment?** + +Yes, according to Section 2c). However, you are not allowed to charge a +fee for this part of your environment. Of course, you can charge for +your part of the environment. + +**Can I distribute a Modelica package (under Modelica License 2) under a +different license?** + +No. The license of an unmodified Modelica package cannot be changed +according to Sections 2c) and 2d). This means that you cannot sell +copies of it, any distribution has to be free of charge. + +**Can I distribute a Modelica package (under Modelica License 2) under a +different license when I first encrypt the package?** + +No. Merely encrypting a package does not qualify for Derivative Work and +therefore the encrypted package has to stay under Modelica License 2. + +**Can I distribute a Modelica package (under Modelica License 2) under a +different license when I first add classes to the package?** + +No. The package itself remains unmodified, i.e., it is Original Work, +and therefore the license for this part must remain under Modelica +License 2. The newly added classes can be, however, under a different +license. + +**Can I copy a class out of a Modelica package (under Modelica License +2) and include it****unmodified****in a Modelica package under +a****commercial/proprietary license****?** + +No, according to article 2c). However, you can include model, block, +function, package, record and connector classes in your Modelica package +under Modelica License 2. This means that your Modelica package could be +under a commercial/proprietary license, but one or more classes of it +are under Modelica License 2.\ +Note, a “type” class (e.g., type Angle = Real(unit=”rad”)) can be copied +and included unmodified under a commercial/proprietary license (for +details, see the next question). + +**Can I copy a type class or****part****of a model, block, function, +record, connector class, out of a Modelica package (under Modelica +License 2) and include it modified or unmodified in a Modelica package +under a****commercial/proprietary****license** + +Yes, according to article 2d), since this will in the end usually +qualify as Derivative Work. The reasoning is the following: A type class +or part of another class (e.g., an equation, a declaration, part of a +class description) cannot be utilized “by its own”. In order to make +this “usable”, you have to add additional code in order that the class +can be utilized. This is therefore usually Derivative Work and +Derivative Work can be provided under a different license. Note, this +only holds, if the additional code introduced is sufficient to qualify +for Derivative Work. Merely, just copying a class and changing, say, one +character in the documentation of this class would be no Derivative Work +and therefore the copied code would have to stay under Modelica License +2. + +**Can I copy a class out of a Modelica package (under Modelica License +2) and include it in****modified****form in +a****commercial/proprietary****Modelica package?** + +Yes. If the modification can be seen as a “Derivative Work”, you can +place it under your commercial/proprietary license. If the modification +does not qualify as “Derivative Work” (e.g., bug fixes, vendor specific +annotations), it must remain under Modelica License 2. This means that +your Modelica package could be under a commercial/proprietary license, +but one or more parts of it are under Modelica License 2. + +**Can I distribute a “save total model” under my commercial/proprietary +license, even if classes under Modelica License 2 are included?** + +Your classes of the “save total model” can be distributed under your +commercial/proprietary license, but the classes under Modelica License 2 +must remain under Modelica License 2. This means you can distribute a +“save total model”, but some parts might be under Modelica License 2. + +**Can I distribute a Modelica package (under Modelica License 2) in +encrypted form?** + +Yes. Note, if the encryption does not allow “copying” of classes (in to +unencrypted Modelica source code), you have to send the Modelica source +code of this package to your customer, if he/she wishes it, according to +article 6. + +**Can I distribute an executable under my commercial/proprietary +license, if the model from which the executable is generated uses models +from a Modelica package under Modelica License 2?** + +Yes, according to article 2d), since this is seen as Derivative Work. +The reasoning is the following: An executable allows the simulation of a +concrete model, whereas models from a Modelica package (without +pre-processing, translation, tool run-time library) are not able to be +simulated without tool support. By the processing of the tool and by its +run-time libraries, significant new functionality is added (a model can +be simulated whereas previously it could not be simulated) and +functionality available in the package is removed (e.g., to build up a +new model by dragging components of the package is no longer possible +with the executable). + +**Is my modification to a Modelica package (under Modelica License 2) a +Derivative Work?** + +It is not possible to give a general answer to it. To be regarded as "an +original work of authorship", a derivative work must be different enough +from the original or must contain a substantial amount of new material. +Making minor changes or additions of little substance to a preexisting +work will not qualify the work as a new version for such purposes. + +### Using or Distributing a Modelica Document under the Modelica License 2 + +This section is devoted especially for the following applications: + +1. A Modelica tool extracts information out of a Modelica package and + presents the result in form of a “manual” for this package in, e.g., + html, doc, or pdf format. + +2. The Modelica language specification is a document defining the + Modelica language. It will be licensed under Modelica License 2. + +3. Someone writes a book about the Modelica language and/or Modelica + packages and uses information which is available in the Modelica + language specification and/or the corresponding Modelica package. + +**Can I sell a manual that was basically derived by extracting +information automatically from a Modelica package under Modelica License +2 (e.g., a “reference guide” of the Modelica Standard Library):** + +Yes. Extracting information from a Modelica package, and providing it in +a human readable, suitable format, like html, doc or pdf format, where +the content is significantly modified (e.g. tables with interface +information are constructed from the declarations of the public +variables) qualifies as Derivative Work and there are no restrictions to +charge a fee for Derivative Work under alternative 2d). + +**Can I copy a text passage out of a Modelica document (under Modelica +License 2) and use it****unmodified****in my document (e.g. the Modelica +syntax description in the Modelica Specification)?** + +Yes. In case you distribute your document, the copied parts are still +under Modelica License 2 and you are not allowed to charge a license fee +for this part. You can, of course, charge a fee for the rest of your +document. + +**Can I copy a text passage out of a Modelica document (under Modelica +License 2) and use it in****modified****form in my document?** + +Yes, the creation of Derivative Works is allowed. In case the content is +significantly modified this qualifies as Derivative Work and there are +no restrictions to charge a fee for Derivative Work under alternative +2d). + +**Can I sell a printed version of a Modelica document (under Modelica +License 2), e.g., the Modelica Language Specification?** + +No, if you are not the copyright-holder, since article 2c) does not +allow a selling fee for a (in this case physical) copy. However, mere +printing and shipping costs may be recovered.