Hi dnaoh,
所以依照你的表述,Extended WPF Toolkit Community Edition這隻程式本來就是獨立專案,並不是與GPL-3.0授權的SPAMs 2.5有開發承襲或參考的關係,並且直接以binary的.dll動態呼叫的方式,即可以被SPAMs 2.5引用。那多數的通說,會認為這兩個程式之間的互動方式,是屬於「彼此獨立(Independent and Separate)」形式的關係。
如果是這樣,我的建議是不需要將Extended WPF Toolkit Community Edition轉以GPL-3.0授權,因為一旦轉為GPL-3.0授權,那就是Binary以GPL-3.0散布,則後續也必須以GPL-3.0的方式,來提供你所使用Extended WPF Toolkit Community Edition版本的Source Code。(GPL-3.0的授權規則:提供了GPL-3.0授權的binary code,後續就必須向收受binary code之人,同採GPL-3.0的方式來提供Source Code。)而是直接在說明文件裡,言簡易賅的表明:該Extended WPF Toolkit Community Edition雖被包入專案裡運作,但是採.dll方式直接引用其binary form,所以該Extended WPF Toolkit Community Edition元件延續其MS-PL的授權方式來提供,視為專案裡與GPL-3.0程式互動,但僅單純呼叫功能的獨立元件。
做了這樣的聲明,原則上就是SPAMs 2.5是採GPL-3.0授權,而Extended WPF Toolkit Community Edition是採MS-PL授權,兩者的授權狀況因運作上的獨立性而不互相干涉和影響。而設若未來你散布了整個專案,需要將程式源碼提供給後手時,此時SPAMs 2.5的程式源碼,是採GPL-3.0的授權方式來提供;而Extended WPF Toolkit Community Edition,則是採用MS-PL的授權方式來提供。
這樣,可能是最簡單能解決你目前碰到困境的方式!
關於這種方式簡要的說明,我大略例示如下讓你作個參考,這些資訊可以放在程式整體專案的說明檔裡,例如readme,則可以達到合理宣示的效力:
The Extended WPF Toolkit Community Edition is applied as an independent and separate module in this project, interacted with the main component as a dynamic linked function. The license of that remains as Microsoft Public License (Ms-PL) declared by its original author at :wpftoolkit.codeplex.com/license .
希望上述的資訊對您有所幫助,如後續有其他疑問或想法,我們再接續討論。
20140729 17:25 LUCIEN C.H. LIN