I am developing my first open source software, but choosing the appropriate license is getting difficult for me (maybe because of the bad suggestions I have read on the internet). My program uses the following libraries:

  1. ElectronJS (MIT License)
  2. highlight.js (BSD 3-Clause)

Additionally, it also uses locally installed gcc(not packed with my software but, is expected that the user has installed it on their own). Is gcc's GPLv3 license also has to be taken into consideration?

Can someone recommend which license template should I choose while uploading my project on GitHub?

I don't mind modifying and/or redistributing of my application.

Since I am a complete beginner to this field, any help or guidance would be greatly appreciated.

Thank you.

  • For your GCC question, probably the answer is 'no'; if your program simply calls GCC just like any other command-line tool, then those are considered to be separate programs, so the license of the other program does not matter. Consider that the user could also probably have a proprietary compiler installed as well (and that is also no problem, legally), it would work technically as long as the command line interface were similar enough. See: gnu.org/licenses/gpl-faq.html#GPLPlugins
    – Brandin
    Oct 16, 2021 at 13:47
  • Sorry for the late reply, and thank you for the clarification. Yes in my case, I will just use GCC like any other CLI tool so the license should not matter.
    – nltc
    Oct 17, 2021 at 13:32

1 Answer 1


Can someone recommend which license template should I choose while uploading my project on GitHub?

You have provided us too little information to answer this part of your question.

You indicated you have no problem that others modify and/or distribute your software. That is a permission given by all open-source licenses. The next question is how you feel about someone making a modification and distributing that without giving you the right to include the modification also in your version. If you are fine with that, you can use a permissive license, like MIT, BSD or Apache. If you want that modifications are given back to the community, you should look for a copyleft license, like the GPL.

Next to your own wants, you also need to look at what restrictions you accepted by using third-party software in your project.

The things you need to look at for licenses that can affect your choice in license are

  • code you copied from someone else
  • libraries you use
  • frameworks you use
  • or more in general, code that ends up in your product

Thing you can safely ignore are tools you use only in the process of creating your software, such as editors and compilers.

Permissive licenses don't put a restriction on the license you can choose for your own code or the project as a whole. They may have requirements for attribution that you need to follow.

Copyleft licenses have the common characteristic that modifications need to remain under the same license. The main differences are in what is considered a modification. For example, the MPL only looks at which file is modified, while the GPL and AGPL require that the program as a whole needs to be distributed under that license (and every part must be under a compatible open-source license).

  • Apologies for the lack of information. So if I want the modifications to be given back to the community, a GPL license is what I am looking for? Also, GCC does not get packed with my code, it is installed by the user independently, so does GCC affect me in any legal way?
    – nltc
    Oct 11, 2021 at 11:50
  • Just out of curiosity I have another doubt if I use highlight.js from the web (using <script> tags) instead of installing and packing it with npm. Does that affect my choice of choosing a license in any way?
    – nltc
    Oct 11, 2021 at 11:51
  • 1
    @nltc, if GCC is more than a tool you use in the development, but actuaaly a part of or used by the software you deliver, then it needs to be taken into account. The effect it has on your license choices depends on how you use GCC. And similarly for highlight.js. For licensing, it doesn't really matter how the software is packaged or from how many locations the user (or hir machine) obtains it. Oct 11, 2021 at 13:25
  • Thank you, I understood your point. So as a final takeaway can I conclude that, since GCC, highlight.js & electron are used by my software, and I want all modifications to be given back to the community, a GPL license is recommended, since it meets all the aforesaid criteria?
    – nltc
    Oct 11, 2021 at 14:04
  • @nltc, yes. The GPL license meets all your criteria. Oct 11, 2021 at 14:51

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.