In your application, you must comply with all the licenses of all the components that you include in the app, i.e. where the user receives a copy of that component in any form. This also applies to transitive dependencies – you must comply with the licenses of any components that you include directly or indirectly.
Nearly all Open Source licenses require that you provide basic attribution and the entire license text in a human-readable form with your app. The details depend on the license, though. Some examples:
CC BY 3.0 lists attribution requirements for unmodified copies in section 4(b) of the license:
- you must keep intact attribution notices
- additionally, you must provide the following in a reasonable manner:
- name of the Original Author
- title of the work
- URI for the work
Additionally, you are required to provide the license text or a link to the license per section 4(a). In media where this is impossible, the name or the logo of the license would also be sufficient.
You may not prevent users from exercising their rights under this license, for example by using DRM techniques to prevent them from extracting CC-licensed assets.
Typical permissive licenses like ISC, MIT, BSD require you to retain the copyright + license notice in the code, and to give the user a copy of the entire notice.
Apache-2.0 has detailed attribution requirements. You must give recipients a copy of the license. You must also give appropriate access to the contents of the NOTICE file, if it exists.
OFL-1.1 allows you to keep notices in the font metadata:
Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
FontAwesome claims that they have included the license notices inside the font metadata, for the versions that they distribute. But when the font is embedded in a mobile app, I'd have doubts whether this metadata can be“easily viewed” by the user. It would be safer to show the notices to the user yourself.
Many apps handle licenses by including a screen or webview in their settings where users can read the entire list of license notices. Good examples of this are mobile web browsers like Chrome or Firefox.
If you are using a particular bundling tool to build your application, it may be able to assist with generating a list of licenses for all components. For example, the JavaScript ecosystem has the yarn licenses
tool. But such tools are only as good as package metadata. Such metadata might be incomplete, and of course doesn't cover assets that you're including manually.
While you are required to provide all of these notices for built/binary versions of your app, you are not required to put all of that into a LICENSE.txt file in your source code.