XTLS / Go

Go implementation of XTLS protocol.
https://t.me/projectXray
Mozilla Public License 2.0
279 stars 46 forks source link

License issue #9

Closed rogers0 closed 3 years ago

rogers0 commented 3 years ago

As stated in #6, I'm trying to package this library to debian/ubuntu, as this is a new dependency for v2ray. However, the license is not compatible with other open ones.

While most files are BSD, file conn.go has a different license header attached, pointing to the LICENSE file.

And that one simply says "All rights reserved" and "Only for compiling executables usage for now.", which is clearly not BSD-style. Could you kindly removing those statement, or working with us to think out a better plan for current one? Thank you!

RPRX commented 3 years ago

BSD 是 Go 的开源协议,XTLS 基于 Go 的 crypto/tls 魔改而来,根据 BSD 的规则,需要附带 Go 的 LICENSE,即 LICENSE-Go

而仓库里的 LICENSE 文件是 XTLS 新增代码自身的 LICENSE,目前是自定义的,的确不属于 BSD 协议

其实这里没有待解决的 license issue,因为它们是不冲突的:如你所见,这里只是遵循 BSD 的规则,附带了 Go 的 LICENSE-Go

rogers0 commented 3 years ago

Yes, LICENSE-Go is fine, which is BSD.

But you added "Only for compiling executables usage for now" to LICENSE via https://github.com/XTLS/Go/commit/207fdca so this becomes not open source anymore.

Could you simply revert the license changes in https://github.com/XTLS/Go/commit/207fdca? This includes LICENSE, and conn.go. Thanks for your understanding!

RPRX commented 3 years ago

事实上,这个提交并没有修改 LICENSE。相反地,此项目的 LICENSE 是逐渐宽松的,您可以查看 LICENSE 文件的 history

此外,conn.go 是本项目的核心代码文件,如果缺少了它,本项目将无法被使用。

RPRX commented 3 years ago

您可以看到,我只是在 https://github.com/XTLS/Go/commit/f082a23f0f7418c8a21e49cfa874bc370ba3061c 删除了所有文件,并在 https://github.com/XTLS/Go/commit/5ac8ba130df9167e109feba4adf4125c5a4d3710 重新上传了 Go 的 crypto/tls 的部分原始代码,最后在 https://github.com/XTLS/Go/commit/207fdcada8d015cf049e0a2a334db5aab45ff99c 重新上传了 XTLS 的新增代码。

与之前相比,改动主要是包名由 tls 改为 xtls、结构 Conn 暴露了底层 Connection,而 LICENSE 文件没有任何变化。

rogers0 commented 3 years ago

Dear maintainer,

There're some misunderstanding here, I guess. I'm not asking you to remove conn.go file completely, just hope you can remove:

If you consider this project is still under BSD-style license, removing two above won't bother you as I estimate. Hope you can consider this plan, and we can continue uploading this package to debian/ubuntu. Thank you!

RPRX commented 3 years ago

这里的确有 misunderstanding,因为 XTLS 项目本身从一开始就不是 BSD-style license,关于这一点,您可以查看 commits history

辛苦您的跟进,但目前不考虑进一步放宽 LICENSE,也暂时没有成为 debian/ubuntu package 的必要。

rogers0 commented 3 years ago

Dear maintainer,

Since this library is the new dependency for v2ray, which is already in debian/ubuntu. If we cannot upload this xtls library, we have to discontinue supporting v2ray in debian/ubuntu, and this is a big loss to the community.

I'm sorry to hear the appended part of this library is not licensed under BSD, or other open source license. I hope you can reconsider this sometime ahead.

Cheers, Roger

RPRX commented 3 years ago

众所周知,Linux 本身遵循 GPL 协议,但这并不影响它运行在非完全开源硬件上、使用那些 CPU 的指令集。

RPRX commented 3 years ago

https://github.com/XTLS/Go/issues/9#issuecomment-731588021


另外,我想提醒你,我随手找了 v2ray 的另一个依赖项,比如 https://github.com/xiaokangwang/VSign

它早就是 v2ray 的依赖项之一,但没有任何 LICENSE,即默认完全私有,请问你有把它打包成 Debian 的 package 吗?

我甚至没有见到你询问它的 short description,不得不怀疑你在这里的真实目的。

最后请回答我:Debian 的人都这么流氓吗?不好意思,我本来就更喜欢 Red Hat 系。

如果大家都这么流氓,v2ray 有什么必要再保持 MIT 呢?

rogers0 commented 3 years ago

https://github.com/xiaokangwang/VSign

this is not a dependency for v2ray, at least for v4.28.2 Debian package are built on buildd, so you can check the build log:

RPRX commented 3 years ago

@rogers0

Interesting.

https://github.com/v2fly/v2ray-core/blob/v4.28.2/go.mod https://github.com/v2fly/v2ray-core/blob/v4.28.2/infra/control/verify.go

众所周知,这个版本的 v2ray 严重依赖 v2ctl,仍需要通过它来读取配置文件。

RPRX commented 3 years ago

作爲一個 Fedora/openSUSE 使用者,我認爲你的這則回覆是在給 RPM 系發行版抹黑。

我认为你哪凉快待哪去。

RPRX commented 3 years ago

@Fei1Yang

首先你要知道,我只是 Refresh 了仓库,并没有修改 XTLS 的 LICENSE,它从一开始就不是 BSD,唯一一次修改还是放宽限制。

其次你要知道,XTLS 的 LICENSE 并不禁止它被当作依赖来使用,主要目的是不允许修改它的源代码并二次分发。

最后你要知道,v2ray 这种软件需要不断迭代,且有官方维护的 Linux 安装脚本,几乎没有人会通过发行版源来安装(Arch 除外

zhsj commented 3 years ago

这里的问题不是Debian、Ubuntu、openSUSE还是Arch。问题也不是BSD License。这里的问题是这个项目是否为开源软件。即使用 GPL 等更激进的License它也还是开源软件。

而"是不允许修改它的源代码并二次分发"这一条款使得这个项目不是开源软件了。

PS:这里说的开源软件为 OSI 定义的开源软件,而不是指公开源代码的软件。

RPRX commented 3 years ago

@Fei1Yang

但这的确是客观事实,另外无需担心,会有人继续维护的,或者是独立源。

RPRX commented 3 years ago

@zhsj

是的,与 v2ray 不同,此项目从未宣称是完全开源项目,但这与 v2ray 的 MIT 并不冲突,且任何人都可以审计 XTLS 的代码。

现在的情况是这里出现了令人不齿的道德绑架。此外,MPL 协议的代码算是开源吗?这似乎是个更好的选择。

zhsj commented 3 years ago

是的,与 v2ray 不同,此项目从未宣称是完全开源项目,但这与 v2ray 的 MIT 并不冲突,且任何人都可以审计 XTLS 的代码。

然而任何人用v2ray时需要引入xtls,也就是要引入一个不开源的软件。

此外,MPL 协议的代码算是开源吗?这似乎是个更好的选择。

是的,在 https://opensource.org/licenses/category 这个列表里都是符合开源软件定义的License。MPL 见https://opensource.org/licenses/MPL-2.0

RPRX commented 3 years ago

@Fei1Yang

我们已经在 v2ray 内部群广泛讨论了这件事,首先是虽然没有绝对必要,但我们不介意开个 GitHub Actions 来继续维护 debian/ubuntu 源。独立源是可能的另一个选择,如果最终决定推出,也是由我们维护,所以无需担心安全性问题。

另外你也无须担心 XTLS 的安全问题,因为所有代码都是公开可见可审计的。至于 LICENSE,我可能会选择 MPL,或者保持现状。但这与今天的事情无关,主要原因是 v2ray 在检查依赖授权情况,需要保证 v2ray 确实得到 XTLS 的使用授权。

RPRX commented 3 years ago

@zhsj

就目前的情况而言,XTLS 并不是不开源,而是不完全开源,至少任何人都可以审计 XTLS 的代码,所以这里没有风险。

下游的开源协议对上游的确没有约束能力,比如你可以在 GPL 项目中依赖 MIT,但却不能要求它也改为 GPL。

zhsj commented 3 years ago

@zhsj

就目前的情况而言,XTLS 并不是不开源,而是不完全开源,至少任何人都可以审计 XTLS 的代码,所以这里没有风险。

下游的开源协议对上游的确没有约束能力,比如你可以在 GPL 项目中依赖 MIT,但却不能要求它也改为 GPL。

这里的“开源”定义大家理解不一样,对于大部分的Linux发行版来说,他们的定义与OSI定义基本一致,而不是只要能看到代码就可以了。可以在 https://opensource.org/osd-annotated 看到,这里定义的“开源”有很多条款。比如有一条就是“The license must allow modifications and derived works”就是说要允许修改,还有一条“No Discrimination Against Persons or Groups”,即这个License不能是针对特定受众的,比如不能只针对v2ray进行授权。

RPRX commented 3 years ago

@zhsj

是的,作为 v2ray 的主要维护者之一,我可以明确表示:v2ray 之前没有非要符合 OSI 的这种洁癖,事实是,我们之前并没有在意这个方面。但你提出这一条有帮助

这个License不能是针对特定受众的,比如不能只针对v2ray进行授权。

因为团队内考虑过这种授权方案,虽然我觉得比较麻烦,且可能会导致其它软件从一开始就不敢使用此项目。

rogers0 commented 3 years ago

I appreciate your contribution to the project and open source community.

For the repo you mentioned: https://github.com/xiaokangwang/VSign Maybe your workflow depends on it, but Debian package does not. So it's not get packaged, and not used at all. Current v2ray package in Debian unstable is v4.28.2, which licensed under open source compatible clauses.

As author you can decide the license for your code, and I cannot force to change it for sure. But it would be a great loss for the community that cannot use it anymore due to the license issue. Therefore I hope you can reconsider the suggestion in top of this post. Thank you!

xiaokangwang commented 3 years ago

@rogers0 @rprx

I appreciate your contribution to the project and open source community.

For the repo you mentioned: https://github.com/xiaokangwang/VSign Maybe your workflow depends on it, but Debian package does not. So it's not get packaged, and not used at all. Current v2ray package in Debian unstable is v4.28.2, which licensed under open source compatible clauses.

As author you can decide the license for your code, and I cannot force to change it for sure. But it would be a great loss for the community that cannot use it anymore due to the license issue. Therefore I hope you can reconsider the suggestion in top of this post. Thank you!

Hi,

I am the developer and one of maintainer of V2Fly, and support the Open Source project to the furthest extent. I can help you with continuing to package V2Ray without copyright issue.

VSign is used for verifying the release binary from V2Fly Github Release. It is not useful for Debian distribution since Debian have its own signing and secure verification process, and do not generate a V2Ray Release Signature file in the build process. It is not removed for licensing reason.

Debian version of V2Ray removes VSign with script provided in the source tree https://github.com/v2fly/v2ray-core/blob/master/release/mutilate/removeVSign.sh .

I could provide you a similar script to remove non-free code from V2Ray and continue to package V2Ray as a free and open source software.

The reason VSign is not released under open source license is entirely unintentional, it have been open sourced as the same license as V2Ray(https://github.com/v2fly/VSign/commit/6e7f926568855b63f9a2c4b9aa5924edf7dc8d6f).

Xiaokang Wang

proletarius101 commented 3 years ago

In fact it's not a moral issue, but a legal issue. Open source software are copyrighted. That's why the author has full right to choose the license of the work. Therefore, when the licenses are mutually incompatible, you can't come into an agreement. Otherwise, you simply violate other's copyright which is illegal and can be practically sued.

RPRX commented 3 years ago

之前过于生气,把整个 issue 区关了,现在重新开放。

但现在想到还是很生气。

我花时间、冒着众所周知的风险写软件,一群自以为是的人挑随手写的 LICENSE 的刺,比如什么“不给复制“、”不给运行”。

是都吃得太饱了是吧?

而这个项目本身,它涵盖了一些技术突破,我不要钱,但也不希望很快就有人拿它魔改、不当获利,然后这也成了问题。

回到这个争执本身,老子他妈的本来就是刷新个仓库:全部删掉,重新上传,没改协议。

之前协议唯一一次修改还是放宽,没有意外的话,就是逐渐放宽的。

然后就有个人过来,非说我改了协议。

这个项目中有 Go 的 BSD 只是按要求附带,LICENSE 文件才是本项目的协议,从一开始就不是 BSD。

自己眼睛有问题,现在成我的错了?

一开始还不说清楚情况,非让我移除那个 LICENSE,这 TM???

而且我作为开发者之一,之前都不知道 v2ray 要遵守 debian 的规则???甚至,我都不知道 debian 是什么规则。

最让人气的还是

But you added "Only for compiling executables usage for now" to LICENSE via 207fdca
so this becomes not open source anymore.

这 TM 直接把我架到 BSD 的烤架上了,我成了万恶之源???再说一遍,一开始就 TM 不是 BSD

然后还是坚持让我移除 LICENSE,搞笑呢?

这么做的本质,参考楼上的发言。

然后就威胁说要移除 debian 的 v2ray 了???如我所说,我根本就不知道什么时候多出了这种条条框框。

为什么说是“流氓”呢?因为这个项目从一开始就不是 BSD,来了一个人非要说我改了 LICENSE,然后强行让我改,道德绑架一样。

最后,不要认为所有人都知道 debian 的规则,以后最好一开始就把所有话说清楚。

RPRX commented 3 years ago

另外,我知道看到这个 issue 的,多是 debian 群里的人,还有其他的,比如至少自以为对开源协议很有研究的人。

所以你们发表态度时,有没有站在当事人的角度考虑???

我也不讨厌开源软件,但不要自己把 debian 当信条,就可以直接去不理解别人的认知,以及进行道德绑架。

以及,我是冒很大风险的,本来就随手写一行 LICENSE,这里并不是重点,鸡蛋里挑骨头的人究竟想过没???

RPRX commented 3 years ago

@Fei1Yang 说出你的想法。

RPRX commented 3 years ago

这里的规则很简单,你发表了态度,就要说清楚原因,否则只是小人罢了。

RPRX commented 3 years ago

还有上面参与的各位,有意见的,一起来撕逼,如果没人来,我就一个个 @ 了。

lilydjwg commented 3 years ago

另外,我知道看到这个 issue 的,多是 debian 群里的人,还有其他的,比如至少自以为对开源协议很有研究的人。

吃瓜群众莫名躺枪……

RPRX commented 3 years ago

另外,我知道看到这个 issue 的,多是 debian 群里的人,还有其他的,比如至少自以为对开源协议很有研究的人。

吃瓜群众莫名躺枪……

看没有问题,重点是“发表了态度”,此时需要说明原因

proletarius101 commented 3 years ago

I appreciate your work.

Actually you don't have to BSD license it. You may use MPL, LGPL or even GPL 2.0 although they only requires disclosure of the modified source code and the source code of the entire program referencing it. That should be good enough to prevent commercial use.

Distros restricts licenses simply to avoid legal issues. I think that's fair. And you have full control of how you license your work. The side effect of being reject from the official repo is an affair of each person's boundary of freedom (but of course that's based on copyright). Using widely used licenses simply makes it easier for distros to review. See Fedora's guideline: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/

QuantumGhost commented 3 years ago

先不考虑开源协议的问题,从实际的角度看一下,选择 License 对于

而这个项目本身,它涵盖了一些技术突破,我不要钱,但也不希望很快就有人拿它魔改、不当获利,然后这也成了问题。

这个目标有没有什么影响。

我觉得只要 @rprx 公开了源代码,那么这些人大概就会 「拿它魔改、不当获利」,毕竟这些人可能是只在乎现实利益的,并不会遵守软件的授权协议; 另一方面,对于这些违反授权协议的人,也基本没有什么好的维权的办法。

所以选择 License 并不能实现这个「阻止他人魔改并不当获利」的目的

ssr-ssr-ssr commented 3 years ago

在电报里打 rprx 大佬名字发现了这个,给大家伙发出来瞅瞅 https://t.me/s/rprxxx/1

RPRX commented 3 years ago

@ssr-ssr-ssr

我承认自己的情绪化言论很多,但这里的内容是断章取义,@xiaokangwang 之前本来就在冷嘲热讽我

ssr-ssr-ssr commented 3 years ago

抱歉打扰大佬,我也是不小心找到的,支持 Xtls 自己发展!

另外问一下大佬 @rprx VLESS 分享啥时候出啊,小白就等着这个了

SekiBetu commented 3 years ago

一个关于安全的题外话:比起代码公开的项目,使用Shadowrocket、V2RayNG、Clash等这些闭源客户端的风险似乎更大,并且这些客户端也是目前人们使用率最高的,但似乎并没有很多人去指责这些客户端,这让我比较疑惑

icy37785 commented 3 years ago

一个关于安全的题外话:比起代码公开的项目,使用Shadowrocket、V2RayNG、Clash等这些闭源客户端的风险似乎更大,并且这些客户端也是目前人们使用率最高的,但似乎并没有很多人去指责这些客户端,这让我比较疑惑

因为这里没有谈安全问题呀。

RPRX commented 3 years ago

在这里我要插一句,从此 issue 开始,对我的种种误解,把我弄得脾气很暴躁,说话也不经大脑,然后又继续掉路人缘

事已至此,既然有人背后搞动作,那我干脆就是这样的脾气吧,没什么不妥

(当然,有空时还是会出一份声明的,我是怎么一步步变成今天这个样子

ghost commented 3 years ago

在这里我要插一句,从此 issue 开始,对我的种种误解,把我弄得脾气很暴躁,说话也不经大脑,然后又继续掉路人缘

事已至此,既然有人背后搞动作,那我干脆就是这样的脾气吧,没什么不妥

(当然,有空时还是会出一份声明的,我是怎么一步步变成今天这个样子

我只觉得亲近了很多,因为以前一直用很正式的发言让我觉得挺疏远的

rhjdvsgsgks commented 3 years ago

一个关于安全的题外话:比起代码公开的项目,使用Shadowrocket、V2RayNG、Clash等这些闭源客户端的风险似乎更大,并且这些客户端也是目前人们使用率最高的,但似乎并没有很多人去指责这些客户端,这让我比较疑惑

v2rayng 不是开源的吗?

rhjdvsgsgks commented 3 years ago

新版已经停止开源了,只有1.0.2版本是开源的 https://github.com/2dust/v2rayNG/blob/50d9057f1ad304ef9ef333fe80c44723e2619328/V2rayNG/app/build.gradle#L20

Android 上有没有什么开源的 v2ray 客户端推荐?

lilydjwg commented 3 years ago

On Fri, Nov 20, 2020 at 06:42:03AM -0800, RPRX wrote:

在这里我要插一句,从此 issue 开始,对我的种种误解,把我弄得脾气很暴躁,说话也不经大脑,然后又继续掉路人缘

事已至此,既然有人背后搞动作,那我干脆就是这样的脾气吧,没什么不妥

(当然,有空时还是会出一份声明的,我是怎么一步步变成今天这个样子

居然又吵了起来。可你们一方在意法律,一方不在意也无法在意法律,处于两个隔 离的世界里,是不会有结果的。就跟现在美国两个党派的人吵架一样的。

-- Best regards, lilydjwg

rurirei commented 3 years ago

seems rprx does not violate any license issue, as there is no problem in fact.

新版已经停止开源了,只有1.0.2版本是开源的 https://github.com/2dust/v2rayNG/blob/50d9057f1ad304ef9ef333fe80c44723e2619328/V2rayNG/app/build.gradle#L20

Android 上有没有什么开源的 v2ray 客户端推荐?

see my repo if you could write custom config.

man2018 commented 3 years ago

感觉是间谍在对xtls搞破坏,或者是脑残,自己没有对v2ray做出贡献,还蛋疼的指责有贡献的人

RPRX commented 3 years ago

倒没必要这么说,发现有很多人一开始就不理解“为什么这个 issue 会让我很生气”,那我简单说明一下。

以下内容已经在 v2 水群说过。

先说我的认知:我是 windows 用户,对 linux 的使用几乎仅限于服务器,从不用 linux 当桌面,用包管理器也只是拉取编译好的二进制

关于我是 windows 用户,这个教程可以佐证:https://github.com/v2ray/discussion/issues/756

当然,我更不知道 debian 具体是什么规则了,更别说我作为 v2 开发者之一还不知道需要兼顾 debian 源

所以,我并不清楚这些发行版的条条框框,以为二进制自由就 ok,然后就很不能理解为什么非要拆开,即每个依赖都打包上去

事实上第一个 issue https://github.com/XTLS/Go/issues/6 已经让我觉得很莫名其妙了,作为一个不能独立跑的库,为什么非要打包到 debian? 所以一直没回复

而这个 issue 中,我开始的回复也一直是很有礼貌的,但是显然对方有对这个库的误解,我也向对方解释两次了。感受逐渐变成这样

因为这个项目从一开始就不是 BSD,来了一个人非要说我改了 LICENSE,然后强行让我改,道德绑架一样

说实话,我当时甚至开始怀疑他有其它目的,因为我确实觉得这个库没必要成为 debian 的 package,更不会因为这个陌生人莫名其妙的请求而改协议,所以当时礼貌的回复如下

辛苦您的跟进,但目前不考虑进一步放宽 LICENSE,也暂时没有成为 debian/ubuntu package 的必要。

然后对方就说如果无法上传(不改协议),就要停止 debian/ubuntu 对 v2ray 的支持(这个说法比较模糊),于是我就彻底生气了

  1. 我花了很多时间在维护 v2 上面,为什么不满足这个当时看起来很奇怪的请求就突然造成对它的攻击了?

"阿 你不改 我们就没办法打包 就维护不了V2Ray了"(来自水群的描述) 就类似这样的感受

重申:我并不知道 debian 是什么情况,本就二进制自由,为什么非要拆开上传?(同作为轻度 linux 使用者,有几个人会认为有此必要?),所以我后来也说

不要认为所有人都知道 debian 的规则

(其实如果当时早把 debian 的情况说清楚,也就没生气的事了,也可能就没后来的事了)

  1. 的确很莫名奇妙,我此前从不知道 v2 在 debian 有源,因为使用方式不是这样的(后来也证实,的确几乎没有人在用)

  2. 当时的感受差不多就是被指责了,意思是你不改如果被移除了责任就是你个人的(借用水群的描述),有一丝被威胁的感觉

(不过有一说一,我后来发现,他当时可能不知道我也维护 v2)

于是我就很爆炸,随后说话就完全不客气了,同时这也成为一些人对我反感的源头。

这里需要提一下

水群里提出了:这个 issue 为什么会先在这里发?正常应该在 v2ray-core 发,直接要求v2移除不符合协议的包,而不是要求xtls改授权。 我后来发现,在这个 issue 前,这个库已经被打包到 debian 了,也印证了之前说的误解,所以对方才会来要求改 LICENSE。 但我需要重申:我后来也发现,他当时可能不知道我也维护 v2。注意这与很多旁观者的视角是不一样的。

很快,这个 issue 被他发到 debian 的群里,可想而知他们的认知、态度是怎样的,开源至上,然后一群人就以各种理由来指责我了。

(补充:给人一种想搞出大新闻的感觉,这更让我觉得是被威胁了。)

需要说明,本来我对 debian 是没什么看法的,花时间维护这些东西也只是想着推动 v2 整体更加强大,这是我一直在做的。

并且很多指责已经开始歪了,出现了“不给复制”、“不给运行”等说法,这???我本就随手简单写的 LICENSE

这里的一开始本就存在的误解,以及前后的遭遇,使我很生气心情很差,其它正事也被耽误了,于是完全拒绝改协议。

后来的过程非常复杂,只有我自己知道自己又受到了什么刺激,于是就持续爆炸,有空时我会在另一个 issue 中说明。

总之,这里引起的指责,加上后面对我的种种指责,其实很多早已脱离情况了,于是就继续爆炸,每次想起来都很生气

但是没有一个人是我,不知道我总共经历了什么,我在爆炸的情况下一说话,结果就是继续掉路人缘

一些围观的人早就开始讽刺我,包括之前就和我有些不愉快的人。其实我说过很多次,你们不是我,不了解事情的全貌,有些人却还是要来攻击我。甚至有些地方我已经被妖魔化了,变着方式来讽刺、攻击我。

这种情况不断循环,不断爆炸,不断产生新的对立,就逐渐变成现在这样了。 越往后越混乱,如前所述,有空时再写。

RPRX commented 3 years ago

@lushengwen

lushengwen commented 3 years ago

@rprx 看到喜欢的产品又变成了作者的一言堂,因为意见不合就开始人身攻击感到难过.

RPRX commented 3 years ago

@lushengwen

你看不到全貌。

RPRX commented 3 years ago

(打了些话,然后删了)。。。我选择去做更重要的事情。