在http://jaxb.java.net/,它表示JAXB的双重许可证包含CDDL v1.0和GPL v2;
CDDL说:
所以,我不能在不打开代码的情况下使用JAXB吗?
- 更新
“您分发的任何涵盖软件......”;
1.3。 “涵盖软件”是指(a)原始软件,或(b)修改,或(c)包含原始软件的文件与包含修改的文件的组合,在每种情况下包括其部分。 https://glassfish.dev.java.net/public/CDDL+GPL.html
我开发的软件不被视为“包含原始软件的文件与包含修改的文件的组合”?
答案 0 :(得分:4)
您可以使用 JAXB而无需开源代码(如果您遵循CDDL的其他条款)。但是,您无法在没有源的情况下分发JAXB 本身。
更新以响应问题编辑:假设您的代码不是对JAXB的修改,也不包含JAXB的任何部分,那么它不会被覆盖。 (不过,我不是律师。请耐心等待。)
答案 1 :(得分:2)
CDDL是基于文件的许可证。
简单地说,任何已获得CDDL许可的文件,您已经更改,您有义务将更改的文件分发给该文件。
假设网络上有CDDL项目。
它有X.java和Y.java文件。
您的项目包括X.java,Y.java(您已更改)和Z.java(您的代码)。
您有义务提供Y.java,并确保X.java可用。
由于其他人已经在分发X.java(原始项目),你没有做,源已经可用(只是不是你)。
您更改了Y.java,它是根据CDDL许可的,并且原始项目未分发,因此您需要将其提供。
最后,Z.java是您自己的,未受阻碍的代码,您没有义务提供这些代码。
如果由于某种原因原始项目破产并且不再分发X.java,您需要确保它仍然可供您的用户使用。
最后,通过“发布”,您只需要为拥有代码二进制文件的人(即您可以使用的人员)提供源代码。
如果你公开发布你的二进制文件,那就意味着“每个人”。如果你只把它卖给10个客户,那么就只卖给他们,而不是整个世界。
关于评论的编辑:
原始软件是您正在使用的软件,由CDDL承保。
修改是对ORIGINAL软件的更改。这是他们在该子句中有三个类别的方式:原始软件,修改或两者的组合。
您的义务只是更改原始软件中的文件。正如我所说,CDDL是基于文件的,CDDL没有“病毒”方面。简而言之,如果您更改了代码,则有义务发布这些更改。但是没有义务编写仅仅是您自己的工作而不是基于原始文件的代码。