-
Notifications
You must be signed in to change notification settings - Fork 29
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
feat: add LGPL as license #183
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I approve switch to LGPL for my contribution to EICrecon
So this may actually be a very complicated issue. Those of us working at national labs and writing software as part of our paid jobs automatically have it placed in the public domain. This means it cannot be licensed or copyrighted, which means the LPGL would be legally inapplicable. The codes taken from juggler that have an LPGL license should, in principle, require that the license be honored. However, any of that code written by people like Sylvester or Whit who work for ANL should have been public domain at the time of creation and therefore un-licensable. It is a confusing mess. Have a look at the OSDI FAQ on public domain here for some details. The relevant paragraph is:
This means that even the placeholder LICENSE file we have claiming some Copyright restrictions should not (nor ever have been) there. Let me check with legal to figure out what we are actually allowed to do and what we are required to do. |
Let's definitely ask legal. However, I'd bet that the answer lies in multi-licensing. [1] There's nothing stopping us from releasing software under multiple licenses, in this case "LGPL" and "public domain". The downstream user then gets to choose which license they are using. I don't think there would be a logical contradiction since the logical OR of "LGPL" and "public domain" is still "public domain". [1] https://en.wikibooks.org/wiki/FOSS_Licensing/How_to_Make_the_Source_Free_or_Open#Multiple_Licensing |
I'll admit to being confused. Licenses/copyrights are generally used to restrict the use of something. Having one that is completely unrestricted and another with some restrictions means it is always completely unrestricted. I don't think they issue the multi-licenses as an OR that combines the two. Rather It sounds like the main use-case for multi-licenses is for the controlling organization to sell a version of the license that doesn't force the licensee to publish their derived work. You are using one or the other. IMHO we should just put a public domain declaration in the repository. Everyone contributing to any of the EIC software (in any repository) should be made to clearly understand that they are donating it to the public domain. I don't have a problem putting the LPGL into the src/algorithms directory for now since that should be 99% of the code copied from juggler. I'm in communications with some higher-ups at JLab to find out what our options are. |
If you copy LGPL code into a project, you must pick one (or more) license(s) that is(are) compatible with that practice. Dual licensing a project that includes LGPL code requires that any license you allow use under must be compatible with the LGPL, and that means you cannot just pick public domain as one of the licenses and be done with it since releasing LGPL code in a public domain project is counter to the LGPL licensing conditions. You can have different licenses for different parts of the code base. In that case it must be clear which part of the code base is provided under which license. So, here you could do something like everything under You can also just not copy LGPL into your code base, keep the LGPL code in a separate LGPL-licensed library, and release everything that you wrote into the public domain. That is exactly what the LGPL was designed to allow. |
At Argonne we are explicitly allowed to use common open source licenses such as GPL, LGPL (and of course the more permissive ones). You can see another example of LGPL code here on the official Argonne Github repository https://github.com/Argonne-National-Laboratory/deer/blob/master/LICENSE We chose LGPL for Juggler and our other projects, and hence what is happening here is a blatant copyright violation. In light of not holding up the production I decided not to make a big deal out of this yet. But we have to address this going forward. There are two paths forward:
I would be in favor of just going for solution (2), and then having an open discussion on software licenses to decide what we want to do as collaboration. |
To make sure we are clear, this not "a decision of the EICrecon team". This is a question of whether we can even legally use the LGPL. Regardless of ANL's policy, they may not have had a legal ability to place their software under LPGL in the first place. It is clearly something that needs to be discussed in the broader software group, but we need to know what, if any limitations we have. I've already put in a PR to this PR's branch that moves the LPGL to the algorithms directory. It also places a placeholder at the top of the repository declaring public domain (which I have good reason to believe will be our only real option going forward). |
So I was just looking over some of the code in the algorithms directory and realize that many of those files have lost the header comments that declared the license the original file was developed under and the list of authors. See for example these two. The first has the lines, but the second does not. src/algorithms/digi/SmearedFarForwardParticles.h This is clearly not right and apologies are owed to the original authors. I think I understand better why you were upset. All I can say is that this was done inadvertently while working in haste to meet a deadline. I will put in an issue so this can get rectified soon. |
Yes. No-one intentionally trying to erase anyone credits. If this happens, it is only as too many things have to be done fast. We have an issue to check and fix that. I haven't gone through all algorithms checking that yet, wanted to wait for the moment when things are settled after the campaign start. |
They just disappeared on their own? |
They don't appear on their own. I would be glad if you'd help checking that everything is correct. |
As per the tutorial jana-generate factory produces the correct jana form. It has no knowledge of the underlying comments. In haste while testing jana-generate and trying to port the volume of algorithms in short order I can see top level comments being unintentionally erased. I am not sure that the porter is even flagged….
I’ll go through the calo algorithms this morning (in about an hour) and restore/ensure the top level comment blocks are there with a sincere apology for any missing ones.
Thomas Britton
On Oct 6, 2022, at 12:12 AM, Wouter Deconinck ***@***.***> wrote:
No-one intentionally trying to erase anyone credits.
They just disappeared on their own?
—
Reply to this email directly, view it on GitHub<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_eic_EICrecon_pull_183-23issuecomment-2D1269285039&d=DwMCaQ&c=CJqEzB1piLOyyvZjb8YUQw&r=ccFffx721N71hPpKcJGvJIqY9RM4gBTuzp9ir7rze5Q&m=HXp_AybbMj8Gb2-uhzyOjZpQvzGCoRg9DbfCW8zKBAGQpSjxP5EN9CZzYARnYl98&s=1oDmqPSJCWdB0cMT7YeTz2S2Ar1hLGFcDS_uyOfOSv0&e=>, or unsubscribe<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AFRO2BDWUSR3F24WQQHN3M3WBZGTRANCNFSM6AAAAAAQ5DB3TY&d=DwMCaQ&c=CJqEzB1piLOyyvZjb8YUQw&r=ccFffx721N71hPpKcJGvJIqY9RM4gBTuzp9ir7rze5Q&m=HXp_AybbMj8Gb2-uhzyOjZpQvzGCoRg9DbfCW8zKBAGQpSjxP5EN9CZzYARnYl98&s=_UtmyG6Jdi-6aKG3SgtBQcTh85ZNSVZmVEGPyOvL1jM&e=>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Individual files have had their declarations and author credits restored. (This was done a while back in main and the changes merged into this branch.) The LPGL file at the top was moved into the src/algorithms directory since many files in this repository were not developed under that but most of the files in that directory were. A NOTICE.md file was added to the topmost directory to declare code submitted to EICrecon as being under the public domain unless otherwise specified. It explains that some areas of the repository were developed under different licenses and carry the applicable license in that directory or one of the parent directories. Since this is a change from the original PR I will uncheck the boxes at the top where approval was already given so those people will need to re-approve these changes. |
GitHub doesn't let me approve since this is my own pull request, but I approve of @faustus123's proposal and have checked my box. |
And so much for that... |
My apologies if I misread things as: If we need to revert say the word and give me 30seconds |
yeah my apologies. Rushing a little too much reverting now |
And a recommendation: |
I am confused? Is it open, closed, dead, alive or undead? |
Briefly, what does this PR introduce?
There is now so much LGPL code copied here that it is simply not a sustainable situation to keep this under anything else than an open source license.
Explicit pproval needed from:
What kind of change does this PR introduce?
Please check if this PR fulfills the following:
Does this PR introduce breaking changes? What changes might users need to make to their code?
No.
Does this PR change default behavior?
No.