Licence violations and incompatibilities

CyanWorlds.com Engine Project Management
Paradox
Member
Posts: 15
Joined: Sun Jul 10, 2011 10:37 pm

Licence violations and incompatibilities

Post by Paradox »

(Note: Originally posted at http://mystonline.com/forums/viewtopic.php?t=24900. Cyan has locked all their open-source forums, which feels a bit like they have no intention of actively participating (or resolving these issues))

With Plasma released under a plain GPLv3 licence, there are a few problems that need to be addressed. Sooner is better, especially since Microsoft might not be too happy about having some of their code inadvertently released as GPL.

The first part of the problem is where Cyan used 3rd party code in Plasma under a licence like the MIT licence, but then copy-pasted a GPLv3 header on all the files when the code was released.
In particular, PubUtilLib/plWinStrBlock/strblock.h and PubUtilLib/plWinStrBlock/strblock.cpp are copyright by Microsoft.
Also the files in FeatureLib/pfStackTrace (such as pfStackTrace.cpp, pfPrintStackTrace.cpp, and pfMapFile.h) are copyright by Jani Kajala, who also demands that the copyright notice be made visible in all supporting documentation.

There's also two classes in PubUtilLib/plWndCtrls (basewnd and webhost) that have the following comment:
Stolen from: http://www.mvps.org/user32/webhost.cab
No copyright notices, so I assume it's public domain -Colin

I'm entirely sure that Cyan had no intention of violating these licences when they released the code (and as far as I know, both licences allow the code to be used in GPL software). The problem is that they've pasted the GPL licence on top of the existing licences. It's always best to be careful around the GPL, as it has caused problems in the past for companies (like the infamous DLink case).


The next issue in licensing is that Cyan didn't add provisions for linking against PhysX or the 3DS Max SDK. It's also a bit unclear whether a special clause is needed for linking against OpenSSL (on Linux I don't believe it is, but for Windows it might be).
Without these provisions, nobody can (legally) distribute a compiled binary. Of course, it's very unlikely that anyone would try to stop you, since that would be entirely against Cyan's interest in open-sourcing the code. But technically, it is still a violation of copyright to distribute any compiled Plasma code.

This was originally mentioned months ago, when the code was first released. The problem now is that in order to change the licence to add these provisions, Cyan needs the permission of everyone who has contributed code to the project. That number is starting to grow, as can be seen on the contributors list for the GoW fork.

At this point, it seems more likely that PhysX will be stripped out and replaced with Bullet before Cyan has a chance to update the licence. This solves the problem for the client, but the Max plugin is still a problem because it links against the Max SDK.
Stucuk
Member
Posts: 36
Joined: Mon May 23, 2011 8:22 am

Re: Licence violations and incompatibilities

Post by Stucuk »

When it comes to files which Cyan have claimed as theres can't you just replace them with the Original versions of the file? That should be the simplest way around it. When it comes to PhysX/3DS Max SDK's it shouldn't be a problem as Cyan are not likely to sue people for compiling them in with the CWE Engine(Only Cyan can sue as its there License people would be violating).
Image
-Stu
User avatar
branan
Member
Posts: 84
Joined: Wed Apr 06, 2011 11:35 pm

Re: Licence violations and incompatibilities

Post by branan »

Anyone who's contributed code under the GPL (without an exception) could sue, actually. For small contributions we can just remove them, but it's still not a spectacular situation.
Last edited by branan on Fri Aug 05, 2011 5:41 am, edited 1 time in total.
User avatar
Hoikas
Member
Posts: 344
Joined: Fri Jun 03, 2011 8:38 pm

Re: Licence violations and incompatibilities

Post by Hoikas »

Nvidia can sue
PhysX SDK EULA wrote:5. Restrictions. You will not, and will not permit others to: (a) modify, translate, decompile, bootleg, reverse engineer, disassemble, or extract the inner workings of any portion of the PhysX SDK except the Sample Code and PhysX Extensions (which include Vehicle and Character Controllers), (b) copy the look-and-feel or functionality of any portion of the PhysX SDK except the Sample Code; (c) remove any proprietary notices, marks, labels, or logos from the PhysX SDK or any portion thereof; (d) rent, transfer or use as a service bureau all or some of the PhysX SDK without NVIDIA’s prior written consent, except in the form of Physics Applications and subject to the requirements of this Agreement; (e) utilize any computer software or hardware which is designed to defeat any copy protection device, should the PhysX SDK be equipped with such a protection device; or (f) use the PhysX SDK in any manner that would cause the PhysX SDK to become subject to an Open Source License. "Open Source License" includes, without limitation, a software license that requires as a condition of use, modification, and/or distribution of such software that the PhysX SDK be (i) disclosed or distributed in source code form; (ii) be licensed for the purpose of making derivative works; or (iii) be redistributable at no charge. Unauthorized copying of the PhysX SDK, or failure to comply with any of the provisions of this Agreement, will result in automatic termination of this license.
Can't argue with the facts.
Image
User avatar
andylegate
Member
Posts: 13
Joined: Fri Feb 19, 2010 11:44 am

Re: Licence violations and incompatibilities

Post by andylegate »

Here is the full EULA for the PhysX Software Developers Kit (PhysX SDK):

http://developer.download.nvidia.com/as ... EULA_3.pdf
Stucuk
Member
Posts: 36
Joined: Mon May 23, 2011 8:22 am

Re: Licence violations and incompatibilities

Post by Stucuk »

branan wrote:Anyone who's contributed code under the GPL (without an exception) could sue, actually. For small contributions we can just remove them, but it's still not a spectacular situation.
I stand corrected, forgot about the GPL's retarded "Everything becomes GPL even if its got another license embedded in it" rubbish.

Is it possible for you to add your own exceptions to code which you add to the project? If so can't you just remove all the offending code, add exceptions and then add the original versions of that code?
Image
-Stu
User avatar
Mac_Fife
Member
Posts: 1239
Joined: Fri Dec 19, 2008 12:38 am
Location: Scotland
Contact:

Re: Licence violations and incompatibilities

Post by Mac_Fife »

Stucuk wrote:Is it possible for you to add your own exceptions to code which you add to the project? If so can't you just remove all the offending code, add exceptions and then add the original versions of that code?
No. Only the holder of the copyright of the GPL'ed work can designate what exceptions can be permitted. Because of GPL's "copyleft" nature, all derivative works must inherit the original license terms, so you can't add or remove license terms in any derivative.

On a side note, that clause in the PhysX SDK License that Hoikas pointed out is kinda typical of the redundant over-statement that is sadly typical in many (commercial) restrictive licenses. It's one of a number of clauses in legalese that basically claims a protection that they inherently already get from asserting copyright :? - these licenses typically amount to a list of things that the licensor won't permit you to do (some of which are often argued to run against the fundamental rights of a consumer). "Open" or "Free" licenses tend to work the other way round by first asserting the copyright of the originator and then expressing what you can do with the product.
Mac_Fife
OpenUru.org wiki wrangler
Skoader
Member
Posts: 29
Joined: Fri Jul 01, 2011 2:27 am

Re: Licence violations and incompatibilities

Post by Skoader »

This is unfortunate.

What's the best way to move forward? Can we get permission from Cyan to add the necessary exceptions ourselves?
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Licence violations and incompatibilities

Post by JWPlatt »

Sorry to have been mute on this issue for so long. The same thread seems to be popping up everywhere. (o.O) I've been heavily on a CK project that is further along now, and other real life matters as the summer season moves nicely along.

I'm/we're going to see about discussing GPL exceptions and also asset licensing with Cyan sometime in the next two to four weeks, depending on how busy we all are.

If you want to provide a list of exactly which exceptions we need, the wording, etc, etc, etc, or which license to use for the assets, feel free, though our moderator at large may split that off into its own topic if there's much response.
Perfect speed is being there.
User avatar
Hoikas
Member
Posts: 344
Joined: Fri Jun 03, 2011 8:38 pm

Re: Licence violations and incompatibilities

Post by Hoikas »

Some interesting reading regarding the 3ds Max plugin.

JWPlatt: I know that the GNU GPL is seen as the "open source license" but it tries to enforce freedom upon us in such a way that it's actually restricting our freedom at this point. Even if we do get an exception for PhysX, there may be future issues (like the Max SDK problems). I think we would be better served by moving to the Apache or MIT license, which has no viral clauses requiring us to release source code for all third party libraries, SDKs, etc. that we may use.

----EDIT----
Another example for "problems with the GPL" is that the secure file preloader violates the GPLv3's anti-tivoization clause. The external releases prevent you from running modified python. So, technically, Cyan is violating their own license by distributing the UruExplorer.exe on MOULa with dragossh's GPLv3 contributions.
Image
Post Reply

Return to “Management”