kaaass / ZerotierFix

An unofficial Zerotier Android client patched from official client
GNU General Public License v2.0
1.67k stars 193 forks source link

F-Droid #17

Closed linsui closed 1 year ago

linsui commented 1 year ago

请问可以将应用发布到 F-Droid 吗?这个应用是开源的吗?我看到 Readme 里提到部分代码是逆向得到的。

kaaass commented 1 year ago

我不是很熟悉 F-Droid 这个平台,不过我刚刚看了一下 Inclusion Policy,目前 Zerotier Fix 可能还不能完全满足其收录条件。Zerotier Fix 包含的通过官方 App 得到的 Java 代码和我个人重写、Patch 的代码部分是开源的,但构建所需的 Zerotier JNI 部分目前还依赖于预编译二进制文件。在完成并入 Zerotier SDK 的工作后应该才能达到全部通过源码构建的状态。

linsui commented 1 year ago

JNI 部分是从官方库构建的吗?https://github.com/zerotier/ZeroTierOne/tree/master/java/jni 如果能从这里构建也没问题,只要在构建 app 之前构建这些 .so 文件就行。许可证在文件头里写的是 GPL3+,但官方库现在已经切换到 BUSL-1.1 了,这个许可证不是开源许可证。所以我想知道这个库有没有受影响。

kaaass commented 1 year ago

JNI 部分暂时不是从此处构建的,这部分工作本来是预定要完成的,但是因为各种原因一直还没有来得及去看。

另外关于许可证问题也是我比较担心的,目前 Zerotier Fix 的仓库中的确包含了基于逆向工程的代码,我无法保证这些代码能按照 GPLv2 公开。在重写完成之前,如果 Zerotier 官方提出异议,我也会删除这一部分代码,并且把构建流程修改为基于逆向工具的形式。除这两部分代码之外,其余本仓库的代码是我可以保证按照 GPLv2 公开的(Zerotier SDK 的 Java 部分代码按照 GPLv3)。

linsui commented 1 year ago

并且把构建流程修改为基于逆向工具的形式

是指在构建的时候反编译官方 apk 吗?这种方式肯定是违反 F-Droid 政策的。如果从 19 年官方改许可证之前的代码开始 fork 倒是没有问题。

kaaass commented 1 year ago

是的。我认为这个方式肯定是不符合 F-Droid 的收录条件的。

此外,我能想象到最好的情况,就是 Zerotier Fix 完成了对官方端所有 Java 部分的重写,并且使用源码编译的形式加入了官方的 Zerotier SDK。不过即便如此,编译 APK 所需的 Zerotier 部分源码仍然是 BUSL-1.1 协议的。当然,也可以使用切换许可证之前的旧版本 Zerotier SDK 编译再上架,不过那样的意义可能就不大了。

linsui commented 1 year ago

从那之后提交只有10个左右,不过不知道之前 GPL 的代码还是否兼容。

kaaass commented 1 year ago

从那之后提交只有10个左右

Zerotier SDK 是需要包含大部分 Zerotier One 的客户端代码编译的,因此如果需要新版本则肯定无法避免 BUSL-1.1 代码了。

kaaass commented 1 year ago

基于上述讨论,将暂时搁置相关计划

PizzaProgram commented 3 months ago

Can someone please explain in English:

linsui commented 3 months ago
  1. Some code used in this app is from reverse engineering of the official client.
  2. Zerotier SDK is required which is licensed under BUSL-1.1 now which is not an open source license.
kaaass commented 3 months ago

Thanks @linsui! Exactly. Currently, only the patches in this repository, not the entire code base, are licensed under GPLv2. Since F-droid requires the entire project to be compliant with a FOSS license, Zerotier Fix will not meet these requirements.

However, there is still some hope:

This means we should be able to create a FOSS version using the outdated Zerotier core after the release of V2. That should meet the requirement of F-droid.

linsui commented 3 months ago

1.4.6 has been re-licensed. The current dev branch will be re-licensed at 2025-01-01.