Let's say my application is main.py.

And it imports 3 libraries and uses their functions.

Library A is BSD licensed. Library B is MIT lisenced. Library C is Apache 2.0 lisenced.

Which license files do i need to include to main directory in this case?

Do I need to add 1 of my own licenses that do not conflict with these(btw appreciate it if you could suggest a license that does not conflict with these), and 3 of their licenses?

I did not change the source code of the libraries.


Include a "NOTICE" file with attribution notes included. Including the full text of license in modified software.


Describes whether the original copyright must be retained. Including the full text of license in modified software.

Including the full text of license in modified software. Include a "NOTICE" file with attribution notes included. etc.

I read it but I didn't quite understand it.

1 Answer 1


All three of the licenses you mention (BSD, MIT and Apache 2.0) are permissive licenses. This means that you are completely free in choosing a license for your own code.

To fulfill your obligations under the licenses of the libraries, you must make sure that the recipients of your application receive a copy of the text of the three licenses and also a copy of the NOTICE file that may be included in the Apache-licensed library.
It is up to you if this information gets distributed as additional files together with the application, or if the application has a screen to display license and attribution information.

As a matter of goodwill and clarity, it is advisable to not just give the bare licensing and attribution information, but to also indicate which part each license applies to. For example, like this:

The main program is under license X. It uses Library A under the BSD license, Library B under the MIT license and library C under the Apache 2.0 license. The license texts are reproduced below.

  • Hi thanks for answer. Did I get right? I will write all the libraries I use and their licenses in a text file. Then I will copy the license explanations and notices under them. Would a total of two different txt files be enough? One for real license, the other one is for 3rd party libraries I had a hard time finding an example on Github. That's why I asked here.
    – disp0
    Commented Jun 8 at 0:12
  • @disp0, the important thing is that the information is available. How many files is not relevant, so two text files should work. Commented Jun 8 at 6:46
  • 1
    @disp0 For Apache I recommend you read the section about the "NOTICE" text file. That's one license which gives specific requirements about putting this specific notice in its own place (either in a separate file, or in a specific screen in the application, if applicable).
    – Brandin
    Commented Jun 10 at 7:09
  • @BartvanIngenSchenau Thanks for answer. My last question: Can I paste the contents of the NOTICE file below the license file? Assume software named software name 1 For example: 3rdpartylisences.txt: software name 0 MIT text ... software name 1 apache 2.0 text NOTICE text of the NOTICE file ... software name 2 BSD text ...
    – disp0
    Commented Jun 12 at 5:12
  • @Brandin I read it but I didn't quite understand it. Do you know if the example I gave in the above comment is ok?
    – disp0
    Commented Jun 12 at 5:14

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.