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 https://github.com/PHPOffice/PHPWord/issues/211, but would your mind has changed in the last 3 years ?
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 PhpOffice\PhpSpreadsheet\Writer\Xls) which was originally taken from Spreadsheet_Excel_Writer a long time ago. The files still have a header mentioning the original license which was LGPL 2.1.
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 PhpOffice\PhpSpreadsheet\Shared\OLE things which licensed under the PHP license 2.02. Any opinion on what to do with that ?
@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
@Croydon do you have any source for that? Maybe specific extract of some license?
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. 🤓
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
Sure.
I agree with re-licensing my contribution(s) under an MIT license.
On 12 August 2017 at 17:59, David de Boer notifications@github.com wrote:
I agree with re-licensing my contribution(s) under an MIT license.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-321992979,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWaEZz0o3Z0jnz_waYmpAi6wCnzGFQpks5sXdnqgaJpZM4M-jtD
.
I agree with re-licensing my contribution(s) under an MIT license.
I do not agree with changing the license from LGPL 2.1 to MIT.
In PEAR we only have/had license that are fine to use in commercial environments, and LGPL was chosen when the author wanted to be sure that code changes had to be open sourced as well. With MIT, this is not required anymore - but I'd like to keep this.
The only "real" reason I find in this issue is getting rid of boilerplate header, which isn't such a big issue in my eyes.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
On 12 August 2017 at 21:43, karak notifications@github.com wrote:
I agree with re-licensing my contribution(s) under an MIT license.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-322016371,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF8_-OB-jtRQQpFc6WrGNCMsb0xfUwEiks5sXlTegaJpZM4M-jtD
.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
12.08.2017 18:42, Adrien Crivelli пишет:
>
Hello everyone,
We would like to change PhpSpreadsheet (formerly PHPExcel) license
from LGPL 2.1 to MIT https://choosealicense.com/licenses/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 the blue.
@agopaul https://github.com/agopaul @amironov
https://github.com/amironov @ankitm123
https://github.com/ankitm123 @bolovincev
https://github.com/bolovincev @c-schmitz
https://github.com/c-schmitz @c960657 https://github.com/c960657
@c960657 https://github.com/c960657 @CloCkWeRX
https://github.com/clockwerx @cocowool https://github.com/cocowool
@cweiske https://github.com/cweiske @dbonsch
https://github.com/dbonsch @ddeboer https://github.com/ddeboer
@dmelo https://github.com/dmelo @frans-beech-it
https://github.com/frans-beech-it @frost-nzcr4
https://github.com/frost-nzcr4 @Gemorroj
https://github.com/gemorroj @helgi https://github.com/helgi
@johndoejdg https://github.com/johndoejdg @k1LoW
https://github.com/k1low @kamazee https://github.com/kamazee
@karak https://github.com/karak @kea https://github.com/kea
@Kurounin https://github.com/kurounin @mingc00
https://github.com/mingc00 @neclimdul https://github.com/neclimdul
@nickypn https://github.com/nickypn @odbc https://github.com/odbc
@Progi1984 https://github.com/progi1984 @Quix0r
https://github.com/quix0r @roojs https://github.com/roojs
@Slamdunk https://github.com/slamdunk @stevleibelt
https://github.com/stevleibelt @techhead
https://github.com/techhead @till https://github.com/till
@titanrat https://github.com/titanrat @tomaszsita
https://github.com/tomaszsita @trvrnrth
https://github.com/trvrnrth @tsmsogn https://github.com/tsmsogn
@tuupola https://github.com/tuupola @z38 https://github.com/z38—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-321988829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACSEdjs3BOlie4Bm3Ud7UAcRBDgbL4Cgks5sXcfygaJpZM4M-jtD.
I agree with re-licensing my contribution(s) under an MIT license.
@cweiske, you are correct that this reflection started with an annoyance of license boilerplates. However boilerplate headers will be deleted regardless of the outcome of this discussion because LGPL 2.1 does not require them, but only suggest them (emphasis mine):
To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
But more importantly, LGPL is the source of a lot confusion when it comes to what is possible, as can be seen by a quick googling (here, here, here for a few).
Also, MIT happens to be, by far, the most used license in PHP ecosystem. I just extracted data from packagist on the 1500 most popular packages and the results are even more clear than what I was expecting:
License | Count | Percentage
----|----|----
MIT | 930 | 62.00%
BSD | 316 | 21.07%
Apache | 74 | 4.93%
[[NOT FOUND]] | 54 | 3.60%
LGPL | 44 | 2.93%
GPL | 39 | 2.60%
OSL-3.0 | 20 | 1.33%
WTFPL | 5 | 0.33%
AGPL-3.0 | 2 | 0.13%
(Apache-2.0 or GPL-2.0) | 2 | 0.13%
Facebook Platform | 2 | 0.13%
All Rights Reserved | 1 | 0.07%
Artistic-1.0 | 1 | 0.07%
CC-BY-3.0 | 1 | 0.07%
EPL-1.0 | 1 | 0.07%
ISC | 1 | 0.07%
(MIT or GPL-3.0+) | 1 | 0.07%
no usage restriction | 1 | 0.07%
OFL-1.1 | 1 | 0.07%
Parse Platform License | 1 | 0.07%
proprietary | 1 | 0.07%
Public Domain | 1 | 0.07%
unlicense | 1 | 0.07%

I don't mean we should follow blindly what others do. But in practice I would prefer to have more users that use the lib with a complete peace of mind, and then maybe contribute back, rather than users wondering whether they can use it at all, or worse fear to contribute back because of the implication they think it might have on their proprietary product. While I totally agree with the ideas behind LGPL, I am not so sure of its effects in practice. I wouldn't be surprised if some users "hide" their usage of LGPL libs just to be sure to avoid possible consequences.
Also and more specific to you, I double check your contributions, and it appears we may have not needed to contact you after all. Your very first contribution to Spreadsheet_Excel_Writer on Mar 27, 2007 does not appear in the oldest, publicly available commit of PhpSpreadsheet (Aug 26, 2010). It seems very likely that Spreadsheet_Excel_Writer was integrated into PHPExcel before you started contributing. Especially when considering that PHPExcel first dated release is 2006-12-21. In fact I couldn't find any hints of your contributions in PhpSpreadsheet. So it seems that we actually won't require your permission for this change.
I'll keep your opinion in mind though, and we'll see what others say...
Finally, if any of you are interested to make their own stats, here are the raw data I used: 1500 most popular composer packages.zip
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
On Aug 12, 2017 11:42 AM, "Adrien Crivelli" notifications@github.com
wrote:
Hello everyone,
We would like to change PhpSpreadsheet (formerly PHPExcel) license from
LGPL 2.1 to MIT https://choosealicense.com/licenses/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 the blue.
@agopaul https://github.com/agopaul @amironov
https://github.com/amironov @ankitm123 https://github.com/ankitm123
@bolovincev https://github.com/bolovincev @c-schmitz
https://github.com/c-schmitz @c960657 https://github.com/c960657
@c960657 https://github.com/c960657 @CloCkWeRX
https://github.com/clockwerx @cocowool https://github.com/cocowool
@cweiske https://github.com/cweiske @dbonsch
https://github.com/dbonsch @ddeboer https://github.com/ddeboer @dmelo
https://github.com/dmelo @frans-beech-it
https://github.com/frans-beech-it @frost-nzcr4
https://github.com/frost-nzcr4 @Gemorroj https://github.com/gemorroj
@helgi https://github.com/helgi @johndoejdg
https://github.com/johndoejdg @k1LoW https://github.com/k1low @kamazee
https://github.com/kamazee @karak https://github.com/karak @kea
https://github.com/kea @Kurounin https://github.com/kurounin @mingc00
https://github.com/mingc00 @neclimdul https://github.com/neclimdul
@nickypn https://github.com/nickypn @odbc https://github.com/odbc
@Progi1984 https://github.com/progi1984 @Quix0r
https://github.com/quix0r @roojs https://github.com/roojs @Slamdunk
https://github.com/slamdunk @stevleibelt
https://github.com/stevleibelt @techhead https://github.com/techhead
@till https://github.com/till @titanrat https://github.com/titanrat
@tomaszsita https://github.com/tomaszsita @trvrnrth
https://github.com/trvrnrth @tsmsogn https://github.com/tsmsogn
@tuupola https://github.com/tuupola @z38 https://github.com/z38—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-321988829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAS_SFNdR4wZ82eERRTkOKtOXPBjgpxfks5sXcfwgaJpZM4M-jtD
.
@PowerKiKi @Croydon just to clarify, unless a signed CLA released author copyright, you must get approval from all external committers for a shift like this. VLC went through a similar shift years ago, changing the core engine from GPLv2 to LGPLv2. Key points from the linked article:
VideoLAN does not require copyright assignment to the organization: instead the authors keep their copyright.
All the developers have agreed to the relicensing, but a famous one, who refused to answer. His code was therefore rewritten.
@PowerKiKi @MarkBaker A more interesting licensing issue regards the inclusion of other external code. The original PHPExcel embedded external code from unclear origins, and PHPSpreadsheet continues that tradition.
For example, take polynomialRegression: the original post for the code was on a domain phpmath.com which is currently down, but https://web.archive.org/web/20070224192417/http://www.phpmath.com:80/home?op=cat&cid=17 is the archived version. I cannot find any information in the archive regarding the licensing terms for that block of code. Based on a github search, it's highly likely that Paul Meagher is @php-math , so you may need his permission as well.
I agree with re-licensing my contribution(s) under an MIT license.
--
Kind Regards
Tomasz Sita
On 12 Aug 2017, at 18:27, z38 notifications@github.com wrote:
I agree with re-licensing my contribution(s) under an MIT license.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
I agree with re-licensing my contribution(s) under an MIT license.
Il 12 ago 2017 5:42 PM, "Adrien Crivelli" notifications@github.com ha
scritto:
Hello everyone,
We would like to change PhpSpreadsheet (formerly PHPExcel) license from
LGPL 2.1 to MIT https://choosealicense.com/licenses/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 the blue.
@agopaul https://github.com/agopaul @amironov
https://github.com/amironov @ankitm123 https://github.com/ankitm123
@bolovincev https://github.com/bolovincev @c-schmitz
https://github.com/c-schmitz @c960657 https://github.com/c960657
@c960657 https://github.com/c960657 @CloCkWeRX
https://github.com/clockwerx @cocowool https://github.com/cocowool
@cweiske https://github.com/cweiske @dbonsch
https://github.com/dbonsch @ddeboer https://github.com/ddeboer @dmelo
https://github.com/dmelo @frans-beech-it
https://github.com/frans-beech-it @frost-nzcr4
https://github.com/frost-nzcr4 @Gemorroj https://github.com/gemorroj
@helgi https://github.com/helgi @johndoejdg
https://github.com/johndoejdg @k1LoW https://github.com/k1low @kamazee
https://github.com/kamazee @karak https://github.com/karak @kea
https://github.com/kea @Kurounin https://github.com/kurounin @mingc00
https://github.com/mingc00 @neclimdul https://github.com/neclimdul
@nickypn https://github.com/nickypn @odbc https://github.com/odbc
@Progi1984 https://github.com/progi1984 @Quix0r
https://github.com/quix0r @roojs https://github.com/roojs @Slamdunk
https://github.com/slamdunk @stevleibelt
https://github.com/stevleibelt @techhead https://github.com/techhead
@till https://github.com/till @titanrat https://github.com/titanrat
@tomaszsita https://github.com/tomaszsita @trvrnrth
https://github.com/trvrnrth @tsmsogn https://github.com/tsmsogn
@tuupola https://github.com/tuupola @z38 https://github.com/z38—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-321988829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJSrKeSO9Q9O84XATIoLpUz2Y-g4t4cks5sXcfwgaJpZM4M-jtD
.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
@Niggler thank you for pointing this out. I just sent an email to @php-math.
Please let us know if we missed something else.
I agree with re-licensing my contribution(s) under an MIT license.
@PowerKiKi I'm not entirely sure if PHPExcel was in compliance in the first place. This is probably the best time to get the license situation sorted out. @MarkBaker probably has the most familiarity with the origin of the code and should probably help with enumerating the third party codes.
The next example is BIFFwriter.php -- the comments suggest it was originally from @jmcnamara 's Spreadsheet::WriteExcel module. I could not find an obvious match for the github username of Xavier Noguer, but I found a commit mentioning a Xavier Noguer with email address [ REDACTED ] . It's probably better reach out to both people, especially since the original code was dual licensed under Perl Artistic License and GPL (not LGPL)
@m8e to be absolutely clear, the LGPL clause you referenced applies to a situation where your code can optionally link against the LGPL licensed code. It does not apply to vendoring dependencies (since those are shipped with your code) and it definitely does not apply to your actual code if you copied snippets from LGPL projects.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing any code ported from Spreadsheet::WriteExcel under an MIT license.
While composer is a vibrant community, the license acceptance rate is kinda pointless.
1) there are plenty of communities outside of it that are largely or almost exclusively GPL. Drupal, Wordpress, etc.
2) Its not a bandwagon but judgement about your rights and the usage of the software you are writing.
@Niggler At some point Xavier used to have email address [[REDACTED OUT]]. I remember him from way back.
Thanks again @Niggler and @tuupola. I reached out (again) to both emails for Xavier. Hopefully he will see one of them.
I also took the liberty to redact out his email from your post @tuupola, to avoid making it too much public. Even though it just bounced saying that the account does not exists anymore...
The next example is FormulaParser . The comment and history suggest @maartenba ported the formula parser from the ewbi.develops blog post. There is no information about the licensing of the original code. [email protected] is an email address listed on the site.
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
@Niggler if a code has been rewritten, does licensing issue apply for such case? I think the subject of licensing is implementation, not the idea. So, if a code has been copy/paste'd or used as a module, licensing issue has to be resolved; if, for instance, a Perl module is used as an inspiration, isn't it a completely different matter? Same for some example in a blog post: as nothing has been used directly, shouldn't that be OK?
@kamazee It's a tricky question to answer. "Rewriting" includes the extreme of literally retyping code, so there's definitely a "line" and subjective judgment involved.
https://blog.codinghorror.com/pick-a-license-any-license/ is a nice blog post summarizing the situation when dealing with blog posts that are missing licenses.
As for existing licensed code like perl modules, porting arguably constitutes a derived work and the original license terms govern the situation (again, it's a subjective line). In the case of dual-licensed modules, the selected license terms should be stated in the source code.
I definitely believe it is better to be safe, especially since the source code to Microsoft Office is available to some people under certain programs like Microsoft's Government Security Program: http://download.microsoft.com/download/B/C/A/BCAFF3F5-5DB5-4AB4-9AAB-5CF0814E0948/GovernmentSecurityProgram.pdf
N.B.: In the JavaScript world, for example, there was a library written by a Microsoft employee that had a funny open-source-incompatible license clause which explicitly granted protection only to use cases for Windows users:
(F) Platform Limitation- The licenses granted in sections 2(A) & 2(B) extend only to the software or derivative works that (1) are run on a Microsoft Windows operating system product, and (2) are not Excluded Products.
https://github.com/stephen-hardy/xlsx.js/blob/master/LICENSE.txt#L22
I agree with re-licensing my contribution(s) under an MIT license.
I agree with re-licensing my contribution(s) under an MIT license.
@Niggler, I sent an email to ewbi.
For everybody else that already replied, thank you, and feel free to unsubscribe from this issue to avoid further notifications.
I agree with re-licensing my contribution(s) under an MIT license, event my
contribution currently just one small feature.
On Thu, Aug 17, 2017, 4:41 AM Adrien Crivelli notifications@github.com
wrote:
@Niggler https://github.com/niggler, I sent an email to ewbi.
For everybody else that already replied, thank you, and feel free to
unsubscribe from this issue to avoid further notifications.—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-322907679,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGrRjUfQR-qGoLzvKj2Oza8szPfJJGAlks5sY2IPgaJpZM4M-jtD
.
Regarding the FormulaParser code ported from ewbi.develops, I agree with re-licensing my contribution(s) under an MIT license.
ETA: Maarten Balliauw "ported" my JavaScript implementation to PHP for his PHPExcel project back in May 2007 to avoid "reinventing the wheel". He did a great job, even kept the original comments. It was great to learn today that this stuff's still around and serving a purpose. Good luck! :)
@ewbi while we have your attention, would you be willing to add an MIT attribution to the JS code in your blog post? PHPExcel / PHPSpreadsheet aren't the only projects using code that ultimately traces back to your incredible contribution (you would be surprised by the sheer number of tools and projects that drew from it!)
@PowerKiKi @MarkBaker the next (and most likely longest) example is the Xls Reader. This one is a bit trickier to unwind. My (most likely incomplete) understanding of the history is as follows:
1) The starting point is a java library called excelread by Andy Khan. Licensed under LGPL v2.1 The original distribution is not available on the archive and the domain has been down for years.
2) A PHP version based on the java library was released. According to the comments, it would have been pear/Spreadsheet_Excel_Reader. The original author is Vadim Tkachenko but there is a credit to David Sanders. That was available under the PHP license version 3.0. Interestingly, the SourceForge repo also credits Travis Harris but is not mentioned at all in relation to the PEAR entry.
3) The comment appears to match that in the ParseXL version 1.10 ticket. The attribution references other tickets, and I think there was some confusion here. Note: This version has no license attribution whatsoever!
unicode patch by nobody -- My best guess is patch 5 which appears to be source forge user bjaenichen
Some of the email addresses are available by in the links.
@Niggler - done.
MIT is something like a "do what you want" license, while LGPL and (L)AGPL ensures that free software remains free software and it misses the point of ensuring freedom of its users:
https://www.gnu.org/philosophy/open-source-misses-the-point.en.html
@c-schmitz, @CloCkWeRX, @cocowool, @dbonsch, @frost-nzcr4, @k1LoW, @kea, @neclimdul, @nickypn, @odbc, @Quix0r, @roojs, @stevleibelt, @till
Hi, we are still missing your input for the potential change of license from LGPL 2.1 to MIT. Please let us know your opinion, whether you agree or not, so we can reach a conclusion on the matter.
Thanks in advance !
I agree with re-licensing my contribution(s) under an MIT license.
While I don't agree with the re-licencing - could not actually find any justification in the thread.. My contributions (if any) are probably so small that it's probably irrelevant anyway...
@roojs the justification is there, let me know if that makes you change your mind.
In short:
LGPL is the source of a lot confusion when it comes to what is possible
It is somewhat similar to the React license mess where they ended up changing the license (after saying they wouldn't one month prior), because developers were too afraid of what may or may not happen because of React license.
Granted our case is way less dramatic, yet I feel MIT would get rid of all doubts once and for all, without losing anything in return. Because we have to be practical here, LGPL is nice in theory, but we barely have enough manpower to maintain the code, how could we actually actually enforce LGPL ? Where does the time, money and knowledge would come from ?
Since we unfortunately can't, in practice, benefit from LGPL, I don't see why we should add burden to the users.
As I mentioned before, My contributions have been so tiny (if at all...), you can take my objection with a pinch of salt anyway.
I did see this thread a while back, and was a bit perplexed then. From what I gather you are saying having LGPL is putting people off using/contributing to the library. (I doubt this is really the case, as there are not any competing implementation anyway, and most people usually contribute based on need/requirement.)
The main point of LGPL is to encourage (as you rightly point out, they can not really legally be forced to as you don't have the resources) to contribute changes back to the library, rather than taking and not sharing. MIT, is really just a take this, and do what you like with it (except leave the notice in..)
As I said you are free to ignore my objection, as it's pretty pointless.. but I thought I'd just give you a 2c opinion on the thread.
The library lacked so far a maintainer who is able to understand and maintain the code. I know because I tried it myself. At times there were contributions but the patches were often buggy and had to be checked thoroughly, which needed more time than I could spare. I doubt the license change will change anything regarding this situation, but if anyone feels better about it and contributes better code who am I to complain.
If LGPL is confusing to (some?) people, why don't that people go to the FSF(E|A) and ask questions there? MIT is what also @roojs says, take it (your work) and don't give contributions back (which is bad).
@c-schmitz, Mark Baker has been maintaining this lib for at least 6 years. I am pretty confident that he knows it very well. But it's a huge workload and one guy is not enough to also educate newcomers, help them write robust code and unit tests. IMHO what we miss is people contributing non-code stuff, like answer usage questions (issue tracker is full of those), improve the doc, and help crafting good PR.
Of course a change of license will not change much. But, like you said, if it can help a little, then it's worth doing.
It's been almost 3 months since we started asking permissions to contributors, and almost one month since the last reply. At this point I don't expect to get any more replies.
According to our spreadsheet, we reached ~71% of agreements with only 2 "soft" disagreements that might or might not be ignored.
However while the majority was reached, I don't think it is enough, legally speaking, to do the licence change. I am personally not willing to take the risk and I am not willing to wait any longer for hypothetical missing replies. So as far as I am concerned, we will stay with LGPL 2.1.
@MarkBaker, @maartenba, as the original authors, if one of you are willing to take the responsibility and change the license yourself, please be my guest.
71% is too low imo :-( Guess we'll be taying on LGPL 2.1 then.
Thanks to everyone for their efforts!
To my knowlegde you only really have to ask the persons which have still parts of the their source code really existing inside the software, Is this really the case with these missing agreements?
@c-schmitz, I don't know if this is true. And I also don't know how to get a list of authors the most recent lines of the project. Also I am not quite sure about the pertinence of the result if we ask git and it returns the author who last changed indentation on the entire project...
Usually you would check what changes the particular author introduced. I'd bet in most cases it is just a fix or two. Then check if the code in question still exists.
If there is none of the code left then there is no case to protect anything in the first place.
How many 'authors' are we talking about?
@c-schmitz have a look there, that would be 13 people who didn't answer. If you are willing to do that work, please be my guest.
@PowerKiKi Did you try emailing those who didn't respond? You're missing some names and email addresses at the end of that sheet. Shall I add them here as a Markdown table?
I did contact everybody on the list, at least twice if they didn't respond, either via email, or via GitHub mentions in this thread. Unless you are willing to contact them yourself, it won't be necessary to complete the list. If you do want to work on that, I'll give you write access to the sheet though.
You could do it with git blame on each file, so some console "magic": . This is maybe not fully optimized, but it should give you a unique list of all recent author's email addresses.$ find * -type f -exec git blame --show-email -w {} \; |grep "@" | cut -d " " -f 3|sort --unique | cut -d "(" -f 2
Update: A "better" one: $ find * -type f -exec git blame --show-email -w {} \;|cut -d "(" -f 2|cut -d "<" -f 2|cut -d ">" -f 1|sort --unique.
Maybe some sed instead of cut is required? I get non-email addresses back, too.
@Quix0r I believe this is what you are looking for:
git ls-files -z |xargs -L 1 -0 git blame --porcelain > all-blame-data
grep -IE '^(author|author-mail) ' all-blame-data | sort -u
But like I said, what is the point of knowing that Mark Baker changed whitespace on the entire project and that I moved every single file around ?
Okay, fair point. Maybe a git reset HEAD~X before? And thank you for posting better code (not cut).
How much of a contribution must someone have made for us to require their permission? :confused:
cocowool – 1 commit (PHPOffice/PhpSpreadsheet)
These still exist in the develop branch.
This appears to be cocowool's 125ea80821d060c769464f5fcd2eef2318a5a31f, with tests added by @PowerKiKi. So, cocowool added a comment, and 19 characters in 1 line. Is that correct?
k1LoW – 1 commit (PHPOffice/PhpSpreadsheet)
I pasted the latest code over the changes made in this commit so that you can see what's changed. Here is the Gist.
neclimdul – 2 commits (PHPOffice/PhpSpreadsheet)
These still exist in the develop branch.
Moves two } characters, adds a = character.
Moves a line, adds a comment, removes a few lines.
odbc – 3 commits (PHPOffice/PhpSpreadsheet)
These still exist in the develop branch.
Adds 33 characters to 1 line.
Adds 7 characters to the same line as in 1a2a6816fb5bb0e146524ba40aa419695c40136a.
Use
usesections instead of fully qualified class names
198 additions and 150 deletions.
Aside from some added comments, you could make identical modifications using an automated replacement (e.g. sed).
kea – 1 commit (PHPOffice/PhpSpreadsheet)
These still exist in the develop branch.
Without this commit's creation of the unit test file, it adds 2 lines, and modifies two others; if we rewrote that unit test file from scratch (currently 70 lines), are those remaining changes enough for us to need to ask for permission?
IANAL but I expect that every single line of code counts as a contribution. I will not change the licence unless we can get an agreement from everybody, because I really don't want to take any risk for some open-source project. But if somebody else is willing to take the responsibility...
I agree with re-licensing my contribution(s) under an MIT license.
Really unfortunate that this library didn't change to MIT or similar permissive license. Wanted to use this for my dayjob, but can't due to LGPL requirements.. :/
LGPL is actually quite permissive, see https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL
LGPL has actually a lot of restrictions.
That's why most software libraries and frameworks are now using MIT, BSD or ISC so it is possible to use them in any open source project without having to think about license compatibility problems: to drive adoption. Particularly, it is the very way to allow derivative works in the shipped software.
For the PrestaShop project, the license is OSL, and it is not compatible with LGPL. So having PhpSpreadsheet moving to MIT would be great.
License compatibility issues are a real pain in open source and free softwares. So, the simplest is the license, the more you will have adoption and contributors.
@PowerKiKi I just received a notification about this. Had not seen this earlier. If I need to agree to a license change to MIT, then this is my agreement.
@anton-harvey if the small parts of the code are rewritten by someone who agree to change the license, then, next version can be in MIT.
OK so I checked the entire list of people who told that they accept the change for MIT:
agopaul, amironov, ankitm123, bolovincev, c-schmitz, c960657, dmelo, ewbi, frans-beech-it, frost-nzcr4, Gemorroj, helgi, jmcnamara, johndoejdg, kamazee, karak, kea, kifni41, korvinko, Kurounin, maartenba, mingc00, neclimdul, odbc, Progi1984, Slamdunk, stevleibelt, techhead, till, titanrat, tomaszsita, trvrnrth, tsmsogn, tuupola, z38, xnoger, cocowool, dbonsch, k1LoW, nickypn, cweiske, roojs
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.
Some of that work has been done in this comment
But maybe that could be worth a new check, the last one is quite old now.
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.
Maybe this could be possible to create one issue per missing github account with the list of things to rewrite, so the work can start ?
TBH, I don't remember what my contributions were. I don't see myself in Contributors
- @johndoejdg
I confirmed changing a long time ago. https://github.com/PHPOffice/PhpSpreadsheet/issues/140#issuecomment-322200370
Please drop me from this list.
thanks !
are you johndoejdg?
thanks !
are you johndoejdg?
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.
My guess is that it's time to find if there is still in the current code something they wrote, and rewrite it. Hopefully, it can be done quickly if this is just small parts or a few lines.
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.
Can a developer establish the list of code to rewrite in order to change the license? (I am not skilled for that myself). The list of authors to check is up to date in this comment
Then, I volunteer to open issues for that.
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!
So only cocowool, dbonsch, k1LoW, nickypn contributions are to be rewritten.
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.
[me@here PhpSpreadsheet]$ for file in $(git ls-files); do git blame $file | grep "cocowool"; done
fatal: no such path 'samples/Basic/data/continents/North' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'samples/Basic/data/continents/South' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'src/PhpSpreadsheet/Chart/Renderer/PHP' in HEAD
fatal: no such path 'Charting' in HEAD
fatal: no such path 'Libraries.txt' in HEAD
[me@here PhpSpreadsheet]$ for file in $(git ls-files); do git blame $file | grep "dbonsch"; done
bd9eb1959 (Adrien Crivelli 2017-04-14 17:38:40 +0900 151) - Restructuring of PHPExcel Exceptions - @dbonsch
fatal: no such path 'samples/Basic/data/continents/North' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'samples/Basic/data/continents/South' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'src/PhpSpreadsheet/Chart/Renderer/PHP' in HEAD
fatal: no such path 'Charting' in HEAD
fatal: no such path 'Libraries.txt' in HEAD
md5-b79a3ec5c3a128d31ee030849fa220fd
[me@here PhpSpreadsheet]$ for file in $(git ls-files); do git blame $file | grep "k1LoW"; done
bd9eb1959 (Adrien Crivelli 2017-04-14 17:38:40 +0900 166) - Support SheetView `view` attribute (Excel2007) - @k1LoW
fatal: no such path 'samples/Basic/data/continents/North' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'samples/Basic/data/continents/South' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'src/PhpSpreadsheet/Chart/Renderer/PHP' in HEAD
fatal: no such path 'Charting' in HEAD
fatal: no such path 'Libraries.txt' in HEAD
d24e64080 Classes/PHPExcel/Worksheet/SheetView.php (k1LoW 2012-08-09 10:13:05 +0900 46)
md5-b79a3ec5c3a128d31ee030849fa220fd
[me@here PhpSpreadsheet]$ for file in $(git ls-files); do git blame $file | grep "nickypn"; done
fatal: no such path 'samples/Basic/data/continents/North' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'samples/Basic/data/continents/South' in HEAD
fatal: no such path 'America.txt' in HEAD
fatal: no such path 'src/PhpSpreadsheet/Chart/Renderer/PHP' in HEAD
fatal: no such path 'Charting' in HEAD
fatal: no such path 'Libraries.txt' in HEAD
Has anyone looked at the actual contributions?
The @cocowool contribution was https://github.com/PHPOffice/PhpSpreadsheet/commit/8c58385d6c103d23f6a5b3d1899a5e7cc8f66e92 . The non-test part is the following line in src/PhpSpreadsheet/Style/NumberFormat.php:
- $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:
1) "Language tags" can be specified, but neither the old nor new regexes match them. As an example, using Chinese, =TEXT(12345,"[$-zh-CN]dddd") is 星期三 and that string is definitely not matched in the provided regular expression. The full list of valid entries is in [MS-LCID] Appendix A (they use the phrase "Language Tag" to refer to the locale strings)
2) the code will strip absolute hours and minutes (the code change actually introduced this bug). The number format [hh] corresponds to the absolute hours of a date code, which the regex currently matches and removes. However, that contributes to the value as seen in =TEXT(1,"[hh][$-zh-CN]dddd") which is 24星期日. Not a PHP expert but it seems like @cocowool 's change would actually strip out the absolute hours.
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 -e flag to git blame displays the email address rather than the author, making it easier to find the affected lines
$ 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.
Most helpful comment
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.