Hey fellow Linux enthusiasts.

I’m inching closer to releasing my program for Linux. I’ll go into details on what the program is when I release it, as it’s not really relevant to this question (IMHO).

Anyway, here are my prerequisites:

  • the program will be free. I will accept donations, but the program will be free to download and use.
  • open source.
  • I’m happy for others to use my code, as long as I’m credited.
  • I do not wish to allow others to use my code in commercial applications (as there will be mobile versions later, and I don’t want clones selling it for money, as the mobile versions will also be free.

I’m looking for advice on the best code license to choose, based on my requirements. I’d also like it if my choice of license didn’t prohibit my program from potentially being included in package managers.

I’m grateful for any advice. Thank you.

Edit

Thanks for the replies everyone. I’ve decided to not let my concerns overcome the most important thing of releasing the project as fully open source.

Just going to go with GPLv3 and not worry about the clones that will happen regardless of the license type, if the program becomes popular.

Thank you all for your insight and for helping me come to what I believe to be the best option.

  • As is obviously the case with every reaction here: IANAL.

    If your application is networked and you fear other companies using your code, consider AGPL.

    GPLv3 says “all programs linking to this program also need to be licensed GPLv3 or better (=open source for customers)”.

    AGPL basically says “if you expose the HTML or JSON generated by this program, everyone who can access your program needs to be able to get access to the source”. GPLv3 can be defeated by never sending the GPL server code to the client. but with AGPL companies can’t use that loophole.

    How effective is this? Google has banned ALL AGPL software within their company, including software running on workstations/laptops/phones. AGPL is to big corporations like garlic is to vampires: it frightens them and they avoid it at all cost.

    Of course this comes with a downside: companies won’t be using your software, and they won’t contribute anything back.

    As for copycats: 1) if you gain any popularity, clones will pop up, some just taking your compiled APK and repackaging it with a slightly tweaked theme, open source or not and 2) trademark law is your friend here; if you make sure to get your paperwork in order, app stores and courts will have to listen to you if there’s an obvious risk of misunderstanding.

    This also makes sure that open source forks don’t use your product’s name (see: Iceweasel, Tauthon). They can develop onto your app, but not alter the license of your code, nor use the name you used outside of things like APIs. That way, you get to protect your product’s good name, while users get to exercise their freedoms!