プロトタイピングのためにGPLライブラリを一時的に使用し、将来のコードをクローズドソースにすることはできますか?


23

私はソフトウェアシステムのプロトタイプを作成しています。これは(少なくとも最初は)クローズドソースになります。

時間を節約するために、GPLv3でライセンスされているライブラリを使用する(つまり静的にリンクする)ことを考えているので、設計をすばやくテストできます。この段階でソフトウェアを配布した場合、ソースコードも一緒に配布する必要があります。

そうしないが、システムが動作することを確認し、配布する前にGPLライブラリを自分のコードに置き換えたらどうなりますか?結果はGPLによって「汚染」されますか?

私は、GitライブラリーをGitの履歴に保持するかどうかが、違いを生む可能性があると感じています。


16
「GPLに汚染された」という表現が好きです。
Arseni Mourzenko

7
それはライセンスのウイルス性とうまくいきます:)
ローランS

5
間違っている場合は修正しますが、gitでコードをホストしながら、クローズドソースシステムをリリースしたいですか?(そして、このgitは他の人が読むことができると思います。そうでなければ、なぜGPL
ライブラリが

3
@ user2813274では、プライベートGitリポジトリを作成できます。
アルトゥーロトーレスサンチェス

5
この質問に興味がある場合は、新しいオープンソースStackexchangeの提案にも興味があるかもしれません。
フィリップ

回答:


20

GPL は次のように書いています

以下のすべての条件を満たしている場合、セクション4の条件に基づくソースコードの形式で、プログラムまたはプログラムから生成するための修正に基づいて作品を伝えることができます。

したがって、この条件は、作業がライブラリに「基づいている」場合にのみ適用されます。ライセンスは次のように定義します。

作品を「変更」するとは、正確なコピーを作成する以外に、著作権の許可を必要とする方法で作品の全部または一部をコピーまたは改変することを意味します。結果の作品は、以前の作品の「修正版」または以前の作品に「基づいた」作品と呼ばれます。

それはあなたのプログラムは、それがある場合にのみ、ライブラリ「に基づく」されている派生作品の著作権法に従いました。その用語の法的定義は司法管轄区によって多少異なり、通常はソフトウェアに直接対処しません。たとえば、米国著作権法は次のように書いています。

「派生作品」とは、翻訳、音楽の編曲、ドラマ化、フィクション化、映画版、録音、芸術の再現、短縮、凝縮、または作品が含まれるその他の形式など、1つまたは複数の既存の作品に基づく作品です。リキャスト、変換、または適合させることができます。全体として原作者の原作を表す編集上の改訂、注釈、詳細化、またはその他の修正からなる著作物は「派生著作物」です。

これがソフトウェアにとって何を意味するかは、以前の同様の裁定に基づいて、裁判所によって解釈されなければなりません。私は、裁判所があなたの訴訟をどのように決定するかを確実に言うために、あなたの管轄区域の関連する判例法に十分精通していません。「GPLライブラリを独自のコードに置き換える」ことは、特にコードがGPL実装に強く触発されている場合、翻訳行為であると主張することができます。GPLライブラリのAPIを再利用しても、お湯に浸かる可能性があります(OracleとGoogleを参照)。

答えがあなたにとって重要な場合は、インターネットで見知らぬ人に尋ねるのではなく、有能な法的助言を求めることをお勧めします。


1
わかりました、これは面白いです。APIを共有することは二次的著作物であるとは考えられませんでした。
ローランS

この答えは、以下の答えで私がやろうとしていたのと同じポイントですが、はるかに明確な方法です。+1
マイケルショー

23

GPLのライブラリにリンクしている間、誰にもソフトウェアをリリースしない限り、あなたは安全です。GPLのバイラルな側面は、ソフトウェアを配布する場合にのみ有効です。

もちろん、LGPL、APL2、またはMITなど、より寛容なライセンスのライブラリを見つけることができればさらに良いでしょう。


明らかに、寛容なライセンスを持つ別のライブラリを見つけようとします。しかし、失敗すると、コードの将来の状態を配布することで、git履歴に古いGPLコードを含めることができ、その条件を破ることはできないように思えます。
ローランS

5
この答えは、ライブラリの新しいバージョンを実装するときに派生作品を作成するリスクを考慮していません。
マイケルショー

4
@Ptolemy git履歴がリリースされると、古いバージョンもリリースされることに注意してください。カウントするためにバイナリ形式である必要はありません。
ピオジョ

2
@piojo一方、それはせいぜいあなたがその古いバージョンをGPLの下でライセンスする(そしてそのためのソースを配布する)ことを義務づけています。ある時点でコードの唯一の著作権を所有している場合は、将来のすべてのバージョンをクローズドソースにすることができます(ただし、古いバージョンは引き続きGPLの下にあります)。古いバージョンのプロプライエタリなコンテンツの量に応じて、問題が発生する場合と発生しない場合があります。
15年

1
Laurent SがGPLに続く他のすべてのコードの著者であり著作権所有者である限り、彼も安全です。彼ができるとされて許可され、これは後で結果かもしれません念のGPL3の条件の下で作品全体をリリースします。これは望ましくない場合がありますが、OPは明らかにどのような場合でも安全です(著作権が所有されている場合)。
-hakre

8

あなたの質問は実際にはGPLに関するものではないと思います。それはプロトタイプについてであり、将来それが成果物ソフトウェアシステムの基礎として使用されるかどうかです。

使い捨てのプロトタイプを作成していて、成果物システムでコードを再利用しない場合は、GPLライブラリを使用してください。

あなたが取ることができる3つのアプローチ

ただし、プロトタイプを進化させる場合(多くのマネージャーがプッシュします!)、次の3つのアプローチがあります。

  1. 非コアパーツを、JSON、REST API、または他のプロセス間通信言語/ライブラリを介してコアと通信する個別のアプリケーションに移動します。したがって、非コアパーツもGPLにすることができ、それらのGPLライブラリを使用できます。
  2. ライブラリを交換できるようにコードを設計します。これは、実装の詳細を隠すファサード作成すること意味ます。独自のライブラリまたはMIT / BSDライブラリに切り替える準備ができたとき。
  3. GPLされたコードをまったく使用しないでください。

最初のアプローチを採用することをお勧めします。そうすることで、将来、プロフェッショナルなポートフォリオの一部として使用できるオープンソースの作業ができるからです。

2番目のアプローチも優れています。それ、とにかくシステムを設計し、必要な正確な関数/クラスを作成し、その機能を満たすライブラリまたはカスタムコードが得られるまでそれらをスタブする必要があるからです。


2
GPLコードを別のプロセスに配置することは、それがプログラムの一部ではなくなったことを意味するわけではなく、したがって、残りのライセンスに関連しなくなります。ただし、それらを十分に分離するのに役立ちます。
デデュプリケーター

1
@Deduplicatorは、それらが十分ではない別個のアプリケーションである場合、別個のコードベースとして扱われる必要があります、あなたは正しいです。TwitterはBootstrapで、Facebookはすべてのライブラリで何をするのが好きです。コア専用コードを備えた非コアオープンソース。
ルドルフオラー

@omouse、組み込みソフトウェアなので、1はできません。2は私の最初の考えでしたが、プトレマイオスとメリトンが言及していることを見ると、私は二次的な作品を作っているように聞こえます。
ローランS

1
再:「あなたの質問は実際にはGPLに関するものではないと思う」:私は同意しない。ソフトウェアライセンスは、確かにこの種の使用を禁止できます。質問の「GPL」の部分を無視し、制限的な用語とウイルスの振る舞いを伴うオープンソースライセンスに関する一般的な質問としてそれを受け取った回答は、「わからない。ライセンスの条項を読む」。
-ruakh

二次的著作物を作成して破棄しても、二次的著作物は作成されたままであり、元の著作権者の許可/ライセンスがある場合にのみ作成できます。GPLを使用すると、そのライセンスを取得できます(破棄する前に派生物を配布しない場合)。他のライセンスでは、許可がない場合があります。ただし、損害賠償を求めて訴えるのは難しいかもしれません。
gnasher729

5

私はあなたのアプローチで考慮すべき2つの側面を考えることができます。1つ目は、プロジェクトを配布しない(またはGPLv3であるため、パブリックに使用できるようにする)ことにより、GPLの下でリリースされたコードを使用している間は、コードを配布するために必要な方法がわかりにくい再配布条件の下でもGPLライセンスの下で。

2番目の側面は、おそらくあなたにとってより重要です。GPLライブラリを置き換えるために独自の実装を作成する場合、派生物を作成しないように注意する必要があります。私はあなたがソースコードを直接コピーしないという善意を持っていると確信していますが、あなたはライブラリAPIの重要な部分をコピーしないよりも多くの可能性があります。

これが商用製品である場合、GPLv3ライセンスを注意深く読み、疑問がある場合は専門家の法的意見を求めて、このリスクを考慮および評価する必要があります。


4

GPLコードを置き換えるために独自のコードを記述することを計画している場合、クリーンルーム環境でコードを記述していないため、潜在的な問題が発生します。GPLコードを見たことがない人に、代替ライブラリを作成してもらいたいと思うでしょう。一方、別のライセンスに基づいて既に公開されているライブラリのGPLライブラリを単純に交換する場合、これは問題ではありません。他のライブラリはおそらくクリーンルーム環境で既に作成されています。


2

GPLされたコードを使用してリビジョンへのアクセスを提供すると、それらは完全にGPLされます。しかし、それはクローズドソースではないので、したくありません...

GPLのコードを使用しなくなった後の状態については、以前にGPLコードを使用したことは、単に無関係です。


2

GPLはディストリビューションでのみトリガーさます...変更されたバージョンまたは派生物をリリースしない場合は、何でもできます。

私は、GitライブラリーをGitの履歴に保持するかどうかが、違いを生む可能性があると感じています。

GitHubなどの公開リポジトリにソースを公開することを意味する場合、はい、問題が発生している可能性があります。gitを使用することは、プライベートの場合は無関係です。

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