[English] |Tsuneo's OpenLab[Japanese] |TAR32.DLL[Japanese]

# TAR32.DLL

## はじめに

TAR32.DLLはWindows用のTAR/GZ/BZ2/Z等の圧縮/展開用ライブラリプログラムです。
統合アーカイバプロジェクトのAPI仕様に準拠しています。
対応形式は以下の通りです。

- .gz (gzip format)
- .Z (compress utility format) / extrace only
- .bz2 (bzip2 format)
- .tar (Tape ARchiver format)
- .cpio (cpio archive format)
- .a, .lib (ar tool format, COFF/a.out/b.out) / extract only
- .rpm (RPM package) (=leading + signature + header + .cpio.gz) /extract only
- .deb (Debian Package) (=ar of ("debian-binary" + "control.tar.gz" + "data.tar.gz")) /extract only
- .tar.gz(.tgz), .tar.bz2
- .tar.Z(.taz) / extract only
- .cpio.gz, .cpio.Z, .cpio.bz2 /extract only
- .a.gz, .a.Z, .a.bz2, lib.gz, lib.Z, lib.bz2, lib.gz / extract only

## ダウンロード

### 最新版ダウンロード

1時間おきにCVSが更新されているかチェックして、更新されていればパッケージを作成しています。
(注:パッケージ全体の入手方法を提供しないDLL単体の再配布は、なるべく避けた方がいいと思います)
- TAR32.DLL Ver2.xx(最新版)
  パッケージ
  DLL単体
  更新履歴
- TAR32.DLL Ver0.xx(古いバージョン)
  パッケージ
  DLL単体
  更新履歴

### その他のダウンロード先

- 統合アーカイバ(TAR32)
- VECTOR(TAR32)

## 機能

- .tar/.tar.gz/.tar.Z/.gz/.Z/.bz2形式の圧縮/展開が行えます。ただし、.tar.Z/.Zについては展開のみ行えます。
- 統合アーカイバプロジェクトのAPI仕様に準拠。TAR32.DLLのAPIに対応した多数のアプリケーションで利用できます。

## 動作環境

- Windows 95/NT 4.0以上(一般的なWIN32APIが使えるプラットホーム)

## 使い方

### アプリケーション利用者

- エクスプローラの設定によってはTAR32.DLLが見えない場合があります。その場合はエクスプローラのメニューバーの表示/オプションでオプションダイアログを出し、「全てのファイルを表示」をチェックし、「登録されているファイルの拡張子は表示しない」のチェックを外してください。
- TAR32.DLLをWindowsのSYSTEMフォルダにコピーしてください。
  Windows95/98の場合は普通C:\Windows\Systemとなります。
  WindowsNTの場合は普通C:\WINNT\SYSTEM32となります。
- TAR32.DLLに対応したアプリケーションプログラムをお使いください。

### アプリケーション開発者

- 基本的なAPIの使い方はUNLHA32.DLLとほぼ同じです。UNLHA32.DLLのドキュメントを参考にしてください。
- Ver0.xx系にはいくつかドキュメントが付属していますので、そちらもご覧ください。
- Ver2.xx系には現在ほとんどドキュメントがないので、ソースを見るか統合アーカイバ開発系などで質問してください。

## バージョンについて

TAR32.DLLは現在Ver0.xx系とVer2.xx系に別れています。違いは以下のとおりです。

### Ver2.xx系

- Ver0.xxソースプログラムが汚くなってきたように思ったため、コードを再利用しながらほぼ１から書き直した。多少プログラムが見やすく、変更しやすくなったと思います。バグも発生しにくくなったはず。
- スレッドセーフです。(少なくとも目指しています)
- Ver0.xx系の機能のうち、いくつか利用できないものがあります。
- 基本的にzlibとlibbzip2とオリジナルのコードから成り立ちます。
- Public Domain Softwareに近いライセンスです。
- cpio,rpm,deb,ar(a.out)形式に対応しています。
- LhMelt,ExpLzhなどである程度動作確認していますが、Ver0.xx系でないと動かないアプリケーションがあるかもしれません。ご連絡いただければなるべく対応します。

### Ver0.xx系

- Ver0.01は1996/12/17に公開
- kmtar(PowerUpKit) for WINNTをベースとして開発(Ver0.10以降)
- kmtarに付属しているさまざまな機能が使えます。
- kmtarを独自に拡張したいくつかの機能を使えます。
- ライセンスはGPLです。
- Ver0.xx系については、私(吉岡)は基本的に現バージョン以降変更やバグ修正などする予定はほとんどありません。
- 既知のバグ(Ver2.xxでは修正されています)
  - UNCパス(ネットワークコンピュータ)に対応していません。
  - TAR書庫以外を渡すと落ちることがあります。

## 開発に参加するには?

TAR32.DLLはCVSというファイルシステムを用いて開発しています。 最新版ソースの取得はゲスト用アカウントで誰でも行うことができます。 ソースプログラム、ドキュメントなどを変更したい方は書き込み用アカウント(ユーザ名、パスワード)が必要です。基本的に誰でも行うことができますので、どしどし申請してください(^^; ＃ 最近ほとんど開発していないので、書き換えたいところがあれば勝手に自由に書き換えてくださいということです。(^^; CVSクライアントとしては、マウスで操作できるWinCVS(右図)がお勧めです。 ・WinCVSによる最新ソースの取得、開発方法 |

### 私の開発環境

- Visual C++ Ver6.0(J) + Service Pack3
  Win32APIが使える普通のC++コンパイラでコンパイルできると思います。
- WindowsNT4.0 + Service Pack5
  Windows9xでもコンパイルできます。

### CVSの設定

設定は以下の通りです。 但し、ゲスト用アカウントではファイルの変更、追加はできません。

通信プロトコル | pserver
サーバ名 | openlab.ring.gr.jp
CVSパス名 | /circus/cvsroot
モジュール名 | tar32_1 (tar32 ver0.xxの場合) tar32_2 (tar32 ver2.xxの場合)
ゲスト用ユーザ名(read only) | guest
ゲスト用パスワード(read only) | guest
CVSレボジトリ名(ゲストユーザ) | :pserver:guest@openlab.ring.gr.jp:/circus/cvsroot

### CVSへの書き込み可能アカウントの申請方法

1. 統合アーカイバ開発系メーリングリストに入会してください。
2. お好きなユーザ名とパスワードを以下の場所で入れてください。アカウント申請用のURLが表示されます。(そのURLはみなくて結構です。また、認証ページなので見ることはできません。)
   アカウント申請用URLの作成
3. 申請理由を適当に決めてください。以下のような方はどしどしどうぞ(^^
   - プログラムを書きたい、変更したい。
   - ドキュメントを書きたい、変更したい。
   - ビルドして、ビルド済みプログラムを置きたい。
   - その他なんでも。メールでお尋ねください。
4. メールで、アカウント申請用URL、申請理由、名前を私(吉岡)まで送ってください。
   申請先：tsuneo@rr.iij4u.or.jp
5. 申請したアカウントの登録を私(吉岡)が行い、登録した旨メールで返信します。
6. 申請したユーザ名とパスワードでCVSサーバに接続してどんどん書き換えましょう(^^。うまくいかない場合はWinCVSのプロジェクトディレクトリは一度削除(or移動)して作り直してみてください。

### プログラムの変更の指針

- 特に決まりはありません。すべて自由に書き換えてください。
- かならず変更履歴を書いてください。
- なるべく統合アーカイバ開発系メーリングリストの方にアナウンスしてください。統合アーカイバのページに反映されるはずです。
- 変更部分は基本的にPublic Domain Softwareとして扱います。他のライセンスにしたい場合は別途相談してください。
- パッケージ化は一時間に一度行っています。

### もっといろいろしたい、フリーソフトをCVSで開発したいとき

RingServerのオープンラボラトリなどに参加しましょう。基本的に誰でも参加できるようです。また、sourceforge.netでもオープンソースソフトウェア開発用にCVSサーバなどを無料で利用できます。

- Open Laboratory
- Ring Serverプロジェクトへの参加
- sourceforge.net

## 特許

TAR32.DLLではcompress形式(拡張子.Z)の展開ができます。
compress形式の圧縮/展開にはLZWアルゴリズム(LZ78を実用化したもの)が使われています。
UNISYSはLZWの圧縮/展開に関する特許を取得していると強く主張しています。
そのため、TAR32.DLLを用いてcompress形式の展開を行うプログラムを作成、利用するとUNISYSの特許に抵触し、ライセンス料の支払いを要求されたり、訴えられる可能性があります。
- GIFとLZW圧縮伸長法の特許について
- 日本UNISYSのLZWライセンス
- Public Domainのcompress形式圧縮展開プログラムncompressに付属ドキュメント(LZW.INFO)UNISYS特許に関する情報
- US Patent Full-Text Database Boolean Search(アメリカの特許検索)
- 日本の特許庁
- なぜ特許はソフトウェアに有害なのか
- 富士通デバイスによる圧縮アルゴリズム技術解説LZ77系の特許に関する解説があります。

## 利用条件

TAR32.DLL Version 0.x,1.xはGPLに従ってください。
TAR32.DLL Version 2.xは基本的にPublic Domain Softwareとして配布、改造、ソース等の一部利用など自由に行ってください。ただし、ZLIB及びlibbzip2を用いていますので、この部分についてはそれぞれの利用条件に従ってください。また、義務ではありませんが、ソースを改良した場合はその変更をオリジナルにも反映させるためなるべく変更点を教えてください。
- GPL(GNU GENERAL PUBLIC LICENSE) (日本語GPL)
- ZLIB利用条件
- bzip2とlibbzip2の利用条件

## 関連サイト

- 統合アーカイバプロジェクト(Common Archivers Library Project)
- 奥村晴彦さんによるData Compression Pointers
- kmtar for Win32
- GNU tar
- The gzip homepage
- zlib Home Page
- The bzip2 and libbzip2 official home page
- File Formts
- The Programmer's File Format Collection
- Format of the RPM File
- RPM the Red Hat Package Manager.
- binutils - Collection of binary utilities(contains ar)
- cpio - Copies file archives.
- dpkg: Package maintenance system for Debian

## 問い合わせ先

このプログラムについての問い合わせはなるべく統合アーカイバメーリングリスト又は開発系メーリングリストにお願いします。私(吉岡)宛に出されてもすぐには返事ができない場合があります。
- 統合アーカイバプロジェクトメーリングリスト
  主にアプリケーションユーザ向け
- 統合アーカイバプロジェクト開発系メーリングリスト
  主にアプリケーション開発、DLL開発にかかわっている、又は興味がある方向け

吉岡 恒夫(tsuneo@rr.iij4u.or.jp,QWF00133@nifty.ne.jp,tsuneo@ring.gr.jp)