Search Unity

Unity Companion License being a roadblock to open source.

Discussion in 'General Discussion' started by techmage, Jul 27, 2018.

  1. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    So I am trying to go through the process of getting my company to let me release an internal library for Unity as MIT open source on GitHub. The library deals with Unity UI in some parts, as such I have take some classes from the Unity-UI repo and modified them. This repo: https://bitbucket.org/Unity-Technologies/ui

    I sent the library off to the lawyers and much to my dismay they said the Unity Companion License is not actually an OSS license!
    https://bitbucket.org/Unity-Technol...ICENSE?at=2017.3&fileviewer=file-view-default

    Now I do not believe Unity intended this license to prevent companies from releasing unity libraries as open source. I think the intention of Unity is to actually promote the creation of more Unity open source libraries. But the wording of this license seems to be creating a roadblock.

    The issue has to do with specifically:
    "Unity owns its content. While you keep all right, title, and interest to your own content per the above, as between Unity and you, Unity will own all right, title, and interest to all intellectual property rights (including patent, trademark, and copyright) in the Software and derivative works of the Software, and you hereby assign and agree to assign all such rights in those derivative works to Unity."

    They seem to interpret this as meaning, if there are any modified classes from an open source Unity repo in another library, then Unity owns the entire library.

    Is this actually the intent of the license? It seems very restraining to open source development around Unity if it is the case.

    Has anyone else dealt with this? Could perhaps anyone at Unity help me to clarify this?
     
  2. Honestly, I don't see the problem here. It says, you assign the derivative work's license to Unity (so they can use your stuff however they see fit in the future - after all you started your work upon their code).
    And they grant you the same license which you use the original library.
    And this license says that
    "Unity Technologies ApS (“Unity”) grants to you a worldwide, non-exclusive, no-charge, and royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute the software that is made available under this License (“Software”), subject to the following terms and conditions:"

    Keep in mind, I'm not a lawyer, and I urge you to listen to them above all.
     
  3. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    Ya I don't see an issue with it either. But lawyers are just doing their thing.

    I bring it up because I assume Unity most certainly did not intend their license to be a road bump to what I am doing, but it has turned into that.
     
  4. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    The license is clearly not compatible with most OS licenses. The plain wording of the license seems fairly clear what their intent was, and being OS compatible doesn't seem to be one of them.

    In a funded company or one where it's market value matters, then licenses like this are an issue. Not using them but releasing any derived works. You are distributing a licensed work in whole you don't own any of the copies you distribute. That has implications for funding and acquisitions.

    But actual context matters. It might not be an issue that it's not OS.
     
  5. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    In future its worth checking this stuff before you go ahead and build derivatives...
     
    Joe-Censored and QFSW like this.
  6. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    What I have specifically are a few methods which have been heavily modified to enable a new type of input device to interface with the Unity UI.

    I assume the entire purpose of releasing the Unity UI source is to enable people to extend it and add functionality to it. Every package on the Asset Store which interfaces with Unity UI probably has done the same thing I have done to some degree. I have seen snippets from the unity UI source in many other places because people tend to go off of Unity's own classes when extending it.

    My library after a code scan set off some flags as having code from Google VR Unity SDK:
    https://github.com/googlevr/gvr-unity-sdk
    Which I most definitely took zero code from that repo. The flagged files from Google's repo were alterations of Unity's UI source code, because we both derived them from Unity's open source code. The lawyers from my company would have probably flagged that Google codebase as well.

    The lawyers from my company seem worried that, even with heavy modification, finding any similar patterns enables Unity to claim complete ownership to the library via the wording of the license. If this is true, I bet you if they did a scan of most packages on the asset store which dealt with unity UI, then Unity could attempt to claim complete ownership of those assets.

    I don't think Unity wants to be that draconian by any means. But lawyers from other companies get disturbed. I make this thread to point out, the wording of this license is being a roadblock to people extending the functionality of Unity. I assume Unity would want as many people as possible to open source functionality they have added to Unity.

    I do think I can get around this just fine with lawyers at my company. But I do think Unity should consider wording some of that license differently.
     
    Last edited: Jul 30, 2018
  7. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    Also of note:
    https://github.com/thestonefox/VRTK...e/Scripts/Internal/VRTK_UIGraphicRaycaster.cs

    VRTK openly states in a comment at the top of that class that there UIGraphicRaycaster is lifted form that same Unity UI open source repo, and then altered.

    Under the Unity Companion License this would mean that Unity owns VRTK and the existence of VRTK under the MIT license is illegal.

    Again, I don't think it is Unity's intent to shut this stuff down, but the wording of the Unity Companion License makes it so.

    If the intent is to promote open source development off of these repos. The Unity Companion License needs to be reworded. I know most people are just ignoring the wording of Unity Companion License and doing it anyways. But in my case of having to get approval from lawyers in a corporation this is a huge roadblock.
     
    Last edited: Jul 30, 2018
  8. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    It depends when the code was taken. The companion license is relatively new, and newer than a lot of the released Unity code.
     
  9. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    Wowza, thank you for that. It was MIT licensed up till 2017.1!

    Well that solves my problem, I'll just point the lawyers to the MIT licensed version of the Unity UI code.

    But that does open up a new issue I have. Unity really threw a wrench in open source efforts with the Unity Companion License. Anytime someone wants to make an Asset that contains code derived from a Unity open source repo, you'll now have to contact Unity legal.

    Which I guess is not terrible, but the change was completely silent. There has been no discussion of how exactly you would go about creating a new system for unity that relies on some code derived from them, and still be able to sell it.
     
    Last edited: Jul 30, 2018
  10. What exactly do you want to discuss about it? Just read the bold text above in my reply. You're free to distribute and sublicense your work. You just can't claim that it's solely your work (because it's not).
     
  11. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    The portion which made the roadblock is this:
    "Unity will own all right, title, and interest to all intellectual property rights (including patent, trademark, and copyright) in the Software and derivative works of the Software, and you hereby assign and agree to assign all such rights in those derivative works to Unity"

    The lawyers are basically interpreting this as allowing unity to claim ownership of any codebase that has any portion of it derived from a Unity Companion License codebase. Meaning if you make a new system or library which contains parts of derived code, Unity can play a legal card to claim ownership of the entire codebase.

    So more specifically for a question. I have been working on taking the new ShaderGraph UI and making it generic, allowing the node UI to be used for anything. I interpret this to mean that Unity owns that and I technically cannot sell it. Or I can sell it, but at any point Unity could legally just claim it as theirs. If I were to open source it, it must be under the Unity Companion License. If I were to build a product off such code, I would need to make sure the Unity Companion License derived code is separate from my own "unique" codebase, then do something like distribute the Unity Companion License code in a compiled DLL if it were to be sold.

    Keep in mind I myself am not this paranoid about this, I am relaying perspective from the lawyers I have discussed this with.
     
  12. You can't just get a sentence and disconnect from the rest. Yes, they claim copyright over the derived product. Which I can see why.
    On the other hand you gain all the rights to distribute your product however you see fit. The license cannot be revoked retroactively (I mean they can try... but they wouldn't, it would create major problems for them). So you have the license to distribute and sublicense it anyhow you see fit. I don't see the problem with this.

    If you (or your company) want to own the copyright and you don't want to have Unity any interest in it, use an old lib with different license or try to create your work on your own codebase and not on the top of other people's.
    I understand that you're not that paranoid about it, but your lawyers are. So basically you're. Your lawyers aren't here to dispute about it, so we can do it with you.

    And on the top of it: it's a very bad move to write a software on the top of a library. If you want to use it, you can, without any license implications. If you expand the library, you can do that according to this license and only your library will be restricted by this (which is understandable).

    But this is just my opinion, so there is nothing more I can add to this conversation.
     
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,360
    Can we use assets with this license for our own Unity asset store assets ?
     
    CodeSmile likes this.