关于 GPL 协议的一些疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qdwang

关于 GPL 协议的一些疑问

  •  
  •   qdwang 2022 年 1 月 26 日 1431 次点击
    这是一个创建于 1550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GPL 协议大概讲的就是,如果你用了它的代码,你的软件也要用 GPL 发布并且开源。

    这里有一些争议点不太明白。

    假设有库 A 是 C++写的 GPL ,现在要写个库 B 是 C#。我们发现库 A 里的一个函数叫 func 特别有用,想弄到库 B 里。

    1. 直接 1:1 把 A 里的 func 代码转成 C#放到 B 里。据我所知,这种情况下,B 必须开源并且是 GPL 协议。

    2. 把 A 里的 func 代码重构成 C#, 并且做很多抽象+改动,改的面目全非。据我所以,这种情况下,有争议。有的人认为这仍然是必须遵守 GPL ,有的人认为这可以不用遵守 GPL 了。

    3. 找到一篇文章,描述了 A 是如何写成的 func 。根据文章的原理来写 C#代码。这种情况下,如果 C#代码逻辑步骤和 A 里 C++代码一样,应该怎么判定?是必须遵守 GPL 还是完全不用管他?

    GPL 中,关于 B 到底有没有用 A 的代码的判定界限,到底是在哪里?

    8 条回复    2022-01-27 12:01:49 +08:00
    qdwang
        1
    qdwang  
    OP
       2022 年 1 月 26 日
    对了,还有 4

    4. 如果你完全没看过库 A ,碰巧用 C#写了和库 A 一样逻辑的代码,会不会被判定为必须遵守 GPL ?
    liyanggyang
        2
    liyanggyang  
       2022 年 1 月 26 日
    @qdwang 你看没看过,他都在那里,不能掩耳盗铃了。所以排除 4
    qiguai2017
        3
    qiguai2017  
       2022 年 1 月 26 日
    有没有侵犯他的权利还要看代码量和复杂程度。

    如果我写个 print(hello world), 并把它声明为 GPL, 是不是别人所有的代码只要有这句话,就都必须遵守 GPL 协议了?
    echo1937
        4
    echo1937  
       2022 年 1 月 26 日 via iPhone
    @liyanggyang 4 是可行的,wsl 一代的很多接口就是这么做的,这种有个名词叫做 clean room Linux
    qdwang
        5
    qdwang  
    OP
       2022 年 1 月 26 日
    @qiguai2017 是呀,所以 GPL 这个协议其实挺难判断的感觉。除非是大段大段的纯粹一字不改的 copy ,可以判定必须遵守 GPL ,其他的情况都有可能发生。
    qdwang
        6
    qdwang  
    OP
       2022 年 1 月 26 日
    我觉得 GPL 本质上只能保护一种情况,就是一段算法本身就是写库 A 的人发明的,这个库 A 是 GPL 。那么概念发明者,代码算法都是这个人发明的,所以 GPL 可以完美保护。

    如果有一个人 X 发明了一种算法,写在文章里,明确可以自由传播。另一个人写了库 A ,用了这个算法,也用了 GPL 协议。其实这里 GPL 本质上不能保护这段算法。因为别人有权随便用 X 的算法。
    secondwtq
        7
    secondwtq  
       2022 年 1 月 26 日   1
    @qdwang #6 根据我的了解,你说的第一种情况也没法保护。
    GPL 保护的是具体实现不是 idea 。用 cleanroom 的方式还是可以使用你的算法。
    使用专利可能能保护算法,但好像总的来说实践起来还是比较困难,尤其是你很难知道别人到底是怎么实现的情况下( GPL 也存在一样的问题)。

    一个例子:本世纪初 Thomas W. Sederberg 等人提出了 T-Spline ,这是一种三维表面的表示方法,据说结合了 NURBS 和细分曲面的优点。paper 发出来没多久这群人就商业化了这个算法并申请了专利,后来公司被 (隔壁好像正在招人的) Autodesk 收购。过了几年 Autodesk 把这东西放到了自家的 Fusion 360 上,并且停止了其他软件(如 Rhino )的 T-Spline 插件更新。直到现在也没有其他地方实现 T-Spline 。
    qdwang
        8
    qdwang  
    OP
       2022 年 1 月 27 日
    @secondwtq 十分感谢回复,我基本明白目前的情况了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2408 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 16:07 PVG 00:07 LAX 09:07 JFK 12:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86