关于GPL的一些问题

b
bihai
楼主 (未名空间)

这些问题如果在stackoverflow问会被标位无关话题,特别讨厌。所以在这里问一下

我的问题关乎到一个解决方案,但是我不能只说,所以用一个类比。

我发布了一个Java应用。里面的代码都是自己写的,或者有一些MIT License, BSD
License, Apache License什么的,没有GPL。现在有一个功能,如果找到一个GPL的代
码,我想这样做,我把这个代码转成lua代码,然后在我的应用中加入LuaJ,然后解释
执行lua程序。

虽然lua是从GPL代码转来的,仍然是GPL,但是是解释执行,不是一起编译的。所以我就问,这样的话,我能否继续发布这个应用,而不用担心需要GPL整个项目?

类似的,如果我发布一个Windows应用,里面需要一个功能恰好可以找到GPL代码,我可否加入一个虚拟机,在虚拟机里面运行这个GPL写好的程序,而不用担心需要GPL这个
Windows应用?
c
chubbyboy

我的理解是不行。
n
netghost

取決於你的轉lua代碼怎麼轉的。如果你完全沒抄原來的代碼,只是用lua把it的功能實現了一次,你愛怎麼用怎麼用,你連的lua code都沒必要release under GPL。否則你
必須要公開的你代碼。

你用虛擬機運行某個GPL的程序當然沒有問題,只不過你的windows程序發信也需要發行虛擬機?然後你爲了用這個功能還要和虛擬機通信?這樣,用戶體驗完全沒了吧。

【 在 bihai (学得不好) 的大作中提到: 】
: 这些问题如果在stackoverflow问会被标位无关话题,特别讨厌。所以在这里问一下
: 我的问题关乎到一个解决方案,但是我不能只说,所以用一个类比。
: 我发布了一个Java应用。里面的代码都是自己写的,或者有一些MIT License, BSD
: License, Apache License什么的,没有GPL。现在有一个功能,如果找到一个GPL的代
: 码,我想这样做,我把这个代码转成lua代码,然后在我的应用中加入LuaJ,然后解释
: 执行lua程序。
: 虽然lua是从GPL代码转来的,仍然是GPL,但是是解释执行,不是一起编译的。所以
: 我就问,这样的话,我能否继续发布这个应用,而不用担心需要GPL整个项目?
: 类似的,如果我发布一个Windows应用,里面需要一个功能恰好可以找到GPL代码,我可
: 否加入一个虚拟机,在虚拟机里面运行这个GPL写好的程序,而不用担心需要GPL这个: ...................

b
bihai

半夜操作,用户体验不到。

另外,这个问题可以这样描述,有一个设备上面运行我写的程序,是Minix 3操作系统
。然后系统提示说,请插入USB drive。用户插入,发现是ext-4的。当然,Minix 3 没有ext-4的支持。这可咋整啊。于是,我移植一个。那么,我这个设备上Minix 3就加入了GPL代码了,毕竟是移植Linux的。当然,这个不是本来的代码,是我照着写的,为了防止有人告我,我的仔细审查GPL的问题。问题是,我给Minix 3加入了这个功能,我需要做什么?把整个Minix 3变成GPL发布一遍?Minix 3肯定不熟我这个上传代码呀,但
是我根据GPL的要求我得把Minix 3变成GPL。所以我是觉得GPL这个东西挺难理解的。

另外,Minix 3是微内核的,那么我写的那个移植的ext-4其实是用户态程序,那么他不属于内核,也可以不属于Mniix 3啊。这都什么事啊。

如果是FreeBSD 加入ext-4呢?这个是OS本身加入GPL了吧?

【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: 取決於你的轉lua代碼怎麼轉的。如果你完全沒抄原來的代碼,只是用lua把it的功能實
: 現了一次,你愛怎麼用怎麼用,你連的lua code都沒必要release under GPL。否則你
: 必須要公開的你代碼。
: 你用虛擬機咝心硞€GPL的程序當然沒有問題,只不過你的windows程序發信也需要發行
: 虛擬機?然後你爲了用這個功能還要和虛擬機通信?這樣,用戶體驗完全沒了吧。

g
guvest

GNU FAQ.

What does the GPL say about translating some code to a different programming language? (#TranslateCode)
Under copyright law, translation of a work is considered a kind of
modification. Therefore, what the GPL says about modified versions applies
also to translated versions. The translation is covered by the copyright on the original program.

If the original program carries a free license, that license gives
permission to translate it. How you can use and license the translated
program is determined by that license. If the original program is licensed
under certain versions of the GNU GPL, the translated program must be
covered by the same versions of the GNU GPL.

【 在 bihai(学得不好) 的大作中提到: 】

: 半夜操作,用户体验不到。

: 另外,这个问题可以这样描述,有一个设备上面运行我写的程序,是Minix 3操
作系统

: 。然后系统提示说,请插入USB drive。用户插入,发现是ext-4的。当然,
Minix 3 没

: 有ext-4的支持。这可咋整啊。于是,我移植一个。那么,我这个设备上Minix 3就加入

: 了GPL代码了,毕竟是移植Linux的。当然,这个不是本来的代码,是我照着写的,为了

: 防止有人告我,我的仔细审查GPL的问题。问题是,我给Minix 3加入了这个功能,我需

: 要做什么?把整个Minix 3变成GPL发布一遍?Minix 3肯定不熟我这个上传代码
呀,但

: 是我根据GPL的要求我得把Minix 3变成GPL。所以我是觉得GPL这个东西挺难理解的。

: 另外,Minix 3是微内核的,那么我写的那个移植的ext-4其实是用户态程序,那么他不

: 属于内核,也可以不属于Mniix 3啊。这都什么事啊。
: ...................

n
netghost

關鍵還是看你這個移植是怎麼做的。
你minix下面的ext4的driver如果是自己完全from scratch的,那就是你的code,但是
你如果中間用了Linux下面的ext4代碼,你的code就必須是GPL的license。這個和Minix是不是微內核沒有關係。

至於minix的文件系統在用戶態運行,所以你的ext4代碼肯定不需要和minix保持一致。雖然這個其實沒有太大意義,因爲minix本是不是GPL的。

【 在 bihai (学得不好) 的大作中提到: 】
: 半夜操作,用户体验不到。
: 另外,这个问题可以这样描述,有一个设备上面运行我写的程序,是Minix 3操作系统
: 。然后系统提示说,请插入USB drive。用户插入,发现是ext-4的。当然,Minix 3 没
: 有ext-4的支持。这可咋整啊。于是,我移植一个。那么,我这个设备上Minix 3就加入
: 了GPL代码了,毕竟是移植Linux的。当然,这个不是本来的代码,是我照着写的,为了
: 防止有人告我,我的仔细审查GPL的问题。问题是,我给Minix 3加入了这个功能,我需
: 要做什么?把整个Minix 3变成GPL发布一遍?Minix 3肯定不熟我这个上传代码呀,但
: 是我根据GPL的要求我得把Minix 3变成GPL。所以我是觉得GPL这个东西挺难理解的。: 另外,Minix 3是微内核的,那么我写的那个移植的ext-4其实是用户态程序,那么他不
: 属于内核,也可以不属于Mniix 3啊。这都什么事啊。
: ...................

b
bihai

我就是照着抄一遍,肯定是需要把ext-4 GPL的。问题是,是不是需要把Minix 3给GPL
了?

我给Minix 3 增加了功能,这个功能是GPL的,是不应该改变Minix 3的许可,对吧?

那好,我自己写个操作系统,然后需要ext-4,这一部分肯定GPL,那我的操作系统呢?需要GPL吗?大家看到问题了吧?这和用Minix 3有区别吗?假设我自己的系统本来是MIT
许可。加了一部分ext4是GPL,这样把系统放在计算机里面卖给用户可以吧?

【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: 關鍵還是看你這個移植是怎麼做的。
: 你minix下面的ext4的driver如果是自己完全from scratch的,那就是你的code,但是
: 你如果中間用了Linux下面的ext4代碼,你的code就必須是GPL的license。這個和
Minix
: 是不是微內核沒有關係。
: 至於minix的文件系統在用戶態咝校阅愕膃xt4代碼肯定不需要和minix保持一致。
: 雖然這個其實沒有太大意義,因爲minix本是不是GPL的。

p
pseudo

你可以把这段GPL的代码做成一个library吗?你的程序可以连接这个库,这样只有你的这个library的代码需要应用GPL。
n
netghost

沒有問題,和minix無關,你的ext4 代碼要gpl。你自己程序不用。

【 在 bihai (学得不好) 的大作中提到: 】
: 我就是照着抄一遍,肯定是需要把ext-4 GPL的。问题是,是不是需要把Minix 3给
GPL
: 了?
: 我给Minix 3 增加了功能,这个功能是GPL的,是不应该改变Minix 3的许可,对吧?: 那好,我自己写个操作系统,然后需要ext-4,这一部分肯定GPL,那我的操作系统呢?需
: 要GPL吗?大家看到问题了吧?这和用Minix 3有区别吗?假设我自己的系统本来是
MIT
: 许可。加了一部分ext4是GPL,这样把系统放在计算机里面卖给用户可以吧?
: Minix