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

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: showLicensePage function - material library - Dart API
Screenshot: https://user-images.githubusercontent.com/34681083/43499998-b1ea7b4a-9591-11e8-9e24-fc90fb97e0cd.png
Video:
https://www.youtube.com/watch?v=YFCSODyFxbE

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.

2 Likes

Including 3rd-party packages and assets?

Yes, specifically assets from the Asset Store and packages from the Unity package manager.

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

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

Aint gonna happen.

3 Likes

That’s highly unlikely to happen.

Also there are licenses that do not require attribution.

3 Likes

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.

5 Likes

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.

6 Likes

Looking, I think its actually 'legal.txt’

1 Like

My bad! Yes, legal.txt indeed.

2 Likes

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

4 Likes

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.

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.

4 Likes

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.

I’m pretty sure that is not true, but I’ve pinged the legal team to confirm.

3 Likes

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.

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.

2 Likes

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

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.

1 Like

I did the same and they replied that I should ask this in the forums :eyes:

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.

Here’s the official statement on this:

2 Likes