2

I’m using the Google Open Source Project 2016 (and others from Github using MIT and Apache licenses) and it has an Apache license. Do I need to add the Apache license to my project, too? If so, do I need to modify it at all? Or add anything? All of the open source projects that I'm utilizing didn't modify the license.

I don’t wish to publish my code to the public, either. My project isn’t open source.

2

Broadly speaking, Open Source licenses come in two flavours: permissive and copyleft.

  • Permissive licenses let you do whatever you want, as long as you provide certain attribution notices.
  • Copyleft licenses require that you use the same licenses for all derivative works and that you make your source code available (in case you share binaries).

These are just different approaches at maximizing software freedom. Permissively licensed code can be used in any context, even in proprietary software. So other developers get maximum freedom, though end users might just receive the attribution notices and none of the freedom. In contrast, copyleft licenses try to maximize end user freedom – but this means such code cannot be turned into proprietary software and that end users need access to the complete source code.

Under no circumstances do open source licenses trigger requirements on purely internal use of the software. As long as you don't make the software (or software based on the licensed software) available to others, you can do what you want.

Licenses like Apache 2, MIT, BSD and their variants are all permissive licenses. You may do whatever you want but if you publish software that includes the licensed code (whether completely or in part, with our without modifications), then:

  • you must keep any existing copyright and license notices intact in the source code
  • you must show these notices in a place where a user would expect them, for example a in a manual or in a help menu
  • for the Apache 2 license, a file called NOTICE must also be shown if it exists

The Apache 2 license also has patent-related clauses, but these are only relevant if you have a patent portfolio or participate in patent litigation.

  • Oh. So if I’m using an open-sourced code for proprietary purposes, I don’t need to put the license in, correct? Do I even need to attribute credit, as it doesn’t mention that anywhere... – Yoomama Feb 15 at 23:49
  • 3
    @Yoomama In general, you do need to provide attribution which includes showing the copyright notices and licenses of all code you are using. But for the specific case of purely internal use, there is no one to show these notices to so they aren't strictly required. Copies for other employees of the same organization don't count. It's still a good practice to include the notices in case the software is published or sold in the future. – amon Feb 15 at 23:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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