安全にオープンソースバージョンとクローズドソースバージョンを並べて提供する最良の方法は何ですか?


8

私の会社は、4.0より前のVirtualBoxと同様に、独自の拡張バージョンとともに、オープンソースソフトウェアプロジェクトの開発とリリースを目指しています。

2つのコードベースを維持して、オープンソース製品への変更を簡単に商用バージョンに組み込み、誤ってプロプライエタリコードをオープンソース製品にプッシュするリスクを最小限に抑えるための最良の方法は何ですか?

回答:


9

2つのプロジェクトを作成します。

  1. スタンドアロンで実行できるOSSプロジェクト。
  2. OSSプロジェクトコードに依存する独自のコード。

依存関係は、ビルド時または実行時の依存関係にすることができます。各パッケージをスタンドアロンにする場合は、ビルド/パッケージの作成中に必要なOSSファイルを独自のパッケージでプルすることができます。実行時の依存関係に問題がない場合は、独自のコードだけをパッケージ化して、実行時にOSSパッケージに依存させることができます。

利点:

  • コードの重複から解放されます。
  • 1つで取得するためのコストで、両方のバグ修正を取得します。
  • OSSとProprietaryの明確な説明。

1
+2:可能であれば、独自の関数プラグインを作成します。人々はOSSバージョンでの経験から食欲をそそり、アプリを実行している間、新しい機能を直接購入/インストールできます。プロプライエタリプラグインごとにX日間の試用期間が設定されるように設定することもできます。これにより、コードベース管理の問題が解決するだけでなく、マーケティングが容易になります。
Peter Rowell、2009

1

ソース管理と分岐

ルートは、両方のディストリビューションに共通のコードです。また、(おそらく)ルートから2つのブランチを作成します。

Open Source

Closed Source

Open Sourceこのシナリオでは、おそらくルートをミラーリングします。定期的に、あなたはマージうOpen SourceClosed Source手で(Closed Sourceおそらく多くの更新として取得しません)。

このようにして、拡張をClosed Sourceブランチに保持し、オープンソースバージョンから新しい変更を取り込むことができます。


別のリポジトリを使用してこれを行う方法はありますか?オープンソースコードを含むリポジトリが一般に公開されることを期待しています。
rkjnsn 2011

0

質問に記載されていないオープンソースライセンスによって異なります。GPLはこの点でほとんどの問題を引き起こし、静的リンクまたは実行時リンクが疑われます。

最良の結果については、FAQをお読みください。他の答えを信用しないでください。プラグインの使用は本当に合法ではありません。多くの商用製品は、さまざまな点でGPLに違反しており、基本的には逆に見えます。

http://www.gnu.org/licenses/gpl-faq.html

GPLの下でリリースされたプログラムがプラグインを使用する場合、プラグインのライセンスの要件は何ですか?これは、プログラムがプラグインを呼び出す方法によって異なります。プログラムがforkとexecを使用してプラグインを呼び出す場合、プラグインは別個のプログラムであるため、メインプログラムのライセンスではそれらの要件はありません。

プログラムがプラグインを動的にリンクし、プラグインが相互に関数呼び出しを行い、データ構造を共有する場合、それらは単一のプログラムを形成し、メインプログラムとプラグインの両方の拡張として処理する必要があります。つまり、プラグインはGPLまたはGPL互換のフリーソフトウェアライセンスの下でリリースする必要があり、プラグインを配布する際にはGPLの条件に従う必要があります。

プログラムがプラグインを動的にリンクしているが、それらの間の通信が、いくつかのオプションを指定してプラグインの「メイン」機能を呼び出し、プラグインが戻るのを待つことに限定されている場合、それは境界線の場合です。


GPLソフトウェアの著作権を所有している場合は、クローズドソースのプラグインを自分で配布できます。元の著作権所有者は、ライセンスルールを設定し、ライセンスに拘束されません。一方、それはあなたが1)あなたに著作権の割り当てを要求せずにGPLコントリビューションを受け入れることができない、そして2)他人がGPLソフトウェアでプラグインを配布できないことを意味します。
2011

なぜ他の情報源よりもFAQを信頼するのですか?それはおそらく考えられる最も非常に偏った情報源から来ています。私はGPLの下で私の仕事を置いた場合FSFがGPLは、法律やライセンスは、あなたが、することができないと言う場合は、Xを行うことができますと言うと言うなら、それは問題ではない、私はまだあなたを訴えることができると私はまだ勝ちます。
David Schwartz、

「なぜ他の情報源よりもFAQを信頼するのですか?」FAQは、実際の過去の事例に基づいているため、技術的な評判が正確さではなく人気によって授与されたポイントによってのみ可視化されているスタック交換ブログライターのアームチェア仮説には基づいていません。
Jonathan Cline IEEE

オープンソースバージョンのライセンスはまだ選択していません。私たちはすべてのコードに著作権を持っているので、2つの別々のライセンスの下でそれをリリースすることは問題ではありません。
rkjnsn 2011

ライセンスを選択していない場合は、バイラルライセンス(バイラル= GPLベースを意味する)ではなく、BSDベースのライセンスを使用する方がはるかに適切です。多くの製品は、独自のコード(付加価値部分)が直接ツリーに統合されたサーバー製品に組み込まれたnetbsdをうまく使用しています。別の著者が示しているように、デュアルライセンスを使用してリリースすることはできますが、これは販売とmktingを混乱させるだけです。おそらく、参照のための成功した例は、Apple Darwin( "Apple Public Source License"、現在はApacheライセンス)です:en.wikipedia.org/wiki/Darwin_(operating_system
Jonathan Cline IEEE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.