Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using GPL license #731

Open
kingslay opened this issue Jan 29, 2024 · 3 comments
Open

Using GPL license #731

kingslay opened this issue Jan 29, 2024 · 3 comments

Comments

@kingslay
Copy link
Owner

kingslay commented Jan 29, 2024

有很多人发现KSPlayer的License改了,并通过邮件跟我进行了授权协议的讨论。所以我就在这个帖子里讲下背景和授权方案。大家可以对授权方案提出更多的建议。

背景

  1. 一月初我把项目里面的Demo上架App Store的时候,被苹果审核人员拒绝了。原因是因为已经有一个app的二进制跟我一摸一样,我猜测是有人把项目的Demo拿去上架了。但是没有知会我。后来是通过证明我是这个项目的开发者,苹果才审核通过

  2. KSPlayer目前引入了libsmbclient, libsmbclient的协议是GPL。并且编译的FFmepg产物里面有包含GPL代码。所以按照要求应该是GPL。

  3. 目前这个项目主要的维护人太过单一。
    所以为了保护这个项目,并让更多人贡献代码回馈KSPlayer,让这个项目能够有更好的发展。我决定把这个项目默认的协议改成是GPL,只有经过授权才能变成是LGPL。

KSPlayer的优势:

  1. 因为KSPlayer是针对Apple平台来开发的,使用的也是现代化的苹果官方语言Swift。 所以在代码层级对Apple开发者是很友好的。能够很方便的进行debug排查问题和增加功能。上手程度应该是会比mpv和vlc简单很多。

  2. KSPlayer 对于苹果平台的一些特有功能支持的比较好,例如 Picture in Picture 、 Spatial Audio。

  3. 因为渲染完全使用苹果最新的API,所以能够享受到部分苹果系统播放器的能力,例如支持HDR10+。
    但是KSPlayer也有很多问题,例如兼容性和稳定性比mpv和vlc差。

目前我们确定的授权个人开发者LGPL协议的方案如下:

  1. 授权LGPL需要开发者支付授权费,或开源贡献部分代码。目前默认用github sponsor来支付费用,可以一年支付一次,也可以每个月支付一次。github sponsor支持开发票。所以公司需要发票的话,可以通过github sponsor来开。如果无法使用github sponsor来支付费用的话,那可以使用支付宝来进行支付,在readme的最下面有支付宝的二维码。但是支付宝是无法开发票的。

  2. 项目的README会有一个LGPL协议授权的APP列表。可以自由选择要不要出现在这个列表上。默认不出现,需要的可以提出诉求给我们。

  3. KSPlayer 会分为两个版本: LGPL版本和GPL版本,GPL版本会是LGPL版本的子集,某些功能只会存在LGPL版本。并且bug会优先在LGPL版本修复。如果GPL版本有严重bug的话,那会同步修复bug。LGPL版本是闭源的,只有经过授权的人才能访问。

  4. 这个收费只是用于LGPL版本的授权,不包含技术支持的费用。

  5. 需要在APP的页面上,能够让用户知道使用的播放器内核是KSPlayer。例如APP里面有多个播放器内核,那在让用户设置播放器内核的时候需要显示KSPlayer这个名字,不能用其他的名字来代替。

  6. 个人开发者授权授权分为三个方案,开发者只要任选其中一个就可以:

    1. 根据每个月App Store的收益来进行分成, 并且开发者不用向我们公布App Store收入。
      分成比率的范围从2%到5%。开发者可以根据自己的情况来决定这个分成比例具体的值。
      因为分成比率是一个范围,不是一个固定值,所以我们无法得知您在App Store的收入。
      并且不用每个月都需要调整捐款金额。可以半年或是一年统计下App Store每个月的平均收入。
      假设您的App Store每个月的平均收入是 $2000, 那您每个月的捐赠金额只要大于等于 $40 可以了。
    2. 把App里面有调用KSPlayer代码的代码文件贡献开源出来,不用整个App开源。
      并且允许KSPlayer使用这部分开源代码,并且定期的贡献代码到本项目(例如三个月提交一次代码)。
    3. 成为这个项目某个功能的长期稳定维护者或经常的为这个项目贡献代码(例如每个月提交一次代码)。

改成GPL协议之后,可能还是会有人不遵守GPL协议。但是至少我们拥有了起诉对方,保护自己的权利。可以认为这是一个防御性措施,具体的实现需要靠大家的自觉。授权协议里面的第一个和第二个方案,也是类似的,我们无法知道某个App的App Store收益,无法知道APP里面有哪些文件调用了KSPlayer代码。这些都需要App的开发者自觉的遵守合同。

对于后续KSPlayer的发展规划,我也稍微进行思考下,大家有什么好的想法也可以提出来,因为里面的有些事项是要靠大家来完成:

  1. 完善播放器界面(KSVideoPlayerView)的UI交互。用SwiftUI写一个功能丰富的苹果全平台的播放器UI,UI交互争取能够达到IINA的水平。这个播放器UI后续可能会独立出一个项目出来,主要是看大家的参与度怎么样。

  2. 完善KSPlayer对于各种视频流的兼容,争取跟mpv对齐。

  3. 优化KSPlayer内部的架构,对外提供更多能力,方便开发者进行定制开发。

  4. 围绕苹果平台的新能力,持续丰富播放内核的功能。例如XR

这个项目的开发版本和闭源版本都会有技术支持。对于bug或是crash的技术支持都是免费的。但是对于参数配置,或是功能使用上的一些疑问,是需要收费。有两个收费方式:

  1. 单次技术支持收费50美元。
  2. 持续每个月捐赠30美元以上(这个跟LGPL的捐赠是分开的)

大家可以提功能改进或是新功能,我会按照自己的优先级先在LGPL版本免费实现。如果开发者有功能定制的诉求,或是希望某个功能被快速实现,那开发者可以跟我提赏金功能,流程如下:

  1. 赏金赞助商跟我提功能要求,把具体的功能点列出来。我会初步确定哪些功能点可以实现。并会提供技术方案给赏金赞助商。
    1. 赏金赞助商可以决定自己实现这个功能,这时只要支付技术支持的费用即可。
    2. 赏金赞助商也可以选择让我来实现实现功能,那我就会根据工作量来确定费用。费用一般是500美元到5000美元。
  2. 赏金赞助商接受报价的话,我就会进入开发。
  3. 功能开发完,我会把功能集成到我的APP,赏金赞助商可以在我的APP体验功能。
  4. 赏金赞助商确定功能点没有问题的话,通过Github进行付款。链接是https://github.com/sponsors/kingslay?frequency=one-time
  5. 为了保证赏金赞助商的权益,赏金赞助商可以选择代码私有化还是公开。
    1. 私有化的话,我会把相关的代码通过邮件发给开发者,并且我需要等两个月才能以半价的价格把代码出售给其他开发者。
    2. 公开的话我会把代码合并到KSPlayer, 其他开发者可以免费使用。
  6. 新的功能开发都是基于KSPlayer的LGPL版本进行开发的。功能私有化的话那只会在KSPlayer里面存在少量代码例如接口协议。

另外我有提供技术咨询的服务。服务的内容是: 两个小时的视频会议(使用中文)解答客户的开发疑问,费用为200美元。

@kingslay kingslay pinned this issue Mar 30, 2024
@kingslay kingslay changed the title 关于GPL协议 Using GPL licenses Apr 14, 2024
@kingslay kingslay changed the title Using GPL licenses Using GPL license Apr 14, 2024
@birdmichael
Copy link
Contributor

奈何没有银行卡,不能github sponsor

@birdmichael
Copy link
Contributor

😢 还有一个小问题..
“新的功能开发都是基于KSPlayer的LGPL版本进行开发的,并且在经过两个月左右会合并到GPL版本.”
我建议是功能开发和bug修复分开..
如果是已知bug,还需要等2 3个月才会修复很难受,如果自己去修复了,到时候GPL一更新,又不没办法合并了.

@kingslay
Copy link
Owner Author

在README的最下面有一个支付宝的收款码。但是这个支付宝的收款无法跟github sponsor一样提供支票。
如果是重大bug的话,是会马上进行同步的。只是平时的一些小bug才没有及时同步。
如果你自己修复了,你可以同步到GPL,然后GPL会马上就同步到LGPL。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants