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.
Packaging
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.