Skip to content
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

Closed
cjwl opened this issue Aug 7, 2015 · 46 comments
Closed

Restore original licenses #35

cjwl opened this issue Aug 7, 2015 · 46 comments

Comments

@cjwl
Copy link

cjwl commented Aug 7, 2015

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!

@atomicbird
Copy link

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.

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

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?

@migueldeicaza
Copy link

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.

@cjwl
Copy link
Author

cjwl commented Aug 7, 2015

As Miguel said, this is not my responsibility.

With respect to Cocotron, I will point you to the Framework/Foundation/*.mm and *.h files.

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

@cjwl Let's just talk about the headers for a second.

There are two sets of headers. One external facing, which retain your copyright:
https://github.com/Microsoft/WinObjC/blob/master/include/Foundation/NSDate.h

And a second set, internal, and which were generated programmatically. These do not have your copyright header:
https://github.com/Microsoft/WinObjC/blob/master/Frameworks/Foundation/NSDate.h

@pigeon-archive
Copy link

ಠ_ಠ

@cjwl
Copy link
Author

cjwl commented Aug 7, 2015

Focus on the implementation files.

@atomicbird
Copy link

@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:

  • NSPropertyListReader only exists in Cocotron. It's not an Apple Foundation class.
  • Code and especially comments on ExtractUID
  • Code and comments in _readInlineObjectAtOffset
  • Code for _readObjectAtOffset

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.

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

@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.

@landonf
Copy link

landonf commented Aug 7, 2015

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.

@bmastenbrook
Copy link

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.

@JensAyton
Copy link

The aforementioned NSPropertyListReader.mm has been updated to mention @cjwl, but the original is credited to @mikeash and myself.

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

@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:
https://github.com/cjwl/cocotron/blob/master/Foundation/NSPropertyList/NSPropertyListReader.m

Is that incorrect/incomplete?

@landonf
Copy link

landonf commented Aug 7, 2015

@s5msft

@JensAyton We were referencing the copyright header from:
https://github.com/cjwl/cocotron/blob/master/Foundation/NSPropertyList/NSPropertyListReader.m
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.

@bmastenbrook In some of these cases, we have explicit permission from the authors to relicense sections of relevant code.

Has the QPL/GPL-tagged code been relicensed under a permissive license, or does it still apply to anyone integrating/distributing this code?

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

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.

We are in agreement.

Has the QPL/GPL-tagged code been relicensed under a permissive license, or does it still apply to
anyone integrating/distributing this code?

We're in continual contact with the author of objfw, and, yes, it's relicensed under a permissive license in this project.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

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.

@s5msft

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.

@justizin
Copy link

justizin commented Aug 7, 2015

"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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

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.

@bmastenbrook
Copy link

@s5msft We're in continual contact with the author of objfw, and, yes, it's relicensed under a permissive license in this project.

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.

@fritzy
Copy link

fritzy commented Aug 7, 2015

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.

@netbsduser
Copy link

@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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

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.

@joshtriplett
Copy link

No, your license is not the law.

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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

@irixuser

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!'

@ghost
Copy link

ghost commented Aug 7, 2015

I don't see any meaningful discussion coming from this issue. Can we please lock it?

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

@joshtriplett

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.

@jedsmith
Copy link

jedsmith commented Aug 7, 2015

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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

@jedsmith

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.

@netbsduser
Copy link

The rude part is showing up, saying 'hey, you forgot my license'

Something that you shouldn't have to do in the first place.

and the company responding with 'Oops! Where did we mistakingly remove it? We want to fix this pronto!'

It's really not much to expect a company with such resources to be able to find out where they're going wrong themselves.

and the non-Microsoft entity responding with 'Fuck you! Find it yourself!'

As above.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

@irixuser

  1. That's the way it is when you pretend. Your license does not actually matter, nor do you. You can pretend it does and MS can pretend to give a shit but you do not get to treat people poorly in an ill-conceived attempt to get your name into MS's codebase.
  2. Even Microsoft is entitled to a certain degree of respect. The comments in question do not meet the minimum threshold for acceptable human conduct.
  3. As above.

@StoneCypher
Copy link

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."

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

No, someone wants it fixed and is being a piece of fucking shit in the process. That's the problem.

@StoneCypher
Copy link

Honestly, you guys need to calm down. This is not helping.

@jeremytregunna
Copy link

@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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

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.

@StoneCypher
Copy link

@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.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

Solving the issue is also not useful, so I don't quite follow what your goals are.

@rburhum
Copy link

rburhum commented Aug 7, 2015

@TimFerrell
Copy link

@StoneCypher - I agree with you, Reptar.

@lumaxis
Copy link
Contributor

lumaxis commented Aug 7, 2015

@MTWomg I have no idea where your attitude is coming from and I'm not happy about the atmosphere you're spreading here.
We at Microsoft deeply value OSS and are gravely committed to properly attribute people and their hard work that they gladly made available to the rest of of the world.
Now, I can't speak for what went wrong in this project but I am convinced that it didn't happened with bad intentions or any malignity. In my opinion there is still excuse for how this could happen but as they said, the team is apparently working hard on correcting the mistakes and making right by everyone.

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

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!

@s5msft
Copy link
Contributor

s5msft commented Aug 7, 2015

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.

@s5msft s5msft closed this as completed Aug 7, 2015
@MTWomg
Copy link

MTWomg commented Aug 7, 2015

Comments are still open~~~

@Baddaboo
Copy link

Baddaboo commented Aug 7, 2015

^ Now that's when you know he was just trolling

@joshtriplett
Copy link

@MTWomg
Copy link

MTWomg commented Aug 7, 2015

I doubt that as far as the later link goes.

@microsoft microsoft locked and limited conversation to collaborators Aug 7, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests