{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/375","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/375/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/375/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/375/events","html_url":"https://github.com/dotnet/coreclr/issues/375","id":59540629,"number":375,"title":"Defects in PATENTS.TXT","user":{"login":"nathanaeljones","id":107935,"avatar_url":"https://avatars.githubusercontent.com/u/107935?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanaeljones","html_url":"https://github.com/nathanaeljones","followers_url":"https://api.github.com/users/nathanaeljones/followers","following_url":"https://api.github.com/users/nathanaeljones/following{/other_user}","gists_url":"https://api.github.com/users/nathanaeljones/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanaeljones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanaeljones/subscriptions","organizations_url":"https://api.github.com/users/nathanaeljones/orgs","repos_url":"https://api.github.com/users/nathanaeljones/repos","events_url":"https://api.github.com/users/nathanaeljones/events{/privacy}","received_events_url":"https://api.github.com/users/nathanaeljones/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"richlander","id":2608468,"avatar_url":"https://avatars.githubusercontent.com/u/2608468?v=3","gravatar_id":"","url":"https://api.github.com/users/richlander","html_url":"https://github.com/richlander","followers_url":"https://api.github.com/users/richlander/followers","following_url":"https://api.github.com/users/richlander/following{/other_user}","gists_url":"https://api.github.com/users/richlander/gists{/gist_id}","starred_url":"https://api.github.com/users/richlander/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/richlander/subscriptions","organizations_url":"https://api.github.com/users/richlander/orgs","repos_url":"https://api.github.com/users/richlander/repos","events_url":"https://api.github.com/users/richlander/events{/privacy}","received_events_url":"https://api.github.com/users/richlander/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2015-03-02T20:09:20Z","updated_at":"2015-07-23T14:07:34Z","closed_at":null,"body":"PATENTS.TXT is defective; the patent grant is limited  to runtime implementations compliant with \"**[additional functionality in Microsoft's .NET Framework, as described in Microsoft's API documentation on its MSDN website](https://github.com/dotnet/corefx/blob/master/PATENTS.TXT#L37,L39)**\".\r\n\r\nThere are many problems with this phrase (clause b), including\r\n\r\n* Compliance with nebulous and changing documentation on a *massive website*.\r\n* Compliance with documentation which is known to  *incorrectly* describe actual behavior and interfaces of any .NET runtime. *No* runtime compliant strictly compliant with this clause exists.\r\n* The inherent prevention from enhancing or moving APIs forward, which is one of the purposes behind Core CLR.\r\n\r\n**In my interpretation, this clause alone invalidates the entire grant for the purposes of .NET runtime development**.\r\n\r\nClause (a), ECMA-335 compliance, appears identical to [the community promise from 2007](http://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx). This has been critiqued before, but continues to brings up concerns, such as:\r\n* Are all Microsoft .NET variants actually ECMA-335? Would coreclr and .NET Native (as-is) be on this list? \r\n* Is the /corefx repository ECMA-335 compliant? \r\n* How does this permit for innovation or experimentation?\r\n\r\nThe [clause in full](https://github.com/dotnet/corefx/blob/master/PATENTS.TXT#L37,L39):\r\n\r\n> \".NET Runtime\" means any compliant implementation in software of (a) all of \r\nthe required parts of the mandatory provisions of Standard ECMA-335 – Common \r\nLanguage Infrastructure (CLI); and (b) if implemented, any additional \r\nfunctionality in Microsoft's .NET Framework, as described in Microsoft's API \r\ndocumentation on its MSDN website. For example, .NET Runtimes include \r\nMicrosoft's .NET Framework and those portions of the Mono Project compliant \r\nwith (a) and (b). \r\n\r\n\r\nIf Microsoft doesn't wish to restrict the grant so heavily, as interpreted here, **why is the applicability to Mono so qualified**? ->  [\"portions of the Mono Framework compliant\"](https://github.com/dotnet/corefx/blob/master/PATENTS.TXT#L40). \r\n\r\nIt's clear that there's a concern over forking of the runtime, but embracing forking (and re-merging, which often brings great leaps), is part of open-source development. **Developers will always want all the libraries and tools they love to be compatible and work together.** I don't think this is something Microsoft needs to enforce or police; it will happen naturally.  Severe compatibility changes are rarely made by communities; rather, they typically originate with owner companies or BDFLs.  \r\n\r\nI would encourage replacing PATENTS.TXT with something with precise and deterministically interpretable; the Apache 2 patent grants are an excellent candidate.  This will help eliminate another source of .NET FUD. Please note that some of these concerns have been brought up on other blogs, and are not original."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/124118896","html_url":"https://github.com/dotnet/coreclr/issues/375#issuecomment-124118896","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/375","id":124118896,"user":{"login":"LongLiveCHIEF","id":3282305,"avatar_url":"https://avatars.githubusercontent.com/u/3282305?v=3","gravatar_id":"","url":"https://api.github.com/users/LongLiveCHIEF","html_url":"https://github.com/LongLiveCHIEF","followers_url":"https://api.github.com/users/LongLiveCHIEF/followers","following_url":"https://api.github.com/users/LongLiveCHIEF/following{/other_user}","gists_url":"https://api.github.com/users/LongLiveCHIEF/gists{/gist_id}","starred_url":"https://api.github.com/users/LongLiveCHIEF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LongLiveCHIEF/subscriptions","organizations_url":"https://api.github.com/users/LongLiveCHIEF/orgs","repos_url":"https://api.github.com/users/LongLiveCHIEF/repos","events_url":"https://api.github.com/users/LongLiveCHIEF/events{/privacy}","received_events_url":"https://api.github.com/users/LongLiveCHIEF/received_events","type":"User","site_admin":false},"created_at":"2015-07-23T14:07:34Z","updated_at":"2015-07-23T14:07:34Z","body":"@ellismg @richlander have there been any updates to the status of this one behind the scenes?"}}