-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Change license from LGPL 2.1 to MIT ? #140
Comments
I for one am open to going for a more permissive license. Back when I started this thing ten years ago, LGPL was the license many chose, but since the world has changed a lot. |
Thanks for your input. Would you know anything about how we should do it ? |
@MarkBaker @Progi1984 what do you think? Should we go to a different license? |
+1 for MIT |
+1 MIT, then I will be allowed to use PHPSpreadsheet at my daytime job :-) |
Mark confirmed via Twitter that he agreed to switch to MIT, so we can go ahead with this as soon as #147 is merged. |
Nice! |
jQuery's situation was different since they already did dual-licensing under GPL and MIT and they simply dropped GPL for any further versions. PhpSpreadsheet is not dual-licensed and you want to change the license in a not compatible way. More permissive licenses are after compatible with more restrictive licenses, but not the other way around. You either need to ask every single contributor to relicense their contribution or you need to remove their contribution (replacing it with something new) or you can't change from GPL to MIT without violating the rights of the contributors. You could start adding a checkbox to your pull request template asking new contributors to dual-license under LGPL and MIT, then starting to contact previous contributors and/or rewriting smaller contributions. Once done you can drop LGPL and move to MIT. |
@Croydon do you have any source for that? Maybe specific extract of some license? It sounds likely but I'd rather be as sure as possible before doing something either way. Also I am not sure whether getting a reply from every single contributors is actually possible :-/ |
@maartenba (and @MarkBaker), I had a look for this license change and stumbled upon the BIFF writing part (now living in I am unsure what to do with those. Should the original header be deleted, assuming the code was heavily modified by you when it was integrated ? Or should we keep it intact, meaning that the project would have a mix of MIT and LGPL files ? For some minor, sporadic contributions from random contributor I may imagine making a leap of faith and changing the license "juste like that", but for this kind of case, where an important part of this project is concerned, I am much less sure on what to do. Do you have any advice on the matter ? Maybe you had some kind of agreement way back when you integrated that project into PHPExcel ? Or would you have any contact with maintainer of back then ? |
There actually is a similar case for |
@PowerKiKi for the LGPL being included as a library license (for BIFF writing), it should NOT affect the MIT status of the overall project, iff nobody ever modify the LGPL code of the included library. Because quoting the LGPL: "A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License." Maybe same for PHP license? |
Also here is a project that moved forwards from LGPL to MIT and asked all the major contributors to publicly agree in the disussion thread they are happy to modify the license to MIT for the ongoing future versions |
Source for what part exactly? You really need the agreement from everyone who has done more like fixing a typo. Why? Because fixing a typo hasn't created enough value to be protected by basically every single copyright law world wide. Creating new features are covered, therefore you need their permission to use their copyright protected work under new terms. You could start a
See how it is going, if most agree you can see which parts would need to be redone in order to fully switch to MIT. |
@PowerKiKi not sure what the decision was on that one, I think we had a good day back then and just integrated it into the library. |
@m8e, I either don't understand what you quoted, or it does does not apply to our case. Because PhpSpreadsheet copy-pasted (7+ years ago) Spreadsheet_Excel_Writer and then significantly modified it over the years. So I believe it created a "derivative" and as such the license should be applied. @Croydon I assume you are right, but I guess I was trying to avoid contacting every contributors by asking you for a source that clearly states that a contributor only make a contribution under a specific license (LGPL in this case). As opposed to "donate" his contributions to the project regardless of current or future licenses. I suppose the only thing left to do is to actually make a list and start contacting people... |
@PowerKiKi if I may offer my help for listing/contacting all contributors? I am really interested in PhpSpreadsheet going from LGPL to MIT. |
@Indigo744, that would be very much appreciated. We should start by listing all contributors to PhpSpreadsheet, Spreadsheet_Excel_Writer (at least until it was integrated into PHPExcel) and also OLE. I suppose we should collect their emails and/or their GitHub handles. And possibly also their "contribution importance" (as commits counts, or total lines modified). Maybe keep the list semi-private if it contains emails ? |
I created the following Gists:
To get contributors for Github repos, I made a small Python script using the Github API (https://gist.github.com/Indigo744/1205db711dd9e12d2972b09715c6ca35) The be considered as a "meaningful" contributor, I set the minimum addition to 10 lines (so we don't have to contact all contributors who just have fixed a typo). I don't know if it's enough / not enough? |
I consolidate the list into a single one and removed most duplicates, over there: https://docs.google.com/spreadsheets/d/1HTKVdAc2e9lqWJf78GfgQE7WqhFQO99JwpZRvCRTPrc. Now we need to send a notification to all of those people... |
Oh, one thing I'd like to do before sending message would be to keep only the contributors of Spreadsheet_Excel_Writer and OLE package at the time it was merged into PHPExcel. Since it does not seem to be necessary to ask permission to contributors that only contributed to those projects after the merge. If anyone is able to dig into that, that would be nice... |
I just fixed small bug but would like to approve that agree to migrate, because I found myself in list of contributors. Should I do something else to confirm that? |
@johndoejdg, yes we will need an agreement from everybody in that list. I still didn't get to write to those people, but we will have to... |
Hello everyone, We would like to change PhpSpreadsheet (formerly PHPExcel) license from LGPL 2.1 to MIT. So it would be more permissive and allow usage of the library in more contexts. This would ideally allow the community to grow further and hopefully see more contributions from more people. Because you contributed to PhpSpreadsheet (or most likely PHPExcel back then), we would need your permission to change the license. All you have to do is reply here with the text: "I agree with re-licensing my contribution(s) under an MIT license.". Thanks in advance, and sorry for pinging you out of the blue. @agopaul @amironov @ankitm123 @bolovincev @c-schmitz @c960657 @c960657 @CloCkWeRX @cocowool @cweiske @dbonsch @ddeboer @dmelo @frans-beech-it @frost-nzcr4 @Gemorroj @helgi @johndoejdg @k1LoW @kamazee @karak @kea @Kurounin @mingc00 @neclimdul @nickypn @odbc @Progi1984 @Quix0r @roojs @Slamdunk @stevleibelt @techhead @till @titanrat @tomaszsita @trvrnrth @tsmsogn @tuupola @z38 |
👍 I agree with re-licensing my contribution(s) under an MIT license. |
Even though my contribution was almost negligible, |
I agree with re-licensing my contribution(s) under an MIT license. 🤓 |
I agree with re-licensing my contribution(s) under an MIT license. |
OK so I checked the entire list of people who told that they accept the change for MIT: I removed the @ in order that they are not pinged again. Some of them are listed also for they added a license to some external code (blog post, ...) People without answer or no clear answer: So the big challenge is to identify the part of the code written by those people in the current version, or in the latest tag. And then, estimate the time needed to replace it. update: remove from the no answer list when a new author tells he agrees to the change. |
till just agreed to MIT. I added him in the list. @ttoine, I'll give you write access to the list if you ask for it |
@PowerKiKi from what I can see in the spreadsheet most of guys without answers don't that much contributions. |
TBH, I don't remember what my contributions were. I don't see myself in Contributors |
I confirmed changing a long time ago. #140 (comment) Please drop me from this list. |
thanks ! |
Yes |
Thanks for confirmation. I have updated the list. |
@ttoine May be contact any missing person with an email ? |
It will not work if they didn't answer with the last ping. |
I agree if I didn't confirm. |
thanks for your message. I updated the list in my previous comment. |
I agree with re-licensing my contribution(s) under an MIT license. |
IANAL either but I know I can't grab somebody's code and "rewrite it" and put my own license on it. The descriptions of say my change "Moves two } characters, adds a = character" is technically correct but that fixed a real bug and I spent several hours stepping through the code and coming up with and documenting the problem. That's real non-trivial development no one else did and provided by me under the license at the time. The same I'm sure applies to the other contributions or the code wouldn't have been accepted so I would not trivialize the need to get those developers sign-off. Now I don't really care what license my code is under. Use MIT if you must. Its not the decision I would make but it's not my project so I guess I agree. |
@neclimdul thank you for reconsidering your decision. I agree that a copyleft license is better in theory, but in practice in this specific case we barely have the resource to maintain the code. We would never be able to enforce a copyleft license, so we might as well formally give more freedom (and peace of mind). |
I agree with the licence changes. |
@Progi1984 thank you for reopening. |
I cannot find where @Quix0r said he refused anymore, instead he most recently was helping to move to MIT. I take that as an implicit agreement. Also as explained in that comment, @cweiske contributions to Spreadsheet_Excel_Writer were never integrated into PhpSpreadsheet. So I removed him from the list entirely. Similar situation for @CloCkWeRX who contributed to Spreadsheet_Excel_Writer between 2010-2015 but PHPExcel first release was 2006-12-21, pre-dating any of his contributions. By @roojs own admission, he would prefer not to change, but agree to change to MIT. The very few people left mostly have very small contributions. MIT license seems likely after all... |
That's good news! Can someone manage to identify the code they wrote that is still in the current development version ? |
@ttoine @PowerKiKi Done ! Thanks StackOverflow ! The problem is that they have used their nickname as commit author.
|
Has anyone looked at the actual contributions? The @cocowool contribution was 8c58385 . The non-test part is the following line in - $format = preg_replace('/^(\[\$[A-Z]*-[0-9A-F]*\])/i', '', $format);
+ // strip off chinese part like [DBNum1][$-804]
+ $format = preg_replace('/^(\[[0-9A-Za-z]*\])*(\[\$[A-Z]*-[0-9A-F]*\])/i', '', $format); There are two issues:
At the very least, point (2) is enough to merit reverting the contribution entirely. More broadly, the entire regex has to be rewritten. PS @Progi1984 the $ for file in $(git ls-files); do git blame -e $file | grep cocowool; done 2>/dev/null (it still undercounts the contributions since others may have edited lines afterwards) |
I believe we made a honest effort to contact as many contributors as possible. Everybody who responded agreed. I think it's fair to say that we gave ample time for people who disagree to speak up. Since nobody did, it's time to take a leap of faith. |
I agree with the licence changes. |
From what I understand, notably from a similar move from jQuery, it would technically be legal to change our license from LGPL to MIT. The reasons for such a move would to get rid of the boilerplate header in all files (which is not always consistent in our case), and make the end-user life easier by choosing a well-known, very permissive and broadly used license.
But I am not a lawyer, and I may be missing something. Is it really doable ? is there anything else to do than edit the files ? should we contact previous contributors ?
@MarkBaker, @maartenba as the two most prominent contributors, would you have any opinion on the matter ?
Also @Progi1984 what was the rationale for choosing LGPL 3 for PhpWord ? I see it was talked about in PHPOffice/PHPWord#211, but would your mind has changed in the last 3 years ?
The text was updated successfully, but these errors were encountered: