oslc-op / sysml-oslc-server

Sample code to demonstrate how to use Lyo Designer to create an OSLC server for the SysML v2 REST API.
Apache License 2.0
10 stars 2 forks source link

Add license #15

Closed berezovskyi closed 3 years ago

berezovskyi commented 4 years ago

Licensing generated code under EDL instead of EPL allows to provide the derivative work under Apache and LGPL licenses.

berezovskyi commented 4 years ago

@jamsden can you request IBM to let you dual-license your work "under the terms of Apache License 2.0 and GNU Lesser General Public License v2.1 or (at your option) any later version". This will let us keep this code here and seamlessly push it to SST every once in a while as Manas suggested (but it was lost in the heat of the discussion).

berezovskyi commented 4 years ago

@jamsden would be also good if your lawyers can check the license statement I wrote in this PR. Maybe we can ask Chet for help. If they disagree, I will have to ask Eclipse to allow license generated code also under LGPL, but this shall not be needed as EDL provides the necessary loophole.

jamsden commented 4 years ago

I can contribute to oslc-op, following the requirements of the CLA we signed. I believe oslc-op established its IP management when it was established, and that all work products produced by the oscl-op would follow the IP for the project itself.

Let's see if we can keep the OSLC SysML server development at oslc-op and give the SST team time to figure out an organizational structure and IP management scheme for their reference implementation. Using the oslc-op allows us to leverage that existing organization and infrastructure so we can focus on the development work. OMG does not support this structure, so SST will have to come up with something. I would like us to stay out of that if possible so we can focus on OSLC.

Regarding the SysML specification contribution - the SysML OSLC PSM, we need to decide:

  1. what is going to be contributed - probably just the Swagger.io for the SysML OSLC REST API, but there may be other written content and diagrams for introductory material and to explain how the PSM maps to the PIM.
  2. how the oslc-op PSG as an organization can contribute work products to OMG and under what licensing - this is something we can take up with Chet.

Dealing with these cross-organizational issues will be beneficial because it will establish how SysML can be integrated with other things going forward, and not encourage it to be an island unto itself.

berezovskyi commented 4 years ago

I believe there is little to discuss with SST regarding licensing, they made LGPL choice clear.

I will ask Chet if OASIS allows my licensing statement (or has some better equivalent legalese) for the code you contribute under the readily signed CLAs.

-- Cheers, Andrew


From: Jim Amsden notifications@github.com Sent: Thursday, September 10, 2020 7:09:17 PM To: oslc-op/sysml-oslc-server sysml-oslc-server@noreply.github.com Cc: Andrew Berezovskyi andrew@berezovskyi.me; Author author@noreply.github.com Subject: Re: [oslc-op/sysml-oslc-server] Add license (#15)

I can contribute to oslc-op, following the requirements of the CLA we signed. I believe oslc-op established its IP management when it was established, and that all work products produced by the oscl-op would follow the IP for the project itself.

Let's see if we can keep the OSLC SysML server development at oslc-op and give the SST team time to figure out an organizational structure and IP management scheme for their reference implementation. Using the oslc-op allows us to leverage that existing organization and infrastructure so we can focus on the development work. OMG does not support this structure, so SST will have to come up with something. I would like us to stay out of that if possible so we can focus on OSLC.

Regarding the SysML specification contribution - the SysML OSLC PSM, we need to decide:

  1. what is going to be contributed - probably just the Swagger.io for the SysML OSLC REST API, but there may be other written content and diagrams for introductory material and to explain how the PSM maps to the PIM.
  2. how the oslc-op PSG as an organization can contribute work products to OMG and under what licensing - this is something we can take up with Chet.

Dealing with these cross-organizational issues will be beneficial because it will establish how SysML can be integrated with other things going forward, and not encourage it to be an island unto itself.

โ€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-690524820, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAAPZXV352SP4OMXBTKUSETSFEB3ZANCNFSM4RFLITXQ.

berezovskyi commented 4 years ago

@OASIS-OP-Admin hello, Chet! We need to collaborate with an OMG committee and they are releasing materials under LGPL. I was curious if OASIS can let OSLC OP dual-license this work under Apache and LGPL for making this collaboration seamless (ie to have the development under OASIS and do occasional code dumps to OMG), please? If yes, could you please check the proposed license statement under the Changes tab of this PR (I wrote it myself and it needs a lawyer to check it)?

berezovskyi commented 4 years ago

@jadelkhoury @jamsden can we then make this repo public if you got all the legal approvals from your side? Under the terms approved by OASIS, that is.

OASIS-OP-Admin commented 4 years ago

@berezovskyi - I'm not clear on what kind of collaboration you envision. The Open Project Rules don't allow for work to be licensed under LGPL. The license choices are: Apache License v2.0; Eclipse Public License v1.0; Eclipse Public License 2.0; BSD-3-Clause License; CC-BY 2.0; CC-BY 4.0; MIT License, and CC-0.

See https://www.oasis-open.org/policies-guidelines/open-projects-process#repository-specification-licenses

jadelkhoury commented 4 years ago

This implementation is not part of the contribution to OMG. Reference implementations are not. The drive to license under LGPL seems to be driven by the group to want a more uniform licensing for all reference implementations. But they are fine with non-open source implementations, I am sure they can live with a non-LGPL open-source contribution.

jadelkhoury commented 4 years ago

btw, I also produce license files under each of the project folders (standard genreation from LyoDesigner)

berezovskyi commented 4 years ago

I did some digging and seems like Apache 2 is not compatible with LGPL 2.1 but is compatible with LGPL 3.0, so as long as they license their work under LGPL 3.0, they shall be able to take this code and relicense it under LGPL 3.0. I will remove mention of LGPL.

berezovskyi commented 4 years ago

@jadelkhoury @jamsden just changed to only mention Apache License.

@jamsden shall we make this repo public once we merge this PR?

berezovskyi commented 4 years ago

@OASIS-OP-Admin I know and I read the rules, they mentioned exceptions, which is why I cced you here. Let's skip LGPL, as Jad said it should be fine.

Actually, this repo has content that is dual-licensed under EPL 1.0 and EDL (essentially BSD-3-Clause). While this repo being a derivative work from that content (generated code, precisely speaking) can be licensed under Apache, with the implicit assumption that the original work is licensed under EDL, which allows relicensing, may we then dual-license this repo under EPL 1.0 and BSD-3-Clause as well to simplify things (i.e. avoid relicensing)?

jamsden commented 4 years ago

Sure

jadelkhoury commented 4 years ago

I still don't get it. Why are we introducing Apache, when we already have a license policy established under Eclipse Lyo. Why are we spending time on this, when we will clearly not satisfy the SST needs anyway.

berezovskyi commented 4 years ago

Because there is no license on this code! Lyo license applies to Lyo code. You took that (generated) code and produced a SysML adaptor. This adaptor is called a derivative work and ALSO needs to be licensed. If you read above, I just asked OASIS for a permission to license this derivative work under the exact license as our Lyo code just as you are wondering.

-- Andrew

On 11 September 2020 at 23:15:10, Jad El-khoury (notifications@github.com) wrote:

I still don't get it. Why are we introducing Apache, when we already have a license policy established under Eclipse Lyo. Why are we spending time on this, when we will clearly not satisfy the SST needs anyway.

โ€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

jadelkhoury commented 4 years ago

Here we generate the licenses. There is a bug that causes the files To be Generated at the root of the path (which makes them located under the model file itself). So I need to fix this LyoD bug. https://github.com/oslc-op/sysml-oslc-server/tree/master/org.oasis.oslcop.sysml.oslc-server-model/license

But still, why we need to introduce Apache?

berezovskyi commented 4 years ago

That model is 100% copyright of the user, so I agree with you that the bug shall be fixed. But still, just because you put a license in the root folder (which is why I always try to delete those folders) does not mean you have a right to do so (right as a Lyo developer, but here it's tricky because you are both Lyo dev and LyoD user). We should only put a license notice on the generated Java code (i.e. in the top header of each generated file). EPL is a per-file license, BTW.

However, the adaptor itself (i.e. not only the generated code but configs, extra Java classes, handwritten Java code inside the comment blocks, template changes, seed data) needs to be licensed. Apache is the license which OSLC OP chose in its charter. Again, I just asked OASIS above to allow us to license the adaptor under the EPL+BSD(EDL).

berezovskyi commented 4 years ago

Now that we are on this topic, we should not have the user block like this: https://github.com/oslc-op/sysml-oslc-server/blob/master/org.oasis.oslcop.sysml.oslc-server/src/main/java/org/oasis/oslcop/sysml/SysmlServerManager.java#L1. 'Copyright (c) 2011, 2012 IBM Corporation and others.' in that file is a notice and it is not legal to remove it. The user block shall be above the notice, so that it can be used like this:

// Start of user code Copyright
/*******************************************************************************
 * Copyright (c) 2020 OASIS Open.
 *
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  and Eclipse Distribution License v. 1.0 which accompanies this distribution.
 *  
 *  The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 *  and the Eclipse Distribution License is available at
 *  http://www.eclipse.org/org/documents/edl-v10.php.
 *******************************************************************************/
// End of user code 
/*******************************************************************************
 * Copyright (c) 2011, 2012 IBM Corporation and others.
 *
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  and Eclipse Distribution License v. 1.0 which accompanies this distribution.
 *  
 *  The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 *  and the Eclipse Distribution License is available at
 *  http://www.eclipse.org/org/documents/edl-v10.php.
 *  
 *  Contributors:
 *  
 *     Sam Padgett         - initial API and implementation
 *     Michael Fiedler     - adapted for OSLC4J
 *     Jad El-khoury        - initial implementation of code generator (https://bugs.eclipse.org/bugs/show_bug.cgi?id=422448)
 *     Matthieu Helleboid   - Support for multiple Service Providers.
 *     Anass Radouani       - Support for multiple Service Providers.
 *
 * This file is generated by org.eclipse.lyo.oslc4j.codegenerator
 *******************************************************************************/
berezovskyi commented 4 years ago

@OASIS-OP-Admin I think we really need some legal advice here :)

OASIS-OP-Admin commented 4 years ago

@berezovskyi - Let me repeat how I understand your request to make sure I can express it correctly to Jamie, as I'll need to pose the question to him.

The OSLC OP wishes to develop code as one of its work products and occasionally ship copies of that code, or parts of it, to a working group at OMG (Eclipse Lyo). Code produced by the OP is covered by the Apache license as described in the LICENSE.md file. However, Lyo uses GPL v2.1.

You are asking whether the OP can add the GPL license to this code when it is copied over to Lyo so that they receive it with the dual licenses.

Have I got that right?

Thanks.

berezovskyi commented 4 years ago

Thanks @OASIS-OP-Admin!

OSLC OP wishes to develop code as one of its work products and occasionally ship copies of that code, or parts of it, to a working group at OMG

Yes

to a working group at OMG (Eclipse Lyo)

No, Eclipse Lyo is a project that I and Jim lead together under the Eclipse Foundation. Eclipse Lyo code is used in our OASIS OSLC work, not the other way around.

Code produced by the OP is covered by the Apache license as described in the LICENSE.md file.

Not yet. This discussion is squarely about this question. We would like to offer it under EPL 1.0 or BSD-3-Simple (dual-license).

However, Lyo uses GPL v2.1.

No, Lyo uses EPL 1.0 or EDL (essentially a BSD-3-Simple). The choice of license lies with the user (dual-licensing).

You are asking whether the OP can add the GPL license to this code when it is copied over to Lyo so that they receive it with the dual licenses

No.

  1. Lyo code is reused in this project as a generated code. It constitutes original work (in my opinion, ofc need to run by legal). The original work is licensed by the Eclipse Foundation and contributors under EPL 1.0 or EDL (essentially a BSD-3-Simple).
  2. The derivative work (this whole repository, which includes the full source of the generated code, i.e. the original work) needs to be licensed. For now I put it under Apache 2.0 license (this assumes that we license original work under EDL which allows relicensing as one of its provisions, again needs to be confirmed by Jamie). If it were licensed under EPL-1.0+BSD-3-Simple it would make it simple for people who have a rather vague understanding of original and derivative works, as you can see from Jad's comments who is one of the Eclipse Lyo leads himself. This license shall also allow contributing the code to an LGPL (let's assume 3.0) licensed repository at OMG. I looked up that BSD-3-Simple or Apache 2.0 shall be compatible with LGPL 3.0.

Questions to Jamie:

  1. Can we dual-license this repo under EPL-1.0+BSD-3-Simple, please?
  2. Will EPL-1.0+BSD-3-Simple be possible to contribute to an LGPL 3.0 licensed repository?
  3. If either 1 or 2 is not possible, can we dual-license this repository under Apache-2.0+LGPL-3.0, please?

Please note that LGPL is a rather liberal license compared to GPL. EDL is the Eclipse Distribution License and is word-for-word identical (see under The Eclipse Distribution License is an OSI Approved Open Source License by means of the New BSD License.) to BSD-3-Simple except for the copyright holder, ofc. LGPL 3.0 is the one being discussed here and not LGPL 2.1 - I am aware of its patent termination clauses that make it incompatible with EPL or Apache.

Thanks in advance ๐Ÿ™

UPD: My bad, it is MIT that explicitly allows sublicensing but I believe BSD-3 license is equivalent in this regard.

OASIS-OP-Admin commented 4 years ago

OK, thanks. I will follow up with Jamie on this.

On Mon, Sep 14, 2020 at 2:00 PM Andrew Berezovskyi notifications@github.com wrote:

Thanks @OASIS-OP-Admin https://github.com/OASIS-OP-Admin!

OSLC OP wishes to develop code as one of its work products and occasionally ship copies of that code, or parts of it, to a working group at OMG

Yes

to a working group at OMG (Eclipse Lyo)

No, Eclipse Lyo is a project that I and Jim lead together under the Eclipse Foundation. Eclipse Lyo code is used in our OASIS OSLC work, not the other way around.

Code produced by the OP is covered by the Apache license as described in the LICENSE.md file.

Not yet. This discussion is squarely about this question. We would like to offer it under EPL 1.0 or BSD-3-Simple (dual-license).

However, Lyo uses GPL v2.1.

No, Lyo uses EPL 1.0 or EDL (essentially a BSD-3-Simple). The choice of license lies with the user (dual-licensing).

You are asking whether the OP can add the GPL license to this code when it is copied over to Lyo so that they receive it with the dual licenses

No.

  1. Lyo code is reused in this project as a generated code. It constitutes original work (in my opinion, ofc need to run by legal). The original work is licensed by the Eclipse Foundation and contributors under EPL 1.0 or EDL (essentially a BSD-3-Simple).
  2. The derivative work (this whole repository, which includes the full source of the generated code, i.e. the original work) needs to be licensed. For now I put it under Apache 2.0 license (this assumes that we license original work under EDL which allows relicensing as one of its provisions, again needs to be confirmed by Jamie). If it were licensed under EPL-1.0+BSD-3-Simple it would make it simple for people who have a rather vague understanding of original and derivative works, as you can see from Jad's comments who is one of the Eclipse Lyo leads himself. This license shall also allow contributing the code to an LGPL (let's assume 3.0) licensed repository at OMG. I looked up that BSD-3-Simple or Apache 2.0 shall be compatible with LGPL 3.0.

Questions to Jamie:

  1. Can we dual-license this repo under EPL-1.0+BSD-3-Simple, please?
  2. Will EPL-1.0+BSD-3-Simple be possible to contribute to an LGPL 3.0 licensed repository?
  3. If either 1 or 2 is not possible, can we dual-license this repository under Apache-2.0+LGPL-3.0, please?

Please note that LGPL is a rather liberal license compared to GPL. EDL is the Eclipse Distribution License and is word-for-word identical https://www.eclipse.org/org/documents/edl-v10.php (see under The Eclipse Distribution License is an OSI Approved Open Source License by means of the New BSD License.) to BSD-3-Simple except for the copyright holder, ofc. LGPL 3.0 is the one being discussed here and not LGPL 2.1 - I am aware of its patent termination clauses that make it incompatible with EPL or Apache.

Thanks in advance ๐Ÿ™

โ€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-692218391, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALJUYUL6SDZSDY726HSCTB3SFZK4DANCNFSM4RFLITXQ .

--

/chet

Chet Ensign Chief Technical Community Steward OASIS: Advancing open source & open standards for the information society http://www.oasis-open.org

Mobile: +1 201-341-1393

berezovskyi commented 3 years ago

@OASIS-OP-Admin did you have a chance to talk to Jamie regarding this? Thank you in advance!

berezovskyi commented 3 years ago

@OASIS-OP-Admin checking on Jamie's reply status

chet-ensign commented 3 years ago

@berezovskyi - I had a conversation with Jamie about this. It is not so simple.

What you could do would be to create a second repository licensed under the other terms you want to use, and recontribute/reconstruct the content there and make that available to your other party. Clumsy, yes, but it does accomplish the goals.

berezovskyi commented 3 years ago

Thanks Chet.

  1. If you donโ€™t want to dual-license, ok. We abandon the idea and go for a single license.
  2. I donโ€™t think that is possible. Some content in the repo comes from Eclipse and comes with its license. As do 100s of libraries in every project. We can only put a license on the code we write as part of the OP. We can choose to have those licenses be same but thatโ€™s not the same thing as having a single license. Shall we license our code then under BSD-3 and that will then match the license of the Eclipse content inside the repo?

--
Andrew

On 21 October 2020 at 23:22:18, Chet Ensign (notifications@github.com(mailto:notifications@github.com)) wrote:

@berezovskyi(https://github.com/berezovskyi) - I had a conversation with Jamie about this. It is not so simple.

First, each repo gets one license. We don't assign two or more. Second, the bigger problem: all the contributions to the content of repo are made under the terms of that one license. We can't apply a second license after the fact and say 'oh, and we make everyone's contributions available under these new terms as well.' Kind of like developing a spec under Non-Assertion mode and then going back later and saying 'oh, we decided this ought to be RAND instead.' Can't do it.

What you could do would be to create a second repository licensed under the other terms you want to use, and recontribute/reconstruct the content there and make that available to your other party. Clumsy, yes, but it does accomplish the goals.

โ€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub(https://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-713884952), or unsubscribe(https://github.com/notifications/unsubscribe-auth/AAAPZXRHJADMJ6ODH6DWGSDSL5GIVANCNFSM4RFLITXQ).

chet-ensign commented 3 years ago

This whole issue of licenses can get thorny when you are combining code from other projects. If you have code in your repo under their license, why should they have a problem with using yours under your license?

If you want to switch it to BSD-3, you will still need to reconstruct the repo under the new license. Is there a reason why Apache is unsuitable?

berezovskyi commented 3 years ago

I asked to continue the discussion over the phone but for the record: I have now fully dropped the OMG licensing needs (actually OMG has none wrt reference impl, it's the SST). What we are talking about is the code from the Eclipse Lyo project (aka the official OSLC SDK), which has been checked into this repo as generated code and the code/config done by Jad and Jim in this repo that fully falls under the OP licensing regime. The latter may be Apache if you insist or BSD, but the former MUST be either EPL v1.0 or EDL (essentially a BSD-3). We may also take advantage of BSD-3/EDL license to relicense the generated code under the terms of Apache but I have only heard about this and never done it in practice so Jamie would have to sign off on that.

chet-ensign commented 3 years ago

Andrew, Jamie is on vacation for a few days. I will try to set up a meeting for next week. I will aim for an hour that is not unreasonable for any of us since Jamie is on the west coast.

Any days particularly good for you?

/chet

On Thu, Oct 22, 2020 at 7:37 AM Andrew Berezovskyi notifications@github.com wrote:

I asked to continue the discussion over the phone but for the record: I have now fully dropped the OMG licensing needs (actually OMG has none wrt reference impl, it's the SST). What we are talking about is the code from the Eclipse Lyo project (aka the official OSLC SDK), which has been checked into this repo as generated code and the code/config done by Jad and Jim in this repo that fully falls under the OP licensing regime. The latter may be Apache if you insist or BSD, but the former MUST be either EPL v1.0 or EDL (essentially a BSD-3). We may also take advantage of BSD-3/EDL license to relicense the generated code under the terms of Apache but I have only heard about this and never done it in practice so Jamie would have to sign off on that.

โ€” You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-714433112, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACYUWRMHKSLF7B4BZWKAGVTSMAKOFANCNFSM4RFLITXQ .

--

/chet

Chet Ensign Chief Technical Community Steward OASIS: Advancing open source & open standards for the information society http://www.oasis-open.org

Mobile: +1 201-341-1393

berezovskyi commented 3 years ago

@chet-ensign any progress regarding this? Can we apply BSD-3-Simple?

jadelkhoury commented 3 years ago

@chet-ensign @berezovskyi Any update on this? Did you get to setup this meeting?

berezovskyi commented 3 years ago

We had a meeting but I didn't hear from Jamie.

Jad, could you perhaps show the new generated copyright header with just BSD on it?

@chet-ensign could you please follow up with Jamie?

jadelkhoury commented 3 years ago

@berezovskyi I have now pushed the latest license headers on all files.

berezovskyi commented 3 years ago

Hi @scott1979rn, are you working with OASIS Open?

cc @OASIS-OP-Admin @chet-ensign

chet-ensign commented 3 years ago

Hi Andrew,

I poked around and I do not have any idea who this is. The GH id isn't listed on any of the people lists on the oslc-op organization.

By the way, I see an id of "img" on the list of maintainers. No info about that person either. Do you know who that is?

/chet

On Sat, Mar 13, 2021 at 2:08 PM Andrew Berezovskyi @.***> wrote:

Hi @scott1979rn https://github.com/scott1979rn, are you working with OASIS Open?

cc @OASIS-OP-Admin https://github.com/OASIS-OP-Admin @chet-ensign https://github.com/chet-ensign

โ€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-798769357, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACYUWRMYOVQQABA6KZVPNP3TDOZ2DANCNFSM4RFLITXQ .

-- Chet Ensign

Chief Technical Community Steward

OASIS Open

+1 201-341-1393 <+1+201-341-1393> @.*** www.oasis-open.org

berezovskyi commented 3 years ago

@chet-ensign, thank you! @img is Ian M. Green with IBM, it's all right. Is Jamie going to find time soon to approve our licenses?

chet-ensign commented 3 years ago

I'll get in touch with him today.

On Mon, Mar 15, 2021 at 9:56 AM Andrew Berezovskyi @.***> wrote:

@chet-ensign https://github.com/chet-ensign, thank you! @img https://github.com/img is Ian M. Green with IBM, it's all right. Is Jamie going to find time soon to approve our licenses?

โ€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/oslc-op/sysml-oslc-server/pull/15#issuecomment-799439704, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACYUWRMNA4Z6XLIHD3BMCSDTDYGYTANCNFSM4RFLITXQ .

-- Chet Ensign

Chief Technical Community Steward

OASIS Open

+1 201-341-1393 <+1+201-341-1393> @.*** www.oasis-open.org

berezovskyi commented 3 years ago

Merging the PR to add Apache license because it's the chosen license of the OSLC OP as per email discussion with Chet.