我不知道 github 对您的代码如何获得许可有任何要求,除了声明“您同意允许其他人查看和分叉您的存储库”(https://help.github.com/articles/github-terms-服务)。
因此,您几乎可以使用任何您想要的许可条件。如果您在存储库中放置一个名为“LICENSE.txt”的文件,大多数人都会收到该消息。如果人们忽略该消息,请忽略他们,或咨询您的律师并准备向他/她付款。
但是,如果您偏离“标准”许可,您的代码对其他人的用处就会减少。
软件的经典“BY-SA”许可是 GPL。它不是BY-NC-SA 许可证,但在流行的自由软件许可证中,它可能是最“限制性”的许可证之一。
当您将您的软件置于自由/开源许可下时,您并没有放弃任何权利。您(在大多数情况下不可撤销地)授予他人某些权利。这是一个重要的区别,因为您始终保留将自己的软件用于商业用途的权利。
如果您想稍后将您的软件作为专有软件出售,除了您决定的自由软件许可之外,您可以简单地根据不同的(专有许可)许可它。您无法“召回”已发布的免费版本,但您无需将未来的任何改进作为免费软件提供。
其他人可以通过几种不同的方式从您的软件中赚钱:
他们可能会开发您的软件的新改进版本并将其作为专有软件出售(您不付费就无法看到或使用他们的改进!)。GPL 禁止这样做(如果您想允许这样做,您将使用“非 copyleft”许可证,如 BSD 或 X11 许可证)
他们可能会出售您的软件,原封不动,将其与书籍捆绑在一起或以其他方式重新分发以赚钱。GPL 允许这样做,但这在很多方面都是一件好事,因为您可能会获得一个免费的分发网络。现在已经没有很多钱了,因为人们只会下载软件(免费)。可能有一些晦涩难懂的自由软件许可证禁止这样做。
有人可能会提出改进软件,但要求为他的工作花钱。这没关系,因为付费工作的结果随后将免费提供给所有人。我看不出许可协议是如何阻止这种情况的。
有人可能会为您的软件提供支持合同。再说一次,我看不出你怎么能(或者你为什么会)禁止这个。如果您允许我使用您的软件,我可以付钱给其他人帮助我使用它。
当您决定出售您的软件的新的和改进的专有版本时,有人可能会改进该软件的免费版本并与您竞争,从而降低您的价格。他们并没有真正从中赚钱,但你可能不喜欢它。自由/开源许可证是不可撤销的(根据定义,我认为),因此您无能为力(可撤销的自由根本不是自由)。
有人可能会使用您的软件,并且可能会通过它赚钱。禁止这一点与开源定义(http://opensource.org/osd.html/第 6 点)和自由软件定义(http://www.gnu.org/philosophy/free-sw.html “自由 0 ”)。一个免费的软件程序没有附加小字,告诉您如何使用和不可以使用它。
摘要:考虑 GPL。它是 ShareAlike 方面最强大的流行许可证。如果您想更严格,您的代码将不再那么免费,人们将无法将您的代码与其他(例如 GPL 许可的)代码结合起来。