我不同意這裡的多數意見。顯然,大多數人都說您不應該這樣做。我不一定對此表示不同意見,但是在很多情況下,潛台詞和明顯的信息是您在法律上不能這樣做,而不僅僅是您不應該這樣做。在您的情況和一般情況下,該消息的法律正確性還很遙遠。
很高興看到,儘管我是少數派,但並不是那麼晦澀,沒有其他答案與我的觀點相符,或者所有與我的觀點一致的答案都被否定了。我同意 @ Kittoes0124信息的精神。
作為少數派,我們當然應該從謹慎的多數中學到一些東西:許多開發人員因侵犯版權或其他原因而被解僱,甚至更糟。侵犯知識產權。不幸的是,結果導致社區的防禦能力過高,結果是開源社區和整個社會受到損害,這得益於強大的OS社區。
一個apropos評論引用了“潔淨室設計”,它是一種法律上受人尊敬且經過實踐檢驗的功能複制方法,不會侵犯版權。請注意鏈接的文章中有關潔淨室設計的內容,並帶有特定的法律案例支持:
潔淨室設計通常是最佳做法,但法律並不嚴格要求。在NEC Corp.訴Intel Corp.(1990年)一案中,NEC尋求針對英特爾指控NEC的工程師只是在其NEC V20克隆中復制8086處理器微代碼的聲明性判決。一名美國法官裁定,雖然NEC的內部代碼的早期內部修訂確實侵犯了版權,但實際上進入NEC產品的後一個版本雖然是前者的衍生版本,卻與Intel的微代碼有很大不同,因此可以認為該版本不包含以下內容:侵犯版權。
這是美國的正確標準。它基於判例法,而不是開發人員的意見或軼事。您可以參考專有代碼和個人經驗作為參考,甚至可以將文字代碼用作具體的起點,但是最終代碼必須“足夠不同”。
這似乎是模棱兩可的和任意標準,因為事實就是如此。法官對規則的解釋寬大,但規則很明確。普遍的看法是“安全勝於遺憾”,這就是為什麼許多專業人員遺憾地避免公開顯示任何代碼的原因。通常,尋求內部公司的批准更為明智,風險也較小,但這在法律上通常不是必需的。如果您簽署了一些其他文件,或者您所在的管轄區有特殊法律,則可能在法律上是必不可少的。
在您的特定情況下,重要的一點是,您提議的代碼與以下代碼之間存在重要差異。原始代碼。您聲明原始代碼是特定於平台的,並且建議提供獨立於平台的代碼。這意味著遺留代碼無法支持某些用例。這是證明明顯差異的一種方法。您可以通過使解決方案有意與舊平台不兼容來進一步增強這種差異。這將意味著根本沒有用例重疊。
我不是律師,這也不是法律建議。我確實建議您決定是否要這樣做,請諮詢律師。我看到美國有很多法律先例可以支持這樣一個事實,那就是在您編寫代碼時,您自然會汲取先前的經驗和知識,包括參考具體的代碼示例,但這並不意味著開源是非法的。
不必擔心使用相同的語法。許多語言和庫僅提供一種完成某件事的語法方法,並且對於函數,變量等存在最佳實踐,因此對於功能複製而言,即使使用相同的變量名也不可避免。在這種情況下,可能不會出現重大差異,因此不是合理的要求。
請記住,如果您簽署了特定的NDA或某些其他文檔,則這些一般性概念將是完全不可抗拒的。 p>另外兩個相關說明。首先,在美國,侵犯知識產權的行為受到限制(來源):
侵犯版權可能導致民事和/或刑事責任。刑事訴訟時效為五年,而民事訴訟時效為三年。
第二點是,知識產權只有4種(AFAIK / IANAL) (源):
- 版權
- 商標
- 專利
- 商業秘密
ol> 如果您要處理的IP不屬於1-3類,那麼修改代碼供自己使用的法律問題就更少了。在我看來,如果X是其他軟件中的常見模式或功能,特別是如果它已存在於開源項目中,那麼任何人都可能認為X是商業秘密。