Distribute compiled project including Apache 2.0 licensed source code

Started by
1 comment, last by frob 7 years, 11 months ago

When I distribute a compiled project using source code that is licensed under the Apache 2.0 license do I still need to include copyrights and license info? I mean, when I create a commercial project where they cannot access the source code in a normal way there is no point in showing it's license but only creates confusion since my program does not fall under the same license.

Let's say I create a game with LibGDX which is licensed under Apache 2.0, where should I put these documents? Do they officially need to be readable through the android application or would a plain text file that a normal android user could never access be sufficient?

"You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one 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. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License."

I guess that means I do have to supply the license file. However I did not change any of the source code from LibGDX. And where does the notice file go? I never seen any game that put Pythagoras, Dijksta, Bresenham, etc in there credits screen. Neither do I see any of these licenses appear on other games. Pick 10 random games, I bet at least a couple are using at the very least a famous algorithm that is licensed as Apache 2.0, but they do not include a license nor a notice file. I played some LibGDX games from there Gallery and none of them supplied this while LibGDX falls under this Apache 2.0 license. I would love to supply some of the major names that created LibGDX and even give credits to all those geniuses who invented those amazing algorithms.

Finally, with such a file alongside my compiled project how do I let people know that the end product they are using is not under Apache 2.0 license? And has full copyright?

Advertisement

When I distribute a compiled project using source code that is licensed under the Apache 2.0 license do I still need to include copyrights and license info?

If you want to comply with the terms of the license, then yes, you do.

I mean, when I create a commercial project where they cannot access the source code in a normal way there is no point in showing it's license but only creates confusion since my program does not fall under the same license.

The point is to comply with the license and to attribute the parts of the code you used to the people who wrote it. Conversely, by not disclosing the use of the open source code, you are falsely claiming that you own the copyright to your entire code, and that does create confusion (and opens you up for potential litigation).

Let's say I create a game with LibGDX which is licensed under Apache 2.0, where should I put these documents? Do they officially need to be readable through the android application or would a plain text file that a normal android user could never access be sufficient?

For mobile apps, where the file system is not normally freely accessible without using other third party apps, I would suggest something within your own app (like a credits page). Here are some ideas.

...
I guess that means I do have to supply the license file. However I did not change any of the source code from LibGDX. And where does the notice file go? I never seen any game that put Pythagoras, Dijksta, Bresenham, etc in there credits screen. Neither do I see any of these licenses appear on other games. Pick 10 random games, I bet at least a couple are using at the very least a famous algorithm that is licensed as Apache 2.0, but they do not include a license nor a notice file. I played some LibGDX games from there Gallery and none of them supplied this while LibGDX falls under this Apache 2.0 license. I would love to supply some of the major names that created LibGDX and even give credits to all those geniuses who invented those amazing algorithms.

These games may or may not be complying with the license terms of the open source software they may or may not be using. The important question is, do you want to comply yourself or do you accept the legal risk of non-compliance. That's a decision you have to weigh for yourself, but IMHO there is literally no reason not to comply. These people wrote great code that you make use of and the only thing they ask for is that you give them credit. It doesn't cost you anything and it's the morally correct thing to do, so why wouldn't you?

Finally, with such a file alongside my compiled project how do I let people know that the end product they are using is not under Apache 2.0 license? And has full copyright?

a) Your program should have its own license, ie for a game something like boilerplate EULA.

b) Wherever you list the third party licenses, just indicate that "this program uses X library, here is the relevant license of X library..."

You absolutely should give credits and show the obligatory licenses, and failure to do it may violate copyright law since without following the license you are infringing on their rights.

How you do it is typically specified in the license. Many games provide a set of legal screens in the menus that shows all the details. Others put it at the bottom of the credits.

For examples of how to do it, in chrome type in chrome://credits/ (which you can find in the menu under Help | About Google Chrome | Google Chrome is made possible by ... Open Source Software). Firefox has about:credits and about:license, similarly found in the menus. Microsoft Office products have it under their about pages or options pages depending the version you're using, under 'Additional Version and Copyright Information'.

The license specifies that you MUST provide the notices somewhere the consumer can reasonably view them. Follow the license to use the product.

This topic is closed to new replies.

Advertisement