V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sayuri
V2EX  ›  开源软件

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

  •  
  •   Sayuri · 214 天前 · 917 次点击
    这是一个创建于 214 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    6 条回复    2024-08-18 00:16:30 +08:00
    ysc3839
        1
    ysc3839  
       213 天前 via Android
    有一种说法是,LGPL 要能让用户自由地替换掉 LGPL 部分代码。
    上述说法是否正确我不知道,仅供参考。
    lqs
        2
    lqs  
       213 天前
    @ysc3839 是的,所以对于需要打包发布的 js 代码不太适用
    Sayuri
        3
    Sayuri  
    OP
       213 天前 via Android
    @lqs js 只是方便举例,如果换成 C++ Java 呢?
    ysc3839
        4
    ysc3839  
       213 天前 via Android
    @Sayuri C++一般是把 LGPL 部分做成 dll/so 等动态链接库。Java 的话单独分开 class 文件理论上是符合的。
    Sayuri
        5
    Sayuri  
    OP
       127 天前 via Android
    @lqs js 只是方便举例,如果换成 C++ Java 呢?
    lqs
        6
    lqs  
       126 天前
    @Sayuri 主要是现实中很少有语言能满足 动态链接、支持继承、ABI 稳定 这三个条件,C++要考虑各种编译器和版本,Java 通常会打包到一起发布(不被算作动态链接),所以很少有某个可被继承的类是以 LGPL 发布的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.