Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

Zip圧縮にJ#のDllを使う時はライセンスに気をつけよう

.NETではBCLだけではZipを扱うことができません。次のバージョンでようやくZipを扱うクラスが提供されるようですが。

次の.NET BCLにやっとzipを扱うクラスが入るらしい - kkamegawa's weblog
connectでフィードバックしていた件、駄目なんじゃないかと思いつつ、なんとか入ることが決まったようです。今日「次のバージョンで入れるよ」というPMのコメントと共にcloseされました ...

現状では主に以下の2つの方法が採用されていました。

  1. J#のdllを使う
  2. #ziplibを使う

.NET Zip Library #ziplib (SharpZipLib)
#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of #ziplib put it this way: "I've ported the zip library over to C# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C#."

1を採用するときはライセンス面で注意が必要です。Zipを扱うためにはJ#のvjsnativ.dll、vjslib.dllが必要ですが、これらはdll単体での配布が認められていません。そのため本番環境への「J#再頒布可能パッケージ」のインストールが必須です。

長くなりますが、マイクロソフト カスタマーインフォメーションセンターからの回答を記載しておきます。

MSへの質問

vjsnativ.dll、vjslib.dll は再頒布可能でしょうか?

MSの回答

ご連絡が大変遅くなりまして、誠に申し訳ありません。
マイクロソフト カスタマーインフォメーションセンター○○でございます。

お問合わせいただきました内容につきましては、下記にて回答させていただきます。

恐れ入りますが、結論から申し上げますと、
お客様のご要望は、使用許諾の範囲を超えたご利用方法となります。

マイクロソフトで提供している、開発製品に付属する再頒布可能ファイルは、
お客様の開発アプリケーションの一部としての再頒布のみを許諾しており、
dll をアプリケーションから分離した状態での再頒布は認められておりません。

こちらは各開発製品の使用許諾契約書および製品使用権説明書にも
記載 (※ 部分) されております。

なお、ご要望のファイルの再頒布権については、
お客様の開発環境に付属する Redist.txt に記載されているかどうかを
ご確認くださいますようお願い申し上げます。

以下使用許諾契約書については、今回再頒布希望ファイルが J# 関連 DLL のため、
J# が含まれたバージョンの開発製品について記載した使用許諾をあげておりますが、
どのバージョンであっても、再頒布可能ファイルの確認は各付属の Redist.txt、
再頒布方法については開発アプリケーションの一部であることが必須の 2 点に変わりありません。

---- 以下抜粋 ----
2. 追加のライセンス権 -- 再頒布可能コード
本ソフトウェア製品の一部については、条項 1 で許諾された権利に加え、本条項 2 に従って、追加のライセンス権がお客様に許諾されます。ただし、追加のライセンス権は、条項 3 に記載された頒布条件とライセンスの制限をお客様が厳守することを条件として許諾されます。
2.1 サンプル コード
マイクロソフトはお客様に対して、
(a) お客様のソフトウェア製品を設計、開発およびテストするためにのみ、本ソフトウェア製品のうち REDIST.TXT ファイルまたはその他で「Samples」と指定された部分の、ソース コード バージョン (以下「サンプル コード」といいます) を使用し、改変すること、および
(b) サンプル コードまたはそれに改変を加えたものをオブジェクト コードまたはソース コード形式 (あるいはその両方) で複製して頒布する限定的、非独占的かつ無償の権利を許諾します。サンプル コードに適用される再頒布条件については、条項 3.1 をご参照ください。
2.2 再頒布可能コード -- 一般条件
マイクロソフトはお客様に対して、本ソフトウェア製品のうち REDIST.TXT ファイルに記載されたオブジェクト コード (以下「再頒布可能コード」といいます) を複製して頒布する限定的、非独占的かつ無償の権利を許諾します。再頒布可能コードの一般的な再頒布条件については、条項 3.1 をご参照ください。
〜〜〜〜〜〜〜〜〜中略〜〜〜〜〜〜〜〜〜〜
3. 頒布の条件およびその他のライセンスの権利と制限
お客様は条項 2 により取得した権利を行使する場合、再頒布にあたって条項 3.1 の条件に従わなければなりません。再頒布可能コードの一部には、条項 3.2 に記載された使用権の制限が別途適用されます。
3.1 一般的な頒布条件
(a) お客様が、条項 2 に従って、サンプル コードまたは再頒布可能コード (以下総称して「再頒布可能ファイル」といいます) の再頒布を行う場合、以下の条件に同意するものとします。
(i) 条項 2.1 (「サンプル コード」) に規定された場合を除き、※再頒布可能ファイルに重要かつ主要な機能を追加するお客様によって開発されたソフトウェア アプリケーション (「ライセンシー ソフトウェア」) と共におよびその一部として※、再頒布可能ファイルをオブジェクト コード形式のみで頒布するものとします。
(ii) 再頒布可能ファイルを Microsoft Windows プラットフォーム上でのみ作動させなければなりません。
(iii) ライセンシー ソフトウェアをライセンシーの組織外に頒布する場合、お客様は、本契約書と同等以上にマイクロソフトを保護する内容の使用条件を記載した、エンド ユーザー向け使用許諾契約書 (シュリンク ラップ形式による同意、クリック ラップ形式による同意、または署名による同意の形式による場合があります) を添付して、再頒布可能ファイルを含むライセンシー ソフトウェアを頒布するものとします。
(iv) ライセンシー ソフトウェアの販売にあたり、マイクロソフトの名称、ロゴまたは商標を使用しないものとします。
(v) ライセンシー ソフトウェア上に、マイクロソフトのソフトウェアに関する著作権を保護するのに十分なお客様自身の有効な著作権表示を行うものとします。
(vi) お客様に配布された時に本ソフトウェア製品に表示されている著作権、商標、もしくは特許の表示を取り除いたり、または不明瞭にしてはなりません。
(vii) ライセンシー ソフトウェアの使用または頒布に関連して生じる紛争または訴訟 について、マイクロソフトを免責、保護、補償するものとします(弁護士費用についての免責、保護、補償も含みます)。
(viii) その他の事項については、本契約書に従うものとします。
(ix) お客様が明示的に許諾されていない権利はすべて、マイクロソフトによって留保されます。 お客様は、エンド ユーザーによる再頒布可能ファイルの再頒布を許可しないものとします。ただし、お客様は、お客様のソフトウェアの頒布者が、ライセンシー ソフトウェアと共におよびその一部としてのみ再頒布可能ファイルをエンド ユーザーに再頒布し、かつお客様と頒布者とが本契約書のその他の規定に従う場合に限り、頒布者がエンド ユーザーに再頒布可能ファイルを再頒布することを許可できます。
---- 抜粋ここまで ----

以上をもちまして、本お問い合わせに対するご返信とさせていただきます。