Comments (46)
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.
from winobjc.
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?
from winobjc.
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.
from winobjc.
As Miguel said, this is not my responsibility.
With respect to Cocotron, I will point you to the Framework/Foundation/*.mm and *.h files.
from winobjc.
@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
from winobjc.
ಠ_ಠ
from winobjc.
Focus on the implementation files.
from winobjc.
@s5msft Here's a simple example. Compare
- https://github.com/Microsoft/WinObjC/blob/master/Frameworks/Foundation/NSPropertyListReader.mm
- https://github.com/cjwl/cocotron/blob/master/Foundation/NSPropertyList/NSPropertyListReader_binary1.m
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.
from winobjc.
@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.
from winobjc.
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.
from winobjc.
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.
from winobjc.
The aforementioned NSPropertyListReader.mm has been updated to mention @cjwl, but the original is credited to @mikeash and myself.
from winobjc.
@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?
from winobjc.
@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?
from winobjc.
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.
from winobjc.
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.
from winobjc.
"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.
from winobjc.
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.
from winobjc.
@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.
from winobjc.
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.
from winobjc.
@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.
from winobjc.
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.
from winobjc.
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.
from winobjc.
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!'
from winobjc.
I don't see any meaningful discussion coming from this issue. Can we please lock it?
from winobjc.
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.
from winobjc.
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.
from winobjc.
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.
from winobjc.
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.
from winobjc.
- 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.
- Even Microsoft is entitled to a certain degree of respect. The comments in question do not meet the minimum threshold for acceptable human conduct.
- As above.
from winobjc.
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."
from winobjc.
No, someone wants it fixed and is being a piece of fucking shit in the process. That's the problem.
from winobjc.
Honestly, you guys need to calm down. This is not helping.
from winobjc.
@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.
from winobjc.
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.
from winobjc.
@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.
from winobjc.
Solving the issue is also not useful, so I don't quite follow what your goals are.
from winobjc.
from winobjc.
@StoneCypher - I agree with you, Reptar.
from winobjc.
@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.
from winobjc.
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!
from winobjc.
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.
from winobjc.
Comments are still open~~~
from winobjc.
^ Now that's when you know he was just trolling
from winobjc.
@s5msft You may find https://help.github.com/articles/locking-conversations/ and https://help.github.com/articles/blocking-a-user/ useful.
from winobjc.
I doubt that as far as the later link goes.
from winobjc.
Related Issues (20)
- What versions of Windows are supported? HOT 2
- Unable to activate Windows store app. HOT 4
- Switch to `__objc_msg_forward2` for better forwarding efficiency HOT 1
- Can not install winobjc with win10 HOT 1
- -[NSObject conformsToProtocol:] does not work.
- clang hangs when compiling using optimisation flag -Os HOT 2
- Does Windows Bridge supports Metal Framework? HOT 1
- Does Windows Bridge supports OpenGL? HOT 1
- G HOT 1
- On running ios project(in Objective-C) throws error
- c sharp
- Ggg
- hhh HOT 3
- Bring WinObjC to WSLg, either exclusive to CUDA and DX12, or for all Linux with Vulkan. HOT 1
- ()R
- This repo is missing important files HOT 1
- has anyone tried newer versions of VStudio w/ this project? HOT 6
- nugetizer-2017 online package is missing HOT 2
- Need some updated instructions re installation in newer VS versions (2019 and up) HOT 4
- 使用vs2019 编译错误,什么时候改为#include <typeinfo> HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winobjc.