mDNkit installation guide

# インストール

# Install

mDNkit のコンパイルおよびインストール方法について解説します。 ここではソースからのインストール方法について説明します。 バイナリパッケージの配布も予定されていますが、 それらのインストール方法に関してはそれぞれのパッケージを参照してください。

This document describes mDNkit compiling and installation procedures. Procedures for how to install from the source is described here. Distribution of binary packages is planned; refer to the instructions that accompany each package.

本ドキュメントでは Unix 用のコンパイルとインストール方法について 説明します。Windows 用の mDN Wrapper のインストール 方法に関しては mDN Wrapper のセットアップの 項をご覧ください。

This document describes the compiling and installing procedures for Unix. Refer to the section Setup in mDN Wrapper for information on procedures to install in Windows mDN Wrapper.

ソース配布からのインストール手順はおよそ次のようになります。

Installation procedure from source distribution is implemented as follows.

1. 前準備
2. Prepare
3. 配布ソースの展開
4. Extract distribution source
5. `configure` 実行
6. `Configure` Execute
7. コンパイル
8. Compile
9. ファイルのインストール
10. Install file

インストールの後は、DNS サーバの設定 および mDNkit リゾルバのコンフィギュレーション 、さらに dnsproxy を使用する場合には DNS Proxy Server のコンフィギュレーション を参照して設定を行ってください。

After installation, refer to and set up DNS server configuration, mDNkit resolver configuration, and if dnsproxy is to be used DNS Proxy Server configuration.

ソース配布に含まれているパッチを適用する場合には、 それぞれ次の手順にしたがってください。

To install the patch included in source distribution, refer to the following instructions.

- bind9 用パッチの適用とインストール
- Applying and installing a bind9 patch
- bind8 用パッチの適用とインストール
- Applying and installing a bind8 patch
- squid 用パッチの適用とインストール
- Applying and installing a squid patch

## 前準備

## Preparations

### iconv のインストール

### iconv installation

mDNkit は EUC や SJIS など様々なローカルエンコーディングで記述された ドメイン名のエンコーディングを変換するために、汎用のコードセット変換 ユーティリティである iconv() を使用します。 そこで、FreeBSD など iconv() が標準で組み込まれていないシステムでは、 mDNkit のインストールに先立って iconv() をインストール しなければなりません。また、mDNkit は iconv() が UTF-8 エンコーディングをサポートしていることを要求します。システム付属の iconv() が UTF-8 をサポートしていない場合にはやはり 外部のパッケージをインストールする必要があります。

mDNkit uses iconv(), a general-purpose utility, to convert domain name encoding of EUC, SJIS or other local encoding. iconv() must be installed prior to mDNkit installation in those systems that do not have iconv() as a standard package, such as FreeBSD. Also, the mDNkit requires that iconv() should support UTF-8 encoding. An external package must be installed if the provided iconv() in the system does not support UTF-8.

iconv() のフリーな実装としては、例えば libiconv

There are free versions of iconv(), for example, libiconv.

- http://clisp.cons.org/~haible/packages-libiconv.html

があり、ソースを上記のページから入手することができます。 これは LGPL に基づいたフリーソフトウェアで、多くの Unix 系 OS の もとで動作します。このパッケージのインストール方法については、上記ページか、 あるいはソース配布に含まれる `INSTALL.generic` ファイルをご覧ください。

This source can be downloaded from the above page. This is an LGPL-based free software package that runs on a variety of Unix operating systems. Refer to the above page or the `INSTALL.generic` file that accompanies the source distribution for information on installation procedures.

### bind9 ソースの入手

### Obtaining the bind9 source

mDNkit は bind9 に対するパッチを提供しており、これによって 多言語ドメイン名を扱うことのできる bind9 のリゾルバおよびサーバを 作成することができます。本キットに含まれるパッチは BIND 9.0.0 に 対するものです。ソースは以下の場所からダウンロードすることができます。

The mDNkit provides a bind9 patch that can be used to generate bind9 resolvers and servers that can support multilingual domain names. The patch in this kit is for BIND 9.0.0. The source can be downloaded from the following page.

- http://www.isc.org/products/BIND/bind9.html

### bind8 ソースの入手

### Obtaining the bind8 source

dnsproxy を利用してクライアントアプリケーションが 多言語ドメイン名を使用できるようにするためには、 名前解決を行うリゾルバライブラリを 8bit スルーにする必要があります。 また DNS サーバでも、多言語ドメイン名のエンコーディングとして ASCII 互換エンコーディングである UTF-5 や RACE 以外の、 例えば UTF-8 などのエンコーディングを使用するためには、 8bit スルーの DNS サーバを使用する必要があります。

To use dnsproxy to enable client applications to support multilingual domain names, the resolver library that resolves names must be made 8-bit through. Also, 8-bit through DNS servers must be used to enable a DNS server to use encodings other than UTF-5, RACE or other ASCII compatible encoding (as multilingual domain name encoding), for example, UTF-8.

mDNkit にはこのために BIND 8.2.2-P7 および BIND 8.2.3-T6B を 8bit スルーにする パッチが含まれています。パッチを適用した bind8 を使用したい場合には あらかじめいずれかのバージョンのソースを用意してください。 ソースは以下の場所からダウンロードすることができます。

The mDNkit for that reason supplies a patch that makes BIND 8.2.2-P7 and BIND 8.2.3-T6B 8-bit through. To use bind8 with a patch installed, obtain the source of the desired version. Sources can be downloaded from the following page.

- http://www.isc.org/products/BIND/bind8.html

### Squid ソースの入手

### Obtaining Squid

Web のキャッシュサーバである Squid は、そのままでは多言語 ドメイン名が入力されるとそれをエラーにしてしまい、使用することができません。 このためmDNkit には Squid-2.3.STABLE3 を 8bit スルーにするパッチが含まれています。Squid を多言語ドメイン名で使用 したい場合にはこのソースも用意してください。

Squid, a Web cache server, cannot be used as is, because it will generate an error when entering multilingual domain names. mDNkit comes with a patch that makes Squid-2.3.STABLE3 8-bit through. Obtain this source if you wish to make Squid support multilingual domain names.

## 配布ソースの展開

## Extracting distribution source

mDNkit に関する最新情報は以下の場所から入手可能で、 最新の配布ソースのダウンロードもできます。

The latest information regarding the mDNkit is available on the following site. The most recent distribution source can also be downloaded from the following page.

- http://www.nic.ad.jp/jp/research/idn/

入手した mDNkit の配布ソースを展開します。 配布ソースのファイル名を `mdnkit-X.Y.tar.gz`とすると 次のようにして展開できます。

Extracting the obtained mDNkit distribution source. Distribution sources with file names such as `mdnkit-X.Y.tar.gz` are extracted as shown below.

>     % gunzip mdnkit-X.Y.tar.gz
>     % tar -xf mdnkit-X.Y.tar

展開すると、`mdnkit-X.Y`というディレクトリが作られますので、 そこに移動してください。

When extracted, a `mdnkit-X.Y` directory is generated. Move to this directory.

>     % cd mdnkit-X.Y

以降の説明では、このディレクトリを `$MDNTOP` という名前で 参照します。環境変数 `$MDNTOP` を設定しておくと便利でしょう。

In the following descriptions, this directory is referred to as `$MDNTOP`. Setting the environment variable `$MDNTOP` makes it easier to use.

>     % setenv MDNTOP `pwd`         (csh 系のシェルの場合)
>     % MDNTOP=`pwd`; export MDNTOP (sh 系のシェルの場合)
>     % setenv MDNTOP `pwd`         (for a csh system shell)
>     % MDNTOP=`pwd`; export MDNTOP (for a sh system shell)

## `configure` 実行

## Running `Configure`

まず mDNkit の本体である、

First compile the following that form the major part of the mDNkit.

- MDN ライブラリ (libmdn)
- MDN library (libmdn)
- DNS プロキシサーバ (dnsproxy)
- DNS proxy server (dnsproxy)
- ゾーンマスタファイルコード変換ツール (mdnconv)
- Zone master file code conversion tool (mdnconv)
- runmdn コマンド
- runmdn command

まず、mDNkit のトップディレクトリ (`$MDNTOP` の指すディレクトリ) に移動し、 `configure` スクリプトを実行します。 `configure` はヘッダファイルやライブラリの有無など、システム毎の 特徴を調べ、コンパイル環境を適切に設定するためのツールです。

First move to the mDNkit top directory (the directory that `$MDNTOP` points to) and execute the `configure` script. `Configure` is a tool that checks the header file and libraries to learn the features of the system to configure the optimum compiler environment.

>     % cd $MDNTOP
>     % ./configure

システムに iconv() が組み込まれていて、かつコンパイル時に 特別なオプションを使用しないなら上記のようになにも引数を指定せずに 実行すればよいのですが、そうではない場合、オプションや環境変数で `configure` の動作を変えることができます。

When iconv() is included with the system and no special options are used during compilation, it can be executed like above without the need to specify any arguments. In other cases, operation of `configure` can be changed using options and environment variables.

`configure` に指定できるオプションの中で mDNkit に 直接関係するものは以下の通りです。

The following options that can be set by `configure` are directly related to mDNkit.

`--with-iconv=LIB`
  システムに iconv() が組み込まれていない、あるいは システムの iconv() を使いたくないなどの理由で新たに iconv() のパッケージをインストールした場合に、このオプションを 用いて iconv() のライブラリを指定します。LIB で ライブラリを指定します。ライブラリファイルをフルパスで指定するか、 あるいは C コンパイラに与えるオプションの形式で指定してください。
  When the iconv() package is installed either because it is not included with the system or because you do not wish to use the existing iconv() in the system, use this option to configure the iconv() library. Use LIB to specify the library. Use the full path to specify the library or specify it using an option format assigned to the C compiler.

  例えば前準備に挙げた iconv のパッケージをインストールした場合、デフォルトでは `/usr/local/lib` の `libiconv` にインストールされるので、
  For example, when the iconv package mentioned in Preparations is installed, it is by default installed in `libiconv` of `/usr/local/lib`, so it is a good idea to make the following entry.

  >     --with-iconv="-L/usr/local/lib -liconv"

  と指定すればよいでしょう。`libiconv` が共有ライブラリの時には、 `-R` オプションも指定して
  When `libiconv` is shared library, it may also be necessary to specify the `-R` option:

  >     --with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"

`--with-utf8=NAME`
  UTF-8 エンコーディングを iconv() に指定する場合、 mDNkit はデフォルトで `UTF-8` というエンコーディング名称を 使用します。もし UTF-8 エンコーディングを指定するのに `UTF-8` 以外の エンコーディング名称を使用する必要があれば、このオプションで NAME にその名称を指定します。前準備にあげた iconv のパッケージを使用する場合にはこのオプションの指定は 不要です。
  When UTF-8 encoding is specified using iconv(), mDNkit uses `UTF-8` to encoding names by default. If other names must be used when UTF-8 encoding is specified, specify the name in NAME using this option. This is not required when using iconvpackage mentioned in Preparations.

`--with-race-prefix=PREFIX`
  DNS プロトコル上で用いられる多言語ドメイン名のエンコーディング方式 として RACE という方式が提案されています。これは ASCII 互換エンコーディングの 1つですが、ドメイン名に特定のプリフィックスを付けることで通常の ASCII ドメイン名と区別することが可能になっています。このプリフィックスは 現在の インターネットドラフトでは `"bq--"` ですが、将来変更される 可能性があります。変更された場合にはこのオプションを用いて正しい プリフィックスを指定してください。
  RACE is proposed as one of the encoding system to be used for multilingual domain names in DNS protocols. RACE is an ASCII compatible encoding scheme and adds a specific prefix to the domain name to distinguish it from an ordinary ASCII domain name. This prefix is `"bq--"` in current Internet Drafts, but this may change in future. Use this option to enter the new prefix when a change is made.

`--with-brace-suffix=SUFFIX`
  RACE と同じく DNS プロトコル上で用いられる多言語ドメイン名の エンコーディング方式として BRACE という方式が提案されています。これも ASCII 互換エンコーディングの 1つですが、RACE と異なり、ドメイン名に特定のサフィックスを付けることで通常の ASCII ドメイン名と区別することが可能になっています。このサフィックスは 現在の インターネットドラフトでは `"-8q9"` ですが、将来変更された 場合にはこのオプションを用いて正しいサフィックスを指定してください。
  Like RACE, BRACE is being proposed as an encoding scheme for multilingual domain names to be used in DNS protocols. It is also an ASCII compatible encoding scheme, but differs from RACE in that it adds a suffix to the domain name to distinguish from normal ASCII domain names. This suffix is `"-8q9"` in the current Internet Draft, but this may change in future. Use this option to enter the correct suffix when a change is made.

`--with-lace-prefix=PREFIX`
  RACE や BRACE と同じような ASCII 互換エンコーディングの一つとしてLACE という方式が提案されています。RACE と同様、LACE も通常の ASCII ドメイン名と区別ために特別なプリフィックスを使用します。 現在のインターネットドラフトでは `"bq--"` ですが、将来これが変更された場合にはこのオプションを用いて正しいプリフィックスを指定してください。

  Like RACE and BRACE, LACE is another ASCII compatible encoding scheme and like, RACE, it adds a special prefix to distinguish it from ordinary ASCII domain names. In the current Internet Draft the prefix is `"bq--"`, but this may change in the future; if it does, use this option to enter the correct prefix.

`--enable-zld`
  ZLD (Zero Level Domain) 機能のサポートを追加します。 ZLD とは DNS サーバで用いられる一部のエンコーディングにおいて、通常の ASCII ドメイン名と多言語ドメイン名とを区別するために用いられる特殊なドメイン名です。 DNS プロトコル上で使用するエンコーディングとして ZLD を必要とするエンコーディングを選択しなければ、このオプションの指定は不要です。

  This option adds ZLD (Zero Level Domain) function support. ZLD is a special domain name used to differentiate standard ASCII domain names from multilingual domain names in some encodings used in a DNS server. This option need not be set unless ZLD is selected as the required encoding in a DNS protocol.

  なお、ZLD 機能のサポートの有無は dnsproxy や runmdn が設定ファイルを読み込む際の振る舞い (ZLD の指定を無視するかどうか) に影響します。 mDNkit が提供するライブラリ自体は、(設定ファイルを読み込むための一部のモジュールを除いて)このオプションによって動作が変わることはなく、常に ZLD の処理を行うようになっています。

  The support of the ZLD function affects operation (i.e. whether or not the ZLD setting is ignored) when configuration files are read in using the dnsproxy or runmdn command. The operation of the library provided by the mDNkit does not change with this option (except some modules used for reading in configuration files), but performs ZLD processing at all times.

`--sbindir=DIR`
  DNS プロキシサーバ dnsproxy をインストールするディレクトリを指定します。 デフォルトでは `/usr/local/sbin` にインストールされます。

  Specifies the directory where dnsproxy, the DNS proxy server, is installed. `/usr/local/sbin` is the default directory.

`--bindir=DIR`
  ゾーンマスタファイルコード変換ツール mdnconv およびクライアントに多言語ドメイン名処理を付加する runmdn コマンドをインストールするディレクトリを指定します。 デフォルトでは `/usr/local/bin` にインストールされます。

  Specifies the directory where the mdnconv command, a tool for converting zone master file code, and the runmdn command that adds multilingual domain name processing capability to a client, are installed. `/usr/local/bin` is the default directory.

`--libdir=DIR`
  dnsproxy や mdnconv 等が使用する mDNkit の基本ライブラリをインストールするディレクトリを指定します。 デフォルトでは `/usr/local/lib` にインストールされます。

  Specifies the directory where the basic mDNkit and other basic libraries employed by dnsproxy or mdnconv are installed. `/usr/local/lib` is the default directory.

`--includedir=DIR`
  mDNkit の基本ライブラリを使用するのに必要なヘッダファイルをインストールするディレクトリを指定します。デフォルトでは `/usr/local/include` にインストールされます。

  Specifies the directory where the header file required for use of the basic mDNkit library is installed. `/usr/local/include` is the default directory.

`--sysconfdir=DIR`
  DNS プロキシサーバ dnsproxy の設定ファイル、およびmDNkit のクライアント共通設定ファイルをインストールするディレクトリを指定します。 デフォルトでは `/usr/local/etc` にインストールされます。

  Specifies the directory where dnsproxy, the DNS proxy server, configuration files and shared client configuration files for mDNkit are installed. `/usr/local/etc` is the default directory.

`--mandir=DIR`
  オンラインマニュアルをインストールするベースディレクトリを指定します。 デフォルトでは `/usr/local/man` です。実際にはこのディレクトリのサブディレクトリの `man1` や `man8` にインストールされます。

  Specifies the base directory where the online manuals are installed. `/usr/local/man` is the default directory. In fact, they are installed in its `man1` or `man8` subdirectory.

この他にも `configure` にはいろいろなオプションを指定することができます。

A number of other options can be specified using `configure`.

>     % ./configure --help

で指定可能なオプションの一覧を表示させることができます。

The above is used to display a list of specifiable options.

また、関係する環境変数は次の通りです。

The related environment variables are as follows.

`CFLAGS`
  Cコンパイラに渡すオプションを指定します。例えば外部のiconv パッケージをインストールしたときに、インクルードファイル`iconv.h` が標準以外のディレクトリ、例えば`/usr/local/include` にインストールされたとします。このような場合には `CFLAGS` に `-I/usr/local/include` を設定する必要があります。具体的には、csh 系のシェルの場合には

  Specifies options passed to the C compiler. Let's assume that when an external iconv package is installed, `iconv.h`, the include file is installed in a directory other than the standard directory, for example, `/usr/local/include`. This requires that `-I/usr/local/include` be configured in `CFLAGS`. The following configuration is required in a csh shell.

  >     % setenv CFLAGS -I/usr/local/include

  また sh 系のシェルの場合には

  An sh shell requires the following configuration.

  >     % CFLAGS=-I/usr/local/include; export CFLAGS

  とします。

  `CFLAGS` はこの他にも C コンパイラの最適化オプションを指定するためにも使えます。`CFLAGS` に `-O` を指定すれば最適化ありでコンパイルされます。

  `CFLAGS` can be used in other situations to specify the optimum C compiler options. When `-O` is specified in `CFLAGS` compilation is optimized.

`configure` を実行することにより、あなたのシステム環境に合わせて調整された Makefile その他のファイルが生成されます。

When `configure` is executed, Makefile and other files are generated and adapted to your system environment.

## コンパイル

## Compile

`configure` 実行によって、システム環境に合った Makefile が生成されているので、コンパイルはトップディレクトリ(`$MDNTOP` の指すディレクトリ) で`make` コマンドを実行するだけです。

Since `configure` generates a Makefile tailored to the system environment, all that compile needs to do is to execute the `make` command in the top directory (the directory pointing to `$MDNTOP`).

>     % make

## ファイルのインストール

## Installing Files

コンパイルが終了したら、実行ファイルなどのインストールを行います。 インストールの前にスーパーユーザになってください。

When compiling is finished, install the executable files and other files. Become a superuser prior to installation.

>     % su

あとは `make install` を実行すれば、必要なファイルがシステムにインストールされます。

Then execute `make install` to install all the required files in the system.

>     # make install

インストールされるファイルは以下の通りです。

The following files will be installed.

実行ファイル

Executable files
  以下の実行ファイルがインストールされます。

  The following executable files will be installed.
  `dnsproxy`
    DNS プロキシサーバです。
    The DNS proxy server.

  `mdnconv`
    ゾーンマスタファイル用のコード変換ツールです。
    The code conversion tool for zone master files.

  `runmdn`
    クライアントを再コンパイルすることなしに多言語ドメイン名の名前解決機能を付加するコマンドです。 デフォルトでは `/usr/local/bin` にインストールされます。
    This command adds, without the need for recompiling, the capability to resolve multilingual domain names to clients. It is installed in `/usr/local/bin` by default.

  `dnsproxy` は、デフォルトでは `/usr/local/sbin`にインストールされます。 インストール先を変えるには`configure` の `--sysconfdir`オプションを使用します。

  `dnsproxy` is installed in `/usr/local/sbin` by default. If you wish to change the installation location, use the `configure` `--sysconfdir` option.

  `mdnconv` および `runmdn` は、デフォルトでは `/usr/local/bin` にインストールされます。 インストール先を変えるには `configure` の `--bindir`オプションを使用します。

  `mdnconv` and `runmdn` are installed in `/usr/local/bin` by default. If you wish to change the installation location, use the `--bindir` option.

オンラインマニュアル

On-line manuals

  以下のオンラインマニュアルがインストールされます。

  The following on-line manuals will be installed.

  `dnsproxy.`
    DNS プロキシサーバ dnsproxy のマニュアルです。

    The dnsproxy, a DNS proxy server, manual

  `mdnconv.1`
    ゾーンマスタファイル用のコード変換ツール mdnconv のマニュアルです。

    The manual for mdnconv, a zone master file code conversion tool

  `runmdn.1`
    runmdn コマンドのマニュアルです。

    The runmdn command manual

  `mdnres.conf.5`
    クライアント共通設定ファイル mdnres.conf のオンラインマニュアルです。

    The on-line manual for mdnres.conf, a shared client configuration file

  デフォルトでは `/usr/local/man/man8` (`dnsproxy.8`)、`/usr/local/man/man1` (`mdnconv.1`、`runmdn.1`)、`/usr/local/man/man5` (`mdnres.conf.5`)にそれぞれインストールされます。

  These manuals are by default installed in `/usr/local/man/man8` (`dnsproxy.8`), `/usr/local/man/man1` (`mdnconv.1`, `runmdn.1`) and `/usr/local/man/man5` (`mdnres.conf.5`), respectively.

  インストール先を変えるには、`configure` の `--mandir` オプションを使用します。

  To change the location of installation, use the `--mandir` option of `configure`.

設定ファイル
  以下の設定ファイルあるいはそのサンプルファイルがインストールされます。

  Configuration files

  The following configuration files and sample files will be installed.

  `dnsproxy.conf`
    DNS プロキシサーバ dnsproxy の設定ファイルの設定例を記述したサンプルファイルです。 このファイルがすでにインストールされている場合には、上書きしてしまわないように `dnsproxy.conf.sample` という名前でインストールされます。

    このファイルの設定方法に関しては DNS Proxy Server のコンフィギュレーションを参照してください。

    This sample file describes setup examples for the configuration file for dnsproxy, the DNS proxy server. If this file has already been installed, it is installed under the name `dnsproxy.conf.sample` so as not to overwrite the previous file. Refer to DNS Proxy Server Configuration for information on how to set it up.

  `mdnres.conf.sample`
    クライアント共通設定ファイル mdnres.conf の設定例を記述したサンプルファイルです。

    This sample file describes setup examples for mdnres.conf, a shared client configuration file.

    このファイルの設定方法に関してはmDNkit リゾルバのコンフィギュレーションを参照してください。

    Refer to the mDNkit resolver configuration for information on how to set it up.

  いずれもデフォルトでは `/usr/local/etc` にインストールされます。 インストール先を変えるには、`configure` の`--sysconfdir` オプションを使用します。

  Both files are by default installed in `/usr/local/etc`. To change the installation location, use the `--sysconfdir` option.

ライブラリ
  以下のライブラリがインストールされます。

Libraries
  The following libraries will be installed.

  `libmdn`
    dnsproxy や mdnconv 等のコマンドが使用しているmDNkit の基本ライブラリです。

    A basic mDNkit library that employs dnsproxy, mdnconv and other commands.

  `libmdnres`
    runmdn コマンドによってクライアントに動的にリンクされるライブラリです。

    A library dynamically linked to a client using the runmdn command.

  いずれのライブラリもデフォルトでは `/usr/local/lib` にインストールされます。 インストール先を変えるには`configure` の `--libdir`オプションを使用します。

  Both libraries are by default installed in `/usr/local/lib`. To change the installation location, use `configure` with the `--libdir` option.

ヘッダファイル
  libmdn のヘッダファイルがインストールされます。 デフォルトでは `/usr/local/include` の下に `mdn` というディレクトリが作られ、その下にインストールされます。 インストール先を変えるには、`configure`の`--includedir` オプションを使用します。

Header file
  Installs the libmdn header file. This file is by fault installed in the `mdn` directory under `/usr/local/include`. To change the installation location, use the `--includedir` option in `configure`.

## bind9 用パッチの適用とインストール

## Applying and Installing the bind9 Patch

展開したソースの中の`$MDNTOP/patch/bind9/bind-9.0.0-patch` がBIND 9.0.0 に多言語ドメイン名の処理機能を付加するパッチです。 パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、次のようになります。

`$MDNTOP/patch/bind9/bind-9.0.0-patch` in extracted source is the patch that adds multilingual domain name processing functionality to BIND 9.0.0. Information on how to apply the patch is appended to the beginning of the file, but the following is a brief description.

1. BIND 9.0.0 のソースのトップディレクトリ(`README` というファイルがあるディレクトリです) に移動します。

   Move to the BIND 9.0.0 source top directory (the directory that contains the `README` file).

   >     % cd /somewhere/.../bind-9.0.0

2. `patch` コマンドを使用してソースにパッチを当てます。

   Use the `patch` command to apply the patch to the source.

   >     % patch -p0 < $MDNTOP/patch/bind9/bind-9.0.0-patch

パッチを当てると、トップディレクトリに `README.mdnkit` というファイルが作られます。コンパイルの前にこのファイルを読んでください。

When the patch is applied a `README.mdnkit` file is created in the top directory. Read this file before compilation.

そのあとコンパイルとインストールを行います。方法は `README.mdnkit` に書かれています。このファイルにも書かれていますが、`configure` コマンドの実行時に`--with-mdn` オプションをつけることを忘れないでください。 このオプションをつけないと多言語ドメイン名の処理機能は付加されません。

After this perform compilation and installation. Refer to `README.mdnkit` for instructions. As stated in this file, be sure to add the `--with-mdn` option when executing the `configure` command. Unless this option is added, capability to process multilingual domain names will not be added.

>     % ./configure --with-mdn

bind9 用のパッチは mDNkit の本体 (特にライブラリとヘッダファイル) がすでにインストールされていることを前提としています。したがって、この作業はmDNkit 本体のインストール終了後に実行してください。

The bind9 patch assumes that the major portion of the mDNkit (especially, the library and header file) is already installed. Consequently, this operation should be performed after the mDNkit has been installed.

## bind8 用パッチの適用とインストール

## Adding and Installing the bind8 patch

展開したソースの中の`$MDNTOP/patch/bind8/bind-8.2.2-P7-patch` がBIND 8.2.2-P7 に対する 8ビットスルーパッチ、また`$MDNTOP/patch/bind8/bind-8.2.3-T6B-patch` がBIND 8.2.3-T6B に対する 8ビットスルーパッチです。 パッチの当て方はこれらのファイルの先頭にも書いてありますが、簡単に紹介すると、次のようになります。

The `$MDNTOP/patch/bind8/bind-8.2.2-P7-patch` in the extracted source is the 8-bit through patch for BIND 8.2.2-P7 and the `$MDNTOP/patch/bind8/bind-8.2.3-T6B-patch` is the 8-bit through patch for BIND 8.2.3-T6B. Information on how to apply the patch is appended to the beginning of the file, but the following is a brief description.

1. BIND 8.2.2-P7 あるいは BIND 8.2.3-T6B のソースのトップディレクトリ(`src` というサブディレクトリがあるディレクトリです) に移動します。

   Move to the top directory of the BIND 8.2.2-P7 or BIND 8.2.3-T6B source (the directory containing the `src` subdirectory).

   >     % cd /somewhere/.../bind-8.2.2-P7

2. `patch` コマンドを使用してソースにパッチを当てます。

   Use the `patch` command to apply the patch to the source.

   >     % patch -p0 < $MDNTOP/patch/bind8/bind-8.2.2-P7-patch

パッチを当てたら、あとは通常の BIND のインストール方法にしたがってコンパイルとインストールを行ってください。インストール方法は BIND のソース中の `src/INSTALL` に書かれています。

When the patch has been applied, perform compilation and installation according to the standard BIND installation procedure. Refer to `src/INSTALL` for installation instructions.

bind8 用のパッチは BIND を単に 8ビットスルーにするだけで、mDNkit のライブラリ等は使用しません。したがって mDNkit 本体とは独立にコンパイルおよびインストールすることができます。

The bind8 patch only makes BIND 8-bit through and does not use the mDNkit library. Thus it can be compiled and installed separately from the mDNkit.

## squid 用パッチの適用とインストール

## Applying and Installing the squid Patch

展開したソースの中の `$MDNTOP/patch/squid/squid-2.3.STABLE3-patch` がSquid 2.3.STABLE3 に対する 8ビットスルーパッチです。 パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、次のようになります。

The `$MDNTOP/patch/squid/squid-2.3.STABLE3-patch` in the extracted source is the 8-bit through patch for Squid 2.3.STABLE3. Information on how to apply the patch is appended to the beginning of the file, but the following is a brief description.

1. Squid 2.3.STABLE3 のソースのトップディレクトリ (`README`ファイルがあるディレクトリです) に移動します。

   Move to the top directory of Squid 2.3.STABLE3 source (the directory containing the `README` file).

   >     % cd /somewhere/.../squid-2.3.STABLE3

2. `patch` コマンドを使用してソースにパッチを当てます。

   Use the `patch` command to apply the patch to the source.

   >     % patch -p1 < $MDNTOP/patch/squid/squid-2.3.STABLE3-patch

パッチを当てたら、あとは通常の Squid のインストール方法にしたがってコンパイルとインストールを行ってください。インストール方法はSquid のソースに含まれる `INSTALL` ファイルに書かれています。

When the patch has been applied, perform compilation and installation according to the standard Squid install procedure. Refer to `INSTALL` in the Squid source for installation instructions.

Squid 用のパッチも bind8 用のパッチと同様単に 8ビットスルーにするだけで、mDNkit のライブラリ等は使用しません。 したがって mDNkit 本体とは独立にコンパイルおよびインストールすることができます。

Both the Squid and the bind8 patches only add 8-bit through capability and does not use any mDNkit library or other function. Thus they can be compiled and installed independently from the mDNkit.