LGPLはこれを許可していますか?


16

LGPLソフトウェアを使用して商用ソフトウェアを開発する予定です。

クラスで一部の機能を使用しているLGPLソフトウェアでは、完全には実装されていません。クラスの前にdllexportを追加し、関数の前に仮想キーワードを追加することにより、クラスと実装されていない関数がdllの外に見えるようにLGPLコードを変更します。

その後、これらの機能を独自のソフトウェアに実装する予定です。修正されたLGPLコードを配布する準備はできていますが、必要な機能を実装する独自のソフトウェアは配布しません。

LGPLの利用規約に違反していますか?



6
ここにあるあなたの質問の問題は、あなたが書かれた精神でライセンスを使用しようとしていないということです。ライセンスの意図された意味に関する質問にはおそらく答えることができますが、法的な詳細を確実に知ることはできません。そのため、私たちは弁護士のみを推薦することができます。さらに、あなたがしていることは、判例法で米国で解決されていない法的問題(LGPL化されたソフトウェアの派生作品とは何ですか?)に依存し、実際の弁護士の間で意見の相違を見てきました。(私は弁護士ではありませんが、これらの問題を何気なくフォローしています。)
デイヴィッド・ソーンリー

言いにくい。これを読んでください:javalobby.org/java/forums/t15903.html-彼らはJavaについて話しているのですが、どのOO言語にも適用できるようです。
マイクバランチャック

回答:


26

これは複雑な質問ですが、あなたが提案したことは許されないと思います。

ライブラリにサブクラスを追加しやすくするために、少なくともライブラリにフックを追加することをお勧めします。LGPL の精神をバイパスする。

問題は、自分のコードでLGPLライセンスの対象となるクラスをサブクラス化すると、あなたの作品はライブラリを使用する作品ではなく、ライブラリ基づいた作品になり、コード派生物であることを意味しますセクション6(LGPL v2.1)でカバーされているものではなく、セクション2(LGPL v2.1)でカバーされている作業。すなわち、LGPLの対象になります!

Stephen Colebourneはjavalobbyについての良い要約を提供していると思います。

私は膝ジャークの大ファンではない、あなたの弁護士に話の提案が、この場合には、私はあなたがこのを続行することを計画している場合、それはそうすることも価値があるだろうと思いますが、そうでなければ、から厄介な手紙を取得される可能性がありますフリーソフトウェア財団法務チーム。

または、FSFに直接質問することもできます。連絡先ページから:

フリーソフトウェアのライセンスと著作権に関する質問について

ライセンスに関するFAQライセンスリスト一般的なコピーレフト情報、および関連ページを確認してください。質問が残る場合は、<licensing@gnu.org>にメールしてください。

ちなみに、関連する質問ReflectionとLGPLでは、gbjbaanbLGPL 3.0の観点で答えています


4
「FSFに尋ねる」提案
-ZJR

私が読んだのは、彼らがLGPLライブラリのより多くの機能を公開したかったということです。結果のlibがまだLGPLであり、OPのソフトウェアのユーザーがlibをon buildで自由に置き換えることができれば
Beckett

3
@MartinBeckett-まったくそうではありませんが、質問者はライブラリを変更してLGPLを回避しようとしているため、クローズドソースコードのライブラリを密かに変更するのが容易になります。彼が新しいライブラリ機能をLGPLに直接追加し、それを自分のコードで使用した場合、問題はありません。それは、彼が自分の新しい機能をクローズドソースのままにしようとしているが、それでもライブラリの一部であるという事実です。それが問題です。
マークブース

6
LGPL 3.0の状態:「ライブラリによって定義されたクラスのサブクラスを定義することは、ライブラリによって提供されるインターフェイスを使用するモードと見なされます。」そのため、少なくともLGPL 3.0ではこれを許可する必要があります。
デビッド

3
@David-LGPLライブラリを変更して、通常はオーバーライドできない関数をオーバーライドできるようにすることで、コードが「ベース」ではなく「十分に」結合されていることを暗黙に認めていると思いますライブラリとの「使用者」関係により、弱いコピーレフトがアクティブになります。
マークブース

13

標準私は弁護士の免責事項ではありません。

LGPLでは、コードを使用した人に配布するために、ライブラリのソースコードを変更する必要があります。ライブラリを使用するコードをオープンソース化し、同じライセンスでリリースする必要ありませ

LGPLのより詳細であるが弁護士ではない説明(クラスの継承に関するセクションを含む)については、ウィキペディア


+1。要約すると、LGPLには違反していないと思われます(ただしIANAL)
MarkJ

@MarkJ- 私の答えで説明したように、提起されたように、質問が単にクラス継承の問題であることはわかりません。
マークブース

9
「ANAL」が含まれているため、人々はIANALと入力するのが好きだと思います。
g33kz0r

5

「LGPLコードを変更したい...」これは、その変更されたコードをリリースする必要があることを十分に述べています。そして、その変更されたコードを派生させる作業であるかどうかを拡張することは、競合の対象となり、もしそうであれば、LGPLの対象となります。

あなたがやろうとしているように見えるのは、LGPLを回避することです。この場合、これらの手法ではできません。

それが二次的著作物である場合、プログラムの条件は「顧客自身の使用のための修正およびそのような修正をデバッグするためのリバースエンジニアリング」を考慮しなければなりません。LGPLプログラムを使用する作品が二次的著作物であるかどうかは法的な問題です。

しかし、あなたがやろうとしていることがLGPLを回避することである場合、Mark Boothが推奨するようにFSFに連絡します。


1
問題は、LGPLでは派生物の一部の形式を許可し、他の形式を許可しないことです。ライブラリに基づく作業(LGPLである必要があります)とライブラリを使用する作業(ない)に分類される派生作品を区別するために、回答を更新しました。
マークブース

@MarkBooth私はあなたや他の人たちに同意します。この場合、work based on以前のプライベートコードを公開するためにLGPLを変更しているからです。

1

私の推測:(しかしIANAL)あなたがすべきリリースオープンソースとしてLGPLのコードのような修飾ライブラリをし、その後、商用プログラムにドロップします。それはうまくいくでしょう。事実上、ライブラリのオープンソースフォークが存在することになり、そのためのフロントエンドを販売することになります。

しかし、他の多くの人が正当に言ったように、FSF質問してください。該当するかどうかは、あなたと同じくらい不思議に思うかもしれません。(または、少なくともトピックについてのFAQエントリを公開するのに十分なほど気にします)


1

https://www.gnu.org/licenses/lgpl-java.html

LGPLライブラリをインポートするJavaアプリケーションを配布する場合、LGPLに準拠するのは簡単です。アプリケーションのライセンスでは、ユーザーがライブラリを変更し、コードをリバースエンジニアリングしてこれらの変更をデバッグできるようにする必要があります。これは、ソースコードやアプリケーションの内部に関する詳細を提供する必要があるという意味ではありません。もちろん、ユーザーがライブラリに加えた変更によってインターフェイスが破損し、ライブラリがアプリケーションで動作できなくなる可能性があります。そのことを心配する必要はありません。ライブラリを変更する人は、ライブラリを機能させる責任があります。

つまり、ライブラリコード自体を変更しない限り、継承に問題はありませんが、変更した場合でも、アプリケーションコードではなく、ライブラリが変更したコードのみをリリースする必要があります。


1
あなたの答えは他のいくつかの答えと矛盾しますが、あなたの主張を裏付けるものは多くありません。他の答えはより詳細であり、彼らの主張を説明するのにより良い仕事をします。してください編集あなたの主張をバックアップするために、ライセンスやFSFから関連する引用符を提供するために、あなたの答えを。

実際に私の答えは私の主張を裏付けるほど多くを提供しないのですか?LGPLとクラス継承に関する混乱を解消する公式のGNUページへのリンクを貼っていました。LGPL v3をカバーするように更新されます。
Nik.B

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.