原样复制 GPL 协议开源项目部分文件时文件开头的版权信息可以拿掉/换成自己的,然后在 项目 Third Party Notice 中说明使用了这个项目的代码吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
不要在回答技术问题时复制粘贴 AI 生成的内容
rv54ntjwfm3ug8
V2EX    程序员

原样复制 GPL 协议开源项目部分文件时文件开头的版权信息可以拿掉/换成自己的,然后在 项目 Third Party Notice 中说明使用了这个项目的代码吗?

  •  
  •   rv54ntjwfm3ug8 2022-03-19 11:50:43 +08:00 via iPhone 2877 次点击
    这是一个创建于 1301 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果可以,需要标明是哪些文件吗?
    如果复制后有修改呢?
    25 条回复    2022-03-20 17:47:53 +08:00
    harde
        1
    harde  
       2022-03-19 12:28:58 +08:00
    GPLv3 么? GPLv3 无法被清除。
    12101111
        2
    12101111  
       2022-03-19 12:35:48 +08:00
    使用 Git 管理的开源软件可以在 commit message 里加上 Signed-off-by 表明版权归属, 这一行 git commit -s 可以自动加上。
    文件开头可以只标 SPDX-License-Identifier. 因为 git 的 commit 历史可以正确的表示每一行修改的作者.

    如果是仅以压缩包的形式发布,这么做恐怕不太行
    ulosggs
        3
    ulosggs  
       2022-03-19 12:43:01 +08:00
    GPL 协议的要求是你用了他的代码再发布时整个项目也必须是 GPL 协议,文件怎么改随意,也不用加任何 notice 。
    Suzutan
        4
    Suzutan  
       2022-03-19 12:43:51 +08:00 via iPhone
    如果是 GPLv3 不仅仅需要保留原始信息,做出了修改还需要标注

    ……
      你可以以源码形式转发基于本程序的作品或修改的内容,除满足第四条外还需要满足以下几点要求:
       a)该作品必须带有醒目的修改声明及相应的日期。
    ……
    Suzutan
        5
    Suzutan  
       2022-03-19 12:45:54 +08:00 via iPhone
    修正一下,没有说必须保留什么,但是要有修改声明和相应的日期
    个人理解
    jones2000
        6
    jones2000  
       2022-03-19 13:12:42 +08:00
    换一个语言,移植就可以。比如开源工程是 c++ 写的, 你直接把他移植成 py , 或 js 不就可以了。
    BrettD
        7
    BrettD  
       2022-03-19 15:16:54 +08:00
    移植到另一个语言也算是衍生作品,也需要遵循 GPL
    rv54ntjwfm3ug8
        8
    rv54ntjwfm3ug8  
    OP
       2022-03-19 15:18:55 +08:00
    原项目有几十个功能,我的项目只用到一个,其它永远用不到,想把它独立出来。

    @harde
    @12101111
    @ulosggs
    @Suzutan
    @jones2000
    @BrettD
    BrettD
        9
    BrettD  
       2022-03-19 15:20:56 +08:00
    你的项目如果要分发的话也需要遵循 GPL ,除非你的项目不会向外公开分发,或者用跨进程的方式调用 GPL 部分代码
    baobao1270
        10
    baobao1270  
       2022-03-19 15:24:26 +08:00
    我的经验是,原来的文件头不动,如果你修改了那个文件,那就在该文件头的前面加上你自己的声明
    cybird
        11
    cybird  
       2022-03-19 15:29:40 +08:00
    GPLv3 只要求你修改代码后,项目同样要求使用 GPL 分发。以及如果你进行了修改,则应提供修改声明、修改日期和修改人身份信息,这是为了保护你的专利。
    GPL 始终遵循以下原则
    软件不应限制其用户。每个用户都应该有四项基本自由:
    有自由按自己的意愿使用软件,
    有自由按自己的需要修改软件,
    有自由把软件分享给友邻,以及有自由分享自己对软件的修改。
    jones2000
        12
    jones2000  
       2022-03-19 15:31:46 +08:00
    @BrettD 只是思路和设计是一样的, 代码实现都是不一样的, 也需要遵循?
    BrettD
        13
    BrettD  
       2022-03-19 15:40:43 +08:00
    @jones2000 是,除非你的移植版本是净室实现
    ulosggs
        14
    ulosggs  
       2022-03-19 15:44:45 +08:00
    @theklf4 你不想开源其他部分的话,那么这个功能必须和其他部分独立发布,一般会以插件的形式让用户自行下载
    jones2000
        15
    jones2000  
       2022-03-19 15:48:03 +08:00
    @BrettD 不同语言,实现肯定是不一样的, 就比如绘图, 你把 echarts 用,c++实现一遍,代码百分百不一样。
    BrettD
        16
    BrettD  
       2022-03-19 15:50:52 +08:00
    @jones2000 GPLv2 条款:

    This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
    BrettD
        17
    BrettD  
       2022-03-19 15:53:15 +08:00
    @jones2000 把 GPL 软件用别的语言“洗稿”也算是衍生作品,除非是净室实现
    rv54ntjwfm3ug8
        18
    rv54ntjwfm3ug8  
    OP
       2022-03-19 15:54:31 +08:00
    问题是如果我完整开源了整个项目,我可以把原作者在文件头部留下的版权声明换成自己的,然后在项目 Third Party Notice 留下原作者版权声明吗?如果可以,我需要标注我对哪个文件做了什么修改吗?
    rv54ntjwfm3ug8
        19
    rv54ntjwfm3ug8  
    OP
       2022-03-19 15:55:27 +08:00
    问题是如果我完整开源了整个项目,我可以把原作者在文件头部留下的版权声明换成自己的,然后在项目 Third Party Notice 留下原作者版权声明吗?如果可以,我需要标注我对哪个文件做了什么修改吗?
    @cybird
    @BrettD
    @ulosggs
    @12101111
    @harde
    BrettD
        20
    BrettD  
       2022-03-19 15:58:38 +08:00   1
    (1) 你的整个项目需要是 GPL 协议
    (2) 不建议把原文件头删掉,惯例做法是在源文件头里面补充加上 (C) 2022 你的名字
    rv54ntjwfm3ug8
        21
    rv54ntjwfm3ug8  
    OP
       2022-03-19 16:06:29 +08:00
    @BrettD 举个极端点的场景,例如我想要在我写的 Windows 桌面软件中使用 Linux 内核中 async_pf.c ( https://github.com/torvalds/linux/blob/master/virt/kvm/async_pf.c) 这个文件的 60%代码,但我的程序用途和这个文件原来的用途完全无关,照你的说法我的文件头应该写成

    // (C) 2022 MY_NAME
    // SPDX-License-Identifier: GPL-2.0-only
    /*
    * kvm asynchronous fault support
    *
    * Copyright 2010 Red Hat, Inc.
    *
    * Author:
    * Gleb Natapov <[email protected]>
    */

    即使我的用法和 kvm asynchronous fault support 完全无关?

    (随便找的文件举例子,并不是我真的要用这个文件)
    BrettD
        22
    BrettD  
       2022-03-19 16:26:48 +08:00   1
    kvm asynchronous fault support 删不删我个人认为不是重点,重点是要保留原作者的版权声明

    // SPDX-License-Identifier: GPL-2.0-only
    /*
    * 描述你的改编版本是干啥的
    *
    * Copyright (C) 2022 theklf4
    *
    * Based on work by
    * Copyright 2010 Red Hat, Inc.
    * Original Author:
    * Gleb Natapov <[email protected]>
    */

    或者

    // SPDX-License-Identifier: GPL-2.0-only
    /*
    * kvm asynchronous fault support
    *
    * Copyright 2010 Red Hat, Inc.
    *
    * Author:
    * Gleb Natapov <[email protected]>
    *
    * =======================
    *
    * modified for xxxxx purpose
    *
    * Copyright (C) 2022 theklf4
    */
    harde
        23
    harde  
       2022-03-19 23:31:39 +08:00
    @theklf4 #19 不,你并不拥有“版权”,或者说你不拥有完整版权,你只拥有你修改的部分的版权。
    在国内的大环境下,你能问出这么多,我相信你是一个尊重版权的人,但是真的要严格遵守 GPL 协议,当下你已经很难做到,毕竟你哪怕参考了思路,也属于衍生的范畴。
    msg7086
        24
    msg7086  
       2022-03-20 11:25:17 +08:00
    @harde 算法不直接被版权保护,算法的实现才是。
    比如说,看着维基百科关于快速排序的动画图或者描述文字,写出快排的代码,这个代码属于原创作品而非衍生作品。当然,如果是看着其他语言写的快排,然后翻译成另一种语言,这就属于衍生作品了。
    FrankHB
        25
    FrankHB  
       2022-03-20 1747:53 +08:00
    https://www.gnu.org/licenses/gpl-howto.html
    怎么用,这里说得够清楚了。
    版权声明没有固定的格式;如果你提供了许可证,法律上也不是必须的,只是这样会留下更多漏洞而不符合原意。一般在每个适用源文件中明确提到遵循哪个许可证,整个项目附带许可证的文本文件。如果你没有单独的版权声明,可被认为所有文件都适用许可证。如果你修改的代码按适用的许可证条款要求标注修改,可以在源文件中一起标注(或者你打算准备另外的文档)。
    GPL 要求标注修改的,并且合并的工作也要求用 GPL 分发。你可以对不被许可证涵盖的非衍生作品(或者说你自己完全作为所有者的作品)同时使用其它许可证并一并分发。是否允许文件的版权声明看原作者的许可。一般作者提供的许可证不包含所有权转移的许可,所以你不能移除原作者的版权声明,以避免对你实际上不具有所有权的作品主张所有权。
    对衍生作品判定的范围有争议,但一般来说,“翻译”被版权保护的作品,构成衍生作品,这同样适用于程序源代码。按 FSF 的意思,链接的程序也属于衍生作品。按 Linux 项目的解释,用户空间的程序不构成内核的衍生作品。IANAL ,关于具体涵盖的严格的结论请咨询版权法律师。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2972 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:34 PVG 21:34 LAX 06:34 JFK 09:34
    Do have faith in what you're doing.
    ubao 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