Hi,Lucien
我的疑问是:
1、如果一家企业在项目中使用了第三方的EPL,MPL授权的软件,并且在项目中修改了EPL,或者是MPL授权的软件(即使是一个字符),那么就不再满足上述要求?
2、找了一个使用EPL软件的例子,比如zend guard是一款基于eclipse rcp开发的一款商业软件,软件的界面显示没有eclipse rcp就不能运行,
www.zend.com/en/products/guard/downloads。zend guard 并没有使用epl发布和开源,那么就是意味着两种情况:1、zend guard向eclipse基金会缴纳了额外的一笔授权费用,获得商业开发的权限;2、zend guard的做法是错误的应该使用EPL的协议发布zend guard?
3、
(a 代表EPL自由软件程式) (b 代表企业开发程式)
互动关系
(1)、b中配置文件(XML,properties,ini等)中配置a中的类
比如:
org.hibernate.ejb.HibernatePersistence
(2)、b中的类中引用a中的类
比如:
import com.eclipse.look.DTFF;
public class LookSystem {
//....
}
(3)、a是一个完整的应用软件:比如一个b中有一个startup.bat去启动a,并不修改a中的任何程序
是不是只要一但在企业开发的b程式中使用到了(2)的情况就不再满足要求,必须使用EPL授权;或者是还得看角色和地位?
4、
比如有如下模型分析
角色: 低 中 高
地位: 低 中 高
EPL的开源程式a在企业开发的产品b中的只要是地位和角色二者中有一个所处的环境为“高“,那么不管互动关系是什么情况那么就必须用EPL对产品b授权,也就是不满足我们的要求。
反过来说,如果a与b之间互动关系要求使用EPL,是不是即使a的角色和地位再低那么都得使用EPL授权
5、如果没有修改EPL,MPL授权的软件,是否满足要求就要看上文中所提到的“在整個產品中所佔的角色、地位,以及和其他元件的互動關係(Interation)來個案判定。”
在下面尽可能的总结列出了EPL,或者MPL授权的元件在整个产品中所处的7种不同程度的,角色和地位
A、该元件是图标(虽然图标不是某种意义上的软件,但是网上确实有很多epl,gpl授权的图标)
B、该元件是look and feel(通俗说就是主题外观),没有该元件,整个产品仍然可以正常运行。
互动关系以java程序为例,需要在企业开发的软件中引入一行EPL程式代码比如
import com.eclipse.look.DTFF;
public class LookSystem {
//....
}
C1、该元件是一个EPL授权的在线编辑器,一家企业在自主开发的CMS产品中使用到了EPL的在线编辑器元件
C2、一家企业在自主开发的CMS产品中使用到了fckedtior(gpl lgpl mpl)的在线编辑器元件
C3、该元件是一个CSS网页样式的类库
D、该元件是一个框架,没有该元件整个软件就不能正常运行
E、该元件是一款数据库(用于辅助功能)。比如说firefox就是用到了Sqlite(public domain),Sqlite元件只是用于firefox的辅助功能比如说存储浏览器的浏览记录,firefox的主要功能浏览网页并不需要用到sqlite。没有sqlite,firefox的部分功能不能使用。
如果一家企业开发了一款浏览器,并且使用到了一个EPL授权的数据库元件,那么是否还满足不公开源代码,按照自己的方式来授权的要求呢?
F、该元件是一款数据库(用于主要功能)。比如说一家企业开发的物料系统中用到的数据库元件。没有该元件,物料系统的功能几乎不能使用。
G、该元件是对某一个规范或者标准的实现。比如说 eclipselink(EPL EDL)是oracle 制定的jpa规范的一个实现元件。一家企业在开发的流量系统中用到了eclipselink元件。
值得注意的是:eclipselink(EPL EDL)openjpa(Apache 2)Hibernate(LGPL)都是jpa规范的实现元件,使用以上三种元件之一开发的产品可以通过修改配置文件实现轻松的切换。B与G不同的是,B可以不要该元件程序也可以正常运行,G中没有eclipselink,openjpa,Hibernate三者之一程序就不可运行。
其中的互动关系是:
还是以(a 代表自由软件程式) (b 代表企业开发程式)
在b中并不会调用任何a的程序代码,因为a中实现的都是jpa(java api)的规范,调用的都是java api,但是需要一部分配置文件。
Thank you