Apache Cordova is under the Apache-2.0 license. This means that when building an app with Cordova:
- you MUST give recipients a copy of the Apache license
- you MUST NOT remove the existing license notices for Cordova in the Cordova source code
- you MUST give recipients a copy of the NOTICE file, if it exists (it does)
Here, a recipient is anyone who receives a copy of your app, in particular users.
But in which format do you have to provide a copy of the Apache license and the NOTICE file? The purpose here is that an ordinary user can actually read that information. I think it is not sufficient to only keep this information in the source code, even for web apps.
TL;DR: just create a license screen for your app where ALL licenses and notices for ALL open source dependencies are shown.
Specifically for the location of the NOTICE file, the Apache license allows you to pick any of the following places:
- within a NOTICE text file distributed as part of the Derivative Works;
- within the Source form or documentation, if provided along with the Derivative Works;
- or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear.
(formatting mine)
Translated into normal English:
- You can combine the NOTICE files from Apache-licensed dependencies into a single NOTICE file that you distribute alongside your program files. For an app, this won't really apply since the user can't easily access your app's installed files.
- If you give the recipients the source code for your app along with the app, it is sufficient if the NOTICE is in the source code. For an app, it would be fairly unusual to include the source code alongside.
- If you provide documentation alongside your app, you can put the NOTICE in this documentation. For an app, this might be satisfied with a built-in documentation system, but likely not with documentation loaded from a separate website.
- For programs with a user interface, you can show the NOTICE wherever such third party notices normally appear.
You have shown an example of an app that has a “Licensi Open Source” screen, presumably accessible in the settings or another menu. This is the normal approach for including third party notices in an app. If you also have such a screen and include the Apache License and the Cordova NOTICE file, that would satisfy the Cordova license.
Do license headers in source files count as license notices? It depends:
- yes, if distributing the actual source code.
- no, they do not satisfy the Apache license notice requirements when distributing non-source forms.
But note: even though the cordova.js file is JavaScript, it is not the complete Cordova-JS source code. Your cordova.js file is likely a minified and bundled version of Cordova. For example, the file you've screenshotted clearly strips out comments when compared with the actual source code. The Apache License defines the Source as “the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files”.