I am open-sourcing an OpenGL project out of a desire to share the code. However, I would like to deter anyone from compiling my project as is and publishing it with the same icon, images, and models. My application is for-profit, but I doubt I would lose significant sales to people going through the trouble of compiling it for their own use. But someone could republish my application as is as a free version that competes with my paid version, and that potentially could significantly affect sales.

I put the Apache 2 license in the project, and the read-me states that it covers code files only.

But there are two things I'm unclear on.

  1. Does placing the text of the license in a file in the root of my project somehow imply that it applies to all files in the project that are publicly visible?

  2. Can the Apache 2 License apply to image files? It mentions

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

So there is no explicit mention of images. I know I could swap out all the image files for something else, but then it would not be as nice of an example for others to learn from, and I really don't want to take the time to generate alternate artwork.

I know I can't entirely stop cloners, but I'd at least like to be able to ask storefronts like Google Play to take down apps that are identical to mine.

  • opensource.stackexchange.com/questions/1344/… for a somewhat related question
    – Martijn
    Nov 9, 2015 at 13:31
  • @Tenfour I understand that this is not your question, but from what you say, it seems like it is not a good idea to apply the Apache License v2 to your project at all. You are worried about sales if your application has competition from the open source version. Why would sales not suffer? An equivalent application is freely available, after all. What happens if someone includes your application in a distribution? Reconsider open sourcing your application.
    – robinbb
    Jan 18, 2016 at 4:08
  • It will only have competition from the open source version if someone else compiles and releases the open source version. I was looking for a way to discourage people from doing that.
    – Tenfour04
    Jan 18, 2016 at 5:45

1 Answer 1


Unless you make clear that it doesn't, just having the Apache2 license in your project implies that it goes for everything in your project, including assets, documentation, etc., but doesn't make it explicit, and it's unclear what a court of law would say about it if challenged. Implying things and legal documents don't tend to be a good combination.

That can lead to confusion, and cases where people will ask you for clarification at best* and people who won't use your work because they are not sure what the license refers to exactly, or people who will use your work where it wasn't your intention for them to use it under that license at worst.

The Apache2 license can refer to all sorts of things that aren't code. For example, in the case of the Spray.io project, everything including documentation is Apache2. There is no inherent problem with that. Please do realize that the preferred form for making modifications to many images is the file format you use to create the image, like the photoshop, inkscape, gimp or whathaveyou file, so if you want to have them under the Apache2 license, this is what you should have.

But this is by no means a requirement. You are free to have your assets and other non-code things under one license, and your code under another without any problems. Whatever you choose, I advice you to be very clear as to what is licensed as what. Generally, it's a good idea to state the copyright status of everything in some readme file. There you can say, for example, that everything is copyright you, licensed under the apache2 license (with a link to the apache2 license in your project). Or that everything is copyright you, all images and documentation under some license x (for example CC BY-SA if you like that, or something different entirely), and everything else under the Apache2.

With these things, it's always best to be as clear as possible to your re-users, so that they don't have to bug you with questions later. It never hurts to be explicit.

Be aware that Copyright is not the only intellectual property that can help you protect your product. You can also have a trademark (registered or unregistered) on your projects name and symbols representing your project. This is, for example, the route Firefox has taken (and the reason it's called IceWeasel in some Linux distributions). Trademarks are completely separate from copyright.

*This rarely ever happens. People will usually either assume one way or the other, or walk away confused.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.