Search Unity

  1. Looking for a job or to hire someone for a project? Check out the re-opened job forums.
    Dismiss Notice
  2. Unity 2020 LTS & Unity 2021.1 have been released.
    Dismiss Notice
  3. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Feature request: FOSS Licenses used by runtime, packages and assets

Discussion in 'General Discussion' started by micsanbr, Mar 2, 2021.

  1. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    I'm trying to publish an iOS / Android app for our company and our corporate publishing service expects me to document any FOSS license used in the app, including engine runtime for each platform, packages and assets.

    Any FOSS license must be also displayed in the app via an appropriate page that lists all components used and their relative licenses.

    The Unity authoring tool and the Unity runtime should collect all this information and provide a scripting API to generate an array of rich-text strings containing all the legal license informations, which could be rendered (for example) using a Text Mesh Pro component.

    A very good example is what Google does with their Flutter framework, which generates a menu page that contains a clickable list of every license used by the app runtine engine and the dependences (packages).
    All Flutter packages hook into a registry saved in the project which includes every license.

    API: https://api.flutter.dev/flutter/material/showLicensePage.html
    Screenshot: https://user-images.githubusercontent.com/34681083/43499998-b1ea7b4a-9591-11e8-9e24-fc90fb97e0cd.png
    Video:


    A simpler alternative would be for unity to provide a PDF or TXT file containing a list of the licenses used by each platform runtime and let the developer implement this in their app.

    This is a blocking bug for app development in large organizations.
     
    BHT1SI likes this.
  2. sxa

    sxa

    Joined:
    Aug 8, 2014
    Posts:
    545
    Including 3rd-party packages and assets?
     
  3. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    Yes, specifically assets from the Asset Store and packages from the Unity package manager.

    I've already implemented both in my app so far.

    - All assets in my project (and I guess anything from the Asset Store) use this one: https://unity3d.com/legal/as_terms

    - The package manager editor API offers a way to list all packages installed inside a project and resolve their paths.
    https://docs.unity3d.com/ScriptReference/PackageManager.PackageInfo.html
    https://docs.unity3d.com/Manual/upm-assets.html
    For any non-builtin module there's a LICENSE.md text file that can be read and added to the desired location in the app. This part can be automated using an editor script that saves stuff into a ScriptableObject.

    What's missing at this point are the licenses that cover the Unity runtimes for iOS and Android.
     
  4. sxa

    sxa

    Joined:
    Aug 8, 2014
    Posts:
    545
    Aint gonna happen.
     
    Joe-Censored and JoNax97 like this.
  5. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    9,136
    That's highly unlikely to happen.

    Also there are licenses that do not require attribution.
     
  6. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,178
    That is alot of work for others with no necessity for such just because your corp happens to be super anal retentive. You could probably have implemented it in the time it took to create and respond to this thread.
     
    stain2319, Joe-Censored and Ryiah like this.
  7. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,436
    We ship a 'license.txt' file inside the Unity Editor install, in Data/Resources, which contains the third party notices. You should be able to read it using the standard System.IO APIs. EditorApplication.applicationContentsPath might help you locate the file programmatically.

    There are no plans to provide a dedicated API for accessing this information.
     
  8. sxa

    sxa

    Joined:
    Aug 8, 2014
    Posts:
    545
    Looking, I think its actually 'legal.txt'
     
  9. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,436
    My bad! Yes, legal.txt indeed.
     
    MadeFromPolygons and micsanbr like this.
  10. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    To be honest I was annoyed at first when corporate requested this stuff to be added in the app.
    Then I checked what other companies are doing and guess what? Pretty much any large app / project contains a list of FOSS license notices.

    So, no, it's not just my company being weird. It's literally every company with a large project who complies with standard legal requirements.
    It was annoying to find out that Unity (unlike any other app framework) does not offer this out of the box.
    Also FYI Unity products are being heavily marketed in the game Automotive / Industrial sectors and other developers I know are stuck, unable to release their applications because of this issue.
    Every large organization has to comply with opensource licenses, appstore requirements and other regulations.

    For example: "To comply with the license requirements of open source libraries, you as a developer are responsible for appropriately displaying the notices for the open source libraries that your app uses."
    https://developers.google.com/android/guides/opensource

    These requirements don't disappear just because you and many (most?) indie devs (especially in the gaming sector) don't care about these things or overlook these details entirely, .

    More informations on the subject:
    https://opensource.stackexchange.com/questions/3969/risks-of-not-showing-open-source-libraries-used
     
    Last edited: Mar 10, 2021
    angrypenguin likes this.
  11. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    Yes I'm aware of this file but I've been told that "Editor\Data\Resources\legal.txt" only contains informations about the Editor and not the runtimes for the various platforms.
    I need to release an app and not the editor obviously.

    @ippdev as you can see also Unity distributes these informations with their software.
     
  12. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    5,391
    This kind of feature is boring, not flashy, and not something any dev wants to do.

    So it probably won't happen until one of Unity's large, corporate customers starts nagging Unity to do something about it.
     
  13. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    The thing is, this feature takes probably not more than a day of work *IF* Unity simply releases a PDF or TXT file that contains the licenses used in the engine runtimes (one for each platform).

    That doesn't sound so hard because they should already know what's inside each platform runtime, in each version of Unity - Right?

    My company is already in contact with them and I'm still waiting for a final answer.
     
    Last edited: Mar 10, 2021
  14. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,436
    I'm pretty sure that is not true, but I've pinged the legal team to confirm.
     
  15. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    Some people from our company is also in touch with your legal team and that's what they have been told regarding the standalone runtimes (windows).
    I've also written to frankn about iOS / Android on the 26 Feb and got no answer yet.

    Ok, I'm not trying to be unnerving but ... isn't there something wrong with this document if someone working for Unity can't clearly understand what it refers to? Perhaps the informations could be split into legal-editor.txt and the various Runtime for each platform: if I am going to publish on Android, I don't need the licenses covering the stuff that is only specific on windows or to the editor.

    I don't think I am asking for the moon.
     
    Last edited: Mar 11, 2021
  16. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    13,513
    Where's the lack of clarity? They're asking for official confirmation of something they're "pretty sure" of, not clarification of something they're unsure of.
     
    Antypodish likes this.
  17. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    Well, unless my contact is mistaken, I'm also "pretty sure" that it only applies to the editor.

    A document called "legal.txt" should not require this sort of guesswork.
    This aspect should be clearly stated in the file that comes with Unity, which says:
    "This Third Party Notices file provides notices and information about the third party code or other materials listed below ("Third Party Software") which are included with the Software."

    What's the "Software"? The editor? The runtime? Both? Something else?
    A license should clearly define what is the software, in the same way they define what's "Third Party Software".
     
  18. mrtenda

    mrtenda

    Joined:
    Jun 6, 2017
    Posts:
    43
    It seems likely that micsanbr is correct, given that legal.txt lists NUnit and NDecompiler, which hopefully are not being included in runtimes built by Unity.

    We are also trying to find the same information that micsanbr is. I have opened a ticket with Unity support.
     
    micsanbr likes this.
  19. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    I did the same and they replied that I should ask this in the forums o_O

    Luckily our contact at Unity told me 3 weeks ago that I should get these informations in about 2-3 weeks.

    They confirmed that due to the complexity of the task (which is somehow automated but still takes a lot of work) they should be able to provide the informations related only to the version of Unity that I am using for our project.
    So for now this process is carried out sort of "on demand" but they are planning something better for the future.
     
  20. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,436
    Here's the official statement on this:

     
    mrtenda likes this.
  21. micsanbr

    micsanbr

    Joined:
    Apr 8, 2014
    Posts:
    20
    Someone already pointed out it's called legal.txt ... so that's not a good start for an official statement. Or is it a different file. An official statement would also mention the file location for other users that don't want to read the whole thread.

    Now ... it feels reaaaaaaally awkward to insist on this but can you please clarify how is that an "official" statement?
    Because of the "Unity Technologies" forum sticker tag next to your nickname?
    Usually "official" statements are shared via documentation websites or official blog posts. An email with contact information (first name, last name, job title and email) would also be okay. I cannot quote some rando unity forum person called SUPERPIG who's been talking to someone somewhere at Unity when submitting reports on this thing.

    I also showed this thread to my Unity contacts (btw I can share their names privately so you guys could maybe talk or something?) and they're still going to provide me a license list file.
    They said the following about this thread (I'm basically quoting an email): many of the editor licenses also apply to the runtime and they don't know what SUPERPIG has discussed internally and they are getting informations directly from legal and R&D.

    Anyways ... if what you said is actually correct, I would be extremely happy to simply embed the "legal.txt" file in my app and finally be done with this.

    Believe me, I do not enjoy having to waste so much time to look for this kind of basic information.
    At least when this is properly figured out, it will helper other people because I don't believe that among 4.5 million developers our company (multiple teams working on different projects) is the first organization asking for this basic thing and Unity didn't have a straight and clear answer until now.
     
  22. mrtenda

    mrtenda

    Joined:
    Jun 6, 2017
    Posts:
    43
    I contacted Unity's legal team yesterday via the email address listed in the Unity Terms of Service and a lawyer from Unity replied to me with the same statement verbatim.

    If you need official confirmation from Unity, you might want to contact Unity the same way that I did. (I don't work for Unity, I am not a lawyer, and my posts are not legal advice. I'm just a fellow Unity user)
     
    angrypenguin likes this.
unityunity