对 LGPL 的软件库创建子类并直接导出软件包发布,是否一样需要用 LGPL 开源?

210 天前
 Sayuri

如果有某个软件包 foo 是 LGPL 的,软件包的大体是

export class Foo {
	someMethod() {}
    
    private somePrivateMethod() {}
}

而我发布一个软件包 @my/foo ,大体是

export class MyFoo extends Foo {
	// @ts-ignore
    private somePrivateMethod() {
    	// 这里改动了一点
    }
}

这种情况下,这会被认为是一个独立的软件包,可以以任何协议发布,还是一个 foo 的衍生品,从而必须以 LGPL 的许可证发布?如果这个问题被换成 GPL 呢?

911 次点击
所在节点    开源软件
6 条回复
ysc3839
209 天前
有一种说法是,LGPL 要能让用户自由地替换掉 LGPL 部分代码。
上述说法是否正确我不知道,仅供参考。
lqs
209 天前
@ysc3839 是的,所以对于需要打包发布的 js 代码不太适用
Sayuri
209 天前
@lqs js 只是方便举例,如果换成 C++ Java 呢?
ysc3839
209 天前
@Sayuri C++一般是把 LGPL 部分做成 dll/so 等动态链接库。Java 的话单独分开 class 文件理论上是符合的。
Sayuri
123 天前
@lqs js 只是方便举例,如果换成 C++ Java 呢?
lqs
122 天前
@Sayuri 主要是现实中很少有语言能满足 动态链接、支持继承、ABI 稳定 这三个条件,C++要考虑各种编译器和版本,Java 通常会打包到一起发布(不被算作动态链接),所以很少有某个可被继承的类是以 LGPL 发布的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX