GithubHelp home page GithubHelp logo

Restore original licenses about winobjc HOT 46 CLOSED

microsoft avatar microsoft commented on September 3, 2024
Restore original licenses

from winobjc.

Comments (46)

atomicbird avatar atomicbird commented on September 3, 2024

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.

s5msft avatar s5msft commented on September 3, 2024

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.

migueldeicaza avatar migueldeicaza commented on September 3, 2024

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.

cjwl avatar cjwl commented on September 3, 2024

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.

s5msft avatar s5msft commented on September 3, 2024

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

karagraysen avatar karagraysen commented on September 3, 2024

ಠ_ಠ

from winobjc.

cjwl avatar cjwl commented on September 3, 2024

Focus on the implementation files.

from winobjc.

atomicbird avatar atomicbird commented on September 3, 2024

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

from winobjc.

s5msft avatar s5msft commented on September 3, 2024

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

landonf avatar landonf commented on September 3, 2024

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.

bmastenbrook avatar bmastenbrook commented on September 3, 2024

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.

JensAyton avatar JensAyton commented on September 3, 2024

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

from winobjc.

s5msft avatar s5msft commented on September 3, 2024

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

landonf avatar landonf commented on September 3, 2024

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

from winobjc.

s5msft avatar s5msft commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

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.

from winobjc.

justizin avatar justizin commented on September 3, 2024

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

MTWomg avatar MTWomg commented on September 3, 2024

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.

bmastenbrook avatar bmastenbrook commented on September 3, 2024

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

fritzy avatar fritzy commented on September 3, 2024

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.

netbsduser avatar netbsduser commented on September 3, 2024

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

MTWomg avatar MTWomg commented on September 3, 2024

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.

joshtriplett avatar joshtriplett commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

 avatar commented on September 3, 2024

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

from winobjc.

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

jedsmith avatar jedsmith commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

netbsduser avatar netbsduser commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

StoneCypher avatar StoneCypher commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

StoneCypher avatar StoneCypher commented on September 3, 2024

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

from winobjc.

jeremytregunna avatar jeremytregunna commented on September 3, 2024

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

MTWomg avatar MTWomg commented on September 3, 2024

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.

StoneCypher avatar StoneCypher commented on September 3, 2024

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

MTWomg avatar MTWomg commented on September 3, 2024

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

from winobjc.

rburhum avatar rburhum commented on September 3, 2024

from winobjc.

TimFerrell avatar TimFerrell commented on September 3, 2024

@StoneCypher - I agree with you, Reptar.

from winobjc.

lumaxis avatar lumaxis commented on September 3, 2024

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

MTWomg avatar MTWomg commented on September 3, 2024

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.

s5msft avatar s5msft commented on September 3, 2024

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.

MTWomg avatar MTWomg commented on September 3, 2024

Comments are still open~~~

from winobjc.

Baddaboo avatar Baddaboo commented on September 3, 2024

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

from winobjc.

joshtriplett avatar joshtriplett commented on September 3, 2024

@s5msft You may find https://help.github.com/articles/locking-conversations/ and https://help.github.com/articles/blocking-a-user/ useful.

from winobjc.

MTWomg avatar MTWomg commented on September 3, 2024

I doubt that as far as the later link goes.

from winobjc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.