GPLãLGPLã¸ã®å¯¾å¿
- http://slashdot.jp/~bero/journal/498802 ã話é¡ã«ä¸ã£ãã®ã§
nmoshã¯ã¢ããªã±ã¼ã·ã§ã³ã¸ã®çµã¿è¾¼ã¿ãæ³å®ãã¦ããã®ã§ããããªãã®é
æ
®äºé
ãããã
ã¾ã¨ã :
- éãmoshæ¬ä½ã§ãã¢ããªã±ã¼ã·ã§ã³ãå®è¡ã§ãããªããã¢ããªã±ã¼ã·ã§ã³ã¯ã©ã¤ã»ã³ã¹ã®å¶ç´ãåããªãã
- ãã ãmoshã«ä»å±ããªãR6RS/FFIã©ã¤ãã©ãªã使ç¨ããå ´åããã®ã©ã¤ãã©ãªã®ã©ã¤ã»ã³ã¹ã®å¶ç´ã¯ä¾ç¶åå¨ããã
moshæ¬ä½
moshã¯LGPLv3ã§ããGMPã«ä¾åãã¦ãããããmoshãçµã¿è¾¼ãã (AND GMPã¨éçã«ãªã³ã¯ãã)ã¢ããªã±ã¼ã·ã§ã³ãé å¸ããã¨ãã¯æ³¨æããå¿ è¦ãããã
- é å¸ã«ã¯ããããã"ãªãã¼ã¹ã¨ã³ã¸ãã¢ãªã³ã°ç¦æ¢æ¡é "ãå ¥ããªãã(LGPLããããè¦æ±ãã¦ãã)
ãã ãã¢ããªã±ã¼ã·ã§ã³ãã¹ã¯ãªããã¾ãã¯nmoshã®ãã£ãã·ã¥ã¨ãã¦æä¾ãã¦ãããmoshæ¬ä½ãæ¹å¤ããã«å©ç¨ãã¦ããå ´åã¯ãç¹ã«ä½ãããå¿
è¦ã¯ãªããåã«(GPLäºæã©ã¤ã»ã³ã¹ãæ¡ç¨ãã¦ããã)moshãªãããã®æ´¾çã¸ã®ãªã³ã¯ã示ããã¨ã§è¦ä»¶ãæãããã¨ãã§ããè¿½è¨ : ã©ã¤ã»ã³ã¹æã®å梱ã¨èä½æ¨©ã®æ示ã¯ä¾ç¶å¿
è¦ãLGPLã¨BSDLããããè¦æ±ãã¦ããã
moshæ¬ä½ã«ã¯GPLã§ã©ã¤ã»ã³ã¹ãããã³ã¼ãã¯å«ã¾ãã¦ããªããããFFIã¢ã¸ã¥ã¼ã«ãã®ãã®ã«ã¯ä½ãå¶éã¯å ããããªãããããã¢ã¸ã¥ã¼ã«ãé常ã®moshã§ãã¼ãã§ããªãå ´åã¯ãmoshãªãããã®æ´¾çã¸ã®ããããGPLäºæã©ã¤ã»ã³ã¹ã§ãªãªã¼ã¹ããå¿
è¦ãããã
moshãã®ãã®ãæ¹å¤ãã¦é
å¸ããå¿
è¦ãããå ´åãå¹³ããè¨ãã°ã¯ãã¼ãºãã½ã¼ã¹ã®moshæ´¾çãä½ããã¨ã¯åºæ¥ãªãããããã®ãããªæ´¾çãä½ãå ´åã¯æ³¨ææ·±ãè¡ãå¿
è¦ãããã(è¿½è¨ ä¸æ£ç¢ºãªã®ã§å¾ã§ããè¦ããã«é常ã®LGPLã©ã¤ãã©ãªã®æ³¨æããã¦ã¯ã¾ã)
è¿½è¨ : ãã¡ããGMPä¾åãåãé¤ãã®ãé¸æè¢ã®ä¸ã¤ã¨ã¯è¨ãããã
è¿½è¨ : å¾®å¦ãªäºç¹ã¯ãæããã¦VMãçµç±ãã¦å©ç¨ãããããªã±ã¼ã¹ãLGPLã®æ³å®ãã"ãªã³ã¯"ã¨å¼ã¹ããã©ããã¨ããç¹ã§ãããã«ã¯ç¾å¨ã®æå¤æãç¡ãã®ã§ãªãã¨ãè¨ããªããå人çã«ã¯ãã®ãããªã±ã¼ã¹ã¯ãªã³ã¯ã§ã¯ãªãã¨èãã¦ããã1) æè¡çã«ã¯ãªã³ã¯ã§ã¯ãªãã 2) ã¹ã¯ãªãããå®å
¨ãªãã©ãã¯ããã¯ã¹ã§ãã£ãã¨ãã¦ããVMå´ã«å¤æ´ã®èªç±ãæãã°LGPLã®ç®ç(ã©ã¤ãã©ãªã®å¤æ´ã®èªç±ã®ç¢ºä¿)ã¯éæãããã
R6RSã©ã¤ãã©ãª
æåãªR6RSã©ã¤ãã©ãªã®ä¸é¨ã¯GPLãæ¡ç¨ãã¦ãããä¾ãã°nausicaa( http://github.com/marcomaggi/nausicaa )ã¯GPLãªã©ã¤ãã©ãªã¨BSDLãªã©ã¤ãã©ãªãæ··å¨ãã¦ããã
é常ã®è§£éã§ã¯ãã³ã¼ããGPLäºæã®ã©ã¤ã»ã³ã¹ãæ¡ç¨ããªãéããGPLãªR6RSã©ã¤ãã©ãªã使ç¨ãããã¨ã¯åºæ¥ãªããä¾å¤æ¡é
ãæ¡ç¨ããããåã«ä»ã®ã©ã¤ã»ã³ã¹ãåæã«æ¡ç¨ããã®ã好ã¾ããã
box-2d lite(ç©çã·ãã¥ã¬ã¼ã·ã§ã³ã©ã¤ãã©ãª : http://github.com/dharmatech/box2d-lite )ã®ããã«ã©ã¤ã»ã³ã¹ãä¸æãªãã®ãããã
ãããããä½ããã®æ©æ¢°å¯èªãªãããã§ã¹ããã©ã¤ãã©ãªã¨ã¨ãã«é
å¸ããã®ãæã¾ãããããã¯nopan( http://d.hatena.ne.jp/kazuhooku/20100115/1263532644 )ã®ãããªã·ã¹ãã ãå®ç¾ããã®ã«å¿
è¦ã¨ãªãã
å¾æ¥ã®fatmoshãã©ã³ãã«ã¯ãsubmodulesã§R6RSã®gitãªãã¸ããªãåéããä¼ç»*1ãåå¨ãããã©ã¤ã»ã³ã¹ã®æ··å¨æã®åãæ±ããé£ããã®ã¨ãsubmodulesèªä½ãæ¯è¼çãã¤ãã¼ãªä»çµã¿ãªã®ã§ããªãã¸ããªãåé¢ãã¦åéããäºå®ã
è¿½è¨ : å¹³ããè¨ãã°ãã¹ã¯ãªãããGPLã§ã©ã¤ã»ã³ã¹ãããã¨ãã£ãã·ã¥ã«ã¤ãã¦å¾®å¦ãªåé¡ããããLGPLãä»ã®ã©ã¤ã»ã³ã¹ã好ã¾ããã
- ãã®è¾ºã®è§£é(ä¸è¨â»)ã¯ä»ã®ã¨ããå®ã¾ã£ã¦ããªãã
- ã©ã³ã¿ã¤ã ãã©ã¤ãã©ãªã¨ãã¦è§£éããå ´åãGPLã§ã¯ä¸èªç±ãªã©ã¤ãã©ãªã«ãªã³ã¯ã§ããªããã¤ã¾ããGPLãªã¹ã¯ãªãããå®è¡ããVMãGPLäºæã§ç¡ããã°ãªããããããããã¼ããããå ¨ã¦ã®ã©ã¤ãã©ãªãGPLã¨äºææ§ã®ããã©ã¤ã»ã³ã¹ãæ¡ç¨ãã¦ããå¿ è¦ããããããã¯ã¦ã¼ã¶ããªãã£ãä½ä¸ãããã(GPLã¯ä½¿ç¨ã¹ã¿ã¤ã«èªä½ã¯ã«ãã¼ããªãã®ã§ãã½ããã¦ã§ã¢ããã®æ´¾çç©ã®ä½è ãæå³ããç¬å çãªã¢ã¸ã¥ã¼ã«ã使ãããã®ã¯ã©ããããããªããåé¡ã¯ããã£ãã·ã¥ã·ã¹ãã ãåå¨ããã¨ãå©ç¨è ãç¥ããªããã¡ã«GPLãªã½ããã¦ã§ã¢ãããããèªããªãå½¢ã§è¤è£½ããå¯è½æ§ãããç¹ã)
åè
ã®åé¡ã¯ãå°ãªãã¨ãç¾ç¶ã§ã¯å¤§ããªåé¡ã§ã¯ãªããã¹ã¯ãªããã®å®è¡ã¯ããåé¢ããã¦ããã®ã§ãçµåããèä½ç©ãæ§æãããã¨ã¯ç¡ãããã ãnmoshã¯ä»å¾ããã°ã©ã å
¨ä½ã®ãã£ãã·ã¥æ©è½ãä»ãå ããäºå®ãªã®ã§ãã¦ã¼ã¶ã¯ç¡æèçã«ããã£ãã·ã¥ã®å½¢ã§ãGPLãªã³ã¼ãã¨ä¸èªç±ãªã½ããã¦ã§ã¢ããªã³ã¯ããè¤è£½ãã¦ãã¾ãå±éºæ§ãããã
å¾è
ã®åé¡ã¯ãcontrolled interface exceptionãGPLã¨å
±ã«é©ç¨ãããã¨ã§è§£æ±ºã§ããã
- http://www.gnu.org/licenses/gpl-faq.html#LinkingOverControlledInterface
- http://www.gnu.org/licenses/gpl-faq.ja.html#LinkingOverControlledInterface
ãã®ä¾å¤äºé
ã«ãããç¬å çãªR6RSã©ã¤ãã©ãªããªãããFFIã©ã¤ãã©ãªã®ä½¿ç¨ãæ示çã«è¨±å¯ãããGuileã®ã©ã¤ã»ã³ã¹ãç¸å½ããä¾å¤æ¡é
ããã£ã(Guileã®ã©ã¤ãã©ãªããªã³ã¯ããã½ããã¦ã§ã¢ã¯GPLã§ãªãã¦ãã)ãhttp://sourceforge.jp/magazine/06/06/09/1537222
(ããã©ã«ãã§GPLéäºæã©ã¤ãã©ãªãGPLã½ããã¦ã§ã¢ä¸ã§ä½¿ããªãã®ã¯ã"é常ã«èãGPLäºæã®wrapper"ãä½ããã¨ã§GPLãªã½ããã¦ã§ã¢ãGPLéäºæã½ããã¦ã§ã¢ãã使ãããã®ãé²ããããhttp://www.gnu.org/licenses/why-not-lgpl.ja.html )
ä¾å¤ : "ã©ã¤ãã©ãªã¨ãã¦ã"ãGPLã¯å®è¡ç°å¢(Standard Interface, System Libraries)ãã©ã¤ã»ã³ã¹ã®é©ç¨å¯¾è±¡ããå¤ãã¦ããããã®ãããGPLãªã½ããã¦ã§ã¢ã¯Win32ä¸ã§ãåä½ãããã¨ãåºæ¥ãããã ãR6RSãããã«ç¸å½ãããã©ããã¯ã¾ã è°è«ããã¦ããªãâ»*2ãè¦ããã«ãã¹ã¯ãªãããmoshã«ä¾åãããã¨ãªãè¨è¿°ãmosh以å¤ã§ãå®è¡ã§ãããªããããã°ã©ã ãGPLã§ã©ã¤ã»ã³ã¹ãã¦ãåé¡ãªã(ã¨ãèãããã)ãã¾ããå°ãªãã¨ãç¾ç¶ã®moshã¯åé¡ãªãããªããªããmoshããã®ã©ã³ã¿ã¤ã ã«GPLéäºæãªãã®ã¯ãªãããã¤ãæ示çã«è¦æ±ããªãéãFFIã使ããããã¨ã¯ãªãã
追è¨^2: ãããã¥ãããªãã
ä¾ãã°ã"R6RSã§æ¸ãããGPLedã¢ããªã±ã¼ã·ã§ã³ãLinuxã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã«åé²ããã"ã±ã¼ã¹ãèããã
- ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã¯åé å¸ãªã®ã§ããã®ã¢ããªã±ã¼ã·ã§ã³ã®GPLè¦ä»¶ãæºããããã«ããªããã°ãªããªãã
- ãã®ã¨ãããã®ã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ãã¨ãã¦ã¤ã³ã¹ãã¼ã«ããR6RSå®è£ ãä¾åã©ã¤ãã©ãªãGPLäºæã§ãªããã°ãªããªãã
ããããé常ã®å®è£
ã¯ã¹ã¯ãªããã®ã³ã³ãã¤ã«çµæããã£ãã·ã¥ããªãã®ã§ãæ´¾çç©ãä½ããªããã ããå®è¡ç°å¢èªä½ã®GPLäºææ§ã¯åé¡ãªããã¾ããä»ã®moshã¯GPLäºææ§ã®ããã©ã¤ã»ã³ã¹ã®ã½ããã¦ã§ã¢ã§æ§æããã¦ããã®ã§åé¡ãªãã
ä¸æãªã®ã¯ :
- R6RSã®ãããªã³ãã¥ããã£æ¨æºã§ãã£ã¦ããGPLã®ããStandard Interfaceãæ§æã§ããã®ãã
- (ã¤ã³ã¹ãã¼ã«ãªã©ã®ã¿ã¤ãã³ã°ã§)æé»ã«çæãããã³ã³ãã¤ã«ãã£ãã·ã¥ã¯æ´¾çèä½ç©ãªã®ãã
- ããã±ã¼ã¸ãåå²ããã¦ããå ´åã¯ã©ã®åä½ãèä½ç©ã¨ããã®ãã
*1:http://github.com/okuoku/mosh/blob/31c73153050893d5af572b84ef067f58f6983f24/ext/treasures/tabe/DESC.R6RS ã解éãããããªã¤ã³ã¹ãã¼ã©ãmosh_configã«çµã¿è¾¼ããã¨ãã¦ããã
*2:ä¾ãã°Javaã¯å¤ãã®äººãStandard Interfaceã§ããã¨èªèãã¦ããããããã¯ä¸ä¼æ¥ãªããã³ãã¥ããã£ã®æ¨æºã§ãããªãã