-
Notifications
You must be signed in to change notification settings - Fork 808
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
Restore original licenses #35
Comments
I second this. The license on Cocotron allows use of the code. Removing the attribution is the only thing one could do that violates the license. |
Hi Christopher, many (most?) of the headers in Foundation have the original cocotron copyright header. If we missed/removed any then it was certainly inadvertent and that wasn't our intent. Can you point us to specific files we missed? |
As pointed out on twitter, the implementation files dropped it. I do not think it is realistic to ask open source contributors "come and find your code in our re-released codebase and points out the errors". Someone at Microsoft needs to go back to the first commit and track down every bit of code that was taken, and investigate the origin of the code, and properly restore the copyright notices. |
As Miguel said, this is not my responsibility. With respect to Cocotron, I will point you to the Framework/Foundation/*.mm and *.h files. |
@cjwl Let's just talk about the headers for a second. There are two sets of headers. One external facing, which retain your copyright: And a second set, internal, and which were generated programmatically. These do not have your copyright header: |
ಠ_ಠ |
Focus on the implementation files. |
@s5msft Here's a simple example. Compare
The version in this repository is clearly derived from the Cocotron version. The file contents are not identical but a few "highlights" include:
This is not a complete list, even for code in this single file. Your version clearly originates with Cocotron, yet the original copyright notices have been removed and replaced with one crediting Microsoft. |
@cjwl We're on it and definitely want to make this right. As a bit of background, (some of) our source code was originally C++ based (marked up to act like Objective-C). We then ran that source through a tool to generate "real" Objective-C code. In any case, we're going through Foundation right now and will absolutely make this right. |
The providence of the code across the entire code base is questionable; for example, the CFDictionary implementation appears to be derived from the MIT/X11-licensed Klib, but all copyrights have been stripped: Reiterating what Miguel already stated, someone at MS will need to verify the source and licensing of code across the code base. |
It doesn't look good, folks. Just idly browsing across the code finds stuff like: https://github.com/Microsoft/WinObjC/blob/master/Frameworks/Starboard/Quaternion.mm Which clearly comes from elsewhere, though I can't narrow down an upstream source based on the distinctive comments (https://encrypted.google.com/search?tbs=li:1&btnG=Search&q=%22This+function+is+the+milk+and+honey+of+our+quaternion+code%22#q=%22This+function+is+the+milk+and+honey+of+our+quaternion+code%22&tbs=li:1&filter=0). Parts of https://github.com/Microsoft/WinObjC/blob/master/Frameworks/limbo/FormatPrintf.mm come from the Amsterdam Compiler Kit: https://github.com/davidgiven/ack/blob/ff774212beacd5da20bf2c1092bd2a6b30f4730c/lang/cem/libcc.ansi/stdlib/ext_comp.c There are odd comments across the code that seem to have been copied and pasted out of a HTML menu: /* [<][>][^][v][top][bottom][index][help] */ This file is a copy-and-paste of code from Imagination Technologies' PowerVR SDK, which is not open source: https://github.com/Microsoft/WinObjC/blob/master/Frameworks/OpenGLES/TexDecompressor.mm The originating upstream file is named PVRTDecompress.cpp. It seems to be widely copied, but here is the original license in a mirror of the upstream code: https://github.com/SiliconStudio/paradox-deps/blob/master/PVRTT/license.txt If I can find these in a few minutes of browsing the code, then I'm sure there are more examples. Additionally, the licensing of the project seems to be a mismash even amongst the components that do have proper headers. I see MIT, Apache, and QPL/GPL at least. The QPL/GPL code is in the core runtime, and neither license allows the distribution of proprietary derivative works. |
@bmastenbrook In some of these cases, we have explicit permission from the authors to relicense sections of relevant code. We'll remediate any others that our tooling may have missed. I definitely appreciate the passion and we’re very sorry for any omissions. @JensAyton We were referencing the copyright header from: Is that incorrect/incomplete? |
The code in WinObjC's NSPropertyListReader.mm is derived from https://github.com/cjwl/cocotron/blob/master/Foundation/NSPropertyList/NSPropertyListReader_binary1.m, rather than NSPropertyListReader.m This is really where Miguel's recommendation still stands; this needs to be fixed through a complete historic audit, not on an ad-hoc basis depending on outside reporters.
Has the QPL/GPL-tagged code been relicensed under a permissive license, or does it still apply to anyone integrating/distributing this code? |
We are in agreement.
We're in continual contact with the author of objfw, and, yes, it's relicensed under a permissive license in this project. |
I am stunned by the immature, jerkoff attitude shown by cjwl/migueldeicaza, among others. A meaningless (your licenses are not proven legally valid in the US) block of text that is 'your license' is missing in a 1.0. You alert the vendor, the vendor apologizes and asks where it is missing, with the intent of fixing it. Think about that for a second - a person who matters, doing a thing that matters, is willing to take time out of his day to satisfy you. So, of course, you switch into entitled child mode: "I DEMAND MY PROPS. FIX IT NOW, I WON'T TELL YOU WHAT TO FIX, I MATTER TOO MUCH. FIX IT FIX IT FIX IT'. As though the world revolves around your license. Your conduct should (and hopefully will) prevent either of you from getting a job in the industry ever again. In the case of migueldeicaza, he's long past the point of no return, having made 'being a piece of shit' his claim to fame. May CJWL join him at Unemployable Island. Could you please include unlicensed GPL-encumbered code in the next version, so the Southern Pover....I'm sorry, 'Software Freedom Law Center' can sue and the GPL can finally be deemed non-enforceable in the US? One last bit: scouring this project for code that is missing the relevant license feels similar to Reddit 'investigating' a crime. You have no mechanism to determine if Microsoft relicensed that code or not. And no one cares either way. |
"immature, jerkoff attitude" Namecalling is always a fantastic start. "A meaningless (your licenses are not proven legally valid in the US) block of text" These licenses are certainly as valid as any license, whether provisions of licenses like the GPL may or may not be enforceable, this code was provided under limited terms, which in this case only requires that the original author is credited, and that the license requiring they continue to be credited is retained. License aside, removing authorship is plagiarism, but if one doesn't agree with the limited license terms of a copyrighted work, they shouldn't derive work from it. "a person who matters, doing a thing that matters, is willing to take time out of his day to satisfy you." It's actually to satisfy the law, and "doing a thing that matters", is apparently appropriating creative works in violation of US law and international treaties. That said, while I feel it is Microsoft's moral responsibility to restore original authorship to these files, legally a claim should point out files which are in violation and propose a specific remedy. I think an individual employee at Microsoft is taking a good bit of heat here and trying to do what's right. |
Namecalling was called for. False. 'If you like it, fav and subscribe' in and of itself is not legally enforceable. The GPL is a much worse place, spreading like a virus and infringing on basic consumer rights in the process. To say nothing of the other (legal) problems with it. No, it is not plagiarism. Not by any definition of the word. Try again. No, your license is not the law. Demanding MS fav your work does not mean they legally have to do so. You seem to believe that if you create a work you are able to set any terms for use you wish to. That is not the way it actually works - you can't strip a user of their rights by saying that you want to. The legal enforceability of 'fav me' licenses is questionable at best and unproven in the US, as far as I know. Microsoft does not have a moral responsibility to do anything, but they are willing to do so. My problem is with the conduct of those demanding likes, favs and subscribes as opposed to the specific licenses they are using. |
Thank you for clearing this up, and I am glad to hear that you will be doing a more thorough audit. I am really quite interested in the project, both personally and for my company, and wish you the best of luck in what I know from experience can be an arduous process. |
Copyright is copyright, regardless of the license. These are typical mistakes, and I'm sure they'll be resolved now that they've been pointed out. Ignore the trolling. |
@MTWomg No one is under any illusions that a bourgeois court would turn out a result in favour of a content producer rather than a large corporation such as Microsoft. Still, it is incredibly rude for a company to appropriate your code with the potential to make profit from doing so, and then not even abide by a simple licence term requesting that copies include attribution. |
There is no copyright issue here. The license effectively said 'pls pls pls include my name in your work, pls'. The purpose of copyright is not to ensure that a work remains unmodified by a lawful end user. In other words, if the license itself is legally unsound copyright protections do not prevent one from selecting the offending text and hitting the delete key. |
If you don't like the license, what you're left with apart from that license is copyright law, which says you can't copy or distribute at all without permission. In the absence of that license, you don't have any such permission. You've dropped into the middle of what appears to be an entirely reasonable discussion between people whose code is being used without their permission and people who appear to be working in good faith to resolve that situation and comply with the licenses involved. Nothing you're doing is in any way improving that situation or contributing to the analysis or solution. This issue is not the place for introductory discussions of copyright law or FOSS licensing. |
The rude part is showing up, saying 'hey, you forgot my license' and the company responding with 'Oops! Where did we mistakingly remove it? We want to fix this pronto!' and the non-Microsoft entity responding with 'Fuck you! Find it yourself!' |
I don't see any meaningful discussion coming from this issue. Can we please lock it? |
That is what a lot of open source people think. It is not the case. If the license does not meet legal standards, it is text. You can delete text. Copyright does not protect against the removal of text. The license in question is a license in name only. Hope that helps you understand. |
The last half hour of this thread inspired me to write a tool to watch Hacker News and enable repository owners to automatically lock discussion when a URI appears there, but sadly, GitHub does not expose the lock functionality in the API. So here we are, subjected to people who've never heard of WinObjC. @s5msft, I suggest locking the issue. Here's GitHub's documentation on it. |
I can assure you that I do not read HN and am far more intelligent than you. I have long been aware of WinObjC. 'Nice' avatar, by the way. |
Something that you shouldn't have to do in the first place.
It's really not much to expect a company with such resources to be able to find out where they're going wrong themselves.
As above. |
|
Someone made a mistake. Someone else wants it fixed. The responsible people are like "awesome, we screwed up. Where?" The people who want it fixed are saying "omg how dare you ask what you should fix, this isn't our responsibility." It would be fixed much faster if you guys would just, in good faith, say "the mistake is over here. Thanks for doing the right thing." |
No, someone wants it fixed and is being a piece of fucking shit in the process. That's the problem. |
Honestly, you guys need to calm down. This is not helping. |
@MTWomg Perhaps it's time to cool your jets. There are many avenues that could've been taken in this matter, not the least of which would be to file a takedown request. Licences are "proven legally valid" when challenged in court. The fact nobody has had to do that yet, generally hints at a willingness of people involved to make situations right when they are wrong. Lawyers are expensive, and most people are reasonable, after all. Let the issue progress with the stake holders involved. |
I want them to challenge it. Microsoft will crush them and all will be well. There is a reason those two are just being rude as opposed to doing anything in the legal realm. |
@MTWomg - nobody's going to listen to who you think is entitled to respect if you treat others this way. Rise to the standard you're trying to set for others, please. Swearing at people and bragging how intelligent you are doesn't do much to improve these circumstances. Please stop gassing the fire. This is not useful. You are being far ruder than the people you're complaining about. |
Solving the issue is also not useful, so I don't quite follow what your goals are. |
@StoneCypher - I agree with you, Reptar. |
@MTWomg I have no idea where your attitude is coming from and I'm not happy about the atmosphere you're spreading here. |
Of course there wasn't any malice! Only conspiratorial fuckwads would think so. There should have been malice though. Someone large and powerful needs to stomp (many) OSS licenses out of existence. That could have been you! |
I appreciate everyone's passion for this issue and we're dedicated to getting it fixed. Please continue to keep us honest but, for now, we're closing this thread. |
Comments are still open~~~ |
^ Now that's when you know he was just trolling |
I doubt that as far as the later link goes. |
Many many headers and implementation in Frameworks/Foundation are from my Cocotron project and have had the original license completely removed and replaced.
The ONE SINGLE requirement of the Cocotron MIT license is that the license text, including copyright holders, remains in the source. THAT'S IT, can you please manage to do that.
Please restore all original licensing w/ copyright holders in all derivative works.
Thanks!
The text was updated successfully, but these errors were encountered: