Ruby on Railsã®GPLæ±æã¾ã¨ãï¼mimemagicã®ä»¶ï¼
("æ±æ"ã¨ããè¨èããã¾ãè¯ãæããªãæ¹ãããã¨å¾ããç¥ãã¾ããããããã«ãã®éãã ã¨æãã¾ãã次ããæ°ãä»ãããã¨æãã¾ãããã¨ããããæ¬è¨äºã§ã¯ãã®ã¾ã¾"æ±æ"ã®è¡¨ç¾ã使ãã¾ãããäºæ¿ãã ããã)
2021å¹´ã®3æãçªå¦ã¨ãã¦Railsã®GPLæ±æã®è©±é¡ããããä¸ãé§ãå·¡ãã¾ããã
ãªãã£ã¼ãã¹ãã¼ã«ãã³ãFSFã¸ã®å¾©å¸°ãçºè¡¨ããé端ã«ãããªãã¨ãèµ·ãããªãã¦â¦ã å¶ç¶ã«ãã¦ã¯ãããã¿ã¤ãã³ã°ã§ããã
GitHub Enterpriseã®ã³ã¼ããå ¬éãããã®ï¼ã¨çãä¸ãã£ã¦ããã¾ãããæããã¦ã©ããªãã¾ãã§ããããã
ãã¦ä»åã¯æ¬ä»¶ã«ã¤ãã¦ã¾ã¨ãã¦ããã¾ããæè¡è ã ãã§ãªãæ³åãç¥è²¡ã®ç®ç·ã§ãåããããã«æ¸ãã¦ããããã¨æãã¾ãã
â ç§ã¯æ³å¾ã®å°é家ã§ã¯ããã¾ããããã®è¨äºã«æ³çæ ¹æ ã¯ããã¾ããã®ã§ä½ããã£ã¦ã責任ã¯åãã¾ããããç解ãã ããã
æ¦è¦ï¼çµç·¯ï¼
æ¦è¦ã¯ãã®issueã®ããã¨ããè¦ãã¨è¯ãã§ããããã
Railsã§ã¯mimemagicã¨ããOSSï¼gemããã±ã¼ã¸ï¼ã使ããã¦ãããã§ãããæ¬gemã«GPLã®ã³ã¼ããæ··ãã£ã¦ããã¨ããã®ãä»åã®è©±ã«ãªãã¾ãã â»æ£ç¢ºã«ã¯ãRailsâactivestorageâmimemagicã®é ã§ä¾åãã¦ããããã§ãã
mimemagicã¯MIME Typeãèå¥ããã©ã¤ãã©ãªï¼MITã©ã¤ã»ã³ã¹ï¼ãªãã§ãããMIME Typeã®å®ç¾©æ å ±ï¼xmlï¼ãæã£ã¦ããããããshared-mime-infoã¨ããå¥OSSã®xmlï¼ã©ã¤ã»ã³ã¹ãGPLï¼ã ã£ãããã§ãã
mimemagicã®éçºè ã¯issueã§ãã®ææãåããã©ã¤ã»ã³ã¹ãMITâGPLã«å¤æ´ï¼ãã¼ã¸ã§ã³ã¢ããï¼ãããã®å¾rubygems.orgï¼gemãå ¬éãã¦ããã¨ããï¼ã§éå»ãã¼ã¸ã§ã³ãyankedï¼å ¬éåæ¢ï¼ããä¸ã§ãææ°çãå ¬éãã模æ§ã
ããã«ãããmimemagicã«ä¾åãã¦ããããã¸ã§ã¯ãã®CIï¼è¦ã¯ãã«ãï¼ãè»ä¸¦ã¿å´©å£ï¼ãã¾ãã¾ãªããã¸ã§ã¯ãã§å½±é¿ãåºããã¨ããã®ãä»åã®ä»¶ã®å¤§ã¾ããªæµãã§ãã
ã§ãå½±é¿ãåããããã¸ã§ã¯ãã®ä¸ã¤ãRailsã§ãããRailsã£ã¦GPLã«ãªãã®ï¼ããRails使ã£ã¦ãGitHub Enterpriseã©ããªãã®ï¼ãã¨ãã£ã話ãåæã§åºããã¨ã«ãªãã¾ããã
ãã ãææ°ç¶æ³ï¼3/25ã®å¤ã®æç¹ï¼ã¨ãã¦ã¯ãmimemagicã®éçºè ã¯è©²å½ã®xmlãåãé¤ãã¦MITã©ã¤ã»ã³ã¹ã«æ»ããææ°çãå ¬éãã¦ããããã§ãã
ã追è¨ãããã«ææ°ç¶æ³ï¼3/27æç¹ï¼ã¨ãã¦ã¯ãRailsã®æ°ãããã¼ã¸ã§ã³5.2.5/6.0.3.6/6.1.3.1ã§ã¯mimemagicã«ä¾åããªããªãã¾ããã
äºå®ç¢ºèª
念ã®ããå®ç©ãè¦ã¦ããã¾ããå ãã¿ã§ããshared-mime-infoã®è©²å½ãã¡ã¤ã«ï¼ã¨æããããã¡ã¤ã«ï¼ããã¡ãããããã«GPLã§ééããªãããã§ãã https://gitlab.freedesktop.org/xdg/shared-mime-info/-/blob/master/data/freedesktop.org.xml.in#L63-79
次ã«ããããæ¬å½ã«mimemagicã§ä½¿ããã¦ããããmimemagicã®ãªãã¸ããªãè¦ã¦ã¿ã¾ããææ°çã§ã¯freedesktopã®ãã¡ã¤ã«ãåé¤ããããããªã®ã§ãéå»ã®å±¥æ´ãã確èªãã¦ã¿ã¾ããscript/freedesktop.org.xml
ã該å½ãã¡ã¤ã«ã®ããã§ããããã«æãã£ããGPLã¨æ¸ããã¦ãã¾ãã
https://github.com/mimemagicrb/mimemagic/blob/40dd02bb6b442535f97c35326c0383bc67146ac4/script/freedesktop.org.xml#L63-L79
ãã¨ããã®xmlãæ¬å½ã«gemããã±ã¼ã¸ï¼ãã«ãææç©ã¨ãã¦å®é使ãããã¢ã¸ã¥ã¼ã«ï¼ã§ä½¿ãããã®ã確èªãã¦ã¿ã¾ãã
40dd02bb6bãããã¨è¦ãæãã
script/freedesktop.org.xml
ãåºã«lib/mimemagic/tables.rb
ãçæããtables.rbãå«ãã¦libé ä¸ãgemåããï¼testãã£ã¬ã¯ããªï¼scriptãã£ã¬ã¯ããªã¯å«ã¾ããªãï¼
ã¨ããæµãã«ãªã£ã¦ããããã«è¦ãããxmlèªä½ã¯gemã«ã¯å«ã¾ããªãããã§ãããï¼ãã¶ãåã£ã¦ããã©ééã£ã¦ããææãã¦ãã ããï¼
念ã®ããrubygems.orgãè¦ã¦ã¿ããã¼ã¨æã£ããã©éå»ver.ã¯å ¬éããã¦ããªãããå®ç©ã¯ç¢ºèªã§ãããwayback machineã§ãgemåããªãã®ã§è«¦ããã¾ããããã
ã¨ããããçµè«ã¨ãã¦ã¯ããGPLã®xmlãã®ãã®ã¯gemã«å«ã¾ããªãã£ã½ãããxmlãåºã«çæããrubyãã¡ã¤ã«ãgemã«å«ã¾ããããããªå½¢ã§ãããã¨ãåãã£ãã
GPLæ±æãã©ãã
ãããä¸ãè¦ã¦ããã¨ãRailsãGPLã«ãªã£ã¡ããã®ãããRailsã¯GPLã®ã©ã¤ãã©ãªãèªã¿è¾¼ãã§ããã ãã ããå½±é¿ãªãã§ããï¼ãã¨ãã£ãæè¦ãæ£è¦ããã¾ãã ãããã«ã¤ãã¦å°ãè£è¶³ãã¾ãã
ã¾ããRailsã®ã³ã¼ãèªä½ã¯MITã©ã¤ã»ã³ã¹ã®ã¾ã¾ã§åé¡ããã¾ãããã§ããããRailsããã³ãã®ä¾åé¢ä¿ã³ã¼ããå«ãä½åå ¨ä½ãã¯GPLã§ã©ã¤ã»ã³ã¹ããªããã°ãããªãå¯è½æ§ãããã¾ãã
ãã®ä½åã«ã¯mimemagicï¼GPLï¼ãå«ã¾ãã¦ãã¦ãGPLã«ã¯ãä½åå ¨ä½ã«GPLãé©ç¨ãããã¨ãã¨ããæ¡ä»¶ãããããã§ãã
ãªã®ã§ãRailsã¨ãã¦ã¯èªèº«ã®MITã©ã¤ã»ã³ã¹ãå¤ããå¿ è¦ã¯ãªãããRailsã使ã£ã¦ä½ãä½ã£ã¦ããããã¸ã§ã¯ãã«å½±é¿ãåºã¦ãã¾ãï¼Railsã¡ã³ããå´ã¨ãã¦ãæ¾ç½®ã§ããªã ã¨ããç¶æ ã§ãã
ã¾ããããããRailsã«ã¯å½±é¿ãªãã§ããï¼ãã®æè¦ã«ã¤ãã¦ã§ãããããã¯ãä½åãã®å®ç¾©æ¬¡ç¬¬ã¨ãªãã¾ãã
ä¸è¬çã«ä½åã®å®ç¾©ã¨ãã¦ã¯ããªã³ã¯ãããã®ãä¸ã¤ã®ä½åã¨ãããã®ãå®èª¬ã«ãªã£ã¦ãããã¨æãã¾ãã
ããã«å¯¾ãã¦ãä»åã¯ãRailsãgemããã±ã¼ã¸ãèªã¿è¾¼ãã§ãããç¶æ ã§ããããããGPLãã©ãæãããï¼ãåé¡ã«ãªãã¾ãã
ã¾ãããããRailsã使ã£ã¦ä½ã£ãWEBã¢ããªã±ã¼ã·ã§ã³ã¯ä¸ã¤ã®ä½åã¨ãã¦æ±ãããã®ã ã¨æãã¾ãããããã°ããã¯ä½ã¨ãè¨ãã¾ããã
ã¾ããä»åå°ãç¹æ®ãªã®ãã対象ãGPLã®xmlã§ãããã¨ãã¾ããé å¸ãããã®ãxmlããåºåããrubyã®ã³ã¼ãã§ãããã¨ã§ãã
ãã®æãã ã¨ããªã詳ãã人ã«å¤æãå§ãããã¨ã«ãªãã¨æãã¾ãã
ä¼æ¥ã ã¨é常ã¯å®å ¨å´ã«åãã®ã§ããã®é¡ã®ãã®ãGPLæ±æã¨ãã¦èããã®ãæ®éã§ã¯ãªãããªã¨æãã¾ããããã¾ã§æãã ãã§ããã
ãªããGPLæ±æãã©ããã®å¤æã«ã¯GPLã®FAQã使ããã®ã§åç §ãã ããããã ä»åã®ãã¿ã¼ã³ã«ã¤ãã¦ã¯è¯ãä¾ã¯ãªãæ°ã¯ãã¾ãã
ã追è¨ãããããè«ã¨ãã¦xmlã®èä½ç©æ§ã«é¢ããè°è«ãããã¾ããã freedesktop.org.xmlの著作物性 - 西尾泰和のScrapbox
ãããããã¡ã®Railsã¢ããªãGPLæ±æãªã®ï¼
ããã«ã¤ãã¦ã¯ãããããã®Railsã¢ããªãå¤é¨ã«æä¾ãããªããGPLãé©ç¨ããå¿ è¦ãåºã¦ãã¾ãã
ä¾ãã°ãRailsã使ã£ã¦ä½ã£ããµã¼ã製åï¼mimemagicãå«ã製åï¼ã販売ãããããªå ´åã該å½ãã¾ãã
å ¸åçãªä¾ã¨ãã¦ã¯ãGitHub Enterpriseï¼ãªã³ãã¬çï¼ã該å½ããã¨æããã¾ãï¼ã ããã¿ããªé¨ãã§ãï¼ã
éã«ãã¯ã©ã¦ããµã¼ãã¹ã®ããã«èªç¤¾ã«ãµã¼ãããã¹ããã¦ãµã¼ãã¹ã¨ãã¦ä½¿ãåã«ã¯åºæ¬çã«ãã®ãããªåé¡ã¯ããã¾ããã
GPLã¯ã©ã¤ãã©ãªã®åé å¸ï¼å©ç¨ï¼ã®éã®æ¡ä»¶ãªã®ã§ãåé å¸ããã«èªç¤¾ã®ãµã¼ãä¸ã§åããã ããªãåé¡ãªãã§ãã
ãã ãAGPLãªã©ããµã¼ãå´ã§åããã ãã§ãå½±é¿ãåºã¦ããã©ã¤ã»ã³ã¹ãããã¾ãã®ã§ãã©ã¤ã»ã³ã¹ã®ãã§ãã¯ã¯ã©ããªããã¸ã§ã¯ãã«ããã¦ãã¡ããã¨å®æ½ããå¿ è¦ã¯ããã¾ãã
ã§ãmimemagicã®ææ°çã¯å®å ¨ã«MITã©ã¤ã»ã³ã¹ãªãã ããï¼
ããã§ãããªã®ã§ãRailsãmimemagicã®ææ°çãèªã¿è¾¼ãããã«ãªãã°ããRailsã®ææ°çã¯ã使ã£ã¦ãç¹ã«åé¡ãªãã¨ãªãã¾ãã
ãã åé¡ãªã®ã¯ãããã¾ã§Railsãmimemagicï¼GPLå«ãï¼ã«ä¾åãã¦ãã¾ã£ã¦ãããã¨ã§ããã¤ã¾ããããã¾ã§Railsã使ã£ã¦WEBã¢ããªè£½åãä½ã£ã¦å£²ã£ã¦ããä¼æ¥ã«ã¯å½±é¿ãåºã¾ãã
ä¾ãã°GitHub Enterpriseã§ããã°ãéå»ã«ãªã³ãã¬ãã¹çã売ã£ã¦ãã顧客ã«ã¯ããã¾ã§ã®GitHub Enterpriseã®ãã¼ã¸ã§ã³ã«å¯¾å¿ããã½ã¼ã¹ã³ã¼ãã¯é示ã®ç¾©åãçºçãã¾ãã
å®è³ªçã«GHEã®ãªã¼ãã³ã½ã¼ã¹åã¨è¨ãã¦ãã¾ãããããã¾ããã
ãã¹ã£ã¦GPLæ··å ¥ãããã®ã¯mimemagicãªã®ã«ãGitHubå¯åããã§ã¯ï¼
ããã§ããªãã¨æãã¾ãã
ãããæçµçã«ã¯å°é家ãå¤æãããã¨ã§ããã©ãåºæ¬çã«OSSã¯ä½ã®è²¬ä»»ãä¿è¨¼ããªãå ¬éããã¦ãã¾ãã
ãããã責任ã¯OSSã使ãå´ã«ããã¾ããããä»åã®ä»¶ã§OSSå´ãæªãã¨ããã®ã¯ç¡çãããã¾ãã
OSSã®ä¸èº«ãã¡ããã¨èª¿ã¹ãªãã£ããå©ç¨å´ã®è²¬ä»»ã§ãã
ãããã£ã責任ãããã®ã§ãä¸ã®ä¸ã«ã¯OSSã®ã©ã¤ã»ã³ã¹ããã§ãã¯ãããã¼ã«ãããããããã¾ãã
GitHubã ã£ã¦licensedã£ã¦ããOSSã®ã©ã¤ã»ã³ã¹ããã§ãã¯ãããã¼ã«ãå ¬éãã¦ãã¾ããèªåãã¡ã§ã使ã£ã¦ãããããªã®ã§ããã®è¾ºã¯ãã£ãã対çãã¦ããã¯ãã§ãã
ãã ä»åã®å ´åã¯gemã®ä¸èº«ã¾ã§ã©ã¤ã»ã³ã¹ãã§ãã¯ããªãã¨ãããªãã®ã§ãlicensedãªã©ã®åç´ãªã©ã¤ã»ã³ã¹ãã§ãã¯ãã¼ã«ã§ã¯ææ¡ã¯é£ããã£ãããã¨æãã¾ãã
ããããFOSSAã®ãããªã¯ã©ã¦ããµã¼ãã¹ã使ã£ã¦ã³ã¼ãã¬ãã«ã®ã©ã¤ã»ã³ã¹ãã§ãã¯ããã¦ããå¿ è¦ããã£ãã®ã ããã¨æãã¾ãã
対å¿ç
以ä¸ãä»åã®ä»¶ã«ã¤ãã¦ã®è©±ã«ãªãã¾ãã
ã¨ããããã¯Railsã³ãã¥ããã£ãGitHub社ã®åããå¾ ã£ã¦ãã対å¿ãèããã¹ãã¨æãã¾ãããä»®ã«GPLæ±æã ã¨ããå¤æã«ãªã£ãå ´åã«ããã£ãæ¹ãè¯ããããªãã¨ãæ¸ãã¦ããã¾ãã
ã¾ããGPLã使ãã®ããã¡ãªããã¸ã§ã¯ã/ä¼ç¤¾/çµç¹ã§ããå ´åã«ã¯ãmimemagicãã©ãã§ä½¿ããã¦ãããææ¡ããå¿ è¦ããããã¨æãã¾ãã
mimemagicã«ä¾åããã®ã¯Railsã ãã§ã¯ãªãã®ã§ãmimemagicã«ä¾åããã©ã¤ãã©ãªã«ä¾åããããã¸ã§ã¯ãããè¦ææ¡ã¨ãªãã¾ãã
mimemagicã®è¢«ä¾åæ§ã«é¢ãã確èªã¯rubygems.orgã®reverse_dependenciesãè¦ãããlibraries.ioãè¦ããããã°è¯ãã¨æãã¾ãã
ï¼ã§ãç¹å®ãã¼ã¸ã§ã³ã®è¢«ä¾åæ§ã®ç¢ºèªã¯ã§ããªãã£ã½ãâ¦ããã¾ããâ¦ï¼
ã©ãã«ããã¦ææ¡ããããã¾ããããã«ã¤ãã¦ã¯mimemagicã®ææ°çãé©ç¨ãããããã«ãã¾ããRailsãæ©ããã¡ã«å¯¾å¿çããªãªã¼ã¹ãããã¨æãã¾ãã®ã§ãããããææ°ã«ãã¹ãã§ãããã
ã§ãåé¡ã¯ãã§ã«ãªãªã¼ã¹ããã¦ãã¾ã£ã¦ãããã®ã§ãããããã«ã¤ãã¦ã¯â¦ ã©ããªããã§ãããããæ¬å½ã«GPLé©ç¨ãªã®ããªï½ï½ ãã°ãä¼æ¥ç¸å½åºã¦ããã¨æããã ãã©â¦ã
ããã¨ãªã£ãããã¾ãã製åã¯GPLé©ç¨ï¼å¿ è¦ã«å¿ãã¦ã½ã¼ã¹ã³ã¼ãæä¾ãã¨ãããã¨ã«ãªãã®ã§ããããã
ã¾ãã§ãããã¯ãã¯ãä»å¾ã®åããè¦ã¦ããã®å¤æã«ãªããã¨æãã¾ãã
çæçãªå¯¾å¿ã¨ãã¦ã¯ãããªããã§ããããã
é·æçã«ã¯ãã¯ãCI/CDã®æµãã§FOSSAãªã©ã使ã£ã¦ã常æã©ã¤ã»ã³ã¹ããã§ãã¯ããä»çµã¿ãæ§ç¯ãã¹ãã¨æããã¾ãã
ã¾ãäºå¾å¯¾å¿ã§ãè¯ãã¨ããå ´åã«ã¯SourceGraphãªã©ã®å°å ¥ãã¦ããã¤ã§ã社å ã®ã½ã¼ã¹ã³ã¼ããæ¤ç´¢ã§ããããã«ãã¦ããã¨è¯ãããããã¾ããã
ã¾ã¨ã
éä¸ããæ³åãç¥è²¡ã®ç®ç·ãå¿ãã¦æ¸ãã¦ãã¾ãã¾ããããã¿ã¾ããã
ã¨ããããèªåã®ç解ãæ¸ããã¦ããã ãã¾ããããããããç¹ã¯ææãã ããã
ã¾ãå度è¨ãã¾ãããç§ã¯æ³å¾ã®å°é家ã§ã¯ãªãã®ã§ãä½ã®è²¬ä»»ãåãã¾ããã®ã§ãããããé¡ããã¾ãã