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.

  • pavunkissa@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    As others have already said, the prohibition of using the code in commercial applications would make the license not open source/free software (as defined by the Free Software Foundation and Open Source Initiative.)

    These are some of the most commonly used licenses:

    • MIT - a very permissive license. Roughly says “do anything with this as long as you give attribution”
    • BSD - similar to MIT (note that there are multiple versions of the BSD license)
    • ASL2 - another permissive license. Major difference is that it also includes a patent grant clause. (Mini rant: I often hear that GPL3’s patent clause is the reason big companies don’t like it. Yet, ASL2 has the very same clause and it’s Google’s favored license.)
    • GPL - the most popular copyleft license (family). Requires derived works to be licensed under the same terms.
    • LGPL - a variant of the GPL that permits dynamic linking to differently licensed works. Mainly useful for libraries.
    • AGPL - a variant of GPL that specifies that making the software available over a network counts as distribution. (Works around the SaaS loophole. Mainly used for server applications.)
    • Mozilla - a hybrid permissive/copyleft license. I don’t fully understand how this one works.

    If you want to use a true FLOSS license and your goal is to discourage people from selling it, I’d say the GPL is your best bet. Legit vendors who don’t want to give out their source code won’t touch GPL code. The non-legit ones won’t care no matter what license you choose. Also, iOS App Store terms are not compatible with the GPL so they can’t release their stuff there, but you can as long as you hold full copyright to your application.

      • stifle867@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        Please don’t do this. It’s immoral to ride off the free work of others, then turn around and rug pull them. Either stick with open source and take the good and the bad, or go proprietary. Don’t do this fake open source that harms the community. If you have a permissive license there’s nothing stopping you from selling other’s work and a CLA is not needed. If you have a copyleft license then a CLA defeats the entire purpose of that.

  • stifle867@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    There are no open source licenses that do not allow for commercial applications. It goes against the very core of what it means to be open source.

    However, what you’re probably looking for is a license that prevents people from taking your code and making a commercial application without giving back. What this means is that any copy of your source code must also be open source. This is what a copyleft license does and you could look at something like the GPLv3 or the less restrictive MPLv2.

      • MHLoppy2@aussie.zone
        link
        fedilink
        arrow-up
        0
        arrow-down
        1
        ·
        edit-2
        1 year ago

        In addition to not qualifying by most definitions of open source (as already mentioned), CC is not recommended for use in software: https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software

        We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available.

        […]

        Unlike software-specific licenses, CC licenses do not contain specific terms about the distribution of source code, which is often important to ensuring the free reuse and modifiability of software. Many software licenses also address patent rights, which are important to software but may not be applicable to other copyrightable works. Additionally, our licenses are currently not compatible with the major software licenses, so it would be difficult to integrate CC-licensed work with other free software. Existing software licenses were designed specifically for use with software and offer a similar set of rights to the Creative Commons licenses.


        Edited link for kbin/mbin users: https://creativecommons.org/faq (scroll to Can I apply a Creative Commons license to software?)