-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OSI-approved license to OMJulia top level folder #61
Comments
@casella Maybe we should discuss this is the next developer meeting, or does the OSMC board need to decide this? |
To the contrary, anybody can do that, provided they make the changed code publicly available if they release it. I don't see any problem with that. @AnHeuermann please remind me this issue during the next webmeeting. |
Adding @adrpo to the loop. We should use the same license here as for the other OpenModelica Julia packages. |
Isn't code generated by omc under the OSMC-PL runtime license (so, OSMC-PL or GPL-3 or BSD-3), isn't that what that license is for?
At least MetaModelica.jl and DoubleEnded.jl (and the OMJulia file linked above) seem to use an old version of the RT license, with a missing mention of BSD-3. |
The OSMC-PL license is meant for the source code of the tool, not for the generated source code of user's models. That is to prevent non OSMC-members to change the code of OpenModelica for their purposes, make it closed-source and sell without any benefit for the OSMC. There is no reason to use the OSMC-PL license for the generated code of user's models. User's models are the property of the user and we should have no business with that, no string attached. Commercial tools do it, forcing third parties that want to run your compiled model to also have a license. That has never been our intention. So, we use the OSMC-PL runtime license, that also includes BSD-3, which basically allows you do do anything you want with the code, except claiming you wrote it. |
Thank you for the clarification, this matches my understanding, as well. |
The case of changing OM code is very clear, but what about preventing using OM unchanged in such a way? Possibly that is what is surfaced in discussions in components wrapping/driving OM, like here or in OpenModelica/OMPython#153. For example, let us consider that OMJulia or OMPython (or other ancillary/driver packages) are used unchanged/imported by some entity in some software S that e.g. automates model execution/runs tests/does machine learning on models/whatever currently hip topic. The end user would install OM separately (under OSMC-PL | GPL3) to obtain The first question to resolve is if the use of Assuming that is correct, then the license of OMJulia or OMPython itself becomes relevant. Option A) If OMJulia/OMPython are licensed under OSMC-PL/GPL-3, this means software S will also need to be under OSMC-PL/GPL-3. Option B) If OMJulia/OMPython are licensed under OSMC-PL-RT/GPL-3/BSD-3, this is more permissive and would allow licensing S under OSMC-PL/GPL-3/BSD-3. The question is if the OSMC intends to enable use according to option A) or option B). |
IANAL either, but the text of GPL v3 seems very clear to me
Whether the input/output to/from the program comes through a file, or a socket, or a floo network port, should be irrelevant. For example, GNU is released under GPL. If you run
Makes sense.
That's clear.
I think we should discuss this with the Board. As far as I am concerned, OMJulia and OMPython are just thin wrappers around omc, to ease the communication with it, so I would use the OSMC-PL runtime license for them. Unless we consider using OMJulia and OMPython as a "premium option" that requires OSMC membership to use them with non-GPL v3 software. That doesn't make much sense to me, personally, but it's not up to me to decide. |
IIUC, the question of aggregation-or-not is primarily relevant for terms of distributing combined works , not use/running the program. It's not without reason that in the FAQs for the GPL, there are several items concerning the question if a dependency's GPL applies to the main work.
Sounds reasonable! There's probably a number of packages/tool in the org that should be reviewed concerning this question. |
On the topic of registering the package, it seems that dual-licensing packages is not a problem. An issue might be that they seem to expect that you change the LICENSE file to the OSI-approved license and include a note concerning the dual licensing, but that can maybe be clarified in a discussion with humans (not the automated machinery), or a request to enable the process to deal with multiple-license situations gracefully. |
@casella, as you have closed this, can you report on the outcome of this discussion with the board (if you had it)? In #70, you merged a license file that states in the first line that it uses the OSMC-PL version 1.2, immediately followed by something that looks like the OSMC-PL-RT header (notice the presence of the BSD license), not quite identical to either https://openmodelica.org/osmc-pl/osmc-pl-1.2-runtime.txt or https://openmodelica.org/osmc-pl/osmc-pl-1.2-header.txt. This is then followed by what I presume is the rest of the OSMC-PL. I'm confused -- has your intent changed to license this (and I guess similar tools surrounding the OM ecosystem) from OSMC-PL-RT to OSMC-PL? If so, can you say what caused the change of mind from your previous assessment (quoted above, that I agree with!), and why is the BSD mentioned in the license file from https://github.com/OpenModelica/OMJulia.jl/pull/70/files? Should that be cleaned up/made consistent? Combining Julia and OM sounds exciting! :-) I'm not trying to be annoying here, it just would be good for the terms of use to be clear/not apparently contradictory. 😃 |
Gosh, I wish somebody else could take care of these issues 😅 |
@bilderbuchi thanks for pointing this out. I missed the fact that the PR included OSMC-PL, not OSMC-PL-RT. I'll have to undo that. |
In fact, OMJulia.jl already includes that information. I'll just report it to the LICENSE.md file |
OK, this was in fact easier than I thought.
@DilumAluthge, I hope this is fine for you. |
And, thanks to @bilderbuchi for watching over my shoulders 😅 |
Sure, no problem!
I seem to be attracting the attention of license-related issues (OpenModelica/OpenModelica#7612) 😅 If you want, I can try to collect information on the license status (at least the readme/license files, checking all sources will be quite the effort) for the most relevant/active repos in the OM org in one place, e.g. an issue in the OM tracker. |
That would be very useful indeed.
Sure. This also requires some time and effort, but it's much less once the relevant information has been properly processed.
Absolutely. BTW, I guess we haven't formally defined "OSMC-PL_RT", which basically means OSMC-PL or BSD 3-clause or GPL v3. Or is this stated in some official online document? BTW, we are now changing GPL v3 to GPL Affero (to cover software-as-a-service usage of OMC), so I guess that will need a further round of license info harmonization. |
I agree, I couldn't find this identifier defined, either. It might be good to introduce this at some point, including versioning (in lockstep with OSMC-PL versions, probably). In the style of SPDX identifiers, I'd avoid the underscore and use |
Also, you might have a case to get the OSMC-PL added to the SPDX license list, which would enable using and SPDX ID like The RT version can (and probably should) be codified/composed with a "license expression" like |
Ah, interesting. You probably realize that that will make adoption (in companies) more difficult? For example, in this template company policy for OSS use, OM would drop from the "Caution (internal use ok without legal approval)" category to the "Stop (legal approval needed for any use)" category. I assume that is intentional? |
|
Currently JuliaRegistries/General#58444 fails, because of the missing license file, so we can't update our OMJulia version in the Julia general regestry.
OMJulia source files are using the OSMC-PL license, see e.g. https://github.com/OpenModelica/OMJulia.jl/blob/master/src/OMJulia.jl#L1-L27.
Our OSMC-PL license is problematic for adding OMJulia to the general registry since it is not part of the OSI-approved license.
Is there any reason to not just use a license that is OSI-aproved and allowes other to change OMJulia.jl? E.g. MIT license.
This package is only a API for OpenModelica and OpenModelica is not shipped with it.
So all generated code by omc is still under OSMC-PL license.
Or we use GPL-3.0, but then nobody is allowed to change OMJulia.
The text was updated successfully, but these errors were encountered: