I'm not good at legalities and this is my first official project so I have little knowledge of copyrights and licenses. I haven't read a lot of legal documents and only a bit of knowledge about licensing.


I'm writing an app in Python3 for managing a library of books (and possibly videos) for the users. I'm using Arch Linux so my first packaging will be for Github and the AUR. I'm not sure if this will be used on other distros like Ubuntu, but people can feel free to package it for other distros, *nix or Windows.

Current progress

I'm still only creating the skeleton for my project. I'm just mapping out what functionalities I want now and in the future so I haven't decided on exactly what libraries I'll be using. So far, I'm just using the basic modules like sys and curses. This is also practice for myself so I don't intend to use many external libraries and write most of the modules for the app myself.

Contributions of a functionality

This app is meant to be just for managing the library and some downloads. One of its functionalities is downloading files from third-party sites. The act of downloading may or may not be pirating, but all that is left to the users to decide. The app can manage downloads, but how to download is meant to be written as individual modules by the users.

For example, Joe may want to download 100 images (each of which is a comic page) from comic.com/read/name_of_comic/. I'm not going to write all the "how to download" for all the websites. Joe will have to write an extension for downloading images from comic.com himself. After writing that extension, he can upload it in his own repository (like vim plugins) or push it to my repository of extensions provided by users of the app. The majority of these extensions will be written by strangers, not me.

The license

I'd like this to be copyleft, in that anyone can contribute to the project, fork it, repackage it for other distros, etc. while keeping it free and open for all. I don't want people trying to sell it for profit or making it closed-sourced in any way.

The main thing I want from the license is credit. I don't plan on using this app to make money by selling it. I just want some reputation for my future work. If this app (or a fork of it) somehow becomes popular, I'd like to be credited for the original idea and implementation.

What license?

So far, the MIT license seems simple enough for this project, but I'm not a legal expert, so I may be wrong.

What license should I use?

Edit 1

So it seems "not sell it for profit" isn't very viable. I'll allow people to grab pieces of my code for their own products, as long as it remains open-source.

Regarding the extensions for downloading that are meant to be written by the users, I only want them to stay open-source. The extensions are meant to be made by the users and shared to the public. However, I don't require my name to be on those extensions. They're meant to be used with my app by default and will get traced back to my app anyway. Authors of the extensions are free to do as they want with the extensions, as long as they're open-sourced. (If forcing them to make the extension open-source is not viable, just let them do as they please with their own extensions.)

As for crediting, I'd like any and all forks of the project to have my name and/or a link to my original project. If someone makes another version or repackages it for another distro, my name and/or a link to my project should be somewhere in the README.

  • 2
    "I don't want people trying to sell it for profit" -- Unfortunately, this requirement makes it non open source. Open source generally means that someone is allowed to re-sell the software if he wants. You can still require that the code remain open source, though (however MIT may not be the best for ensuring that).
    – Brandin
    Jun 25, 2020 at 14:44
  • "I'd like to be credited for the original idea" - Most open source licenses just require retaining copyright notices. Is that enough for you to consider 'credit', or are you looking for your name to be mentioned somewhere specifically on a Web page, in the software, etc.? Please clarify in your question.
    – Brandin
    Jun 25, 2020 at 14:45

1 Answer 1


The requirement to credit the original author is intrinsic to basically each open-source license. Credits whom credit is due and usually the credits have to be retained and own changes indicated.

"I don't want people to make it closed-source in any way" is a strong statement - and IMHO a clear indicator that the MIT choice is not ideal: MIT allows to make derivatives and NOT disclose its source code. Thus to ensure that all derivatives, if published anywhere, need to disclose their source code, and remain open source, your best choice is the GPL license.

Your statement "don't want to see people sell it for profit" is technically not possible - it's one of the fundamental freedoms to use open source for whatever purpose. However, practically, the GPL is a good choice here, too. People can sell it - but need to provide the sources for what they sell. And that in turn means that there is little incentive to buy and sell the software itself. Usual commercial ideas around GPL are rather a service around or for that software.

The backdraw of the choice of a GPL license is, that all plug-ins etc also need to follow that licensing scheme; thus the choice there is much more limited than if you chose a more permissive license (like MIT, BSD,...) which allow in principle to distribute binaries and modified binaries without disclosing the source as long as credits to the original authors are retained and given. Practically this limitation is not big when it comes getting contributors.

So in one word: IMHO you are looking for the GPL license.

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.