「遵循XXX開源協議」這句話規定了什麼,我要把某個js工具用在項目中,我具體要做哪些事情才算遵循協議?

1、現在想學D3.js,官網說要遵循什麼什麼協議,網上搜了一下,還是不明白「遵循開源協議」到底是要我怎麼做?難道是要我把自己寫的破代碼放到GitHub上?原諒我是個菜鳥。。。不明白啥意思。

2、還有,那些收費的js框架是幾個意思?好想要什麼license?比如ExtJs和SpreadJs,瀏覽器訪問用了這個框架的項目不就搞到js源碼了嗎?他們是怎麼監督不被盜用的,難道是加密了還是什麼?對個人貌似免費,也是遵循什麼協議?我只是想個人學習,我該怎麼做?

3、好像JQuery也是要遵循協議,但我用了很久,就是在項目里引用了一下,別的啥也沒幹,這麼久了也沒見有人跟我說不可以這麼做,有沒有什麼不妥?

4、一個盈利的項目用了收費js框架,只是內網使用,也就是天知地知甲方知乙方知,那麼這些收費框架是怎麼保護知識產權的?

5、到底什麼才算開源,那我不用github,就僅僅把項目傳到網上隨便什麼地方公開,算不算開源?

原諒我懂得太少問得太多。。。百度真的搜不到這些東西,谷歌太卡,我英文也費勁。。。其實我就想知道我用這些框架具體怎麼做才不違法或者不違規。


你把源碼裡面藏著的協議文件通讀一遍,然後把要求你做的都做了,這就遵守了。

而且除了AGPL以外,你不分發你的軟體就不需要分發你的源代碼。所以公司內部用的工具可以隨便來,需要發售的則遵守協議。

最後一點,GPL系列協議是不受我國法律支持的,而且我國的合同法可以允許你僅刪除不受支持的條款,而不需要讓你拒絕整份合同。所以GPL協議就等於沒有協議。


一張圖說明,(轉載)


1. D3.js的協議應該是BSD協議。BSD協議是很寬鬆的。自己可以上網查一下BSD協議中文相關的資料。個人的建議,在自己做項目的時候,在文檔或者軟體的關於等頁面註明使用了哪些開源軟體是極好的。

2. js源代碼應該也都是混淆過的。不過人家有自己的協議,受法律保護。這個就要認真遵守。你做的東西除非沒有人用,要是有人用,早晚會被發現。要想人不知,除非己莫為。只有每個人都遵守遊戲規則,才能保護自己的利益。

3. jquery的授權協議也比較寬鬆,是MIT的,自己上網查。

4. 使用了收費的js框架,莫以為別人不知。天知地知,甲方乙方均知,所有參與人員均知,何為不知? 且不說人家官方會不會追究你們的責任,你們估計也都違反了甲乙雙方的合同。甲方一般會要求你們開發的軟體沒有版權爭議的。

5. 什麼是開源,這是一個大問題。你可以在網上搜索下什麼是開源軟體,什麼是自由軟體。就大概知道了。

你把源代碼放出來,可以理解為是寬泛意義上的開源。但如果沒有明確的授權協議,別人其實使用起來是有風險的。所以嚴格意義上來講的開源軟體,是有嚴格的授權協議的。


不要用百度,不會翻牆用必應或者雅虎也好。英文不懂請機翻。

D3和jQuery的協議都很寬鬆,如果你只是引用這些庫,保留它頭部的版權信息就可以了。BSD許可證要求不能以這個庫的開發者的名義做廣告,這個也很好規避。

商用軟體一般有EULA或者開發者條款,按條款操作就可以,做商用軟體的,用人家的商用產品,連條款都不願意讀就很成問題了。

開源不意味著上傳到哪裡,而是以符合要求的開源許可證來提供軟體,除了AGPL以外不強制對公眾發布,至多你分發給誰就給他一份License就行。


問題好多,建議分開問。

耐心閱讀協議內容

谷歌太卡說明你的梯子不行,要換


在自己確定用明白之前可以先忽略這些話。


推薦閱讀:

什麼是JS跨域訪問?
請問如果一個線程能夠非同步執行,是否是因為另一個線程幫其承擔了同步的操作?
理解 React,但不理解 Redux,該如何通俗易懂的理解 Redux?
一個 ul 里有若干 li,點擊 li 時能方便地知道這是 ul 中的第幾個 li 嗎?
相比Angular,Avalon有什麼缺點呢?

TAG:程序員 | JavaScript | 開源 | 開源許可證 | 前端開發框架和庫 |